aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt4
-rw-r--r--ChangeLog4
-rw-r--r--README18
-rw-r--r--announcement-0.7.037
-rw-r--r--announcement-0.8.032
-rw-r--r--doc/reference/libcrystfel/CrystFEL-docs.sgml2
-rw-r--r--relnotes-0.7.0176
-rw-r--r--relnotes-0.8.0194
8 files changed, 249 insertions, 218 deletions
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 @@
<bookinfo>
<title>CrystFEL Reference Manual</title>
<releaseinfo>
- For libcrystfel from CrystFEL 0.7.0.
+ For libcrystfel from CrystFEL 0.8.0.
</releaseinfo>
<abstract>
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 <taw@physics.org>
- Richard Kirian <rkirian@asu.edu>
- Kenneth Beyerlein <kenneth.beyerlein@desy.de>
- Andrew Aquila <andrew.aquila@cfel.de>
- Andrew Martin <andrew.martin@desy.de>
- Lorenzo Galli <lorenzo.galli@desy.de>
- Chun Hong Yoon <chun.hong.yoon@desy.de>
- Karol Nass <karol.nass@desy.de>
- Nadia Zatsepin <nadia.zatsepin@asu.edu>
- Anton Barty <anton.barty@desy.de>
- Cornelius Gati <cornelius.gati@desy.de>
- Fedor Chervinskii <fedor.chervinskii@gmail.com>
- Alexandra Tolstikova <alexandra.tolstikova@desy.de>
- Wolfgang Brehm <wolfgang.brehm@gmail.com>
- Valerio Mariani <valerio.mariani@desy.de>
- Parker de Waal <Parker.deWaal@vai.org>
- Takanori Nakane <nakane.t@gmail.com>
- Keitaro Yamashita <k.yamashita@spring8.or.jp>
- Oleksandr Yefanov <oleksandr.yefanov@cfel.de>
- Steve Aplin <steve.aplin@desy.de>
- Helen Ginn <helen@strubi.ox.ac.uk>
- Thomas Grant <tgrant@hwi.buffalo.edu>
- Mamoru Suzuki <mamoru.suzuki@protein.osaka-u.ac.jp>
-
-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 <http://www.gnu.org/licenses/>.
-
-
-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 <taw@physics.org>
+ Richard Kirian <rkirian@asu.edu>
+ Kenneth Beyerlein <kenneth.beyerlein@desy.de>
+ Andrew Aquila <andrew.aquila@cfel.de>
+ Andrew Martin <andrew.martin@desy.de>
+ Lorenzo Galli <lorenzo.galli@desy.de>
+ Chun Hong Yoon <chun.hong.yoon@desy.de>
+ Karol Nass <karol.nass@desy.de>
+ Nadia Zatsepin <nadia.zatsepin@asu.edu>
+ Anton Barty <anton.barty@desy.de>
+ Cornelius Gati <cornelius.gati@desy.de>
+ Fedor Chervinskii <fedor.chervinskii@gmail.com>
+ Alexandra Tolstikova <alexandra.tolstikova@desy.de>
+ Wolfgang Brehm <wolfgang.brehm@gmail.com>
+ Valerio Mariani <valerio.mariani@desy.de>
+ Parker de Waal <Parker.deWaal@vai.org>
+ Takanori Nakane <nakane.t@gmail.com>
+ Keitaro Yamashita <k.yamashita@spring8.or.jp>
+ Oleksandr Yefanov <oleksandr.yefanov@cfel.de>
+ Steve Aplin <steve.aplin@desy.de>
+ Helen Ginn <helen@strubi.ox.ac.uk>
+ Thomas Grant <tgrant@hwi.buffalo.edu>
+ Mamoru Suzuki <mamoru.suzuki@protein.osaka-u.ac.jp>
+ Nicolas Riebesel <nicolas.riebesel@tuhh.de>
+ Yaroslav Gevorkov <yaroslav.gevorkov@desy.de>
+ Omri Mor <omor1@asu.edu>
+
+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 <http://www.gnu.org/licenses/>.
+
+
+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