Welcome to Cheetah


Usage examples include:

  1. Bullet Hit finding

  2. Bullet Serial crystallography (take home only events containing crystal diffraction)

  3. Bullet Single particles (take home only particle hits)

  4. Bullet Sorting of data

  5. Bullet Sort pump-probe data into laser-on and laser-off states

  6. Bullet Sorting by event code or other criteria

  7. Bullet Data reduction

  8. Bullet Radial stacks for use in SAXS/WAXS analysis (radial line out for each event, sorted)

  9. Bullet Per pixel histograms of the entire detector (for detector calibration and characterisation)

  10. Bullet Peak lists (location of all found peaks)

  11. Bullet Compilation of powder patterns (sums of data in a run, sorted)

  12. Bullet Diagnostics synchronised by event for subsequent sorting

  13. Bullet Timing tool for Femtosecond pump-probe timing (trace of femtosecond timetool matched with events)

  14. Bullet Per-shot photon spectrum

  15. Bullet XES spectrometers and TOFs

  16. Bullet Detector correction

  17. Bullet Output from some detectors is simpler than others

  18. Bullet Includes: dark and gain corrections, cspad common mode corrections, pnCCD corrections

  19. Bullet Conversion from ADU to photon counts

  20. Bullet Output of data in facility-independent HDF5 files readable by 3rd party programs

  21. Bullet Detector frames of interest saved in HDF5 format (standard .cxi files)

  22. Bullet Diagnostic data in HDF5 format synchronised by event

  23. Bullet Conversion of selected events (for example when developing algorithms offline)

  24. Bullet Consistent format shields you from the multiple file formats and APIs used at different facilities

Cheetah itself consists of a GUI front end (Python+Qt) to coordinate processing and view output, which calls backend programs that can also be called from the command line if desired.  Output is in the form of portable, standardised HDF5 and plain text files.  Code is modular and can easily be adapted to any source of serial imaging data, including data collected using both free electron laser and synchrotron sources using a variety of detectors (including csPAD, pnCCD, AGIPD, Pilatus, Rayonix).  Cheetah is open source and released under the GNU GPL v3 license.  Re-use of core algorithms such as peak finders is encouraged and the code is written to simplify re-use as far as practical.

Please cite this paper if you have used Cheetah or a part of Cheetah in your data analysis.

Code is available on GitHub:

The primary citation for Cheetah is:

A. Barty, R. A. Kirian, F. R. N. C. Maia, M. Hantke, C. H. Yoon, T. A. White, and H. N. Chapman, “Cheetah: software for high-throughput reduction and analysis of serial femtosecond X-ray diffraction data,” J Appl Crystallogr, vol. 47, pp. 1118–1131 (2014).

doi:10.1107/S1600576714007626 - Download PDF - Article on IUCr website

Cheetah is a set of programs for processing serial diffraction data from free electron laser sources, and which enable taking home only the data with meaningful content.  Developed for use in our own experiments this is a sanity saver in many serial imaging experiments.


The development of Cheetah has been led by Anton Barty at the Center for Free-Electron Laser Science at the Deutsches Elektronen-Synchrotron, DESY in Hamburg, Germany.
Code has been contributed by: Valerio Mariani, Filipe Maia, Rick Kirian, Thomas White, Chuck Yoon, Carl Nettleblad, Nadia Zatsepin and Andrew Aquila. 
Software has been tested on many beamtimes by numerous people. 

DESY is a research centre of the Helmholtz Gemeinschaft.

See the DESY contact page for official contact details.

Quick links

Ports or forks hosted elsewhere

    Cheetah at SACLA (master branch - thanks Takenori Nakane)

    Cheetah for Eiger (Eiger branch - thanks also to Takenori Nakane)

    Cheetah for Eiger with ZMQ data (data transmitted live over ZMQ at PSI and Spring8 - thanks to Keitaro)