aboutsummaryrefslogtreecommitdiff
path: root/relnotes-0.10.0
blob: 2ebeebe6025f732dc4c9165125ff7bdfd18cb991 (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
CrystFEL - Data processing for serial crystallography
-----------------------------------------------------

Release notes for version 0.10.0

Copyright © 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 <http://www.gnu.org/licenses/>.


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)