CrystFEL - Data processing for serial crystallography ----------------------------------------------------- Release notes for version 0.10.0 Copyright (c) 2012-2021 Deutsches Elektronen-Synchrotron DESY, a research centre of the Helmholtz Association. See AUTHORS as well as individual source code files for full details of contributors. 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 changes in this version of CrystFEL are: - New graphical user interface - Support for electron diffraction - Temporary removal of geoptimiser and pink beam support - Improved MTZ and XDS output - Big speed improvements - Improved options for bad pixel masking See below for information about each of these changes. In addition, there were many bug fixes and other improvements. See the "ChangeLog" or the changes page on the CrystFEL website for details. New graphical user interface ---------------------------- This release adds a new graphical user interface to CrystFEL. The old image viewer "hdfsee" has been removed entirely. To start the GUI, simply run "crystfel" at the command line. The GUI guides you through the stages of processing a dataset, from importing image data all the way to exporting merged data. To help you get started, there is a video introduction: https://www.desy.de/~twhite/crystfel/presentations.html The "old" command-line way of processing data is still available. The only difference is that you should now use the GUI to view the results graphically, instead of hdfsee and the old "check-near-bragg" and "check-peak-detection" programs. Simply run the GUI, giving the stream filename as an argument, for example: "crystfel results-output.stream". Support for electron diffraction -------------------------------- This release adds support for serial crystallography using electrons. For more information, see doc/articles/electrons.rst in the CrystFEL distribution: https://gitlab.desy.de/thomas.white/crystfel/-/blob/master/doc/articles/electrons.rst Temporary removal of geoptimiser and pink beam support ------------------------------------------------------ A lot of internal re-organisation and cleaning-up has taken place in this release cycle. Due to a lack of development resources, two things fell by the wayside in order to make the release in a reasonable timescale: this release does not include "geoptimiser", nor support for wide bandwidth ("pink-beam") diffraction. But don't worry! The next release will include an improved replacement for geoptimiser. For the time being, note that the data formats used by CrystFEL have not changed much, so an older CrystFEL version (e.g. 0.9.1) can still be used for fine-grained geometry refinement in almost all cases. If you previously installed CrystFEL 0.9.1, you should find that geoptimiser from the old installation is still present and working. Therefore, you might not even notice the difference! Features for processing data acquired with wide bandwidth radiation will be developed further if there is demand. Improved MTZ and XDS output --------------------------- This CrystFEL version can export directly to MTZ (CCP4) or XDS-ASCII format. Export to MTZ and XDS format can also be done via the "Export" function of the new CrystFEL GUI. Alternatively, use get_hkl to convert the file, for example: $ get_hkl -i my-data.hkl -o my-data.mtz --output-format=mtz -p my-data.cell This replaces the old "create-mtz" and "create-xscale" scripts, and the resulting files are more consistent with the expectations of other software. Big speed improvements ---------------------- Several significant speed improvements have been made. In particular, these affect 'asdf' and 'TakeTwo' indexing, unit cell transformations and loading image data. You should notice a greatly reduced number of "timeouts" during indexing. Improved options for bad pixel masking -------------------------------------- More ways to mask bad pixels have been added. You can now use one or more of the following directives in the geometry file to flag pixels with values lower than, equal or more than a given value: "flag_lessthan", "flag_morethan", "flag_equal". In addition, this version of CrystFEL is better able to handle the situation where a single bad pixel mask applies to multiple frames in a "multi-event" data file. For example: with data in HDF5 format, if the location of the bad pixel mask contains fewer "placeholder" characters ("%") than the image data, only the required number of placeholders will be filled in when calculating the location of the mask. This means that you can do something like this: data = /data/image/%/frames/%/pixel_values mask = /data/image/%/bad_pixel_mask In this case, one "bad_pixel_mask" would apply to everything under each set of "frames". API changes ----------- The following changes have been made to the libcrystfel API. Additions: - DataTemplate API (data_template_*, see datatemplate.h) - Figure of merit API (fom_*, see fom.h) - Stream API (stream_*, see stream.h) - Image API (image_*, see image.h) - 'struct detgeom' and associated API (detgeom_*) - str_peaksearch and parse_peaksearch - intcontext_new, integrate_rings_once, intcontext_free - write_to_mtz, write_to_xds, libcrystfel_can_write_mtz - parse_indexing_methods - base_indexer_str - default_method_options - cell_print_oneline - has_unique_axis - lowest_reflection - colscale_lookup (replaces 'render_scale') - crystal_copy_deep - Miscellaneous utility functions: compare_double, safe_strdup, load_entire_file, file_exists, filename_extension, set_log_message_func, el_v_to_lambda, CLEAR_BIT, convert_int, convert_float, ELECTRON_MASS Removals: - 'struct detector' and associated API - 'struct event' and associated API - 'struct hdfile' and associated API (hdf5-file.h) - 'struct beam_params' - All direct interfaces to indexing engines, e.g. xds_prepare - render_scale (renamed to colscale_lookup) - stderr_lock - {get,set}_panel (replaced by {get,set}_panel_number) - INDEXING_DEBUG (use INDEXING_FILE instead) Changes: - cell_get_* and cell_has_parameters (changes to 'const' qualifiers) - struct image: removed 'parent', 'p', 'rx,ry,rz', added 'pn' - estimate_peak_resolution (added 'det' arg) - setup_indexing (added lots of new args)