INTERNATIONAL TABLES

for CRYSTALLOGRAPHY

Volume G

Definition and Exchange of Crystallographic Data

Several draft descriptions of a Crystallographic Information File were prepared and distributed among members of the Working Party on Crystallographic Information during 1988 and 1989. In the first draft, reproduced below, the design is of a file presented in two distinct parts. The initial part is similar to the header part of several binary format archives current at the time. In this part a full description of the data structure is presented. The data follow in the body of the files, according to the declared structure. An inconvenient aspect of this approach is that the entire data structure must be held in computer memory, or retrieved from disk by a random-access mechanism such as a direct-access file.

#                                                      Version: Jul15 88 /2
#                CRYSTALLOGRAPHIC INFORMATION FILE
#                --------------------------------
#                   S.R. Hall, Roentgenlabor
#                   Max-Planck-Instut fuer Kohlenforschung
#                   D-4330 Muelheim/Ruhr, FRG.
#                   Ph: [49]208 306 491/488
#                   Fx: [49]208 306 407
#                   Em: [email protected]
#
# This is a proposal for a free-format self-defining text file for
# storing crystallographic information. The proposed file structure
# will handle any data type that can be expressed as ascii characters.
# It will provide for future definitions of data types, and allow for
# the inclusion of 'stranger' or 'system-specific' data types (which
# will make it more amenable as a storage medium for program systems).

# The 'structure' of the file is relatively simple and very flexible.
# The overall structure of each file will be defined by a sequence of
# definition commands at the front of the file. Each of these lines
# will start with a semicolon ';'. The file-definition structure is
# self-defining. Note that all text following a sharp '#' is considered
# to be a comment, unless surrounded by quotes.
#
# First, here is an example of the file-definition structure. A short
# description of this structure follows. This is followed with an
# example of a typical CIF.

# ---------------------------------------------------------------------
; define_file    xtal_archive
;
; define_list   compound_description
;
;       chemical_name           text
;       chemical formula        char
;       compound_id_code        char    xtal    # this is here to enable
;                                               # the simple regeneration
;                                               # of an xtal binary file.
; define_list   publication_data
;
;       author_names            text
;       title                   text
;       full_reference          text
;       database_ref_number     int
;
;
; define_list   crystal_cell_parameters
;
;       unit_cell_a             real
;       unit_cell_a_sd          (in)
;       unit_cell_b             real
;       unit_cell_b_sd          (in)
;       unit_cell_c             real
;       unit_cell_c_sd          (in)
;
;       unit_cell_alpha         real
;       unit_cell_alpha_sd      (in)
;       unit_cell beta          real
;       unit_cell_beta_sd       (in)
;       unit_cell_gamma         real
;       unit_cell_gamma sd      (in)
;
;       unit_cell_volume        real
;       unit_cell_volume_sd     (in)
;
;
; define_list   crystal_symmetry
;
;       herm-maug-symbol        char
;       hall_symbol             char
;
;       define_loop     jones_representation
;
;               equiv_position          char
;
; define_list   experimental_data
;
;       radiation_type          char
;       radiation_wave_length   real
;       diffractometer_type     char
;
;       define_loop     crystal_shape
;
;               face_h                  int
;               face_k                  int
;               face_l                  int
;               face_dim_cm             real
;
;       define_loop     atom_type_parameters
;
;               sf_name                 char
;               cell_contents_for_type  int
;               atom_bond_radius        real
;               sf_delta_real           real
;               sf_delta_imag           real
;               sf_description          char
;               sf_crom/mann_coef_a1    real
;               sf_crom/mann_coef_b1    real
;               sf_crom/mann_coef_a2    real
;               sf_crom/mann_coef_b2    real
;               sf_crom/mann_coef_a3    real
;               sf_crom/mann_coef_b3    real
;               sf_crom/mann_coef_a4    real
;               sf_crom/mann_coef_b4    real
;               sf_crom/mann_coef_c     real
;
;       define_loop     sf_vs_stol
;               sf_name                 char
;               sf_at_stol              real
;               sin_theta_on_lambda     real
;
;
; define_list   crystal_structure
;
;       define_loop     atom_site_parameters
;
;               site_name               char
;               site_frac_x             real
;               site_frac_x_sd          (in)
;               site_frac_y             real
;               site_frac_y_sd          (in)
;               site_frac_z             real
;               site_frac_z_sd          (in)
;               site_tf_uiso            real
;               site_occupancy          real
;
;               site_tf_u11             real
;               site_tf_u22             real
;               site_tf_u33             real
;               site_tf_u12             real
;               site_tf_u13             real
;               site_tf_u23             real
;
; define_list   diffraction_information
;
;       define_loop     reflection_data
;
;               ref_h ; ref_k ; ref_l           # <<<<<<<this allowed too!
;               ref_sin_theta/lamdba    real
;               ref_sym_reinf_factor    int     xtal
;               ref_sym_multiplicity    int     xtal
;               ref_status_code         char
;               ref_sf_measured         real
;               ref_Sf_calculated       real
;#              ..............................and so on.
;               ref_net_int_counts      int
;               ref_diff_angle_theta    real
;               ref_diff_angle_kappa    real
;#              ..............................and so on.
;
; end_definition_file    xtal_archive
# ---------------------------------------------------------------------
#
# There are three levels of structure definition: 'file', 'list' and 'loop'.
# Multiple 'file' definitions allow for multiple data sets of the same crystal
# with different radiations, or for isomorphically-related structures. The
# name of the 'file' (in this example xtal_archive) has no special significance
# yet, but in the case of multiple data sets it would presumably identify the
# different structures. It may also be that the name would identify a pre-
# defined structure or macro set. This would simplify the definitions but
# has some of the disadvantages of a fixed-format file. Probably the file
# name should be used to identify the generating program or system.
#
# The 'list' definitions enable the data to be subdivided into 'logical' units.
# When there is more than one occurrence of information (e.g. reflection data)
# these are defined as 'loop' packets.
#
# Each 'list' and 'loop' item may be assigned TWO ATTRIBUTES. The first attr-
# ibute specifies the data type. For 'standard' items (i.e. those with names
# which are listed in the CIF GLOSSARY) the data types may be assumed. The
# second attribute identifies an item for a special 'non-standard' purpose.
# This attribute is only used if an item is NOT listed in the CIF GLOSSARY.
#
# The following DATA TYPE ATTRIBUTES are permitted.
#
#       char    String of characters not exceeding 80 in length.
#               If the string contains any imbedded blanks, it must
#               be surrounded by single or double quotes (' or ").
#
#       dble    All double precision floating-point numbers with, and
#               without, decimal point and explicit exponent. The
#               numbers must be in the same range as real numbers.
#
#       hex     Hexadecimal number not exceeding 8 digits.
#
#       int     Integer number inside the range -2147483648 to
#               +2147483647.
#
#       (in)    Integer number bounded by parentheses. This is converted
#               to a real number with the same precision of the preceding
#               number where this integer is the first significant digit.
#
#       real    All floating-point number representations with, and
#               without, decimal point and explicit exponent. The
#               numbers must be in the range of 0.29E-38 to 1.7E+38.
#
#       text    Character data that starts on a new line and is terminated
#               by a line starting with a semicolon ';'.
#
# --------------------------------------------------------------------
; file xtal_archive
;
; list compound_description
;
                3-(2,5-dihydro-4-hydroxy-5-oxo-3-phenyl-2-furyl)propionic acid
