cctbx / dxtbx

Diffraction Experiment Toolbox
BSD 3-Clause "New" or "Revised" License
2 stars 18 forks source link

dials.import does not import hdf5 screening images as a sequence #19

Open graeme-winter opened 5 years ago

graeme-winter commented 5 years ago

Underlying bug in dxtbx -

         DATASET "omega" {
            DATATYPE  H5T_IEEE_F64LE
            DATASPACE  SIMPLE { ( 3 ) / ( 3 ) }
            DATA {
            (0): 0, 45, 90
            }
            ATTRIBUTE "depends_on" {
               DATATYPE  H5T_STRING {
                  STRSIZE 2;
                  STRPAD H5T_STR_NULLTERM;
                  CSET H5T_CSET_ASCII;
                  CTYPE H5T_C_S1;
               }
               DATASPACE  SCALAR
               DATA {
               (0): "."
               }
            }

imports as

--------------------------------------------------------------------------------
  format: <class 'dxtbx.format.FormatNexus.FormatNexus'>
  num images: 3
  num sweeps: 1
  num stills: 0
--------------------------------------------------------------------------------
Writing datablocks to datablock.json
graeme-winter commented 5 years ago

SeThaumatin_8_1.zip

Example files attached from I04 Eiger 2 16M - 3 @ 0.15o at 0, 45, 90o

graeme-winter commented 5 years ago

dxtbx.print_header also gives incorrect interpretation:

Scan:
    image range:   {1,3}
    oscillation:   {0,45}
    exposure time: 0

etc.

This is not surprising - first example of the species & all

graeme-winter commented 5 years ago

SeThaumatin_8_1_new_master.zip

Updated master file with new datasets in, for the omega end and ranges (which were previously undefined hence the problems above)

graeme-winter commented 5 years ago

Now contains:

            DATASET "omega" {
               HARDLINK "/entry/data/omega"
            }
            DATASET "omega_end" {
               DATATYPE  H5T_IEEE_F64LE
               DATASPACE  SIMPLE { ( 3 ) / ( 3 ) }
               DATA {
               (0): 0.15, 45.15, 90.15
               }
            }
            DATASET "omega_increment_set" {
               DATATYPE  H5T_IEEE_F64LE
               DATASPACE  SIMPLE { ( 3 ) / ( 3 ) }
               DATA {
               (0): 0.15, 0.15, 0.15
               }
            }

... so in principle can use these.

graeme-winter commented 5 years ago

This is a suitable test case for this:

thaumatin_eiger_screen: Thaumatin Eiger 2X 16M screen set from Diamond Light Source I04 (18MB)
    Winter, Graeme (2019) (CC-BY 4.0)
    http://doi.org/10.5281/zenodo.3383611

    3 screening images recorded on the Eiger X16M at DLS I04 during
    routine testing. Data recorded from a thaumatin crystal despite
    file names.

I believe @rjgildea looking at this now - peeling many onions...

graeme-winter commented 5 years ago

To verify: this is still an issue:

Grey-Area tmp :) $ dials.import $(libtbx.find_under_build dials_data/thaumatin_eiger_screen/Therm_6_1_master.h5)
DIALS (2018) Acta Cryst. D74, 85-97. https://doi.org/10.1107/S2059798317017235
DIALS 2.dev.780-gffe37ced6
The following parameters have been modified:

input {
  experiments = <image files>
}

--------------------------------------------------------------------------------
  format: <class 'dxtbx.format.FormatNexusEigerDLS16M.FormatNexusEigerDLS16M'>
  num images: 3
  num sweeps: 1
  num stills: 0
--------------------------------------------------------------------------------
Writing experiments to imported.expt