@@ -8,14 +8,24 @@ See:
|
||||
* https://www.dectris.com/features/features-eiger-x/hdf5-and-nexus
|
||||
* https://strucbio.biologie.uni-konstanz.de/xdswiki
|
||||
|
||||
## Get Durin
|
||||
## Paul Scherrer Institute fork
|
||||
This fork is maintained by Paul Scherrer Institute.
|
||||
The plugin is based on the code developed by the Diamond Light Source and modified by Global Phasing.
|
||||
Modifications from PSI side:
|
||||
* Using CMake for building the plugin
|
||||
* HDF5 is built as part of the CMake process
|
||||
* Bitshuffle/LZ4 is updated to the latest version
|
||||
* HDF5 filter is automatically registered for virtual dataset HDF5 files
|
||||
* Docker image to build the plugin on x86/RH7 is provided.
|
||||
* Generated versioned shared library, so the used version can be tracked.
|
||||
|
||||
Latest release at https://github.com/DiamondLightSource/durin/releases/tag/2019v1
|
||||
## Get Durin
|
||||
Linux x86 version is automatically built on RHEL 7 and available from the Gitea release page.
|
||||
|
||||
## Usage
|
||||
In your XDS.INP add:
|
||||
```
|
||||
LIB=[path to durin-plugin.so]
|
||||
LIB=[path to libdurin-plugin.so]
|
||||
NAME_TEMPLATE_OF_DATA_FRAMES=[data_path]/data_images_??????.h5
|
||||
```
|
||||
XDS will instruct the plugin to load `[data_path]/data_images_master.h5` and this must be the
|
||||
@@ -27,55 +37,25 @@ the master file contains an `NXdata` or `NXdetector` group with either a dataset
|
||||
series of datasets named `data_000001`, `data_000002`, etc.
|
||||
|
||||
|
||||
## Requirements
|
||||
* HDF5 Library (https://www.hdfgroup.org/downloads)
|
||||
|
||||
|
||||
## Building
|
||||
|
||||
### Building HDF5 library
|
||||
The HDF5 library used when building durin must have been compiled with specific switches enabled
|
||||
to allow the durin plugin to be built and used.
|
||||
|
||||
Download the HDF5 source code (https://www.hdfgroup.org/downloads/hdf5/source-code) and extract
|
||||
to any directory (referred to as `/hdf5_dir`), and run the following commands.
|
||||
Requires CMake version 3.19 or later + GCC compiler. There is no need to build HDF5 separately.
|
||||
To build:
|
||||
```
|
||||
cd /hdf5_dir
|
||||
mkdir build
|
||||
cd build
|
||||
export CFLAGS=-fPIC
|
||||
../configure --enable-threadsafe --enable-deprecated-symbols --enable-hl --enable-unsupported
|
||||
make
|
||||
make check
|
||||
make install
|
||||
cmake ..
|
||||
make -j
|
||||
```
|
||||
The hdf5 tools and libraries should now be located in `/hdf5_dir/build/hdf5`
|
||||
|
||||
For reference, the plugin requires the thread-safe switch and the optimised chunk read function.
|
||||
The chunk read function may be defined in the high level library instead of the regular library,
|
||||
depending on the exact HDF5 version downloaded (hence the --enable-deprecated-symbols _and_ --enable-hl).
|
||||
The unsupported flag enables building with both threadsafe and high-level enabled.
|
||||
|
||||
|
||||
### Building durin plugin
|
||||
The plugin makefile will use the "h5cc" compiler wrapper, provided by the HDF5 library, which
|
||||
must be on your PATH.
|
||||
Download or clone the plugin source code (https://github.com/DiamondLightSource/durin)
|
||||
into any directory (referred to as `/durin_dir`) and run the following commands.
|
||||
```
|
||||
cd /durin_dir
|
||||
PATH=/hdf5_dir/build/hdf5/bin:$PATH
|
||||
make
|
||||
```
|
||||
The plugin is located at `/durin_dir/build/durin-plugin.so` and should be added to the
|
||||
XDS.INP file as `LIB=/durin_dir/build/durin-plugin.so`
|
||||
|
||||
|
||||
The plugin is located at `build/libdurin-plugin.so` and should be added to the
|
||||
XDS.INP file as `LIB=<CURRENT_DIRECTORY>/build/libdurin-plugin.so`.
|
||||
Alternatively, versioned copy is also provided, e.g. `libdurin-plugin.so.1.0.0`, allowing to track
|
||||
the current version of the plugin.
|
||||
|
||||
## Example XDS.INP
|
||||
```
|
||||
DETECTOR=PILATUS MINIMUM_VALID_PIXEL_VALUE=0 OVERLOAD=4096
|
||||
LIB=/opt/durin/build/durin-plugin.so
|
||||
LIB=/opt/durin/build/libdurin-plugin.so
|
||||
SENSOR_THICKNESS= 0.450
|
||||
!SENSOR_MATERIAL / THICKNESS Si 0.450
|
||||
!SILICON= 3.953379
|
||||
@@ -95,6 +75,3 @@ TRUSTED_REGION= 0.0 1.41
|
||||
DATA_RANGE= 1 600
|
||||
JOB=XYCORR INIT COLSPOT IDXREF DEFPIX INTEGRATE CORRECT
|
||||
```
|
||||
|
||||
N.B. the master file is needed, not the .nxs one which follows the
|
||||
standard.
|
||||
|
||||
Reference in New Issue
Block a user