Idea to extend CCP4 cif2mtz to handle new data types better in the future.

  • Names looked for by cif2mtz not present in mmCIF dictionary could be handled better:
    • Option to warn/skip over those names rather than abort
    • Give all missing item names on abort, rather than aborting on the first one.
  • Full runtime configuration of item names in the REFLN category (subject to a hard-coded maximum number)
    • Would require preparation of a file something like this, which is read at runtime and used to overwrite the initialised contents of cifrnames, lsprgo and ctprgo
H H _refl.index_h
K H _refl.index_k
L H _refl.index_l
FREE I _refln.status
FP F _refln.F_meas_au 
     _refln.F_meas
SIGFP Q _refln.F_meas_sigma_au
        _refln.F_meas_sigma
....
  • This file would define the order of the columns in the resulting MTZ file, which is reasonable behaviour I think. It would have to be matched to a compatible dictionary, and referred to with an environment variable or CCP4 logical unit.
  • In the current code there is an assumption that _refln.status is the 4th item (and maybe other similar assumptions?), but these assumptions can be removed without much difficulty.
  • cif2mtz also gets some data from the following mmCIF categories (when present in file, and values not defined in keyworded input):
    • CELL: _cell.length_a/b/c, _cell.angle_alpha/beta/gamma, _cell.volume
    • SYMMETRY: _symmetry.Int_Tables_number, _symmetry.space_group_name_H-M
    • DIFFRN: _diffrn.id
    • ENTRY: _entry.id
  • These are pretty generic and stable: can these remain as hard-coded (i.e. would we ever expect to have to use a dictionary with cif2mtz where these items are not defined)? Probably OK to leave hard-coded....

Page by Peter Keller original version 21 Dec 2011. Address problems, corrections and clarifications to buster-develop@globalphasing.com