CrystFEL - Crystallography with a FEL ------------------------------------- Release notes for version 0.6.2 Copyright © 2012-2016 Deutsches Elektronen-Synchrotron DESY, a research centre of the Helmholtz Association. Authors: Thomas White Richard Kirian Kenneth Beyerlein Andrew Aquila Andrew Martin Lorenzo Galli Chun Hong Yoon Kenneth Beyerlein Karol Nass Nadia Zatsepin Anton Barty Cornelius Gati Fedor Chervinskii Alexandra Tolstikova Wolfgang Brehm Valerio Mariani Parker de Waal Takanori Nakane Keitaro Yamashita Oleksandr Yefanov CrystFEL is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. CrystFEL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with CrystFEL. If not, see . Overview -------- The most important new features in this version of CrystFEL are: - Stability improvements to the scaling algorithm in partialator. - Addition of "custom dataset splitting" in partialator. - "retry" indexing. - Per-pixel saturation values These changes have sections below. In addition, there were many bug fixes and smaller improvements. Stability improvements in partialator ------------------------------------- The scaling algorithm in partialator has been altered such that only the strong reflections contribute to the scaling factors at all. This reduces the "drifting" of scale factors which happened before, and helps avoid the situation where a very large number of crystals get rejected with large B factors. Of course, all reflections contribute to the final merged data set as before. In CrystFEL 0.6.1, we needed to reduce the amount of noise going into the scaling algorithm to make it work. This was done by including reflections only up to the apparent (conservative) resolution limit of each crystal made by indexamajig, and could be overridden by using the "--push-res" option of partialator. The default --push-res value was zero, which meant to ignore any reflections higher than the limit. With the stabilised algorithm, this is no longer necessary, and hence the default --push-res value has been changed to infinity, i.e. no cutoff at all. You can restore the old behaviour with --push-res=0. Custom dataset splitting in partialator --------------------------------------- When performing a time-resolved or isomorphous replacement experiment (plus some other types of experiment), it is preferable to ensure that the data for all time points has been processed identically. Rather than processing each time point independently with separate runs of partialator, it is better to process them all together and do the splitting into time points just before the final output. Consider, for example, the case of simple scaling (without a B factor): when merging independently, the resulting datasets would probably end up with different overall scaling factors. When comparing the results, you would need to take this difference into account. In practice, most programs can do that job easily, but what about if a B factor is included? And what if partialities are included - how unique is the solution? Partialator's new "custom dataset splitting" option allows you to provide a text file containing a list of filenames, event numbers and dataset names, one event (detector frame) per line. All crystals will be refined together, but they will be merged according to the dataset names you give. The parameters (scaling factors, partialities etc) determined during the joint refinement will be applied. For each dataset, a separate pair of split half-datasets will also be written, allowing you to calculate figures of merit such as Rsplit and CC1/2 for each one. "retry" indexing ---------------- If an indexing method fails to index a pattern (or if the solution doesn't get through the prediction refinement stage), this version of CrystFEL will delete the weakest few peaks and try again. This can increase the indexing yield a lot (sometimes a factor of two!), but decreases the speed. If you'd rather keep things fast, add "-noretry" to each of your indexing methods. Per-pixel saturation values --------------------------- When using dual-gain mode on the CSPAD (or any other detector which offers a similar feature), our current advice is to correct the pixel values in one of the regions by multiplying them by the relative gain factor. This will give image data which looks good, but the saturation values will be different in the two regions. To handle this, CrystFEL 0.6.2 allows you to prepare a map, in HDF5 format, giving the saturation value for each pixel individually. The script "gaincal-to-saturation-map" can be used to create a suitable file from the gain map (e.g. as generated and used by Cheetah). Specify the filename and HDF5 path of the saturation map using saturation_map and saturation_map_file in the geometry file - these work exactly like the bad pixel map. Reflections containing any pixel above this value will be rejected, in addition to any reflections which get rejected by the usual saturation criteria (so remove any max_adu directives if you want the saturation map to be the only decider!). API changes ----------- The following changes have been made to the libcrystfel API: New functions: - write_cell() - find_orig_panel_number() - felix_{prepare,index,cleanup}() - sort_peaks() - remove_flagged_crystals() - open_stream_for_write_3() Removed functions: (none) Changed function prototypes: - prepare_indexing() "data", "flags" and "twotheta" were removed from "struct image", and "sat" was added.