CrystFEL - Data processing for serial crystallography ----------------------------------------------------- Release notes for version 0.9.0 Copyright (c) 2012-2020 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 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 Steve Aplin Helen Ginn Thomas Grant Mamoru Suzuki Nicolas Riebesel Yaroslav Gevorkov Omri Mor 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: - Features for wide bandwidth and electron diffraction processing - Introduction of cell_tool - New unit cell comparison algorithm (eliminating --no-cell-combinations) - CBF files now handled natively (CBFlib not required) - Resolution limits no longer needed for ambigator See below for information about each of these features. In addition, there were many bug fixes and other improvements. See the "ChangeLog" or the changes page on the CrystFEL website for details. Features for wide bandwidth and electron diffraction processing --------------------------------------------------------------- A new indexing method has been added: PinkIndexer. This is a new indexing algorithm which can index wide bandwidth data as well as flat Ewald sphere (i.e. electron diffraction) data. For more information, see: Gevorkov et al., Acta Cryst. A72 (2020) doi:10.1107/S2053273319015559 To accompany the new indexing algorithm, the reflection position calculation ("prediction") has also been improved. The results should be better for all types of data, particularly at low resolution. Further improvements for wide bandwidth and electron data are planned for future releases of CrystFEL. Introduction of cell_tool ------------------------- A new CrystFEL core program has been added: cell_tool. This program can perform a variety of operations on unit cell files, similar to how get_hkl can do things with reflection data files. The tasks include: finding indexing ambiguities, turning a centered cell into a primitive one, calculating power ring positions, comparing unit cells, transforming unit cells, and working out all the possible cell choices for centered monoclinic cells. New unit cell comparison algorithm ---------------------------------- The way that indexamajig compares indexing results to your target cell has been improved. Previously, the option --no-cell-combinations was needed for certain unit cells. This is no longer the case, and the new comparison should be more reliable in all cases. CBF files now handled natively ------------------------------ The CBF library (CBFlib) is no longer used in CrystFEL. Most common types of CBF file can now be read directly by CrystFEL. If you find a CBF file that cannot be read, please get in touch so we can fix it. Resolution limits no longer needed for ambigator ------------------------------------------------ Previously, a careful choice of resolution bounds (--highres and --lowres) was needed for good results with ambigator. Now, the reflections will be compared and correlated in three resolution bins (>10, 10-2.5 and <2.5 Angstroms). For most datasets, this allows ambiguities to be resolved easily without any manual adjustment. You can still override this and use your own resolution limits, if you need to. API changes ----------- The following changes have been made to the libcrystfel API. New functions: - cell_print_full - compare_cell_parameters - compare_cell_parameters_and_orientation - compare_permuted_cell_parameters_and_orientation - compare_derivative_cell_parameters - compare_reindexed_cell_parameters - cell_get_G6 - cell_transform_gsl_direct - cell_transform_rational - cell_transform_rational_inverse - cell_transform_intmat - cell_transform_intmat_inverse - crystal_get_image_const - get_detector_geometry_from_string - write_detector_geometry_3 - multi_event_geometry - parse_polarisation - indexing_methods - intmat_size - intmat_zero - intmat_create_3x3 - transform_indices - intmat_times_intmat - indexing_peak_check - pinkIndexer_prepare/cleanup/probe/run_pinkIndexer - rtnl_zero - rtnl - rtnl_as_double - rtnl_mul/div/add/sub/cmp/abs - rtnl_list - rtnl_mtx_new/copy/get/set/free/print/dev - rtnl_mtx_from_intmat - rtnl_mtx_is_identity/perm - intmat_from_rtnl_mtx - rtnl_mtx_identity - rtnlmtx_times_rtnlmtx - rtnlmtx_times_intmat - intmat_times_rtnlmtx - transform_fractional_coords_rtnl - transform_fractional_coords_rtnl_inverse - spectrum_new/free/load - spectrum_set_gaussians - spectrum_get_gaussian - spectrum_get_num_gaussians - spectrum_set_pdf - spectrum_get_range - spectrum_get_density_at_k - spectrum_generate_tophat/gaussian/sase/twocolour - free_stuff_from_stream - stream_geometry_file - parse_symmetry_operation - parse_cell_transformation - mean_variance Removed functions: - cell_transform - cell_transform_inverse - tfn_identity/from_intmat/combine/print/inverse/vector/free - transform_cell_gsl [use cell_transform_ functions instead] - match_cell - match_cell_ab - compare_cells [use compare_*_cell_parmeters functions instead] - intmat_intvec_mult - intmat_intmat_mult [use intmat_times_intmat instead] Changed function prototypes: - uncenter_cell - cell_get_parameters/cartesian/reciprocal [const added] - panel_number [const added] - polarisation_correction [uses new 'polarisation' structure] - setup_indexing - intmat_copy [const added] - taketwo_prepare/index Changed structure/enum definitions: - UnitCellTransformation [removed, use IntegerMatrix/RationalMatrix instead] - struct rigid_group [removed unused panel position deltas] - PartialityModel [added PMODEL_OFFSET and PMODEL_GGPM] - struct spectrum/struct sample [removed, use Spectrum instead] - struct image [removed num_peaks and num_saturated_peaks] - IndexingMethod [added INDEXING_PINKINDEXER] - IndexingFlags [removed _CHECK_CELL_COMBINATIONS/AXES, added _CHECK_CELL] - IntegrationMethod [removed INTEGRATION_RESCUT]