Cheetah
Cheetah
2019.1
Welcome to Cheetah
Usage examples include:
Hit finding
Serial crystallography (take home only events containing crystal diffraction)
Single particles (take home only particle hits)
Sorting of data
Sort pump-probe data into laser-on and laser-off states
Sorting by event code or other criteria
Data reduction
Radial stacks for use in SAXS/WAXS analysis (radial line out for each event, sorted)
Per pixel histograms of the entire detector (for detector calibration and characterisation)
Peak lists (location of all found peaks)
Compilation of powder patterns (sums of data in a run, sorted)
Diagnostics synchronised by event for subsequent sorting
Timing tool for Femtosecond pump-probe timing (trace of femtosecond timetool matched with events)
Per-shot photon spectrum
XES spectrometers and TOFs
Detector correction
Output from some detectors is simpler than others
Includes: dark and gain corrections, cspad common mode corrections, pnCCD corrections
Conversion from ADU to photon counts
Output of data in facility-independent HDF5 files readable by 3rd party programs
Detector frames of interest saved in HDF5 format (standard .cxi files)
Diagnostic data in HDF5 format synchronised by event
Conversion of selected events (for example when developing algorithms offline)
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: https://github.com/antonbarty/cheetah
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.
Acknowledgements
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)