A workflow for fluctuation x-ray scattering data analysis
The xFrame's fxs toolkit provides the following capabilities:
- Calculating cross-correlation functions from scattering patterns.
- Extracting invariants from cross-correlations.
- Reconstruction of the electron density based on rotational invarants.
- Alignment and Averaging of reconstructions.
No data required
To test the fxs toolkit no data is required, after installation simply follow the getting started guide.
Installation
The fxs toolkit comes bundled as part of xFrame. The additional dependencies needed by fxs can be automatically installed via:
pip install 'xframe[fxs]'
The dependencies are as follows:
-
essential:
- numpy(BSD-3)
- scipy(BSD-3)
- h5py(BSD-3)
- ruamel.yaml(MIT)
- pysofft(GPL3.0) : 3D rotational alignment
- shtns(CeCILL2.1) : Spherical harmonic Transforms
- pygsl(GPL2.0) : Invariant extraction
- click(BSD-3): Commandline interface
-
optional:
- pyopencl(MIT/X) : GPU Support
- vtk(BSD-3) : 3D visualization
- matplotlib(BSD compatible) : 2D visualization
- opencv-python(MIT) : 2D visualization
- flt(MIT) : Invariant extraction
- psutil(BSD-3): Hardware info
Note that the python packages pygsl and pyopencl require the libraries gsl and opencl to be installed on your system to function properly.
In order to view the outputed 3d vtk datasets we recomend to install a vtk viewer such as paraview. An example for the usage of paraview can be found here
Setup on Maxwell cluster at Desy
In order to setup xframe on Maxwell you need to follow a few steps (time of writing 9.2023)
- Create a conda environment using the commands
You can alternatively call the environment by whatever name you like instead of "xframe"
module load maxwell mamba . mamba-init mamba create --name xframe python=3.8 mamba activate xframe - Install GSL
mamba install -c anaconda gsl - Install xframe
pip install 'xframe[fxs]'
This should have done the trick :)
If you are still facing issues feel free to create an issue at github.