aboutsummaryrefslogtreecommitdiff
path: root/relnotes-0.9.0
blob: 43c5f147866a7a966350791f357fb92425d01bdc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
CrystFEL - Data processing for serial crystallography
-----------------------------------------------------

Release notes for version 0.9.0

Copyright © 2012-2020 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:

- 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]