Content:


Introduction

Sometimes, the HDF5 files written by a beamline/detector combo are not up-to-date with the instrument configuration itself and the automatic extraction of a fully self-contained experiment description by autoPROC (using the meta-data contained in the *_master.h5 file) will result in failed processing.

A temporary on-off solution is to run autoPROC e.g. with

  process XdsFormatSpecificJiffyOverwrite=no autoPROC_XdsKeyword_ROTATION_AXIS="0 1 0" ...

to explicitly set a rotation axis vector (the XdsFormatSpecificJiffyOverwrite=no is also required since autoPROC assumes meta-data in a HDF5 file to always be correct and up-to-date - see also Bernstein et al (2020). Gold Standard for macromolecular crystallography diffraction data. IUCrJ, 7(5), 784-792.).

Although this should work as expected, it is not an ideal solution for the long-term archiving of data (at which point the knowledge about those errors might have disappeared - although we try to keep a database of current and historical beamline settings.

The better solution seems to be a one-time correct of the meta data as described below.


h5py

This is a Python library for accessing and modifying HDF5 files. Once the relevant item(s) inside the *_master.h5 file is known e.g. via

  imginfo -v -v -v some_master.h5

it is quite easy to correct the problem data.


Setting omega axis

Creating a script fix_omega.py containing

#!/usr/bin/env python3

import sys
import h5py

f = h5py.File(sys.argv[1],'r+')
omega = [0., 1., 0.]
f['/entry/sample/transformations/omega'].attrs['vector'] = omega

and running

  chmod +x fix_omega.py
  ./fix_omega.py some_master.h5

should modify the meta-data (check again with the above imginfo command).

Remember that this example script will override the existing HDF5 file!