Pre-processing software for serial electron diffraction (SerialED) data. See https://doi.org/10.1101/682575 for example results.
Diffractem is intended for usage within Jupyter notebooks - get a set of examples here: https://github.com/robertbuecker/serialed-examples.
diffractem is tailored to pre-processing SerialED data primarily for crystallographic analysis using CrystFEL, version 0.10.0 or higher:
To make most of diffractem's functionality, if you do not have it already, please download and install CrystFEL following the installation instructions given on its homepage.
During the build process of CrystFEL using meson, the pinkIndexer component will automatically be downloaded and installed.
We strongly suggest to use the Anaconda3 Python distribution/package manager, and create a dedicated environment within it for diffractem.
If you do not have Anaconda installed, it is sufficient to obtain the minimal Miniconda of the
conda package manager at https://docs.conda.io/en/latest/miniconda.
Once installed, please create a new anaconda environment for diffractem, and activate it:
conda create -n diffractem -c conda-forge python=3.10 numpy scipy pandas dask distributed jupyterlab ipywidgets ipympl tifffile h5py
conda activate diffractem
Finally install diffractem itself, either from PyPi:
pip install diffractem
or, if you want to play/develop a bit more and stay up-to-date, you can clone this git repository and install diffractem in developer mode:
git clone https://github.com/robertbuecker/diffractem
pip install -e .
Now you should be ready to go! To get started, why don't you download the example notebooks:
git clone https://github.com/robertbuecker/serialed-examples
And get example raw data at MPDL Edmond: https://edmond.mpdl.mpg.de/imeji/collection/32lI6YJ7DZaF5L_K.
And when you're ready to go: just make your own branches of the notebooks for your own projects, and have fun!
diffractem, (C) 2019-2022 Robert Bücker, [email protected]
peakfinder8, (C) 2014-2019 Deutsches Elektronen-Synchrotron DESY
A small but important improvement: the automatic indexing scripts created by
tools.call_indexamajig now automatically set the
HDF5_PLUGIN_PATH variable such that the LZ4 encoding as used by diffractem can be understood.
In this version, the major change is the compatibility with the latest versions of CrystFEL (later than 0.9.1) which support electrons as first-class citizens. The workflow is much cleaner now, as "virtual" data files are now not needed anymore (CrystFEL natively accounts for variable beam centers). There are also some minor new tweaks and fixes. Note that you'll need the latest example notebooks to go along with this version, as there were breaking changes.
Several new functions are included, especially regarding geometry/cell refinement and CrystFEL integration. Tested with the notebooks included in the submitted version of the workflow paper (available at https://github.com/robertbuecker/serialed-examples).
Probably the last release that keeps the peaks and predictions tables in the Dataset object and supports table-style HDF5 entries.
analyze_hkl is now not required anymore in the Jupyter notebooks
Fixes some missing dependencies during installation, and incompatibilities with newer versions of dask.