Page tree

CrystFEL is a suite of programs for processing diffraction data acquired "serially" in a "snapshot" manner, such as when using the technique of Serial Femtosecond Crystallography (SFX) with a free-electron laser source. CrystFEL comprises programs for indexing and integrating diffraction patterns, scaling and merging intensities, simulating patterns, calculating figures of merit for the data and visualising the results. Supporting scripts are provided to help at all stages, including importing data into CCP4 for further processing.


Using  CrystFEL (Maxwell cluster) 

CrystFEL comes with an excellent tutorial explaining the usage of the software in great detail.  In addition, there are a few details relevant for the Maxwell installation: 

 To initialize the environment use the module command:

[@max ~]$ xwhich crystfel

 No executable named crystfel found 
 License:       GPL-3.0

[@max ~]$ xwhich indexamajig

 Provided by module(s)
   ... module load maxwell crystfel/0.8.0; which indexamajig: /software/crystfel/0.8.0/bin/indexamajig
   ... module load maxwell crystfel/0.7.0; which indexamajig: /software/crystfel/0.8.0/bin/indexamajig
   ... module load tools/crystfel; which indexamajig: /opt/crystfel/bin/indexamajig
   ... module load crystfel; which indexamajig: /opt/crystfel/bin/indexamajig

# There are two different installations, an unversioned installation in /opt/crystfel and one supporting different versions, under /software/crystfel. We'd recommend using the latter installation.
# both installation come with mosflm and optional utilities. mosflm might vary between different installations. 

[@max ~]% module load maxwell crystfel
# if you need for any reason to use a specific mosflm version (check /software/mosflm for available versions):
export PATH=/software/mosflm/7.3.0:$PATH 

Using CrystFEL on GPUs

pattern_sim is the only CrystFEL application (afaik) which can run on GPUs using OpenCL. To enable both the CPU and the GPU solutions, the pattern_sim application is available in two flavours:

  • CPU-version: /opt/crystfel/bin/pattern_sim
  • GPU-version: /opt/crystfel/bin/pattern_sim_ocl  compiled with OpenCL

The GPU version was compiled with the Intel OpenCL implementation:

./configure --with-opencl --with-opencl-dir=/opt/opencl/intel --prefix=/opt/crystfel

Since the GPU-version would usually be executed on nodes with Nvidia GPU, the binary should automatically pickup the Nvidia OpenCL implementation. If the Intel implementation should be used for whatever reason initialize the environment with 

module load opencl/intel   # or opencl/amd for the AMD OpenCL implementation