Cppxfel Indexing with DIALS
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.