;
                C13H12O15               WF3681
;
;
; list publication_data
;
                Charles R. Kissinger, Stewart Turley and John I. Clark
;
                Structure of WF-3681,
                3-(2,5-Dihydro-4-hydroxy-5-oxo-3-phenyl-2-furyl)propionic Acid.
;
                Acta Crystallographica (1988). C44, p512-514.
;
                CDF-834645
;
;
; list crystal_cell_parameters
;
                18.757(8) 7.282(2) 17.511(8) 90(0) 91.20(3) 90(0) 2391(3)
;
;
; list crystal_symmetry
;
                C2/c    -C2yc
;
;       loop jones_representation
;
                x,y,z         -x,-y,-z       -x,y,1/2-z        x,-y,1/2+z
                1/2+x,1/2+y,z 1/2-x,1/2-y,-z 1/2-x,1/2+y,1/2-z 1/2+x,1/2-y,1/2+z
;
;
; list experimental_data
;
                1.54179         'Ni_filtered Cu'        'Picker FACS-1'
;
;       loop crystal_shape
;
                0       0       -1      0.012
                0       0        1      0.012
                1       0        0      0.023
               -1       0        0      0.023
                0      -1        0      0.027
                0       1        0      0.027
;
;       loop atom_type_parameters
;
                C       104     0.75    0.22    0.01    'Cromer-Mann coeff'
                        1.9302  12.7181 1.8781  28.6498 1.5742
                        .5964   .3711   65.0337 .2464

                O       40      0.8     0.32    0.05    'Cromer-Mann coeff'
                        2.9565  13.8964 2.4524  5.9177  1.5051
                        .3454   .7814   34.0811 .3041

                H       96      0.5     0       0       'Stewart-Davidson'
                        0 0 0 0 0 0 0 0 0
;
;       loop sf_vs_stol
;
                H       1.00    0.00
                H       0.97    0.0429
                H       0.899   0.0859
#               ...........................and so on.
                H       0.047   1.530
;
; list crystal_structure
;
;       loop atom_Site_parameters
;
                C(1)    .6237(1) -.2055(4) -.3119(2) .053 1.00
                        .044 .036 .077 -.01 .012 .01

                C(2)    .6022(2) -.2468(6) -.2322(2) .059 1.00
                        .047 .052 .067 .03 -.011 .01

#               ..........................................and so on.

                O(5)    .7504(1) .0454(3) .0417(1) .056   1.00
                        .032 .024 .036 .012 -.011 .03
;
;
; list diffraction_information
;
;       loop reflection_data
;
  0    0   1 .0326 4 4 obs 119.78 132.34 #...........etc.
  0    0   2 .0655 4 4 <2s   7.33   4.29 #...........etc.
# ............................................................and so on.
 12    9    13 .5788 1 1 <3s 12.49 11.45 #...........etc.
;
; end_file xtal_archive
# ---------------------------------------------------------------------
#
# it is important to emphasise that the format of both the control
# commands (e.g. 'list' and 'loop') and the data items is not fixed
# except for the following simple rules:
#
#       1)      commands must follow a semicolon ';',
#
#       2)      commands and data must be entered in precisely
#               the order specified in the file structure, and
#
#       3)      at least one blank must separate each data item
#               and items must not be omitted.
#
# In the above example file note that 'loop packets' can occupy more than
# line (see atom_site_parameters), or alternatively several 'loop packets'
# may be on the same line (see jones-representation). Comments following
# a sharp '#' may appear anywhere in the file, but a line will not be
# processed past this character. Blank lines or those containing only a
# semicolon are ignored. A list or packet may occupy any number of lines
# but no data item, except type_text, may 'straddle' two lines.
#
# ---------------------------------------------------------------------