Giter VIP home page Giter VIP logo

crystfel's Introduction

CrystFEL

This is a personal unofficial repository of CrystFEL for processing serial crystallography dataset. The official CrystFEL website is http://www.desy.de/~twhite/crystfel/ and the repository is https://stash.desy.de/projects/CRYS/repos/crystfel/browse.

As of 2016, most features have been merged to the official repository, except for hdfsee improvements. Thus, I do not update this repository very often.

Warning!

I am testing various ideas on this repository. Some are not stable yet and NOT recommended for production work. Use at your own risk!

Added Features

multievent branch

This is personal "master" branch where developments take place. "master" branch tracks the official repository. hdfsee and multiple-lattice branches have been merged here.

  • More updates in the stream viewer (hdfsee)
    • Resizable columns
    • Sortable rows
    • Support multi-event HDF files

experimental branch

Highly premature, experimental codes. Do NOT use this branch!

  • get_rms
    calculate RMS between observed spot positions and predicted positions.
  • export_to_pickle
    convert a stream file to pickle files cctbx.xfel can read.
    very buggy, not working well.
  • dump_unmerged
    dump unmerged (but indices converted to be in the ASU) intensities from a stream file for statistical inspection.

hdfsee improvements

Should be stable enough for general use. Merged to multievent branch.

  • Load stream file directly into hdfsee
  • Show spots and (multiple) lattices simultaneously
  • Show resolution and Miller index to the status bar by clicking
  • Scrollbar in hdfsee -> merged to the official distribution
  • Export to ADSC format. -> merged to the official distribution
    This is useful for manual inspection of indexing in iMOSFLM. Since the original pixel doesn't have one-to-one correspondence in the output image, this is not perfectly accurate.

multiple-lattice indexing

This feature has been merged into the multievent branch. Seems stable but please carefully examine if it improves the result.

  • Multiple lattice indexing by calling external indexer(s) many times.
  • Sending prior-cell information to MOSFLM.
    Prior-cell algorithm will be available in the next version of MOSFLM.
  • Hitrate calculator based on Poisson distribution in doc/hitrate.html

scaling

All features have been merged to the official distirubtion. Thus this branch was deleted.

  • Calculate CC between reference and each frame
  • Frame rejection based on CC
  • Output CC and scale factor from process_hkl to be plotted in R

crystfel's People

Contributors

taw10 avatar biochem-fan avatar andrewvmartin avatar parkerdewaal avatar

Stargazers

TM avatar

Watchers

James Cloos avatar  avatar TJ Lane avatar Robert Henning avatar

Forkers

keitaroyam

crystfel's Issues

indexamajig exits with status 0 when it fails to read files

I was trying to run a build of CrystFEL which was compiled against HDF5 1.8, and it was failing to open the virtual datasets. However, the exit code of indexamajig was 0, which conventionally indicates that a program has run successfully.

I'm guessing that this is because the worker processes try and fail to open the files, but the main controller process restarts fails workers and continues trying to process even though they never work. I can see this makes sense in general - we've noticed that processing often times out on a small number of frames, and it's clearly useful to continue working after those. But it seems unfortunate that it can completely fail to process and still exit as if it had succeeded.

Possible ideas:

  1. The controller could try to open files & datasets before calling the workers, so it fails fast if that doesn't work. But that might not be practical if you have thousands of files with one image each.
  2. Exit with an error code if 0 images are processed
  3. Have a configurable threshold to return an error if e.g. < 95% of specified images are successfully processed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.