COMCIFS / instrument-geometry-info

A collection of layouts for specific beamlines and instruments
0 stars 3 forks source link

[Layout]: Diamond beamline I04 #3

Open kroon-lab opened 2 years ago

kroon-lab commented 2 years ago

Facility name

Diamond

Beamline name

I04

Is updated?

Start date

No response

Finish date

No response

Principal axis orientation

0 degrees

Goniometer axes

phi, c, chi,c, omega, c

Rotation axis name

omega

Image orientation

top left

Fast direction

horizontal

Detector axes

none

xds.inp

No response

Data DOI

No response

Comments

No response

jamesrhester commented 2 years ago

Here is a first stab at an auto-generated data block based on the above information. In the future this will be auto-generated when the issue is submitted, but for now I've run the software manually (see Tools/issue_to_imgcif.jl).

The question marks need to be filled in with the dataset in hand, except for the one for the two-theta axis, which is just because the sense of rotation of this axis is not provided.

The ? for the trans axis is the detector distance. The ? for detx and dety are the horizontal and vertical offsets from the beam centre.

Other missing information includes the pixel width and number of pixels down and across. This is hopefully all available from any data file. If not we should add questions to the issue template.

_audit.block_id Diamond_I04
_diffrn_source.beamline I04
_diffrn_source.facility Diamond
    loop_
      _axis.id
      _axis.type
      _axis.equipment
      _axis.depends_on
      _axis.vector[1]
      _axis.vector[2]
      _axis.vector[3]
      _axis.offset[1]
      _axis.offset[2]
      _axis.offset[3]
         phi        rotation     goniometer  chi        -1  0  0  0  0  0
         chi        rotation     goniometer  omega      -1  0  0  0  0  0
         omega      rotation     goniometer  .          -1  0  0  0  0  0
         two_theta  rotation     detector    .          ?   0  0  0  0  0
         trans      translation  detector    two_theta  0   0  1  0  0  ?
         detx       translation  detector    trans      0   1  0  ?  ?  0
         dety       translation  detector    trans      -1  0  0  ?  ?  0
    loop_
      _array_structure_list_axis.axis_id
      _array_structure_list_axis.axis_set_id
      _array_structure_list_axis.start
         detx                                1                                0
         dety                                2                                0
    loop_
      _array_structure_list.array_id
      _array_structure_list.axis_set_id
      _array_structure_list.direction
      _array_structure_list.index
      _array_structure_list.precedence
         1              1              increasing              1              1
         1              2              increasing              2              2
    loop_
      _diffrn_detector.id
      _diffrn_detector.number_of_axes
         1                        2
    loop_
      _diffrn_detector_axis.axis_id
      _diffrn_detector_axis.detector_id
         detx                     1
         dety                     1
jamesrhester commented 2 years ago

As pointed out by @kroon-lab the auto-generated axis vectors are incorrect, as the spindle is at 0 degrees (ie horizontal) and so the X axis is horizontal. We have defined det_x to be the horizontal detector axis. Therefore the vector for det_x is incorrect. I will fix.

jamesrhester commented 2 years ago

Latest version of issue_to_imgcif.jl gives the following, which I think is now correct. Note that only the entries for detx and dety should have changed.

_audit.block_id Diamond_I04
_diffrn_source.beamline I04
_diffrn_source.facility Diamond
    loop_
      _axis.id
      _axis.type
      _axis.equipment
      _axis.depends_on
      _axis.vector[1]
      _axis.vector[2]
      _axis.vector[3]
      _axis.offset[1]
      _axis.offset[2]
      _axis.offset[3]
         phi        rotation     goniometer  chi        -1  0  0  0  0  0
         chi        rotation     goniometer  omega      -1  0  0  0  0  0
         omega      rotation     goniometer  .          -1  0  0  0  0  0
         two_theta  rotation     detector    .          ?   0  0  0  0  0
         trans      translation  detector    two_theta  0   0  1  0  0  ?
         detx       translation  detector    trans      -1  0  0  ?  ?  0
         dety       translation  detector    trans      0   1  0  ?  ?  0
    loop_
      _array_structure_list_axis.axis_id
      _array_structure_list_axis.axis_set_id
      _array_structure_list_axis.start
         detx                                1                                0
         dety                                2                                0
    loop_
      _array_structure_list.array_id
      _array_structure_list.axis_set_id
      _array_structure_list.direction
      _array_structure_list.index
      _array_structure_list.precedence
         1              1              increasing              1              1
         1              2              increasing              2              2
    loop_
      _diffrn_detector.id
      _diffrn_detector.number_of_axes
         1                        2
    loop_
      _diffrn_detector_axis.axis_id
      _diffrn_detector_axis.detector_id
         detx                     1
         dety                     1
jamesrhester commented 2 years ago

Note that the imgCIF X axis does not depend on sense of rotation of the goniometer: so the above is still wrong.

jamesrhester commented 2 years ago

I think I've fixed it this time: this is the latest auto-generated output.

_audit.block_id Diamond_I04
_diffrn_source.beamline I04
_diffrn_source.facility Diamond
    loop_
      _axis.id
      _axis.type
      _axis.equipment
      _axis.depends_on
      _axis.vector[1]
      _axis.vector[2]
      _axis.vector[3]
      _axis.offset[1]
      _axis.offset[2]
      _axis.offset[3]
         phi        rotation     goniometer  chi        -1  0   0  0  0  0
         chi        rotation     goniometer  omega      -1  0   0  0  0  0
         omega      rotation     goniometer  .          -1  0   0  0  0  0
         two_theta  rotation     detector    .          ?   0   0  0  0  0
         trans      translation  detector    two_theta  0   0   1  0  0  ?
         detx       translation  detector    trans      1   0   0  ?  ?  0
         dety       translation  detector    trans      0   -1  0  ?  ?  0
    loop_
      _array_structure_list_axis.axis_id
      _array_structure_list_axis.axis_set_id
      _array_structure_list_axis.start
         detx                                1                                0
         dety                                2                                0
    loop_
      _array_structure_list.array_id
      _array_structure_list.axis_set_id
      _array_structure_list.direction
      _array_structure_list.index
      _array_structure_list.precedence
         1              1              increasing              1              1
         1              2              increasing              2              2
    loop_
      _diffrn_detector.id
      _diffrn_detector.number_of_axes
         1                        2
    loop_
      _diffrn_detector_axis.axis_id
      _diffrn_detector_axis.detector_id
         detx                     1
         dety                     1