|
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. # # ---------------------------------------------------------------------
Copyright © 2005 International Union of Crystallography