Cppxfel Indexing with DIALS

From cctbx_xfel
Revision as of 00:58, 4 May 2016 by Helenginn (talk | contribs) (Starting "indexing with DIALS" page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This covers the generation of indexing solutions using DIALS within the cppxfel distribution. This assumes a successful installation of cppxfel including the DIALS dependency.

Downloading test data

Data can be downloaded as a [zip file] from the DIALS website and should be extracted to a new folder.

tar zxvf ginn_jac_cpv17.tgz

Running DIALS on the set of 1000 images

The scripts included in cppxfel to run DIALS uses four cores by default. If you have more cores available on the current machine, this can be edited by setting the environment variable NSLOTS:

export NSLOTS=16

DIALS uses the options found in the two files find_spots.options and index.options for spotfinding/indexing the data. These should be generated for find_spots.options with these parameters:

cat > find_spots.options << EOF
gain=14.0 min_spot_size=1 global_threshold=100
EOF

Note, in the tcsh shell, this is not a valid way of creating a text file. In this case, create an appropriate file in your favourite text editor with the text gain=14.0 min_spot_size=1 global_threshold=100.

This should be similarly created for index.options. This is an appropriate options file for a DIALS distribution built after 20th Feb:

cat > index.options << EOF
unit_cell=106.1,106.1,106.1 space_group=I23 minimum_number_of_reflections=20 detector.fix=all beam.fix=all recycle_unindexed_reflections=1 refinement.reflections.outlier.algorithm=null refinement_protocol.n_macro_cycles=1 refinement.reflections.weighting_strategy.override=stills
EOF

Note, in the tcsh shell, this is not a valid way of creating a text file. In this case, create an appropriate file in your favourite text editor with the text unit_cell=106.1,106.1,106.1 space_group=I23 minimum_number_of_reflections=20 detector.fix=all beam.fix=all recycle_unindexed_reflections=1 refinement.reflections.outlier.algorithm=null refinement_protocol.n_macro_cycles=1 refinement.reflections.weighting_strategy.override=stills

The DIALS scripts can now be run as follows:

cppxfel.run_dials shot*.pickle

Assessing the output of DIALS indexing

The output from each DIALS find_spots and indexing event are stored in the *find_spots.log and *index.log files for each image name. The strong spots found in each individual image are stored in _*_strong.pickle for each respective image name. Any successfully indexed images follow the format _*_experiments.json. The number of indexed images can be roughly counted as so:

find _*_experiments.json | wc -l

Converting the results of DIALS indexing for cppxfel

The images and matrices indexed by DIALS should be converted to a new format for reading into cppxfel. This is achieved by running the command:

cppxfel.input_gen

This runs on the number of cores specified by the NSLOTS environment variable to extract the appropriate image data, and also generates several input files: panels.txt, integrate.txt, refine.txt, merge.txt, which will be explained in the following tutorials. The indexed images are extracted to .img files. This also produces a matrices.dat file which contains all the indexing solutions generated by DIALS.

Next step: Cppxfel Initial Orientation Matrix Refinement