From 1ccb8c35a27d1e714b8c3caacc1a68307ff12ada Mon Sep 17 00:00:00 2001 From: Thomas White Date: Wed, 19 Dec 2018 10:16:58 +0100 Subject: This is CrystFEL 0.8.0 --- CMakeLists.txt | 4 +- ChangeLog | 4 +- README | 18 +++ announcement-0.7.0 | 37 ----- announcement-0.8.0 | 32 +++++ doc/reference/libcrystfel/CrystFEL-docs.sgml | 2 +- relnotes-0.7.0 | 176 ------------------------ relnotes-0.8.0 | 194 +++++++++++++++++++++++++++ 8 files changed, 249 insertions(+), 218 deletions(-) delete mode 100644 announcement-0.7.0 create mode 100644 announcement-0.8.0 delete mode 100644 relnotes-0.7.0 create mode 100644 relnotes-0.8.0 diff --git a/CMakeLists.txt b/CMakeLists.txt index e3238209..c6d5084b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.6) -set(CRYSTFEL_SHORT_VERSION 0.7.0) +set(CRYSTFEL_SHORT_VERSION 0.8.0) set(CRYSTFEL_VERSION ${CRYSTFEL_SHORT_VERSION}) -set(CRYSTFEL_API_VERSION 10) +set(CRYSTFEL_API_VERSION 11) project(crystfel VERSION ${CRYSTFEL_VERSION} LANGUAGES C) include(GNUInstallDirs) diff --git a/ChangeLog b/ChangeLog index 79207136..175e5253 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,5 @@ -Changes in this development version up to commit f23f5815 ---------------------------------------------------------- +CrystFEL version 0.8.0, 19th December 2018 +------------------------------------------ - Add support for peakfinder9 - Add support for XGANDALF indexer diff --git a/README b/README index 42835723..aede37fc 100644 --- a/README +++ b/README @@ -134,12 +134,30 @@ installed from your distribution's package manager. Be sure to install the development files for each package, which will have a name like "gtk+-2.0-dev" or "gtk+-2.0-devel", depending on which distribution you use. +If external libraries have been installed in non-standard locations, you can set +the path like this, for example for Xgandalf: +cmake -DXGANDALF_INCLUDES=/path/to/xgandalf/include \ + -DXGANDALF_LIBRARIES=/path/to/xgandalf/lib/libxgandalf.so + +The path to HDF5 can be set similarly: +cmake -DHDF5_ROOT=/path/to/hdf5 (... /include, /lib etc) + +Or for CBF, use one of: +-DCBF_CBF_INCLUDES=/path/to/cbflib/include (... /cbf/cbf.h) +-DCBFLIB_CBF_INCLUDES=/path/to/cbflib/include (... /cbflib/cbf.h) +and: +-DCBF_LIBRARIES=/path/to/libcbf.so + +To install CrystFEL in a custom location, use: +-DCMAKE_INSTALL_PREFIX=/path/for/crystfel/installation + If you get an error mentioning fftw3 and telling you to recompile with -fPIC, then your version of FFTW3 is not compiled in a suitable way. You'll need to install it again (from source) adding "--enable-shared" to its ./configure command line. + Funding acknowledgements ------------------------ diff --git a/announcement-0.7.0 b/announcement-0.7.0 deleted file mode 100644 index 619dc570..00000000 --- a/announcement-0.7.0 +++ /dev/null @@ -1,37 +0,0 @@ -Dear CrystFEL users and interested crystallographers, - -CrystFEL version 0.7.0 has been released. - -This version adds several exciting new features while greatly simplifying the -user experience. The most interesting changes are: - -- New options system for indexamajig, removing most of the profusion of indexing - method flags "comb", "bad", "retry" and so on. Indexamajig can also now - automatically determine which indexing methods can be used if you don't tell - it which ones to use. In addition, the options for the Felix indexing method - have been simplified. - -- The spectrum-based partiality model and numerical post-refinement algorithm - from Ginn et al. [Acta D71 2015 p1400] has been incorporated. - -- The symmetry of the merged reflection list is now automatically tracked through - the subsequent data processing stages, so you no longer need to give the "-y" - option to compare_hkl, check_hkl and other programs. - -See the release notes for more discussion of these improvements, and the -ChangeLog for full details of the other improvements. - -Thanks for all of your past and future feedback and contributions, and -your continued use of CrystFEL. As ever, please contact me directly if -you would prefer to be unsubscribed from this mailing list. - -CrystFEL website: -https://www.desy.de/~twhite/crystfel - -Release notes for version 0.7.0: -https://www.desy.de/~twhite/crystfel/relnotes-0.7.0 - -CrystFEL tutorial: -https://www.desy.de/~twhite/crystfel/tutorial - -Tom diff --git a/announcement-0.8.0 b/announcement-0.8.0 new file mode 100644 index 00000000..2666da94 --- /dev/null +++ b/announcement-0.8.0 @@ -0,0 +1,32 @@ +Dear CrystFEL users and interested crystallographers, + +An early Christmas present for you all, as CrystFEL version 0.8.0 has been +released. + +This new version adds a powerful new indexing algorithm, more stable B-factors +when merging and rejection of rogue patterns via "delta CChalf". Besides those, +there are several other exciting features such as an option to wait for files +to appear on disk (useful for certain automated processing environments). +In addition, the pixelmap creation utility (make_pixelmap) has become a core +CrystFEL program with this release. + +Note that the build system has changed from GNU autotools ("./configure") to +CMake. The README file has instructions for how to compile and install. + +See the release notes for more discussion of these improvements, and the +ChangeLog for full details of the other improvements. + +Thanks for all of your past and future feedback and contributions, and +your continued use of CrystFEL. As ever, please contact me directly if +you would prefer to be unsubscribed from this mailing list. + +CrystFEL website: +https://www.desy.de/~twhite/crystfel + +Release notes for version 0.8.0: +https://www.desy.de/~twhite/crystfel/relnotes-0.8.0 + +CrystFEL tutorial: +https://www.desy.de/~twhite/crystfel/tutorial + +Tom diff --git a/doc/reference/libcrystfel/CrystFEL-docs.sgml b/doc/reference/libcrystfel/CrystFEL-docs.sgml index 15d9f43f..150fadf9 100644 --- a/doc/reference/libcrystfel/CrystFEL-docs.sgml +++ b/doc/reference/libcrystfel/CrystFEL-docs.sgml @@ -8,7 +8,7 @@ CrystFEL Reference Manual - For libcrystfel from CrystFEL 0.7.0. + For libcrystfel from CrystFEL 0.8.0. This is the internal documentation for CrystFEL. Unless you are looking at diff --git a/relnotes-0.7.0 b/relnotes-0.7.0 deleted file mode 100644 index 186694a0..00000000 --- a/relnotes-0.7.0 +++ /dev/null @@ -1,176 +0,0 @@ -CrystFEL - Data processing for serial crystallography ------------------------------------------------------ - -Release notes for version 0.7.0 - -Copyright © 2012-2018 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 - -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: - -- New options system for indexamajig, removing most of the profusion of indexing - method flags "comb", "bad", "retry" and so on. Indexamajig can also now - automatically determine which indexing methods can be used if you don't tell - it which ones to use. In addition, the options for the Felix indexing method - have now been greatly simplified. - -- The spectrum-based partiality model and numerical post-refinement algorithm - from Ginn et al [Acta D71 2015 p1400] was incorporated. - -- The symmetry of the merged reflection list is now tracked through automatically, - so you no longer need to give the "-y" option to compare_hkl and check_hkl. - -These changes have sections below. In addition, there were many bug fixes and -other improvements. See the "ChangeLog" or the changes page on the CrystFEL -website for details. - - -New indexamajig options system ------------------------------- - -The new version of indexamajig will automatically determine which indexing -methods to use based on the prior information (e.g. if a target unit cell was -provided) and which indexing programs are available on the computer. To enable -the automatic determination, simply omit any "--indexing=" option to indexamajig. -Of course, you can override the automatic choice by specifying --indexing, just -as it worked before. - -To options for finer control of the indexing process, which in previous versions -were enabled or disabled by adding flags to the indexing methods -(e.g. "mosflm-noretry"), now apply to all indexing methods at once and are -selected using new options, listed below. - -The indexing method should contain only the method itself and prior information -modifiers ('cell' or 'latt'). This simplifies things greatly by removing the -very long indexing method descriptions ("mosflm-raw-latt-noretry-refine-nomulti" -and so on). - -- To disable prediction refinement ('norefine'), use --no-refine. -- To check cell axes only ('axes'), use --no-cell-combinations. -- To disable all unit cell checks ('raw'), use --no-check-cell. -- To disable peak alignment check ('bad'), use --no-check-peaks. -- To disable indexing retry ('noretry'), use --no-retry. -- To enable multi-lattice indexing by 'delete and retry', use --multi. - - -Spectrum-based partiality model and post-refinement ---------------------------------------------------- - -This version includes an implementation of the spectrum-based partiality model -described by Ginn et al., Acta D71 2015 p1400 and associated numerical post- -refinement algorithm. To use it, use "partialator --model=xsphere". The old -models (scsphere and scgaussian) have been removed. You will probably need to -experiment with changing the bandwidth and reflection radius, using ---force-bandwidth and --force-radius. Add --no-pr to disable post-refinement, -while still using the partiality estimates. To use post-refinement, omit --no-pr, -but you should also run indexamajig with "--overpredict". You may also need to -disable B factor scaling in partialator with "--no-Bscale". - -If you use post-refinement, the new scripts "plot-pr" and "plot-contourmap" can -be used to visualise the distributions of partialities and the contour maps of -residual against parameters such as crystal rotation angle. The data for these -graphs is in the "pr-logs" folder which will be created by partialator. - -Partiality modelling and post-refinement should still be considered experimental -when applied to real data. The success of post-refinement depends on many -factors, and only has a chance of working if there are no other problems with -the dataset (e.g. inaccurate detector geometry). Further improvements should -appear in future versions. - - -Automatic tracking of reflection list symmetry ----------------------------------------------- - -The point group symmetry used for merging a reflection list has been stored in -the reflection file (.hkl) for a long time. However, version 0.7.0 of CrystFEL -uses the stored symmetry when performing tasks such as calculating figures of -merit using check_hkl. You can simply omit the "-y" options which were needed -previously. Of course, you can override the symmetry by specifying -y as before. - - -API changes ------------ - -The following changes have been made to the libcrystfel API. - -New functions: - - asdf_probe() and _probe for all other indexing methods. - - compare_cells() - - crystal_get_cell_const() - - crystal_get_profile_radius() - - predict_to_res() - - calculate_partialities() - - update_predictions() - - is_cbf_file() - - get_indm_from_string_2() - - detect_indexing_methods() - - integrate_all_5() - - read_reflections_2() - - {get,set}_{khalf,kpred,exerr}() - - first_refl_const(), next_refl_const() - - open_stream_for_write_4() - - stream_has_old_indexers() - - stream_audit_info() - -Removed functions: - - find_intersections() - - find_intersections_to_res() - - update_partilities() - - write_reflections_to_file() - - read_reflections_from_file() - - {get,sh}_partial() - -Changed function prototypes: - - asdf_prepare() and _prepare for all other indexing methods. - - cell_new_from_cell() (input UnitCell is now const) - - crystal_copy() (input Crystal is now const) - - x_gradient(), y_gradient() - - remove_flagged_crystals() (now returns number of crystals removed) - - setup_indexing() - -Changed structure/enum definitions: - - PartialityModel: removed PMODEL_SCSPHERE and PMODEL_SCGAUSSIAN, - added PMODEL_XSPHERE - - gparam: added GPARAM_ANG1, GPARAM_ANG2, GPARAM_WAVELENGTH, GPARAM_EOL - - Added IndexingFlags diff --git a/relnotes-0.8.0 b/relnotes-0.8.0 new file mode 100644 index 00000000..ed05d678 --- /dev/null +++ b/relnotes-0.8.0 @@ -0,0 +1,194 @@ +CrystFEL - Data processing for serial crystallography +----------------------------------------------------- + +Release notes for version 0.8.0 + +Copyright © 2012-2018 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: + +- Switch of build system to CMake from autotools + +- Support for peakfinder9 and XGANDALF + +- More stable B factors during merging + +- Rejection of patterns during merging according to deltaCCHalf + +- Introduction of make_pixelmap as a core CrystFEL program + +- indexamajig --wait-for-file + +- Support for gzipped CBF files + +These changes have sections below. In addition, there were many bug fixes and +other improvements. See the "ChangeLog" or the changes page on the CrystFEL +website for details. + + +Switch of build system to CMake from autotools +---------------------------------------------- + +The build system has been changed from GNU autotools (./configure etc) to CMake. +The README file contains updated instructions for how to compile and install. +Briefly: + $ mkdir build + $ cd build + $ cmake .. + $ make + $ sudo make install +To set the installation path, add the option -DCMAKE_INSTALL_PREFIX to the cmake +command. To manually set the paths to external libraries, there are options +such as -DOpenCL_INCLUDE_DIR and -DCBF_LIBRARIES. + +Note that there will be no further development snapshots in .tar.gz format made +available on the CrystFEL website. These are now unnecessary, since a version +from the Git repository is now structurally identical to a packaged release +version. If you want to try out the latest features (and possibly the latest +bugs!), simply follow the instructions on the website "download" page to check +out a Git version. + + +Support for peakfinder9 and XGANDALF +------------------------------------ + +The new peak finding algorithm, peakfinder9, is based on local background +estimates, similar to peakfinder8 which uses radial background estimates. +It's implemented in the Fast Diffraction Image Processing library by Yaroslav +Gevorkov. You can download it from here: +https://stash.desy.de/users/gevorkov/repos/fastdiffractionimageprocessing + +The new indexing algorithm, "eXtended GrAdient Descent Algorithm for Lattice +Finding", XGANDALF for short, is also implemented as a separate library written +by Yaroslav Gevorkov. Download it here: +https://stash.desy.de/users/gevorkov/repos/xgandalf/ + +Once they are installed, the CrystFEL build system should detect these librares +and enable you to use respectively "indexamajig --peaks=peakfinder9" and +"indexamajig --indexing=xgandalf". See the indexamajig manual page for details +of the advanced options. + + +More stable B factors during merging +------------------------------------ + +Previously, it was very easy for the relative Debye-Waller factors for all +crystals to drift downwards during merging, resulting in reduced intensity at +high resolution. In this new version, the merging algorithm has been changed so +that, while the scaling factors are being determined, logarithms of the +intensities are merged rather than the intensities themselves. This makes the +calculation more stable and avoids the drifting B-factors. Although the actual +information content of the merged dataset is not affected very much, this +usually produces a higher apparent resolution in the electron density maps. +(Credit: Ken Beyerlein) + + +Rejection of patterns during merging according to deltaCChalf +------------------------------------------------------------- + +The rogue dataset rejection algorithm from Assmann, Brehm and Diederichs, +J. Appl. Cryst. 49 (2016) p1021, has been implemented in partialator. It is +enabled by default. To turn it off, use the option "--no-deltacchalf". + + +Introduction of make_pixelmap as a core CrystFEL program +-------------------------------------------------------- + +make_pixelmap is now a core CrystFEL program, so you no longer need to install +a separate program if you need to make pixel maps for Cheetah, OnDA and others. +The program is largely unchanged from the previous standalone version, except +that the functionality of make_badmap is now accessed using "make_pixelmap +--badmap". You can use --good-pixel and --bad-pixel to set the values for good +and bad pixels respectively. + + +indexamajig --wait-for-file +--------------------------- + +This option behaves similarly to XDS's "SECONDS" parameter. When set to a value +other than zero, this causes indexamajig to wait this number of seconds for each +image file to appear. This can be useful when using CrystFEL as part of an +automated processing pipeline. + + +Support for gzipped CBF files +----------------------------- + +Finally, CBF files compressed using gzip (.cbf.gz) can now be read directly by +CrystFEL, without any need to temporarily uncompress them. + + +API changes +----------- + +The following changes have been made to the libcrystfel API. + +New functions: + - index_pattern_3() + - search_peaks_peakfinder9() + - estimate_peak_resolution() + - free_contribs() + - {set,get}_contributions() + - ph_eV_to_k (macro) + - strip_extension() + - run_xgandalf, xgandalf_{probe,prepare,cleanup} + +Removed functions: + (none) + +Changed function prototypes: + - set_dim_structure_entry() + - setup_indexing() + - refine_radius() + +Changed structure/enum definitions: + - enum SpectrumType: new value SPECTRUM_FROMFILE + - enum imagefile_file: new value IMAGEFILE_CBFGZ + - struct image: new members "hit", "n_indexing_tries", "spectrum0" and + peak_resolution + - enum IndexingMethod: new value INDEXING_XGANDALF -- cgit v1.2.3