get_hkl: manipulate reflection data


get_hkl -i reflections.hkl -y pointgroup [options] ... -o output.hkl
get_hkl --help


get_hkl performs various manipulations on reflection lists. Possible manipulations include: expanding to a point group of lower symmetry, 'twinning' to a point group of higher symmetry, adding noise, restricting the list to contain only reflections included in another 'template' list, and some less common miscellaneous manipulations.

The input filename should be specified with -i filename or --input=filename. The output filename should be specified with -o filename or --output=filename. The symmetry of the input reflection list should be specified with -y pointgroup or --symmetry=pointgroup. Beyond these parameters, you can choose one of the manipulations described below. The behaviour if multiple manipulations are requested is deliberately left undefined: it's much clearer to perform multiple manipulations in explicit separate steps.

Expanding reflections into a point group of lower symmetry

-e pointgroup
The reflections will be expanded out, according to the symmetry of the input reflections, to fill the asymmetric unit of pointgroup.

Reducing reflections into a point group of higher symmetry

-w pointgroup
Reflections in the list which are equivalent according to pointgroup will have their intensities summed. The output reflection list will contain the summed intensities in the asymmetric unit for pointgroup. Reflections for which any of the 'twin mates' are missing will not be written out, unless you use --no-need-all-parts

Adding noise

Add either 10% flat random noise (with --noise) or generate Poisson noise (with --poisson). If Poisson noise is to be generated, the reflection intensities will be assumed to be measured in arbitrary units, and the conversion factor to photons must be given using --adu-per-photon=n, where n is the conversion factor.
See --poisson.

Removing duplicated reflections

Reflections which are duplicated, according to the symmetry of the input reflection list, will be removed. This is sometimes useful when importing data from other programs.

Restricting reflections according to a template

-t filename
Only reflections in the input list which also appear in filename will be written to the output.


The intensities of the reflections will be multiplied by their symmetric multiplicities according to the point group of the input list.

Applying a resolution cutoff

In the first form, reflections with d (=lamba/2*sin(theta)) < n will be removed. In the second form, anisotropic truncation will be performed with separate resolution limits n1, n2 and n3 along a*, b* and c* respectively. You must also specify -p or --pdb.
-p unitcell.cell
-p unitcell.pdb

Specify the name of the file containing the unit cell information, in PDB or CrystFEL format.


This page was written by Thomas White.

Reporting bugs

Report bugs to

Copyright and Disclaimer

Copyright © 2012-2015 Deutsches Elektronen-Synchrotron DESY, a research centre of the Helmholtz Association.

Please read the AUTHORS file in the CrystFEL source code distribution for a full list of contributions and 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

See also

crystfel check_hkl compare_hkl pattern_sim

If CrystFEL is installed on your computer, you can read this manual page offline using the command man get_hkl.