###########################################################################
#
# File:  mmcif_std.dic
# Date:  Tue Mar  8 05:54:42 EST 2005
#
# Created from files in CVS module dict-mmcif_std.dic unless noted:
#        mmcif_std-header.dic
#        mmcif_std-data.dic
#        mmcif_std-def-1.dic
#        mmcif_std-def-2.dic
#
###########################################################################


###########################################################################
#
# File:  mmcif_std-header.dic
#
#                          mmCIF Data Dictionary
#
# This data dictionary contains the standard mmCIF data definitions.
#
#                           Header Section
#
#
###########################################################################

##############################################################################
#                                                                            #
#                       Macromolecular CIF Dictionary                        #
#                                                                            #
#          Paula Fitzgerald, Helen Berman, Phil Bourne, Brian McMahon,       #
#                       Keith Watenpaugh, John Westbrook                     #
#                         and many other contributors                        #
#                                                                            #
#                                                                            #
#                                                                            #
#        The review and extension process on this dictionary is is being     #
#        administered through a discussion on a the mmCIF List Server being  #
#        run out of Rutgers University.                                      #
#                                                                            #
#        To subscribe to the mmCIF List Server, send a one line message      #
#        containing the text:                                                #
#                                                                            #
#            subscribe mmciflist Your Name                                   #
#                                                                            #
#        to the email address:                                               #
#                                                                            #
#            requests@ndbserver.rutgers.edu                                  #
#                                                                            #
#        To post to the list, send messages to the email address:            #
#                                                                            #
#            mmciflist@ndbserver.rutgers.edu                                 #
#                                                                            #
#        Please use the list server for all questions, comments, and         #
#        corrections that you may have concerning the draft dictionary.      #
#                                                                            #
#        Should you have a question that you do not feel is appropriate      #
#        for posting to the list, please feel free to contact one of         #
#        Co-chairs of the IUCr mmCIF dictionary maintenance working group:   #
#                                                                            #
#        Paula Fitzgerald                                                    #
#        Merck Research Laboratories                                         #
#        P.O. Box 2000, Ry50-105                                             #
#        Rahway, New Jersey, 07065 USA (paula_fitzgerald@merck.com).         #
#                                                                            #
#        Helen M. Berman                                                     #
#        Department of Chemistry                                             #
#        Rutgers the State University of New Jersey                          #
#        610 Taylor Road                                                     #
#        Piscataway, New Jersey 08854-8087  USA (berman@rcsb.rutgers.edu)    #
#                                                                            #
#        Questions concerning the process of review and approval of the      #
#        CIF dictionaries by the International Union of Crystallography      #
#        should be addressed to the Coordinating Secretary of the IUCr       #
#        Committee for the Maintenance of the CIF Standard, Brian McMahon,   #
#        IUCr, 5 Abbey Square, Chester CH1 2HU, England (bm@iucr.org).       #
#                                                                            #
#        Copyright 2005 International Union of Crystallography               #
##############################################################################
#                                                                            #
#        This dictionary is compliant with DDL v2.1. As such, it looks       #
#        substantially different from the previously approved and released   #
#        versions of the CIF core dictionary. This dictionary contains all   #
#        data items that were present in the CIF core dictionary. To those   #
#        data items have been added the large number of data items needed to #
#        describe the macromolecular crystallographic experiment and its     #
#        results.                                                            #
#                                                                            #
##############################################################################

data_mmcif_std.dic

    _datablock.id                          mmcif_std.dic
    _datablock.description
;
     This data block holds the mmCIF data dictionary, standard definitions.
;

    _dictionary.title           mmcif_std.dic
    _dictionary.version         2.0.09
    _dictionary.datablock_id    mmcif_std.dic


########################
## DICTIONARY_HISTORY ##
########################

    loop_
    _dictionary_history.version
    _dictionary_history.update
    _dictionary_history.revision
   0.1.1  1993-02-11
;
   Highlighted all notes with # %%%%% surrounds.
;
   0.1.2  1993-02-11
;
   Started moving examples to *_appendix data items.
;
   0.1.3  1993-02-11
;
   Started moving core data names to the *_appendix data items
;
   0.1.4  1993-02-11
;
   Added example for _symmetry_
;
   0.1.5  1993-03-24
;
   Finished moving examples to *_appendix data items
;
   0.1.6  1993-03-24
;
   Dealt with many issues raised by SR Hall.
   Some were merely typographical.
   Changed temp to B_iso
   Changed occ to occupancy
   Changed special_details to details.
   Changed asl to label everywhere.
   Shuffled data names in _struct_conf_ and _struct_conn_
;
   0.1.7  1993-03-24
;
   Tested for Cyclops compliance - most problems are names that
   are too long.
   Changed crystal_preparation to crystal_prep
   Changed d_resolution to d_res
   Many other such changes
;
   0.1.8  1993-03-25
;
   Still testing for Cyclops compliance - reveal many additional
   syntax problems
   Also verified with new tool by RG Ball - still more errors fixed
   Dealt with issue raised by PE Bourne - amongst changes
   Rewrote _database_ section completely
   Changed _audit_contact_author_  to
           _audit_contact_author_name
           _audit_contact_author_address
;
   0.1.9  1993-03-26
;
   Removed _struct_topol_ section until it gets straightened out
;
   0.1.10 1993-03-28
;
   Filled in examples for several data categories
;
   0.1.11 1993-04-03
;
   Syntax checked using tools of Peter Murray-Rust - many problems fixed
;
   0.1.12 1993-04-06
;
   More syntax problems fixed a la Peter Murray-Rust
;
   0.1.13 1993-04-07
;
   Introduced _exptl_crystal_grow_ data names
;
   0.1.14 1993-04-07
;
   Experiment with refers_to, category and part_of_key in
   entity_conn_atom_ and entity_conn_bond_ sections.
   Discovered horror show with nonconcurrent versions on different
   computers - not yet resolved.
;
   0.1.15 1993-05-09
;
   Reconciled nonconcurrent versions
   Removed trailing blanks
   Made corrections based on email suggestions from P. Bourne
;
   0.1.16 1993-05-10
;
   Made corrections based on written comments from K. Watenpaugh
   Made corrections/additions based on discussions at Rutgers
;
   0.1.17 1993-05-11
;
   Changed _atom_site_label_component_? to new nomenclature
   Introduced category DDL throughout
   Introduced refers_to DDL throughout
   Introduced part_of_key DDL throughout
   Mandated that _list must be in each data definition
   Standardized 'need not be unique' statements
   Standardized example headers
;
   1.1.18 1993-05-12
;
   Looped out authors and editors in citation list
   Verified with RGB tools
   Some style consistency imposed
   Fleshed out category definitions and imposed style
   Updated "sets of data item" at beginning of document
   Checked alphabetical order of data names - moved id's
;
   0.2.1  1993-05-13
;
   Major rethinking of _entity_ data based following discussions
   of 1993-05-10 meeting
;
   0.2.2  1993-05-18
;
   Style consistency and proof reading changes throughout
   Make page numbers general to articles and chapters in citation
   Added *_method to all phasing categories
   Looped out keywords from _struct_site_ list
   Added _atom_site_label_ definitions as per H. Berman
   Added _struct_biol_view_ and struct_site_view_ items as per P. Bourne
   Added _atom_sites_alt_ data items to formally handle alternative
   conformations
   Verified with Cyclops and RGB tools
;
   0.2.3  1993-05-19
;
   Fixed based on problems unearthed by Peter Murray-Rust and Brian McMahon
;
   0.2.4  1993-05-20
;
   DDL adjustment from down under ):-(>
;
   0.2.5  1993-05-20
;
   A general merging of updates from PMR, BMcM and SRH
   Fixed typographical and stylistic problems a la BMcM
;
   0.2.6  1993-06-02
;
   Fixed _atom_site_ example (_entity_poly_seq_num)
   Removed _list_link_parent from _entity_mon_atom_atom_id a
   _entity_nonp_atom_atom_id
   Added real APS coordinates to _atom_site_ example
   Rewrote _atom_sites_footnote_ example
;
   0.2.7  1993-08-01
;
   Redesigned phasing_MIR definitions
;
   0.2.8  1993-08-03
;
   More work on phasing_MIR
   Created phasing_MIR_der and phasing_MIR_der_shell categories
;
   0.3.1  1993-08-08
;
   Began implementing DDL v0.7
;
   0.3.2  1993-08-11
;
   Cleaning up of stray notes
;
   0.3.3  1993-08-12
;
   Syntax and consistency checks - SRH
   Added _type of null for appendix items.
;
   0.3.4  1993-09-01
;
   Added _struct_conn_ptnr1_label_alt_id and
   _struct_conn_ptnr2_label_alt_id
   Corrected definitions for _struct_conn_ptnr2_ items
   Added _struct_site_gen_label_alt_id
   Fixed Cullis reference in _phasing_MIR_der_shell_R_Cullis
   Change _database_PDB_rev_ example to _loop construction
   Added _PDB_remark category (data items _PDB_remark_num and
   _PDB_remark_text)
   Added 'obsolete' to enumeration list for _database_PDB_rev_status
   Added _database_PDB_rev_replaces data item
;
   0.3.5  1993-09-08
;
   Added missing _diffrn_orient_matrix_UB_33 (in appendix)
   Added missing _phasing_MIR_der_shell_der_id to appropriate example
;
   0.3.6  1993-10-10
;
   Changed *_appendix to *_[mm] throughout
   Removed 'Need example here' from _chemical_[mm]
   Removed 'Need example here' from _chemical_conn_atom_[mm]
   Removed 'Need example here' from _chemical_conn_bond_[mm]
   Moved _PDB to end of all relevant data names (except _[mm])
   Added _database_rev_record_details_PDB data name
   Changed _refine_occupancy_limit_high to _refine_occupancy_max
   Changed _refine_occupancy_limit_low to _refine_occupancy_min
   Changed _refine_B_iso_limit_high to _refine_B_iso_max
   Changed _refine_B_iso_limit_low to _refine_B_iso_min
   Changed all definitions and examples in _refine_iso_B_ category
   to _refine_B_iso_ equivalents
;
   0.3.7  1993-11-16
;
   Changed form of dates in _update_history to CIF style
   Changed ? to . in examples, where appropriate
   Added _example_detail to _refine_ls_restr_type
   Expanded definition of _refine_ls_restr_type
;
   0.3.8  1993-11-30
;
    Moved _audit_author_, _citation_ categories to CIF core
    Definitions and small-molecule examples removed from *_[mm]
    sections that don't extend core categories - BMcM
;
   0.3.9  1993-12-02
;
   Deleted section summarizing categories  - PMDF
   Returned definitions for most *_[mm] sections - PMDF
   Added _list and  _list_level to global - PMDF
   Changed form of dates from yy-mm-dd to yyyy-mm-dd - PMDF
   Checked lists of data items in core, fixing some problems
   with missing names and alphabetization - PMDF
   Resorted some categories to correct alphabetization - PMDF
   Changed form and definitions of _database_remark_num_PDB and
   _database_remark_text_PDB - PMDF
   Added data item _database_rev_replaced_by_PDB - PMDF
   Reordered data items in _citation example - PMDF
   Added data item _exptl_crystal_density_%_sol - PMDF
;
   0.3.10  1993-12-15
;
   Various changes following suggestions from BMcM
   Refined definition of _atoms_site_label_atom_id - PMDF
   Removed _atom_sites_fract_tran (moved to core) - PMDF
   Changed _diffrn_crystal_physical_device to
           _diffrn_crystal_support - PMDF
   Changed _diffrn_measure_device_part to
           _diffrn_measure_device_specific - PMDF
   Changed _diffrn_rad_detector_part to
           _diffrn_rad_detector_specific - PMDF
   Changed _diffrn_rad_source_part to
           _diffrn_rad_source_specific - PMDF
   Changed *_par1* and *_par2* to *_ptnr* in _struct_conn* - PMDF
   Fixed several occurrences of \&A instead of \%A - PMDF
;
   0.3.11  1993-12-22
;
   Made a number of fixes relayed by PEB from MS AND RH
   _type of _atom_site_footnote_id (numb->char) - PMDF
   _type of _database_rev_record_rev_num_PDB (char->numb) - PMDF
   _type of _phasing_MIR_der_number_of_sites (char->numb) - PMDF
     _atom_sites_fract_tran_matrx to _matrix - PMDF
   _type of _phasing_MIR_site_details (numb->char) - PMDF
   _example of _struct_conf_type_reference - PMDF
;
   0.3.12  1993-12-23
;
   Broke out examples from intro sections to loop_  _item_examples.case
   _example_detail construction - BMcM
;
   0.3.13  1994-01-13
;
   Rationalization of categories between mm and core dicts - BMcM
   Deleted _diffrn_crystal_environment (same as core
           _diffrn_ambient_environment) and moved other _diffrn_crystal
           items to core - BMcM
   Fixed typos, removed hyphenation ("be kind to ciftex") - BMcM
   Some re-alphabetization - BMcM
;
   0.3.14  1994-01-26
;
   Lots more re-alphabetization - PMDF
   Changed non_s to nstd throughout - PMDF
   Changed nonp to npol throughout - PMDF
   Removed all multiple spaces - PMDF
   Fixed a couple of alignment problems - PMDF
;
   0.4.1  1994-02-04
;
    Major modifications of _entity_ subcategories - PMDF
    Added angles, planes, torsion angles and chiral centers to
    _entity_mon_ and _entity_npol_
    Added many missing definitions
    Added many missing examples
;
   0.4.2  1994-02-25
;
   Corrected spelling errors found by BMcM - PMDF
;
   0.4.3  1994-03-28
;
   Various changes following suggestions by IDB - PMDF
   Changed _entity_mon_angle_value to
           _entity_mon_angle_value_angle in example
   Changed _entity_npol_bond_value to
           _entity_npol_bond_value_dist
   Changed nonp to npol in _entity_npol_tor_value category
   Reworded angle _enumeration_details in _refine_ls_restr_type
   Reworded definitions in _struct_asym_[mm] and _struct_biol_[mm]
   Reworded definitions of _struct_conn_symmetry_*
                           _struct_site_gen_symmetry
                           _struct_biol_gen_symmetry
   Split _struct_conn_symmetry_* into
         _struct_conn_ptnr1_symmetry and
         _struct_conn_ptnr2_symmetry
   Split _struct_conn_role_* into
         _struct_conn_ptnr1_role and
         _struct_conn_ptnr2_role
   Removed _list_link_child from _struct_conn_conn_type_id
   Added _list_link_child to _struct_conn_type_id
;
   0.5.1   1994-10-10
;
   Implementation of Treaty of Brussels - PMDF
   Merged CIF core dated 1994-03-01 (from BMcM) with mm dictionary
   dated 1994-05-20.

   The history records for the core dictionary are included here
   to identify the version of the core that was merged:

    _dictionary_name            cifdic.c94
    _dictionary_version         2.0
    _dictionary_update          1994-03-01
    _dictionary_history

      1991-05-27  Created from CIF Dictionary text. SRH
      1991-05-30  Validated with CYCLOPS & CIF ms. SRH
      1991-06-03  Adjustments to some definitions. SRH
      1991-06-06  Adjustments a la B. McMahon. SRH
      1991-06-18  Additions & some redefinitions. SRH
      1991-07-04  Corrected 90:0 in *_detect_slit_. SRH
      1991-09-20  Additions & some redefinitions. SRH
      1991-09-20  Final published version. IUCr
      1991-11-12  Add _diffrn_ambient_environment. SRH
      1991-11-12  Allow 'c' for _atom_site_calc_flag. SRH
      1993-02-23  Apply global_ and 'unknown' -> '?' SRH
      1993-03-05  Changes resulting from MM dictionary. SRH
      1993-05-20  Changes arising from new DDL commands. SRH
      1993-08-05  Additional fine tuning pre-Beijing. SRH
      1993-12-22  Introductory sections added to categories. BMcM
      1993-12-22  Additional categories from mm work: _audit_author,
                  _citation, _atom_sites_fract_tran_matrix. BMcM
      1994-03-01  Add 'undef' to _refine_ls_hydrogen_treatment. BMcM
      1994-03-01  Add '_publ_section_exptl_prep' and '*_refinement'. BMcM
      1994-03-01  Add 'atom_site_aniso_ratio'. BMcM
                          --------------

   Removed all mm sections that enumeration items present in core
   but not present in mm dictionary.
   Fixed errors with missing trailing _'s in some category headers
   Also unbalanced ##'s in same place
   Removed "End of Example" statement everywhere
   Standardized syntax for missing examples
   Standardized syntax and style for category _definition data
   items. Added a bunch of ending dashed lines where they were missing.
   <Saved Brussels_airplane_1 at this point and began new file.>
   Merged [] and [mm] category explanation sections. Made HIV
   example always example 1, moved examples from core (where
   they were different from the HIV example) to higher numbers.
   <Saved Bussels_airplane_2 at this point - [] and [mm] sections
   not yet completely merged..
;
   0.5.2  1994-11-09
;
   Implementation of DDL 2.0.7 in CITATION category - PMDF & JW
;
   0.5.3  1994-11-13
;
   Implementation of DDL 2.0.7 dictionary wide - PMDF
   Finished merging [] and [mm] sections
   <Saved newddl_all_1 at this point>
   Changed data_ to save_ everywhere
   Changed _name to _item.name everywhere
   Added _item.mandatory_code  everywhere
   Added save_ everywhere
   Moved _description to top of _save frame everywhere
   Changed _example to _item_examples.case everywhere
   Changed _example_detail to _item_examples.detail everywhere
   Changed _description to _item.description.description
           everywhere
   Removed _list yes everywhere
   Removed _list_reference everywhere
   Changed _enumeration_range to enumeration_limit.minimum and
           enumeration_limit.maximum everywhere
   <saved newddl_all_2 at this point>
;
   0.5.4  1994-11-14
;
   Implementation of DDL 2.0.7 dictionary wide - PMDF
   Changed _enumeration to _enumeration.code
   Changed _enumeration_detail to _enumeration.code_detail
   Changed _enumeration_default to _enumeration_default.code
   Put .'s in item names (incomplete)
   Moved _PDB back to appropriate place in item names in the
    _database_remark_PDB_ and _database_rev_PDB_ and
    _database_rev_record_PDB_ categories
   Changed database_rev_PDB to database_PDB_rev
   Changed database_remark_PDB to database_PDB_remark
   Changed database_rev_record_PDB to database_PDB_rev_record
   Changed category items from item to category
   Began getting rid of *_whatever construction in category
       and item descriptions
   <saved newddl_all_3 at this point>
;
   0.5.5   1994-11-15
;
   Implementation of DDL 2.0.7 dictionary wide - PMDF
   Finished putting .'s in itme names
   Changed _diffrn_measure_ to _diffrn_measurement.
   Changed _diffrn_rad_ to _diffrn_radiation.
   <saved newddl_all_4 at this point>
   Implemented category and ID pointers for entity category.
   Found all sorts of errors while doing this, and attempted
   to fix them consistently. Did not remove child data
   Items, even though they don't have to be specified - they
   should help keep all of this straight during the transition.
   Some silly reformatting to ensure that data values always
   have the first alphabetic character in column 33.
   More silly reformatting to put each example in an example
   loop on a separate line.
   <saved newddl_all_4 at this point and sent copy to JW>
;
  0.6.1  1994-11-21
;
  Changes (JDW):
  +  Converted dictionary and dictionary_history categories.
     Incorporated core dictionary history list into the new
     history list in the revision 0.5.1 where the dictionary
     merger is firsted discussed.
;
  0.6.2  1994-11-28
;
  Changes (PMDF):
  +  Made loop_ _item.name data items into separate data items
       This involved rewriting the definitions of most of them.
       In doing so I continued to eliminate the a.b_* construction.
     Added unit type of degrees.
     Added unit type of minutes.
     Added unit type of electrons.
;
  0.6.3  1994-11-30
;
  Changes (PMDF):
  +  Finished conversion of units data items
       Added a number of unit types to the table
       Conversation table still need to be fleshed out
     Removed _list_mandatory and changed _item_mandatory.code to yes for
       those data items
;
  0.6.4  1994-12-01
;
  Changes (PMDF):
  +  Began conversion of _list_link_parent items to appropriate new DDL
       relationships
;
  0.6.5  1994-12-02
;
  Changes (PMDF):
  +  Began implementation of new scheme for relationships in the entity
       category
       All entities will be treated as polymers - non-polymers will have
         a number of monomers of 1
       All data items in ENTITY_NPOL categories are eliminated
       All data items in ENTITY_POLY category are moved to ENTITY
;
  0.6.6  1994-12-06
;
  Changes (PMDF):
  +  Finished conversion of _list_link_parent items to appropriate new DDL
       relationships
     Filled out category_key.id items in each category
       Had to add diffrn_refln.id item, as cannot use h k l in that category
         (perfectly valid to measure same reflection more than once).
       Used _diffrn_standard_refln.code in that category - this may cause a
         problem with old files, as example file did not give this data item
       Moved _entity_poly items back to _entity category
       Moved _entity_poly.formula_weight to entity.formula_weight
       Used _exptl_crystal.id in that category - this may cause a
         problem with old files, as example file did not give this data item
       Added _exptl_crystal_grow.crystal_id in that category
       Added _symmetry_equiv.id in that category - this may cause a
         problem with old files, as this is a new data item
;
  0.6.7  1994-12-07
;
  Changes (PMDF):
  +  Created DATABASE_NEW category to solve logical problems with old DATABASE
       category. Need to think some more about how old data items are handled.
     Added aliases for remaining c91 data items
     Changed geom_angle to geom_angle.value (aliased to original name)
     Changed geom_torsion to geom_torsion.value (aliased to original name)
     Returned ATOM_SITE items taken out during ATOM_SITE_MM transition
;
  0.6.8  1994-12-08
;
  Changes (PMDF):
  +  Created ATOM_SITE_ANISOTROP category to provide for ability to have
       anisotropic data is a separate loop, if desired.
     Checked and fixed a bunch of style things
     Added item_units.code of degrees in data items with degrees in the
       description but not in the ddl
     Added item_units.code of kelvin in data items with kelvin in the
       description but not in the ddl (and added 'in degrees kelvin' to the
       description of those with item_units.code of kelvin but no corresponding
       phrase in the description)
     Added item_units.code of microseconds to _diffrn_radiation.detector_dtime
       (added to units list at same time)
     Added 'in minutes' to description of _diffrn_refln.elapsed_time
     Added 'in kilopascals' to to the description of those with item_units.code
       of kilopascals but no corresponding phrase in the description
     Added BLOCK category
       Added appropriate pointers (in category key, and with a data item
         pointing to _data_block.id) in all categories that needed them
;
  0.6.9  1994-12-09
;
  Changes (PMDF):
  +  Added _esd data items where needed
     Rationalized descriptions for all of the coordinate data items
;
  0.6.10  1994-12-13
;
  Changes (PMDF):
  +  Established check-list for unfinished tasks and began dealing with them
     Added enumeration limits of 0 and 1 and enumeration default of 1.0 to
       occupancy data items
       Left heavy-atom maximum with an enumeration of ?
     Added enumeration default of 1_555 to all _symmetry data items where it was
       missing
     Changed 'connect type' to 'interaction' in _struct_conn_type data items.
     Filled out sub_category ddl items for cartesian coordinates, fractional
       coordinates, cartesian coordinates esds, and Miller indices.
;
  0.6.11 1994-12-14
;
  Changes (PMDF):
  +  Fixed R-Kraut reference
     Changed _reflns_shell.possible_&_all to _reflns_shell.percent_possible_all
     Changed _reflns_shell.possible_&_obs to _reflns_shell.percent_possible_obs
     Changed _exptl_crystal.density_%_sol to _exptl_crystal.density_percent_sol
       Included full formula for this calculation in description
     Changed _refine_ls_restr.model _refine_ls_restr.dev_ideal
     Changed _refine_ls_restr.target _refine_ls_restr.dev_ideal_target
     Improved wording of all definitions in REFINE_LS_RESTR
     Explained sums in _reflns_shell.Rmerge_I_obs and related data items
;
  0.6.12 1994-12-15
;
  Changes (PMDF):
  +  Changed _enumeration_default.code to _item_default.value
     Changed _enumeration_default.value to _item_default.value
     Changed _enumeration.code to _item_enumeration.value
     Changed _enumeration.detail to _item_enumeration.detail
     Changed _enumeration.case to _item_enumeration.value
     Changed _enumeration_limit.maximum to _item_range.maximum
     Changed _enumeration_limit.minimum to _item_range.minimum
     Checked that matrix were properly labeled as either rw_rowwise or just
       plan rowwise.
     Reworded matrix descriptions for consistency.
     Got rid of the last of the a.b_* constructions in descriptions
     Added cell_length, cell_length_esd, cell_angle and cell_angle_esd
       subcategories
     Changed special_details to details for core items - original names retained
       in aliases
     Added atom_site.id
     Added mm_atom_site_label subcategory
     Commented out _atom_site.label_component until it can be dealt with
       properly
     Changed 'SIF' to 'data block' in a number of descriptions.
;
  0.6.13 1994-12-16
;
  Changes (PMDF):
  +  Added data item _refln.R_free_status
     Added data item _reflns.R_free_details
     Changed _refine_ls_shell.reflns to refine_ls_shell.number_obs
     Added _refine_ls_shell.number_R_free
     Added _refine_ls_shell.number_all
     Added _refine_ls_shell.R_factor_R_free
     Added _refine_ls_shell.wR_factor_R_free
     Tidied up the count and R-factor descriptions in REFINE_LS_SHELL
     Added appropriate item_related names to the R-factors in REFINE_LS_SHELL
     Changed 'count' to 'number' in several data names
     Changed _reflns.number_total to _reflns.number_all
     Changed _reflns.number_observed to _reflns.number.obs
     Added _refine.ls_R_factor_R_free
     Added _refine.ls_wR_factor_R_free
     Edited descriptions of the other R-factor data items in the REFINE
       category to conform to the style in REFINE_LS_SHELL
     Re-alphabetized the things I changed yesterday from special_details to
       details - I had forgotten to do that yesterday
;
  0.6.14 1994-12-19
;
  Changes (PMDF):
  +  Changed refine.ls_number_reflns to refine.ls_number_reflns_obs
     Added refine.ls_number_reflns_all
     Added refine.ls_number_reflns_R_free
     Changed _refln.observed_status to refln.status
       Expanded enumeration list to include resolution limits and R-free flag
       Rewrote definition
       Eliminated refln.R_free_status
     Changed _refine_ls_shell.number_all to _refine_ls_shell.number_reflns_all
     Changed _refine_ls_shell.number_obs to _refine_ls_shell.number_reflns_obs
     Changed _refine_ls_shell.number_R_free to
             _refine_ls_shell.number_reflns_R_free
     Added PHASING category
     Filled in and reformatted units conversion table
;
  0.7.1 1994-12-19
;
  Changes (JDW):
  +  First pass through SIFLIB checking tools. Corrected syntax errors and
     missing parent references.
;
  0.7.2 1994-12-20
;
  Changes (PMDF):
  +  Merged JDW changes with version 0.6.12
       Changed _item_type.code of numb to either int or float
       Changed _item_description.description to category.description where
         appropriate
       Fixed a bunch of pure syntax errors
       Removed 'refln_scale_group' from list of category groups.
       Changed _refln_scale_group_code to _refln.scale_group_code somewhere
       Changed REFLN_SCALE_GROUP_CODE to _refln.scale_group_code somewhere
       Reformatted CATEGORY_GROUP_LIST items to match style of other
         header categories
       Ensures that all _category data items obey they rule of first
         alphabetic character is column 34 (most didn't before this check)
       Removed _item_related stuff from _atom_site.aniso_U[1][1] (at the
         rest) data items, and added wording to description that these
         items are only there for compliance via the alias (but left in
         the one _item_related thing that made the matrix element data item
         alternate exclusive to the full matrix data item
       Added language about compliance to _atom_sites.Cartn_tran_matrix
       Added language about compliance to _diffrn_orient_matrix.UB
       Added language about compliance to _diffrn_reflns.transf_matrix
       Removed matrix element data items for _atom_sites.fract_tran_matrix -
         this wasn't in c91 and so doesn't need aliasing
;
  0.7.3 1994-12-22
;
  Changes (PMDF):
  +  Fixed things turned up by JDW checking of 0.7.2
       Couple of small typos
       Added angstroms_cubed to units list and conversion tables
     Added _phasing_MIR_site.atom_type_symbol and added this reference to the
       table until _atom_type.symbol
     Added _entity_mon_atom.substruct_code
     Began adding STRUCT_MON_PROT, but this is not yet complete
;
  0.7.4 1995-01-12
;
  Changes (PMDF):
  +  Finished working on STRUCT_MON_PROT category
     Added STRUCT_MON_DETAILS category
     Added STRUCT_MON_PROT_CIS category
     Added STRUCT_NCS_ENS category
     Added STRUCT_NCS_ENS_OPER category
     Added STRUCT_NCS_DOM category
     Added STRUCT_NCS_DOM_GEN category
     Added equations to definitions of _phasing_MIR_der_shell.fom and
       _phasing_MIR_shell.fom
     Added REFINE_HIST category
;
  0.7.5 1995-01-13
;
  Changes (PMDF):
  +  Provided for sequence microheterogeneity by making _entity_poly_seq.mon_id
       part of the category key and by adding the data item
       _entity_poly_seq.hetero as a flag
     Added ENTITY_POLY_SEQ_DIF category - this meant adjusting some pointer
       in referenced data items.
     Added _entity_mon_atom.alt_atom_id.
     Added COMP_PROG category
     Removed non-c91 COMPUTING data items (phasing averaging, MAD, MIR and MR)
;
  0.7.6 1995-01-17
;
  Changes (PMDF):
  +  Added ENTITY_SRC_NAT category
     Added ENTITY_SRC_GEN category
     Added ENTITY_NAM_COM category
     Added ENTITY_NAM_SYS category
     Added _entity.src_method data item
     Moved other entity data items to new categories as appropriate
;
  0.7.7 1995-01-18
;
  Changes (PMDF):
  +  Added PHASING_MIR_REFLN category
;
  0.7.8 1995-01-25
;
  Changes (PMDF):
  +  Added _entity_mon.type, _entity_mon.number_atoms_all,
       _entity_mon.number_atoms_nh, _entity_mon.one_letter_code
     Added _entity_mon_angle.value_angle_esd, _entity_mon_angle.value_dist_esd,
       _entity_mon_bond.value_dist_esd
     Added _entity_mon_atom.type_energy, but since this is intended to be a
       pointer to a category (_atom_type_energy) that doesn't exist yet, have
       left it commented out
     Added _entity_mon_chir.volume_three, _entity_mon_chir.volume_three_esd and
       _entity_mon_chir.volume_flag
     Added _entity_mon_plane.number_atoms_all, _entity_mon_plane.number_atoms_nh
     Added _entity_mon_chir.number_atoms_all, _entity_mon_chir.number_atoms_nh
     Added _entity_mon_chir_atom.dev
     Added _entity_mon_tor_value.angle_esd, _entity_mon_tor_value.dist_esd
     Added ENTITY_LINK category
     Added ENTITY_LINK_ANGLE category
     Added ENTITY_LINK_BOND category
  Changes (HB et al.):
  +  Added STRUCT_MON_NUCL category
  Changes (PMDF):
  +  Added label links from STRUCT_MON_NUCL to rest of dictionary
     Added label links from STRUCT_MON_PROT as well (forget them initially)
;
  0.7.9 1995-01-30
;
  Changes (PMDF):
  +  Fixed syntax errors unearthed by checking of JW and PDB
;
  0.7.10 1995-02-03
;
  Changes (PMDF):
  +  Removed loop_ construction from loop_ or order one, except not for
       category examples and not for parent/child loops
     Standardized style of yes/no enumeration lists
     Made style of all enumeration lists more standard (still not happy here)
     Standardized style of examples
     Standardized style of references in definitions
     Began standardizing style of equations in definitions
;
  0.7.11 1995-02-07
;
  Changes (PMDF):
  +  Finished standardizing style of equations in definitions
     Moved ITEM_TYPE_LIST to bottom of dictionary
     Moved ITEM_UNITS_LIST to bottom of dictionary
     Moved ITEM_STRUCTURE_LIST to bottom of dictionary
     Moved DICTIONARY_HISTORY to bottom of dictionary (it will come back up
       to the top with version 1.0.0)
     Rewrote dictionary header comments to reflect this dictionary
;
  0.7.12 1995-02-09
;
  Changes (JDW):
  +  Changed _atom_site.label_res_id to _atom_site.label_comp_id which is
     a child of _chem_comp.id.
  +  Changed all children items named label_res_id to label_comp_id
  +  Changed descriptions of many label_comp_id to reference correct
     parent item. (_atom_site.label_comp_id rather than comp_comp.id).
  +  Changed ENTITY_MON to CHEM_COMP and removed polymer component specific
     terminology.
  +  Changed ENTITY_LINK to CHEM_LINK and removed polymer component specific
     terminology.
  +  Added data type for yyyy-mm-dd and applied this where appropriate.
  +  Added chem_comp_group and chem_link_group to the category group list.
  +  Added '_' prefix to all data item save frame names.
;
  0.7.13 1995-04-20
;
  Changes (PMDF):
  +  Changed all matrices back to element by element representation.
  +  Reworded definitions of B and U matrices to clarify alternate exclusive
       relationship
  +  Changed 'miller' to 'Miller' in some definitions, but left it 'miller' in
       data values.
  +  Changed 'CIF' to 'data bock' where appropriate.
  +  Made changes according to notes from last Rutgers meeting. Mostly this is
       clearer wording of definitions.
       Made formal Ref: for scattering factors.
       Changed atom_site.description to atom_site.details
       Expanded definitions for the components of the atom site label.
       Added disclaimer to some records in ATOM_SITE and ATOM_SITES categories.
       Changed _atom_type.analytical_mass_% to
         _atom_type.analytical_mass_percent
       Expanded definition of AUDIT category
       Added separate esd data items to examples in CELL category
       Added real formula in definition of _cell.volume
       Moved disclaimer to the top in CHEMICAL categories
       Changed enumeration to example in _chem_comp.one_letter_code
       Changed _phasing_MIR_refln.F_sigma to _phasing_MIR_refln.F_meas_sigma
         and adjusted definition to style of other esd definitions. Added type
         condition esd to _phasing_MIR_refln.F_meas
       Changed refln.observed_status to refln.status in example
       Changed _refln.F_sigma to _refln.F_meas_sigma and adjusted definition to
         style of other esd definitions. Added type condition esd to
         _refln.F_meas
;
  0.7.14 1995-05-03
;
  Changes (PMDF):
  +  Fixed definitions of _phasing_MIR_refln.index_k and
       _phasing_MIR_refln.index_l
;
  0.7.15 1995-05-18
;
  Changes (PMDF):
  +  Added DDL linking data names that are value to the data names that are
       esds of those values
     Changed _geom_bond.distance to _geom_bond.dist and _geom_bond.distance_esd
       to _geom_bond.dist_esd
     Changed _geom_contact.distance to _geom_contact.dist and
       _geom_contact.distance_esd to _geom_contact.dist_esd
     Changed _cell_measurement.temperature to _cell_measurement.temp and
       _cell_measurement.temperature_esd to _cell_measurement.temp_esd
     Changed _diffrn.ambient_temperature to _diffrn.ambient_temp and
       _diffrn.ambient_temperature_esd to _diffrn.ambient_temp_esd
;
  0.7.16 1995-05-18
;
  Changes (PMDF):
  +  Added _item.name DDL to those data items that didn't have it
     Wrote program to check that the added names were all correct
       Fixed problems that turned up (including one missing . in
       _diffrn_radiation_detector_details
;
  0.7.17 1995-05-22
;
  Changes (PMDF):
  +  Added _phasing_MIR_refln.F_meas_au and _phasing_MIR_refln.F_meas_au_sigma
       and adjusted appropriate _item.related DDL
     Added _refln.F_meas_au and _refln.F_meas_au_sigma and adjusted as above
     Added _phasing_MIR_refln.F_calc_au and adjusted as above
     Added _refln.F_calc_au and adjusted as above
     Added _refln.A_calc_au and adjusted as above
     Added _refln.B_calc_au and adjusted as above
     Added _refln.A_meas_au and adjusted as above
     Added _refln.B_meas_au and adjusted as above
     Changed _item_related.function_code from 'replace' to
        'alternate_exclusive' in database_2 data items
     Added _item_related DDL to appropriate _database data items
;
  0.7.18 1995-07-20
;
  Changes (JDW):
    + Added '_struct_biol_gen.symmetry' to the key on struct_biol_gen.
    + Changed category block to entry.
    + Added     _dictionary.datablock_id
    + Replace publ_group and journal_group with category group named iucr_group
    + Added category group named pdb_group
    + Removed all the _atom_site.label references and repointed any
      references to this item to _atom_site.id.
    + Added optional atom identifiers to all of the GEOM categories.
    + Added translation vector to transformations in ATOM_SITES
    + Created subcategories for matrices and vectors
    + Moved _struct.keywords to a new category STRUCT_KEYWORDS
    + Added pointer to exptl_crystal.id as part of key in
      category EXPTL_CRYSTAL_GROW_COMP.
    + Restructured DATABASE_PDB_REMARK category
    + Changed alternate_exclusive to replaces and replacedby in
      DATABASE and DATABASE_2
    + Restructured examples in _chem_comp.one_letter_code ...
    + Added data item _chem_comp.three_letter_code
    + Made atom_site.label_alt_id and its children an optional item
    + Changed item names _atom_sites.frac_tran_* _atom_site.frac_transf_*
      and _atom_sites.Cartn_tran_* _atom_site.Cartn_transf_*
    + Changed the key of ATOM_SITE_ANISOTROP to _atom_site_anisotrop.id
    + Added all of the GEOM category atom label items to their appropriate
      parent data items.
    + 'arbitrary' added to list of item_units_list.code's
    + Fixed conflicting mandatory codes...
;
  0.7.19 1995-07-23
;
  Changes (JDW & PMDF):
    + Minor corrections in sheet example and version update.
    + Removed illegal characters from data item names.
      Changed any "/" in data item names to "_over_".
;
  0.7.20 1995-08-02
;
  Changes (PMDF):
    + Enforced 80 character per line limit throughout.
    + Realphabetized _geom_angle.value and _geom_angle.value_esd.
    + Realphabetized _geom_torsion.value and _geom_torsion.value_esd.
    + Removed trailing blanks.
    + Fixed a couple of problems with missing terminal '.
;
  0.7.21 1995-08-08
;
  Changes (PMDF):
    + Added _citation_author.ordinal and updated examples to reflect this
        addition.
    + Changed _item.mandatory_code for _citation_author.name to 'yes'.
    + First pass at checking the dictionary for spelling - lots of little
        changes in lots of places.
    + Removed many occurrences of 'with with' in definitions.
;
  0.7.22 1995-08-09
;
  Changes (PMDF):
    + Added definitions for _chem_link_angle.link_id and
        _chem_link_bond.link_id
    + Straighted out spacing inconsistencies with _item.mandatory_code
    + Another quick pass at spell checking
;
  0.7.23 1995-08-10
;
  Changes (PMDF):
    + Changed _struct_sheet_gen.label_seq_id to _struct_site_gen.label_seq_id
        in _atom_site.label_seq_id tree
    + Removed duplicate entry of _phasing_MIR.entry_id in _entry.id tree
    + Removed alias in definitionof _refln.A_meas_au
    + Removed _item.category_id from
        _chem_link.type_comp_1
        _chem_link.type_comp_2
        _phasing_mad_clust.expt_id
        _phasing_mad_set.clust_id
        _phasing_mad_set.expt_id
        _phasing_mad_set.set_id
        _phasing_mad_ratio.expt_id
        _phasing_mad_ratio.clust_id
        _phasing_mad_ratio.wavelength_1
        _phasing_mad_ratio.wavelength_2
    + Removed _item_type.code from most of the above (it wasn't there in all
        of them).
    + Added _item.mandatory_code to _phasing_mir_der.der_set_id
    + Corrected _item.name for _phasing_mad_ratio.wavelength_2
;
  0.7.24 1995-08-21
;
  Changes (PMDF):
    + Corrected category.id for data items in the DIFFRN_STANDARDS category
    + Corrected category.id for data items in the PHASING_MAD_EXPT category
    + Corrected category.id for selected data items in the PHASING_SET
        category
    + Corrected alias for _atom_site.thermal_displace_type
    + Introduced alias of _atom_site_aniso_label for _atom_site_anistrop.id
    + Introduced alias of _atom_site_aniso_type_symbol for
        _atom_site_anisotrop.type_symbol
;
  0.7.25 1995-08-31
;
  Changes (PMDF):
    + Eliminated duplicate line in _entry_id parent/child table
    + Changed the three occurrences of _item_type.code text to char
        _atom_sites_alt.details
        _atom_sites_alt_ens.details
        _database_PDB_remark.text
    + Fixed Klyne and Prelog reference in GEOM_TORSION category description
    + Added data item _chem_comp_chir.atom_config
    + Added hyphen in non-crystallographic in definition sof
         _struct_ncs_ens.point_group
    + Changed Data Base to Database when referring to the CSD
    + Fixed four occurrances of 'the the' in definitions
    + Added _item_range.maximum and _item_range.minimum DDL items to
         _refine.ls_abs_structure_Flack and removed discussion of limits from
         the definition.
    + Changed two occurances of 'will be' to 'are' in the definition of
         _entity.type.
    + Changed ENTITY_NPOL to CHEM_COMP in definition of _entity.type.
    + Changes ATOM to HETATM for APS coordinates in Example 1 for the
          ATOM_SITE category
    + Corrected _item.category_id for _struct_mon_details.prot_cis.
    + Corrected _item.category_id for _refine_hist.details.
    + Rewrote header comments to emphasize use of the mmCIF listserver as the
      forum for the dictionary review process.
;
  0.7.26 1995-09-25
;
  Changes (PMDF):
    + Put single quotes around 5HVP in those examples where they were missing.
    + Fixed registration of '5VHP' in examples.
    + Fixed typos in definition of _diffrn_measurement.device_specific.
    + Added _item.name loop and parent-child tree to _chem_comp.type
    + Fixed _item.name for _phasing_mir_der.der_set_id
    + Fixed _item.name for _phasing_mir_der.native_set_id
    + Added _phasing_mir_der_refln.set_id to _item.name loops and parent-child
        tree of _phasing_set.id
    + Fixed two misspellings of reference (refence).
;
  0.7.27 1995-09-27
;
  Changes (JDW & SH):
    + Added _item_aliases.dictionary and _item_aliases.version to all
      alias items.
    + Added several missing aliases from cifdic.C94.
    + Added a few missing data type codes in chem_link_*
    + Modified all _item_range items to reflect the correction in
      DDL 2.1.1. Checked all of the boundary conditions on ranges.
    + Made corrections in virtually all of the regular expressions.
    + Added data types 'ucode' and 'uchar'. These are case insensitive
      character types for words and single line strings, respectively.
      The regular expressions for these items will match characters
      of upper and lower case but the primitive type is uchar so
      all comparisons are performed in upper case. This avoids
      problems with case, where case is really not important.
    + Reviewed all items with character data types and made the following
      changes (hopefully uniformly):
       -  Data items with single word enumerates were set to type 'ucode'.
       -  Data items with multi word enumerates were set to type 'uchar'.
       -  Any item which could potentially exceed 80 characters was
          set to type text.
       -  Items which are restricted to single words were set to type 'code'.
       -  Items which are short strings which may not span lines were
          set to type 'char'.
    + Moved aliases for anisotropic temperature factors from category
      ATOM_SITE to ATOM_SITE_ANISOTROP
    + Added category DATABASE_PDB_MATRIX to hold the SCALE and ORIGX
      matrices/vectors.
    + Modified the defintions of data types 'char1' and 'char3' to
      permit leading '+' to indicate a modification.
    + Checked dictionary with SIFLIB and returned to Paula ...
;
  0.7.28 1995-10-06
;
  Changes (PMDF):
    + Removed loop from category example for DATABASE_2
    + Fixed data names in category example for STRUCT_KEYWORDS
    + Rewrote enumeration list for _struct_conf_type.id
    + Removed references to chemical_formula.appendix and replaced them with
      reference to the CHEMICAL_FORMULA category description
    + Added data items _chem_comp.formula and _chem_comp.formula_weight
    + Changed _chem_link_angle.atom_1_atom_id to _chem_link_angle.atom_id_1
    + Changed _chem_link_angle.atom_2_atom_id to _chem_link_angle.atom_id_2
    + Changed _chem_link_angle.atom_3_atom_id to _chem_link_angle.atom_id_3
    + Changed _chem_link_bond.atom_1_atom_id to _chem_link_bond.atom_id_1
    + Changed _chem_link_bond.atom_2_atom_id to _chem_link_bond.atom_id_2
    + Realphabetized to accomodation the above changes
    + Added CHEM_LINK_CHIR category
    + Added CHEM_LINK_CHIR_ATOM category
    + Added CHEM_LINK_PLANE category
    + Added CHEM_LINK_PLANE_ATOM category
    + Added CHEM_LINK_TOR category
    + Added CHEM_LINK_TOR_VALUE category
    + Added entries to parent/child table for _chem_link.id for reflect the
        addition of the new categories.
    + Added Engh and Huber/Priestle examples to CHEM_LINK_BOND and
        CHEM_LINK_ANGLE
    + Realphabetized categories in PHASING_MAD section
  Changes (JDW):
    + Added _item_type.code's for _chem_link_chir*.atom_id and
      _chem_link_tor.atom_id_*.
;
  0.7.29 1995-12-11
;
  Changes (PMDF):
    + Changes to my title and Brian's in header information.
    + Enhanced description of the 'Hill system' of element ordering in
        the definition of _chem_comp.formula.
    + Added _item.mandatory_code to _phasing_mir_der.native_set_id
    + Added DATABASE_PDB_CAVEAT category.
    + Changed supercedes to superseded in DATABASE category description.
    + Changed DATABASE_NEW to DATABASE_2 in category description.
    + Changed SRUCT_SHEET_TOPOLOGY to STRUCT_SHEET_TOPOLOGY in category
        description.
    + Changed examples for STRUCT_SHEET_RANGE to contain only
        _struct_sheet_range.symmetry, not _struct_sheet_range.beg_symmetry and
        _struct_sheet_range.end_symmetry
    + Added cell.Z_PDB data item
    + Changed _atoms_sites.Cartn_tran_matrix to atom_sites.Cartn_transf_matrix
        in definition of _atom_sites.Cartn_transform_axes
    + Changed _chem_comp.nstd_class to _chem_comp.mon_nstd_class in
        definition of _chem_comp.mon_nstd_flag
    + Added data items for _chem_link_bond.value_angle and
        _chem_link_bond.value_angle_esd
    + Changed reference to _chemical_formula.appendix to CHEMICAL_FORMULA
        category description in definition of _chemical_formula.moiety
    + Changed _comp.prog.version to _comp_prog.version and
        _comp.prog.citation_id to _comp_prog.citation_id in COMP_PROG example
    + Changed reference to _computing.phasing_mir in _phasing_mir.method to
        a reference to the COMP_PROG category.
        Similarly with _computing.phasing_averaging in
        _phasing_averaging.method and _computing.phasing_mad in
        _phasing_mad.method and _computing.save_reduction in
        _reflns.data_reduction_method
    + Changed _entity.name_com.name to _entity_name_com.name in
        ENTITY_NAME_COM example
    + Changed reference to _exptl_crystal.face_ to data items in the
        EXPTL_CRYSTAL_FACE category in the definition of
        _exptl_crystal.description.
    + Changed _diffrn.attenuator_code to _diffrn_attenuator.code in
        the definition of _diffrn_refln.attenuator_code
    + Changed _exptl.crystal_preparation to _exptl_crystal.preparation in the
        definition of _exptl.details
    + Changed _geom_bond.distance to _geom_bond.dist in the definition of
        _geom_bond.dist_esd
    + Added data items for _refine.ls_d_res_high and _refine.ls_d_res_low
    + Changed _refine.d_res_high to _refine.ls_d_res_high and
        _refine.d_res_low to _refine.ls_d_res_low in the definition of
        _refln.status
    + Changed _reflns_scale_group.code to _reflns_scale.group_code in the
        definition of _refln.scale_group_code
    + Changed _struct_site_view_details to _struct_biol_view.details in the
        rotation matrix element definitions in the STRUCT_BIOL_VIEW
        category (even though I realize that this isn't really correct in
        terms of the definition of _struct_biol_view.details)
    + Changed _symmetry.equiv_pos_as_xyz to _symmetry_equiv.pos_as_xyz in
        the definition of _symmetry.space_group_name_H-M
    + Changed _struct_mon.details_RSSR to _struct_mon_details.RSSR and
        _struct_mon.details_RSR to _struct_mon_details.RSR in a number of
        definitions in the STRUCT_MON_PROT and STRUCT_MON_NUCL categories
    + Changed _reflns_shell.possible_%_obs to _reflns_shell.percent_possible_obs
        in the REFLNS_SHELL example
    + Corrected alphabetical order of data items in the REFLNS_SHELL category
    + Changed _struct_sheet.number_details to _struct_sheet.details in the
        STRUCT_SHEET examples
    + Replaced _struct_sheet_range.beg_symmetry and
        _struct_sheet_range.end_symmetry with _struct_sheet_range.symmetry
        in the STRUCT_SHEET_RANGE category and fixed example itself
    + Changed _refine.ls_number_reflns to _refine.ls_number_reflns_obs in the
        definitions of _refine.ls_restrained_S_all and
        _refine.ls_restrained_S_obs
    + Changed _refine_ls_shell.reflns to _refine_ls_shell.number_reflns_obs in
        the REFINE_LS_SHELL example
    + Removed example from DATABASE category as it was not longer valid
;
  0.7.30 1996-01-29
;
  Changes (PMDF, HB, JDW):
    + Added data items for pseudorotation in STRUCT_MON_NUCL.
    + Globally changed future tense usage to present tense (eg. will be -> is)
    + Added _citation.book_publisher_city.
    + Changed _citation.journal_coden_PDB to _citation.journal_coden_CSD.
    + Added _citation.journal_coden_CAS.
    + Generalized the defintion of _atom_site.calc_flag.
    + Corrections to definitions defining beginning and ends of ranges in
      category STRUCT_SHEET_HBOND.
    + Added data items _diffrn_refln.scan_rate and
       _diffrn_refln.scan_time_backgd
    + Added HELX_LH_27_P and HELX_RH_27_P helix enumeration types.
    + Added figure of merit data item _refln.fom.
;
  0.7.31 1996-02-12
;
  Changes (JDW):
    + Added data items for _database_pdb_matrix.tvect_matrix[][] and
      _database_pdb_matrix.tvect_vector[].
    + Generalized category CHEM_LINK to handle descriptions of a
      any type of linkage. Created CHEM_COMP_LINK to describe
      linkages between components, and ENTITY_LINK to describe
      linkages between entities (and within entities between
      nonsequential components). Both CHEM_COMP_LINK and ENTITY_LINK
      reference the linkage description in the CHEM_LINK_* categories.
;
  0.7.32 1996-02-17
;
  Changes (JDW):
    + atom_site.entity_id renamed atom_site.label_entity_id.
    + atom_site.entity_seq_num deleted.
    + added items _atom_site.auth_asym_id, _atom_site.auth_atom_id,
      _atom_site.auth_comp_id, and _atom_site.auth_seq_id. These
      items provide placeholders for alternative nomenclature that
      may be used by the author.
    + Set the parentage for _atom_site.label_seq_id to
      _entity_poly_seq.num. All components of the atom site label
      (_atom_site.label_*) are now linked to the mmCIF hierarchical
      description of structure. The data items in _atom_site.auth_*
      may be used by authors to provide alternative identifiers
      in the atom site which conform with the  scheme that is used in
      the publication of the structure.
    + added category group mm_atom_site_auth_label
    + added auth_asym_id, auth_atom_id, auth_comp_id, and auth_seq_id
      child data items to the categories:  GEOM_ANGLE,GEOM_BOND,
      GEOM_CONTACT, STRUCT_CONF, STRUCT_CONN, STRUCT_MON_NUCL,
      STRUCT_PROT, STRUCT_PROT_CIS, STRUCT_NCS_DOM_GEN,
      STRUCT_SHEET_HBOND, STRUCT_SHEET_RANGE, and STRUCT_SITE_GEN.
;
  0.7.33 1996-02-19
;
  Changes (JDW):
    + Replaced category COMP_PROG with category SOFTWARE supplied by
      P. Bourne.
    + Fine tuned some values of _item_type.code. Fixed regular expression
      for code and ucode.
;
  0.7.34 1996-02-20
;
  Changes (JDW):
    + Integrated STRUCT_REF, STRUCT_REF_SEQ and STRUCT_REF_SEQ_DIF from
      PMDF.
    + Removed ENTITY_REFERENCE and ENTITY_POLY_SEQ_DIF.
    + Integrated modified categories STRUCT_NCS_DOM, STRUCT_NCS_DOM_LIM,
      STRUCT_NCS_ENS, STRUCT_NCS_ENS_GEN, and STRUCT_NCS_OPER from PMDF.
    + changed _item_type.code's 'char' and 'uchar' to 'line' and 'uline'.
;
  0.8.0 1996-03-06
;
  Changes (PMDF, HB, JDW):
    + Added unit type 8pi2_angstroms_squared B anisotropic temperature factors,
      and added conversion factor for this new unit type in the
      ITEM_UNITS_CONVERSION category.
    + Changed _item_type.code for _symmetry_equiv.id to 'code'
    + Added default value 'no' to _chem_comp.mon_nstd_flag.
;
  0.8.01 1996-03-12
;
  Changes (PMDF):
    + Added missing circumflex to definition of
      _exptl_crystal.density_percent_sol.
    + Fixed erroneous reference to _atom_site.entity_seq_num in definition
      of _atom_site.auth_seq_id.
    + Changed _chem_comp_link.id to _chem_link.id in definition of
     _chem_comp_link.link_id.
    + Changed _citation.journal_coden_PDB to _citation.journal_coden_CSD in
      citation category example
    + Changed _entity_link.id to _chem_link.id in definition of
      _entity_link.link_id.
    + Changed _chem_link.type_comp_1 to _chem_comp_link.type_comp_1 in
      _item_name and parent/child tables for _chem_comp.type. The same change
      was made for component 2.
;
  0.8.02 1996-03-18
;
  Changes (PMDF):
    + Changed category from chem_comp to chem_comp_link for data items
      _chem_comp_link.type_comp_1 and _chem_comp_link.type_comp_1 in the
      parent/child tree for the chem_comp.type data item.
    + Added _struct_ref_seq.seq_align_beg and _struct_ref_seq.seq_aling_end
      to the mandatory code table for _entity_poly_seq.num.
    + Added _struct_ref_seq_dif.seq_num to both the parent/child and mandatory
      code tables for _entity_poly_seq.num.
    + Added data item _struct_ncs_oper.code.
    + Changed units type to 8pi2_angstroms_squares for
      _atom_site.B_iso_or_equiv and _atom_site.B_iso_or_equiv_esd.
    + Moved TVECT vector from DATABASE_PDB_MATRIX to
      a new category DATABASE_PDB_TVECT and added a identifier
      and details item to this new category. The matrix component of
      TVECT has been removed.
;
  0.8.03 1996-04-03
;
  Changes (PMDF):
    + Began implementing changes to bring this dictionary into alignment
      with the current version of the CIF core dictionary. These differences
      were provided by Brian McMahon and I. David Brown. As most of these
      changes are matters of style and not substance, they will not be noted
      individually here. Anything that does involve substance will be.
    + Changed specification of the format of names to included that provision
      for a dynanastic modifier.
;
  0.8.04 1996-11-04
;
  Changes (PMDF):
    + Changed format of references in data item definitions to match style of
      extended core.
    + Changed format of matrices in data item definitions to match style of
      extended core, with the addition of more rigorous definition of style
      agreed to by PMDF, JDW and HB.
    + Changed format of equivations in data item definitions to match style of
      extended core, with the addition of more rigorous definition of style
      agreed to by PMDF, JDW and HB.
    + Added aliases to data items where they were missing to establish
      correspondence with extended core.
    + Changed frac to fract in _atom_site.frac... data items.
    + Added _citation_editor_ordinal.
    + Added JOURNAL_INDEX data items, as well as _journal.language and
      _journal.paper_category.
    + Added _diffrn_measurement_specimen_support
            _diffrn_orient_refln_angle_omega
            _diffrn_orient_refln_angle_theta
    + Added PUBL_BODY category and data items.
    + Added _publ.contact_author_address
            _publ.contact_author_name
    + Added _publ.section_exptl_solution
            _publ.section_synopsis
            _publ.section_title_footnote
    + Added AUDIT_CONFORM category and data items.
    + Added GEOM_HBOND category and data items.
;
  0.8.05 1996-11-11
;
  Changes (PMDF):
    + More changes to bring this dictionary into alignement with the extended
        core
    + Added _chemical_forumula.iupac
    + Added _atom_site.B_equiv_geom_mean (and its esd)
    + Added _atom_site.U_equiv_geom_mean (and its esd)
    + Added _atom_type.scat_length_neutron
;
  0.8.06 1996-11-13
;
  Changes (JDW):
    + Reorganized categories in the DIFFRN group to formally support
      multiple diffraction data sets.
;
  0.8.07 1996-12-18
;
  Changes (PMDF):
    + Removed single quote from value of DDL items where they were not needed
    + Cleaned up style of range minimum/maximum data value
    + Cleaned up alignment of various DDL items
    + Deleted _chem_link_bond.value_angle and _chem_link_bond.value_angle_esd
;
  0.8.08 1997-01-06
;
  Changes (PMDF):
    + Added R_work data items to the various REFINE categories
    + Rewrote definitions for existing R-factor definitions to distinguish
      between R_work, R_free and conventional R
  Changes (JDW) (retrieved from earlier, misplaced version):
    + Added data item _chem_comp.mon_nstd_parent_comp_id to provide explicit
      reference between a nonstandard component and the parent component.
    + Changed _item_type.code for _chem_comp.id and all of its children
      to 'ucode'.
    + Changed char3 and char1 to uchar3 and uchar1 to be consistent with
      other case insensitive data type codes. Corrected the regular
      expressions and primitive codes for these data types.
    + Added _chem_comp_atom.partial_charge.
    + Corrected the descriptions for _chem_comp_tor.comp_id,
      _chem_comp_bond.comp_id and _chem_comp_angle.comp_id.
    + Added _chem_comp_tor_value.comp_id as a key for category
      CHEM_COMP_TOR_VALUE.
    + Added _chem_comp_plane_atom.comp_id as a key in category
      CHEM_COMP_PLANE_ATOM.
    + Miscellaneous corrections in item descriptions in CHEM_COMP_GROUP
      categories.
    + Added item _chem_comp_plane_atom.dist_esd
;
  0.8.09 1997-01-07
;
  Changes (PMDF):
    + More changes to align with new core:
      Changed _citation.book_coden_ISBN to _citation.book_id_ISBN
      Changed _citation.journal_coden_ASTM to _citation.journal_id_ASTM
      Changed _citation.journal_coden_CAS  to _citation.abstract_id_ASTM
      Changed _citation.journal_coden_CSD  to _citation.journal_id_CSD
      Changed _citation.journal_coden_ISSN to _citation.journal_id_ISSN
      Changed _citation.medline_AN         to _citation.database_id_Medline
      Added _publ.requested_category
      Corrected alias for _atom_type.scat_length_neutron
      Added _journal.data_validation_number
      Changed _diffrn_detector.detector_specific to _diffrn_detector.type
      Deleted _diffrn_detector.detector_type
      Added _diffrn_radiation.probe
      Adjusted definition of _diffrn_radiation.type
      Changed _diffrn_source.source_specific to _diffrn_source.type
      Deleted old _diffrn_source.type
      Changed _diffrn_radiation_wavelength.wavelength_wt to
              _diffrn_radiation_wavelength.wt
      Added _diffrn_radiation.xray_symbol
      Aliased both versions 1.0 and 2.0 of the core for
        _diffrn_detector.detector
        _diffrn_detector.dtime
        _diffrn_source.source
;
  0.8.10 1997-01-22
;
  Changes (PMDF):
    + Still more changes to align with new core:
        Added _refine.ls_R_Fsqd_factor_obs
        Added _refine.ls_R_I_factor_obs
        Added _atom_site.disorder_assembly
        Added new definition of _atom_site.disorder_group
        Many more style and wording changes
      Changes to provide compatibility with PDB Remark 3
        Added _chem_comp_chir_atom.comp_id
        Added _diffrn.ambient_temp_details
        Added _exptl_crystal_grow.temp_details
        Enlarged enumeration list of _phasing.method
        Added _reflns.Rmerge_F_all
        Added _reflns.Rmerge_F_obs
        Added _reflns.B_iso_Wilson_estimate
        Added _reflns.percent_possible_obs
        Added _refine_ls_restr.weight
        Added _refine.aniso_B data items
        Added _exptl_crystal.density_matthews
        Added _refine.ls_percent_reflns_R_free
        Added _refine_ls_shell.percent_reflns_R_free
        Added _refine.Luzzati_coordinate_error_obs
        Added _refine.Luzzati_d_res_low_obs
        Added _refine.Luzzati_sigma_a_obs
        Added _refine.Luzzati_sigma_a_obs_details
        Added _refine.Luzzati_coordinate_error_free
        Added _refine.Luzzati_d_res_low_free
        Added _refine.Luzzati_sigma_a_free
        Added _refine.Luzzati_sigma_a_free_details
        Added _refine.number_disordered_residues
        Added _refine.occupancy_sum_hydrogen
        Added _refine.occupancy_sum_non_hydrogen
;
  0.8.11 1997-01-22
;
  Changes (PMDF):
    Enforced style of only one space at the end of a sentence and after a ;
    Enforced stye in the categories section
    Enforced style of Need example 1
    + More changes to provide compatibility for PDB Remark 3
        Added _refine.B_iso_mean
        Added _refine.ls_percent_reflns_obs
        Added _refine.ls_R_factor_R_free_error
        Added _refine.ls_R_factor_R_free_error_details
        Added _refine_ls_shell.percent_reflns_obs
        Added _refine_ls_shell.R_factor_R_free_error
        Added _refine_ls_shell.redundancy_reflns_all
        Added _refine_ls_shell.redundancy_reflns_obs
        Added _refine.ls_redundancy_reflns_all
        Added _refine.ls_redundancy_reflns_obs
        Added _reflns.observed_criterion_sigma_F
        Added _reflns.observed_criterion_sigma_I
        Added REFINE_LS_RESTR_NCS category
        Added _refine.solvent_model_details
        Added _refine.solvent_model_param_bsol
        Added _refine.solvent_model_param_ksol
;
  0.8.12 1997-01-28
;
  Changes (JDW):
        Replaced all tabs with spaces.
        Fixed instances of lines > 80 characters.
        Added 'GLX' to the enumeration list for _chem_comp.three_letter_code.
        Added 'B' and 'Z' to the enumeration list for
            _chem_comp.one_letter_code.
        Corrected definition for _cell_measurement.wavelength.
        Corrected definitions for _atom_type.scat_dispersion_imag and
        _atom_type.scat_dispersion_real.
        Corrected examples for categories: CITATION, DIFFRN_DETECTOR,
        DIFFRN_MEASUREMENT, DIFFRN_SOURCE, GEOM_HBOND, REFINE_ANALYZE,
        REFINE_LS_RESTR,
        Corrected definition for _reflns_shell.Rmerge_F_obs.
        Corrected definition for _reflns_scale.group_code.
        Changed _refine_ls_restr_ncs.weight_iso_B to
                          _refine_ls_restr_ncs.weight_B_iso.
        Corrected definitions in: _diffrn_refln.angle_[chi-theta].

        Using experimental data kindly provided by  Tom Emge,
        Shri Jain, Rachel Kramer, Jinsong Liu, and Gary Parkinson
        examples were added for the following categories:
        DIFFRN_ORIENT_MATRIX, DIFFRN_ORIENT_REFLN, DIFFRN_REFLN,
        DIFFRN_SCALE_GROUP, EXPTL, EXPTL_CRYSTAL, EXPTL_CRYSTAL_FACE,
        STRUCT_REF_SEQ, STRUCT_REF_SEQ_DIF, STRUCT_NCS_OPER,
        STRUCT_NCS_DOM, STRUCT_NCS_DOM_LIM, STRUCT_NCS_ENS,
        STRUCT_NCS_ENS_GEN, REFINE_LS_RESTR_NCS, PHASING_MIR_DER_REFLN,
        PHASING_SET, PHASING_SET_REFLN, STRUCT_MON_NUCL, STRUCT_MON_PROT,
        REFINE_HIST, ATOM_SITE_ANISOTROP, CHEM_COMP_LINK, JOURNAL, PUBL,
        CELL_MEASUREMENT_REFLN, CHEMICAL, CHEMICAL_CONN_ATOM,
        CHEMICAL_CONN_BOND, STRUCT_BIOL_VIEW, STRUCT_SITE_VIEW,
        STRUCT_MON_PROT_CIS.
        Added _exptl_crystal_face.crystal_id.
        Added items: _reflns.observed_criterion_I_min
                     _reflns.observed_criterion_I_max
                     _reflns.observed_criterion_F_max
                     _reflns.observed_criterion_F_min.
        Changed dictionary tile and data block name to the conforming
        name recommended by SRH/BMcM, cif_mm.dic.
        Restore consistency to the 'arbitrary units' suffix:
          Changed   _phasing_set_refln.F_meas_au_sigma to
                    _phasing_set_refln.F_meas_sigma_au
          Changed   _phasing_mir_der_refln.F_meas_au_sigma to
                    _phasing_mir_der_refln.F_meas_sigma_au
          Changed   _phasing_set_refln.F_meas_au_sigma to
                    _phasing_set_refln.F_meas_sigma_au
          Changed   _refln.F_meas_au_sigma to
                    _refln.F_meas_sigma_au
        Although data item names and category names are not case
        sensitive, as a matter of style certain abbreviations are
        consistently expressed in upper case (e.g. B, MIR, MAD, PDB).
        Corrected definition for category DATABASE.
        Added category ENTRY_LINK and corresponding aliases to
        CIF core category audit_link.
        Corrected alias name _refine_ls_R_I_factor.
        Added core CIF alias _diffrn_refln_crystal_id to data item
        _diffrn.crystal_id.
;
  0.9.0 1997-01-30
;
  Changes (PMDF):
  + Corrected _reflns_observed_criterion to _reflns.observed_criterion in
    a number of places
  + Aligned enumeration lists in this dictionary with those in version 2.0 of
      the core dictionary.  This involved changes in:
        _citation.coordinate_linkage
        _diffrn_radiation.xray_symbol
        _diffrn_refln.scan_mode
        _diffrn_refln.scan_mode_backgd
        _exptl.absorpt_correction_type
        _publ_manuscript_incl.extra_defn
        _refine.ls_hydrogen_treatment
        _refine.ls_structure_factor_coef
  + A number of corrections to errors pointed out by H. Bernstein
     Added category.id to _database_PDB_tvect.id
     Fixed spelling of _publ.section_exptl_soltuion
     Corrected _refine.ls_R_factor_work to
               _refine.ls_R_factor_R_work in description
     Corrected spelling of _refine_analyze.Luzaatti_d_res_low_obs in example
     Corrected spelling of _refine_analyze.Luzzatti_coordinate_error_obs in
               example
     Corrected _geom_hbond.atom_site_label_id_D to
               _geom_hbond.atom_site_id_D in example
     Corrected _geom_hbond.atom_site_label_id_H to
               _geom_hbond.atom_site_id_H in example
     Corrected _geom_hbond.atom_site_label_id_A to
               _geom_hbond.atom_site_id_A in example
     Corrected _entry_link.description to _entry_link.details
     Corrected _DIFFRN_SCALE_GROUP to DIFFRN_SCALE_GROUP in description
     Corrected _refine_ls_restr_ncs.model_details to
               _refine_ls_restr_ncs.ncs_model_details in example
     Corrected _refln.observed_criterion to _reflns.observed_criterion in
                description
     Corrected _struct_biol_view.view_id to _struct_biol_view.id in example
     Corrected _chem_comp_link.id to _chem_comp_link.link_id in example
     Corrected _chem_comp_link.comp_type_1 to
               _chem_comp_link.type_comp_1
     Corrected _chem_comp_link.comp_type_1 to
               _chem_comp_link.type_comp_1
     Corrected _entry_link.link_id to _entry_link.entry_id in description
  Changes (JDW):
     Corrections to REFINE_HIST category example and removal of a
     few misplaced colons.
;
  0.9.01 1997-01-31
;
  Changes (PMDF):
  + Removed occurrance of two or more blank lines
  + Enforced rule of no apostrophes around values for _item_sub_category.id
  + Enforced rule of no apostrophes around values for_item_default.value
  + Enforced rule of no apostrophes around values for_item.mandatory_code
      and fixed one alignment problem
  + Enforced rule of no apostrophes around values for
      _item_related.function_code and fixed a few alignment problems
  + Added _item.mandatory_code for _diffrn_refln.wavelength_id
  + Changed cifdic.c94 to cif_core.dic in _item_aliases.dictionary everywhere
  + Changed 2.0 to 2.0.1 in _item_aliases.version everywhere
  + Changed to consistent usage of kelvins instead of kelvin, got rid of
      capitalized versions
  + Removed capitalized usages of angstroms
  + Enforced rule of no apostrophes around values for _item_units.code
  + Fixed alignment problems with a few _category_key.name values
;
  1.0.00 1997-10-14
;
  Changes (PMDF):
  + Editorial changes in light of proof-reading by B. McMahon and I.D. Brown
  + No data names or enumeration values have changed, with the exception
      of the addition of the enumeration value 'other' to exptl.method
  + The bulk of the changes, which are too numerous to list there, were
      fixing spelling and grammar errors, and providing missing definitions
  + In a few cases, data definitions were reworded for clarity
  + Replaced erroneous occurances of Y~calc~ with Y~obs~ in the defintions of
      weighted R factors (Ian Tickle)
;
  2.0.01 2000-10-17
;
  Changes (JDW):
  + Integrated new definitions and extensions to existing categories.
    Additional data definitions  submitted by Kim Henrick.  Content
    of phasing definitions reviewed by Paula Fitgerald.  Content
    of refinement definitions reviewed by Dale Tronrud.  Editorial
    review by Helen Berman, John Westbrook, and Paula Fitzgerald.

    New Items included in this version:

   _phasing_MIR.d_res_high, _phasing_MIR.d_res_low, _phasing_MIR.FOM,
   _phasing_MIR.FOM_acentric, _phasing_MIR.FOM_centric, _phasing_MIR.reflns,
   _phasing_MIR.reflns_acentric, _phasing_MIR.reflns_centric,
   _phasing_MIR.reflns_criterion, _phasing_MIR_der.power_acentric,
   _phasing_MIR_der.power_centric, _phasing_MIR_der.R_cullis_acentric,
   _phasing_MIR_der.R_cullis_anomalous, _phasing_MIR_der.R_cullis_centric,
   _phasing_MIR_der.reflns_acentric, _phasing_MIR_der.reflns_anomalous,
   _phasing_MIR_der.reflns_centric, _phasing_MIR_der_site.occupancy_anom,
   _phasing_MIR_der_site.occupancy_anom_su, _phasing_MIR_der_site.occupancy_iso,
   _phasing_MIR_der_site.occupancy_iso_su, _phasing_MIR_shell.FOM_acentric,
   _phasing_MIR_shell.FOM_centric, _phasing_MIR_shell.reflns_acentric,
   _phasing_MIR_shell.reflns_anomalous, _phasing_MIR_shell.reflns_centric,
   _refine.correlation_coeff_Fo_to_Fc, _refine.correlation_coeff_Fo_to_Fc_free,
   _refine.overall_SU_B, _refine.overall_SU_ML,
   _refine.overall_SU_R_Cruickshank_DPI, _refine.overall_SU_R_free,
   _refine.overall_FOM_free_R_set, _refine.overall_FOM_work_R_set,
   _refine_analyze.RG_d_res_high, _refine_analyze.RG_d_res_low,
   _refine_analyze.RG_free, _refine_analyze.RG_work, and
   _refine_analyze.RG_free_work_ratio.

  + New categories included in this version:
     REFINE_FUNCT_MINIMIZED,REFINE_LS_RESTR_TYPE, REFLN_SYS_ABS.
  + Modification of examples for _refine_ls_restr.type

  + Contributed editorial and typographical corrections.
  + Corrected incomplete keys in categories PHASING_MAD_SET and
    DATABASE_PDB_REV_RECORD.
  + _exptl.method enumerations moved to examples.
  + Added database codes for RCSB and EBI.
  + Fixed item examples in _publ_body.label.
;
  2.0.02 2000-10-24
;
  Changes (JDW):
  +  Updated enumerations for _database_PDB_rev.mod_type.
  +  Updated enumerations for _struct_conn_type.id
  +  Corrected data type of _refine_ls_shell.percent_reflns_obs
     from int to float
  +  Updated preliminary description of _database_PDB_rev.status.
  +  Changed regular expression for float to accept trailing decimal (ie. dd.)
  +  Add () to regular expressions for code and ucode.
  +  Added L-saccharide, D-saccharide, saccharide to enumerants for
     _chem_comp.type to handle monosaccarided components where linking
     cannot be inferred.
;
  2.0.03 2000-11-09
;
  Changes (JDW):
  +  Relax regular expression for atom names to accept blanks in atom names
     in order to support nomenclature used in many existing macromolecular
     data files. Data type "atcode" has been assigned to
     _chem_comp_atom.atom_id,  _atom_site.auth_atom_id and all related items.
;
  2.0.04 2004-04-21
;
  Changes (JDW):
  + Changed working name and packaging of dictionary.
  + _reflns_shell_number_possible range data type error fixed
  + Fix syntax errors in category examples.
  + Remove nonsense zero value default values
  + Remove all default values from *_esd items
  + Make _atom_site.label_* mandatory
  + Make _atom_site.auth_asym_id mandatory
  + Make _software.citation_id optional
;
  2.0.05 2004-08-04
;
  Changes (JDW):
  + Changed data type of _refine.ls_redundancy_reflns_all,
                         _refine.ls_redundancy_reflns_obs,
                         _refine_ls_shell.redundancy_reflns_all,
                         _refine_ls_shell.redundancy_reflns_obs
    from int to float.
;
  2.0.06 2005-03-03
;
  Changes (JDW):

  + The following data items added to maintain data item correspondence
    with the CIF CORE dictionary V 2.3.  All aliases in section 1 updated
    to version 2.3.
           _atom_site.adp_type
           _atom_site.refinement_flags
           _atom_site.refinement_flags_adp
           _atom_site.refinement_flags_occupancy
           _atom_site.refinement_flags_posn
           _atom_sites.special_details
           _atom_type.scat_dispersion_source
           _audit_link.block_code
           _audit_link.block_description
           _cell.reciprocal_angle_alpha
           _cell.reciprocal_angle_beta
           _cell.reciprocal_angle_gamma
           _cell.reciprocal_angle_alpha_esd
           _cell.reciprocal_angle_beta_esd
           _cell.reciprocal_angle_gamma_esd
           _cell.reciprocal_length_a
           _cell.reciprocal_length_b
           _cell.reciprocal_length_c
           _cell.reciprocal_length_a_esd
           _cell.reciprocal_length_b_esd
           _cell.reciprocal_length_c_esd
           _cell.special_details
           _chemical.absolute_configuration
           _chemical.melting_point_gt
           _chemical.melting_point_lt
           _chemical.optical_rotation
           _chemical.properties_biological
           _chemical.properties_physical
           _chemical.temperature_decomposition
           _chemical.temperature_decomposition_esd
           _chemical.temperature_decomposition_gt
           _chemical.temperature_decomposition_lt
           _chemical.temperature_sublimation
           _chemical.temperature_sublimation_esd
           _chemical.temperature_sublimation_gt
           _chemical.temperature_sublimation_lt
           _citation.database_id_CSD
           _database.CSD_history
           _database.code_CAS
           _database.code_CSD
           _database.code_ICSD
           _database.code_MDF
           _database.code_NBS
           _database.code_PDB
           _database.code_PDF
           _database.code_depnum_ccdc_fiz
           _database.code_depnum_ccdc_journal
           _database.code_depnum_ccdc_archive
           _diffrn.ambient_pressure
           _diffrn.ambient_pressure_esd
           _diffrn.ambient_pressure_gt
           _diffrn.ambient_pressure_lt
           _diffrn.ambient_temperature
           _diffrn.ambient_temperature_esd
           _diffrn.ambient_temperature_gt
           _diffrn.ambient_temperature_lt
           _diffrn_attenuator.material
           _diffrn_detector.area_resol_mean
           _diffrn_detector.dtime
           _diffrn_refln.class_code
           _diffrn_refln.intensity_u
           _diffrn_reflns.av_unetI/netI
           _diffrn_reflns_class.av_R_eq
           _diffrn_reflns_class.av_sgI/I
           _diffrn_reflns_class.av_uI/I
           _diffrn_reflns_class.code
           _diffrn_reflns_class.description
           _diffrn_reflns_class.d_res_high
           _diffrn_reflns_class.d_res_low
           _diffrn_reflns_class.number
           _diffrn_source.take-off_angle
           _diffrn_standards.scale_u
           _exptl_crystal.colour_lustre
           _exptl_crystal.colour_modifier
           _exptl_crystal.colour_primary
           _exptl_crystal.density_meas
           _exptl_crystal.density_meas_esd
           _exptl_crystal.density_meas_gt
           _exptl_crystal.density_meas_lt
           _exptl_crystal.density_meas_temp
           _exptl_crystal.density_meas_temp_esd
           _exptl_crystal.density_meas_temp_gt
           _exptl_crystal.density_meas_temp_lt
           _geom_bond.valence
           _publ_author.id_iucr
           _refine.ls_R_factor_gt
           _refine.ls_goodness_of_fit_gt
           _refine.ls_goodness_of_fit_ref
           _refine.ls_shift/esd_max
           _refine.ls_shift/esd_mean
           _refine.ls_shift/su_max
           _refine.ls_shift/su_max_lt
           _refine.ls_shift/su_mean
           _refine.ls_shift/su_mean_lt
           _refine_ls_class.code
           _refine_ls_class.d_res_high
           _refine_ls_class.d_res_low
           _refine_ls_class.R_factor_gt
           _refine_ls_class.R_factor_all
           _refine_ls_class.R_Fsqd_factor
           _refine_ls_class.R_I_factor
           _refine_ls_class.wR_factor_all
           _refln.class_code
           _refln.d_spacing
           _refln.include_status
           _refln.mean_path_length_tbar
           _refln.observed_status
           _refln.sint/lambda
           _reflns.Friedel_coverage
           _reflns.number_gt
           _reflns_class.code
           _reflns_class.description
           _reflns_class.d_res_high
           _reflns_class.d_res_low
           _reflns_class.number_gt
           _reflns_class.number_total
           _reflns_class.R_factor_all
           _reflns_class.R_factor_gt
           _reflns_class.R_Fsqd_factor
           _reflns_class.R_I_factor
           _reflns_class.wR_factor_all
           _reflns_shell.meanI_over_sigI_gt
           _reflns_shell.meanI_over_uI_all
           _reflns_shell.meanI_over_uI_gt
           _reflns_shell.number_measured_gt
           _reflns_shell.number_unique_gt
           _reflns_shell.percent_possible_gt
           _reflns_shell.Rmerge_F_gt
           _reflns_shell.Rmerge_I_gt
           _space_group.crystal_system
           _space_group.id
           _space_group.IT_number
           _space_group.name_Hall
           _space_group.name_H-M_alt
           _space_group_symop.id
           _space_group_symop.operation_xyz
           _space_group_symop.sg_id
           _valence_param.atom_1
           _valence_param.atom_1_valence
           _valence_param.atom_2
           _valence_param.atom_2_valence
           _valence_param.B
           _valence_param.details
           _valence_param.id
           _valence_param.ref_id
           _valence_param.Ro
           _valence_ref.id
           _valence_ref.reference

  Changes (BM): 2005-03-03
    Editorial changes to accompany International Tables Volume G publication
     (B. McMahon):
  +  Fixed broken example loop for _phasing_MAD_ratio.*
  +  Expanded the definitions for _phasing_MIR_der_refln.HL_A_iso (and B, C
     and D terms) and provided literature reference
  +  Abbreviation .FOM (for figure-of-merit) consistently rendered lowercase
  +  Expanded the definitions for _refine.solvent_model_param_bsol (and
     *_ksol) and provided literature reference
  +  Rearranged the order of entries in the REFINE_ANALYZE category to
     preserve strict alphabetisation
  +  Removed _refine_ls_restr_type.U_sigma_weights from example in
     REFINE_LS_RESTR_TYPE category
  +  Commented out the incorrect example for the CHEM_COMP_LINK category
  +  For the example in the ENTITY_NAME_SYS category supplied the EC
     number and the systematic name "water"; also trimmed the irrelevant
     last line of the definition.
  +  Changed the vague 'x,x-pyranoside' example of _entity_name_sys.name
     to 'hydroquinone-beta-D-pyranoside' and matched this with 'arbutin'
     for _entity_name_com.name
  +  Removed the CAVEAT and REMARK terms (and PDB code trailers) from the
     contents pf the _database_PDB_caveat.* and *_remark.* examples in
     accordance with current PDB practice
  +  Updated reference to Tickle et al. in _refine_analyze.RG_free_work_ratio
  +  Fixed few minor typos
  +  Cosmetic reflowing of textual examples to aid typesetting
  +  Added Engh & Huber and Priestle references to example details
  +  Changed upper enumeration limit of _atom_site_attached_hydrogens to 8
     in line with current Core dictionary
  +  Added URL of PDB format description to _database_PDB_rev.mod_type
  +  Extended enumeration list of _publ.requested_category for Acta E papers
  +  Updated definition of _refine.ls_abs_structure_Flack and *_Rogers to
     reflect the more correct wording of the current Core dictionary.
  +  Added _item_range.maximum and *minimum to _refine.ls_abs_structure_Rogers
     in line with new wording of definition.

  Changes (NJA): 2005-03-03
  + Commented out duplicate save frames for following items with
  _item_aliases.version 2.0.1:
    _atom_site.refinement flags, _database.code_CAS, _database.code_CSD
    _database.code_ICSD, _database.code_MDF, _database.code_NBS
    _database.code_PDF, _diffrn.ambient_pressure, _diffrn.ambient_pressure.esd
    _diffrn_detector.dtime, _exptl_crystal.density.meas
    _exptl_crystal.density_meas_temp, _refln.mean_path_length_tbar

  Changes (BM): 2005-03-03
  + Fixed erroneous _item.name in save__diffrn.ambient_pressure_esd
  + Removed erroneous aliases to *_esd quantities in coreCIF 2.3:
    _cell_reciprocal_angle_alpha_esd, _cell_reciprocal_angle_beta_esd
    _cell_reciprocal_angle_gamma_esd, _cell_reciprocal_length_a_esd
    _cell_reciprocal_length_b_esd, _cell_reciprocal_length_c_esd
    _chemical_temperature_decomposition_esd
    _chemical_temperature_sublimation_esd
    _diffrn.ambient_pressure_esd, _diffrn_ambient_temperature_esd
    _exptl_crystal_density_meas_esd, _exptl_crystal_density_meas_temp_esd
  + Removed redundant aliases:
    _cell.special_details       ( = _cell.details)
    _diffrn.ambient_temperature ( = _diffrn.ambient_temp)
    _refine.ls_shift/esd_max    ( = _refine.ls_shift_over_esd_max)
    _refine.ls_shift/esd_mean   ( = _refine.ls_shift_over_esd_mean)
    _refln.observed_status      ( = _refln.status)
    _refln.sint/lambda          ( = _refln.sint_over_lambda)
  + Changed _refine.ls_shift/su_max to _refine.ls_shift_over_su_max
    and likewise for *_lt, *_mean and *_max_lt

Changes (NJA): 2005-03-07
+ Changed _reflns.class_d_res_low to _reflns_class.d_res_low in description of
   _reflns_class.wR_factor_all
+ Added [][] to _atom_sites.Cartn_transf_matrix, _diffrn_reflns.transf_matrix
  and _diffrn_orient_matrix.UB for consistency throughout.
+ Changed _chem_comp_link.type_1 and _2 to _chem_comp_link.type_comp_1
   and 2 in _chem_link_angle.atom_id_1 and _2
+ Changed all occurences of _diffrn.ambient_temperature to _diffrn.ambient_temp
+ Changed _diffrn_reflns.class_code to _diffrn_reflns_class.code in
   _diffrn_refln.class_code
+ Changed _geom_bond.distance to _geom_bond.dist in description of
   _geom_bond.valence.
+ Changed _refln.observed_status to _refln.status in refln.include_status
+ Changed _reflns.special_details to _reflns.details in _reflns.number_gt and
  _reflns_class.number_gt
+ Created new entry for _reflns.threshold_expression, as no entry existed and
   many item descriptions referred to _reflns_threshold_expression (these were
   then changed to _reflns.threshold_expression).
+ Changed _struct_mon_prot.alt_id, _struct_mon_prot.asym_id,
   _struct_mon_prot.comp_id and _struct_mon_prot.seq_id to
   _struct_mon_prot.label_alt_id, _struct_mon_prot.label_asym_id,
   _struct_mon_prot.label_comp_id and _struct_mon_prot.label_seq_id
   in Example 1 of _struct_mon_prot.
+ Changed _struct_site_view.view_id to _struct_site_view.id in Example 1
   of _struct_site_view.
;
  2.0.07 2005-03-03
;
  Changes (JDW) 2005-03-08
  + Changed related references to _diffrn.ambient_temperature to
    _diffrn.ambient_temp
  + Changed related references to _refln.observed_status to
      _refln.status
  + Restore original case to FOM - although case is not an issue for
    mmCIF it is an issue for XML translations.
;
  2.0.08 2005-04-06
;
  Changes (JDW) 2005-04-06
  + Added mandatory code _cell.reciprocal_angle_beta

;
  2.0.09 2005-06-27
;
  Internal dates used for housekeeping prior to release
  2005-04-13
  Changes (NJA) 2005-04-13
  + Minor corrections to spelling and punctuation.
  + pdb_group definition: Brookhaven Protein Data Bank changed to
  Protein Data Bank.

  2005-04-14
  Changes (NJA) 2005-04-14
  + Minor corrections to spelling and punctuation.
  + _atom_sites.solution_* descriptions edited so each appropriate
  to the particular data name.
  +_chem_comp.formula description edited to match that in core dictionary
  +_chem_comp.three_letter_code: several typing errors in amino-acid and
  base names corrected.
  +_chem_comp_atom.model_Cartn_z: 'The x component ...' changed to
  'The z component...'
  +_chemical.melting_point_* descriptions edited so each appropriate to the
  particular data name.
  +_chemical.temperature_decomposition_* descriptions edited so each
  appropriate to the particular data name.
  +_chemical.temperature_sublimation_* descriptions edited so each appropriate
  to the particular data name.

  2005-04-15
  Changes (NJA) 2005-04-15
  + Minor corrections to spelling and punctuation.
  +_citation.journal_id_CSD description, Brookhaven Protein Data Bank
  changed to Protein Data Bank.
  +_database.code_* entries edited so each is relevant to the particular
  data name
  +_database_PDB_matrix.scale[3][3]: description changed from 'The [1][1]
  element of the PDB SCALE matrix.'  to 'The [3][3] element of the PDB SCALE
  matrix.'
  +_diffrn.ambient_pressure_gt and _lt, descriptions edited so each is
  relevant to the particular data name.
  +_diffrn.ambient_temp_gt and _lt, descriptions edited so each is relevant
  to the particular data name.
  +_diffrn_attenuator.scale description changed to match that in the core
  dictionary.
  +_diffrn_radiation_wavelength.id: _diffrn_radiation_wavelength in description
  changed  to  _diffrn_radiation_wavelength.wavelength
  +_diffrn_reflns_class.av_sgI/I description [sum|u(net I)|/sum|net I|] changed
  to  [sum|sigma(net I)|/sum|net I|]
  +_diffrn_reflns_class.d_res_high and _low descriptions changed to match
  those in the core dictionary
  +diffrn_source Example 1  _diffrn_source.power  '50 kw, 180 mA' changed to
  _diffrn_source.power  50 and _diffrn_source.current   180
  +_exptl_crystal.density_Matthews year of reference corrected from 1960 to
  1968
  +_exptl_crystal.density_meas_gt and _lt descriptions edited so each is
  relevant to the particular data name.
  +_exptl_crystal.density_meas_temp_gt and _lt descriptions edited so each
  is relevant to the particular data name.
  +geom_contact and geom_bond Example 1 year for reference corrected from
  1991 to 1992
  +_phasing_MAD_ratio.d_res_high and low ; _phasing_MAD_set.d_res_high
  and _low; _phasing_MIR.d_res_high and low; _phasing_MIR_der.d_res_high
  and low; _phasing_MIR_der_shell.d_res_high and low;
  _phasing_MIR_shell.d_res_high and low and _refine.ls_d_res_high and low
  rephrased to correspond to similar terms in the core dictionary.
  +Spelling of Lattman corrected in references to Hendrickson, W. A. &
  Lattman, E. E. (1970). Acta Cryst. B26, 136-143.
  +Temperature factor replaced by displacement parameter throughout.
  +refine Example 2 _refine.ls_weighting_scheme
  'calc w=1/(\s^2^(F)+0.0004F^2^)' split into _refine.ls_weighting_scheme and
  _refine.ls_weighting_details
  +_refine.ls_extinction_coef and _refine.ls_extinction_method reference to
  Becker and Coppens corrected to 129-147, 148-153 (is two articles).
  +_refine.ls_restrained_S_all and _obs: Y~calc~  = the observed coefficients
   changed  toY~calc~  = the calculated coefficients

  2005-04-18
  Changes (NJA) 2005-04-18
  + Minor corrections to spelling and punctuation.
  + temperature factor changed to displacement parameter throughout
  + _refine_ls_class.R_factor_all  'and for significantly intense reflections
  (see _reflns.threshold_expression) ' removed from description.
  +  _refine_ls_class.R_factor_gt 'for all reflections' removed from
  description.
  +  _refine_ls_class.d_res_high and _low, _refine_analyze.RG_d_res_high
  and  _low, _refine_ls_shell.d_res_high and _low,
  _reflns.d_resolution_high and low,  _reflns_class.d_res_high and _low,
  _reflns_shell.d_res_high and _low definitions edited to match related
  definitions in the core dictionary
  + _refln.intensity_calc _meas, _sigma edited to match corresponding entries
  in the core dictionary
  + _reflns.Friedel_coverage in description _reflns_number_total changed to
  _reflns.number_all.
  + _reflns_class.R_factor_all 'and for significantly intense reflections (see
     _reflns.threshold_expression)' removed from description.
+  _reflns_class.R_factor_gt 'all reflections, and for' removed from description
+  _reflns_class.number_total in description: _reflns_special_details
   changed to _reflns.details

  2005-04-19
  Changes (NJA) 2005-04-19
  + Minor corrections to spelling and punctuation.
  + _valence_param.ref_id description: _valence_ref_id changed
  to _valence_ref.id
  + References to International Tables updated.

  2005-04-22
  Changes (NJA) 2005-04-22
  + _cell.reciprocal_angle_alpha, beta and gamma: descriptions edited
  so each appropriate to the particular data name.
  + _cell.reciprocal_length_a, b and c: descriptions edited so each
  appropriate to the particular data name.
  + _struct_mon_nucl.chi1 and _chi2; descriptions edited from
  `... sugar-base torsion angle chi...' to '... sugar-base torsion angle chi1'
  and '... sugar-base torsion angle chi2'

  2005-05-03
  Changes (NJA) 2005-05-03
  + several data items *_esd edited so that the description reads
  'the standard uncertainly of *', not 'the standard uncertainty of *_esd'
  + several DDL1 datanames in descriptions changed to DDL2 datanames

  2005-05-10
  Changes (NJA) 2005-05-10
  + _citation.journal_id_CSD example changed from 070 to 0070
  + Mursudov and Dodson (1997) references corrected
  + References to Cruickshank DPI updated
  + References to Luzzati (1952) corrected

  2005-06-23
  Changes (NJA) 2005-06-23
  _publ_author.email added. Corrections for IT G Chapter 4.5 included.

  2005-06-25 (BM)
  ITEM_UNITS_LIST: cosmetic changes to definitions of some units
  ITEM_UNITS_CONVERSION: multipliers in electrons per <unit> cubed terms fixed

  2005-06-27 (BM)
  Some minor editorial changes to ensure consistency with latest pdbx
  dictionary version. Only significant change:
  + in _citation.id the listing for _software.citation_id has 
    _item.mandatory_code changed to "no" to match the value in
    save__software.citation_id and to match pdbx
;

##
### EOF mmcif_std-header.dic ####
###########################################################################
#
# File:  mmcif_std-data.dic
#
#                      mmCIF Data Dictionary (standard defintions)
#
# This data dictionary contains the standard mmCIF data definitions.
#
#                           Data Section
#
#
###########################################################################



##################
## SUB_CATEGORY ##
##################

    loop_
    _sub_category.id
    _sub_category.description
              'cartesian_coordinate'
;              The collection of x, y, and z components of a position specified
               with reference to a Cartesian (orthogonal angstrom) coordinate
               system.
;
              'cartesian_coordinate_esd'
;              The collection of estimated standard deviations of the x, y, and
               z components of a position specified with reference to a
               Cartesian (orthogonal angstrom) coordinate system.
;
              'fractional_coordinate'
;              The collection of x, y, and z components of a position specified
               with reference to unit cell directions.
;
              'fractional_coordinate_esd'
;              The collection of estimated standard deviations of the x, y, and
               z components of a position specified with reference to unit cell
               directions.
;
              'matrix'
;              The collection of elements of a matrix.
;
               miller_index
;              The collection of h, k, and l components of the Miller index of
               a reflection.
;
              'cell_length'
;              The collection of a, b, and c axis lengths of a unit cell.
;
              'cell_length_esd'
;              The collection of estimated standard deviations of the a, b, and
               c axis lengths of a unit cell.
;
              'cell_angle'
;              The collection of alpha, beta, and gamma angles of a unit cell.
;
              'cell_angle_esd'
;              The collection of estimated standard deviations of the alpha,
               beta, and gamma angles of a unit cell.
;
              'mm_atom_site_auth_label'
;              The collection of asym id, atom id, comp id and seq id
               components of an author's alternative specification for
               a macromolecular atom site.
;
              'mm_atom_site_label'
;              The collection of alt id, asym id, atom id, comp id and seq id
               components of the label for a macromolecular atom site.
;
              'vector'
;              The collection of elements of a vector.
;

#########################
## CATEGORY_GROUP_LIST ##
#########################

    loop_
    _category_group_list.id
    _category_group_list.parent_id
    _category_group_list.description
              'inclusive_group'   .
;              Categories that belong to the macromolecular dictionary.
;
              'atom_group'
              'inclusive_group'
;              Categories that describe the properties of atoms.
;
              'audit_group'
              'inclusive_group'
;              Categories that describe dictionary maintenance and
               identification.
;
              'cell_group'
              'inclusive_group'
;              Categories that describe the unit cell.
;
              'chemical_group'
              'inclusive_group'
;              Categories that describe chemical properties and nomenclature.
;
              'chem_comp_group'
              'inclusive_group'
;              Categories that describe components of chemical structure.
;
              'chem_link_group'
              'inclusive_group'
;              Categories that describe links between components of
               chemical structure.
;
              'citation_group'
              'inclusive_group'
;              Categories that provide bibliographic references.
;
              'computing_group'
              'inclusive_group'
;              Categories that describe the computational details of the
               experiment.
;
              'compliance_group'
              'inclusive_group'
;              Categories that are included in this dictionary specifically to
               comply with previous dictionaries.
;
              'database_group'
              'inclusive_group'
;              Categories that hold references to entries in databases that
               contain related information.
;
              'diffrn_group'
              'inclusive_group'
;              Categories that describe details of the diffraction experiment.
;
              'entity_group'
              'inclusive_group'
;              Categories that describe chemical entities.
;
              'entry_group'
              'inclusive_group'
;              Categories that pertain to the entire data block.
;
              'exptl_group'
              'inclusive_group'
;              Categories that hold details of the experimental conditions.
;
              'geom_group'
              'inclusive_group'
;              Categories that hold details of molecular and crystal geometry.
;
              'iucr_group'
              'inclusive_group'
;              Categories that are used for manuscript submission and
               internal processing by the staff of the International Union of
               Crystallography.
;
              'pdb_group'
              'inclusive_group'
;              Categories that pertain to the file-format or data-processing
               codes used by the Protein Data Bank.
;
              'phasing_group'
              'inclusive_group'
;              Categories that describe phasing.
;
              'refine_group'
              'inclusive_group'
;              Categories that describe refinement.
;
              'refln_group'
              'inclusive_group'
;              Categories that describe the details of reflection measurements.
;
              'struct_group'
              'inclusive_group'
;              Categories that contain details about the crystallographic
               structure.
;
              'symmetry_group'
              'inclusive_group'
;              Categories that describe symmetry information.
;

####################
## ITEM_TYPE_LIST ##
####################
#
#
#  The regular expressions defined here are not compliant
#  with the POSIX 1003.2 standard as they include the
#  '\n' and '\t' special characters.  These regular expressions
#  have been tested using version 0.12 of Richard Stallman's
#  GNU regular expression library in POSIX mode.
#
#
# For some data items, a standard syntax is assumed. The syntax is
#   described for each data item in the dictionary, but is summarized here:
#
#   Names:     The family name(s) followed by a comma, precedes the first
#              name(s) or initial(s).
#
#   Telephone numbers:
#              The international code is given in brackets and any extension
#              number is preceded by 'ext'.
#
#   Dates:     In the form yyyy-mm-dd.
#
##############################################################################

    loop_
    _item_type_list.code
    _item_type_list.primitive_code
    _item_type_list.construct
    _item_type_list.detail
               code      char
               '[_,.;:"&<>()/\{}'`~!@#$%A-Za-z0-9*|+-]*'
;              code item types/single words ...
;
               ucode      uchar
               '[_,.;:"&<>()/\{}'`~!@#$%A-Za-z0-9*|+-]*'
;              code item types/single words  (case insensitive) ...
;
               line      char
               '[][ \t_(),.;:"&<>/\{}'`~!@#$%?+=*A-Za-z0-9|^-]*'
;              char item types / multi-word items ...
;
               uline      uchar
               '[][ \t_(),.;:"&<>/\{}'`~!@#$%?+=*A-Za-z0-9|^-]*'
;              char item types / multi-word items (case insensitive)...
;
               text      char
               '[][ \n\t()_,.;:"&<>/\{}'`~!@#$%?+=*A-Za-z0-9|^-]*'
;              text item types / multi-line text ...
;
               int       numb
               '-?[0-9]+'
;              int item types are the subset of numbers that are the negative
               or positive integers.
;
               float     numb
          '-?(([0-9]+)[.]?|([0-9]*[.][0-9]+))([(][0-9]+[)])?([eE][+-]?[0-9]+)?'
;              float item types are the subset of numbers that are the floating
               numbers.
;
               name      uchar
               '_[_A-Za-z0-9]+\.[][_A-Za-z0-9%-]+'
;              name item types take the form...
;
               idname    uchar
               '[_A-Za-z0-9]+'
;              idname item types take the form...
;
               any       char
               '.*'
;              A catch all for items that may take any form...
;
               yyyy-mm-dd  char
                '[0-9]?[0-9]?[0-9][0-9]-[0-9]?[0-9]-[0-9][0-9]'
;
               Standard format for CIF dates.
;
               uchar3    uchar
              '[+]?[A-Za-z0-9][A-Za-z0-9][A-Za-z0-9]'
;
               data item for 3 character codes
;
               uchar1    uchar
              '[+]?[A-Za-z0-9]'
;
               data item for 1 character codes
;
               symop    char
               '([1-9]|[1-9][0-9]|1[0-8][0-9]|19[0-2])(_[1-9][1-9][1-9])?'
;              symop item types take the form n_klm, where n refers to the
               symmetry operation that is applied to the coordinates in the
               ATOM_SITE category identified by _atom_site_label.  It must
               match a number given in _symmetry_equiv_pos_site_id.

               k, l, and m refer to the translations that are subsequently
               applied to the symmetry transformed coordinates to generate
               the atom used.  These translations (x,y,z) are related to
               (k,l,m) by
                     k = 5 + x
                     l = 5 + y
                     m = 5 + z
               By adding 5 to the translations, the use of negative numbers
               is avoided.
;
               atcode      char
               '[][ _(),.;:"&<>/\{}'`~!@#$%?+=*A-Za-z0-9|^-]*'
;              Character data type for atom names  ...
;
#####################
## ITEM_UNITS_LIST ##
#####################

    loop_
    _item_units_list.code
    _item_units_list.detail
#
     'centimetres'            'centimetres (metres * 10^( -2))'
     'millimetres'            'millimetres (metres * 10^( -3))'
     'nanometres'             'nanometres  (metres * 10^( -9))'
     'angstroms'              'angstroms   (metres * 10^(-10))'
     'picometres'             'picometres  (metres * 10^(-12))'
     'femtometres'            'femtometres (metres * 10^(-15))'
#
     'reciprocal_metres'      'reciprocal metres (metres^(-1))'
     'reciprocal_centimetres'
        'reciprocal centimetres ((metres * 10^( -2))^(-1))'
     'reciprocal_millimetres'
        'reciprocal millimetres ((metres * 10^( -3))^(-1))'
     'reciprocal_nanometres'
        'reciprocal nanometres  ((metres * 10^( -9))^(-1))'
     'reciprocal_angstroms'
        'reciprocal angstroms   ((metres * 10^(-10))^(-1))'
     'reciprocal_picometres'
        'reciprocal picometres  ((metres * 10^(-12))^(-1))'
#
     'nanometres_squared'     'nanometres squared (metres * 10^( -9))^2'
     'angstroms_squared'      'angstroms squared  (metres * 10^(-10))^2'
     '8pi2_angstroms_squared' '8pi^2 * angstroms squared (metres * 10^(-10))^2'
     'picometres_squared'     'picometres squared (metres * 10^(-12))^2'
#
     'nanometres_cubed'       'nanometres cubed (metres * 10^( -9))^3'
     'angstroms_cubed'        'angstroms cubed  (metres * 10^(-10))^3'
     'picometres_cubed'       'picometres cubed (metres * 10^(-12))^3'
#
     'kilopascals'            'kilopascals'
     'gigapascals'            'gigapascals'
#
     'hours'                  'hours'
     'minutes'                'minutes'
     'seconds'                'seconds'
     'microseconds'           'microseconds'
#
     'degrees'                'degrees (of arc)'
#
     'degrees_per_minute'     'degrees (of arc) per minute'
#
     'celsius'                'degrees (of temperature) Celsius'
     'kelvins'                'degrees (of temperature) Kelvin'
#
     'electrons'              'electrons'
#
     'electrons_squared'      'electrons squared'
#
     'electrons_per_nanometres_cubed'
; electrons per nanometres cubed (electrons/(metres * 10^( -9))^(-3))
;
     'electrons_per_angstroms_cubed'
; electrons per angstroms cubed (electrons/(metres * 10^(-10))^(-3))
;
     'electrons_per_picometres_cubed'
; electrons per picometres cubed (electrons/(metres * 10^(-12))^(-3))
;
     'kilowatts'              'kilowatts'
     'milliamperes'           'milliamperes'
     'kilovolts'              'kilovolts'
#
     'megagrams_per_cubic_metre'       'megagrams per cubic metre'
     'pixels_per_millimetre'      'pixels per millimetre'
#
     'arbitrary'
; arbitrary system of units.
;
#

    loop_
    _item_units_conversion.from_code
    _item_units_conversion.to_code
    _item_units_conversion.operator
    _item_units_conversion.factor
###
     'centimetres'              'millimetres'              '*'   1.0E+01
     'centimetres'              'nanometres'               '*'   1.0E+07
     'centimetres'              'angstroms'                '*'   1.0E+08
     'centimetres'              'picometres'               '*'   1.0E+10
     'centimetres'              'femtometres'              '*'   1.0E+13
#
     'millimetres'              'centimetres'              '*'   1.0E-01
     'millimetres'              'nanometres'               '*'   1.0E+06
     'millimetres'              'angstroms'                '*'   1.0E+07
     'millimetres'              'picometres'               '*'   1.0E+09
     'millimetres'              'femtometres'              '*'   1.0E+12
#
     'nanometres'               'centimetres'              '*'   1.0E-07
     'nanometres'               'millimetres'              '*'   1.0E-06
     'nanometres'               'angstroms'                '*'   1.0E+01
     'nanometres'               'picometres'               '*'   1.0E+03
     'nanometres'               'femtometres'              '*'   1.0E+06
#
     'angstroms'                'centimetres'              '*'   1.0E-08
     'angstroms'                'millimetres'              '*'   1.0E-07
     'angstroms'                'nanometres'               '*'   1.0E-01
     'angstroms'                'picometres'               '*'   1.0E+02
     'angstroms'                'femtometres'              '*'   1.0E+05
#
     'picometres'               'centimetres'              '*'   1.0E-10
     'picometres'               'millimetres'              '*'   1.0E-09
     'picometres'               'nanometres'               '*'   1.0E-03
     'picometres'               'angstroms'                '*'   1.0E-02
     'picometres'               'femtometres'              '*'   1.0E+03
#
     'femtometres'              'centimetres'              '*'   1.0E-13
     'femtometres'              'millimetres'              '*'   1.0E-12
     'femtometres'              'nanometres'               '*'   1.0E-06
     'femtometres'              'angstroms'                '*'   1.0E-05
     'femtometres'              'picometres'               '*'   1.0E-03
###
     'reciprocal_centimetres'   'reciprocal_millimetres'   '*'   1.0E-01
     'reciprocal_centimetres'   'reciprocal_nanometres'    '*'   1.0E-07
     'reciprocal_centimetres'   'reciprocal_angstroms'     '*'   1.0E-08
     'reciprocal_centimetres'   'reciprocal_picometres'    '*'   1.0E-10
#
     'reciprocal_millimetres'   'reciprocal_centimetres'   '*'   1.0E+01
     'reciprocal_millimetres'   'reciprocal_nanometres'    '*'   1.0E-06
     'reciprocal_millimetres'   'reciprocal_angstroms'     '*'   1.0E-07
     'reciprocal_millimetres'   'reciprocal_picometres'    '*'   1.0E-09
#
     'reciprocal_nanometres'    'reciprocal_centimetres'   '*'   1.0E+07
     'reciprocal_nanometres'    'reciprocal_millimetres'   '*'   1.0E+06
     'reciprocal_nanometres'    'reciprocal_angstroms'     '*'   1.0E-01
     'reciprocal_nanometres'    'reciprocal_picometres'    '*'   1.0E-03
#
     'reciprocal_angstroms'     'reciprocal_centimetres'   '*'   1.0E+08
     'reciprocal_angstroms'     'reciprocal_millimetres'   '*'   1.0E+07
     'reciprocal_angstroms'     'reciprocal_nanometres'    '*'   1.0E+01
     'reciprocal_angstroms'     'reciprocal_picometres'    '*'   1.0E-02
#
     'reciprocal_picometres'    'reciprocal_centimetres'   '*'   1.0E+10
     'reciprocal_picometres'    'reciprocal_millimetres'   '*'   1.0E+09
     'reciprocal_picometres'    'reciprocal_nanometres'    '*'   1.0E+03
     'reciprocal_picometres'    'reciprocal_angstroms'     '*'   1.0E+01
###
     'nanometres_squared'       'angstroms_squared'        '*'   1.0E+02
     'nanometres_squared'       'picometres_squared'       '*'   1.0E+06
#
     'angstroms_squared'        'nanometres_squared'       '*'   1.0E-02
     'angstroms_squared'        'picometres_squared'       '*'   1.0E+04
     'angstroms_squared'        '8pi2_angstroms_squared'   '*'   78.9568

#
     'picometres_squared'       'nanometres_squared'       '*'   1.0E-06
     'picometres_squared'       'angstroms_squared'        '*'   1.0E-04
###
     'nanometres_cubed'         'angstroms_cubed'          '*'   1.0E+03
     'nanometres_cubed'         'picometres_cubed'         '*'   1.0E+09
#
     'angstroms_cubed'          'nanometres_cubed'         '*'   1.0E-03
     'angstroms_cubed'          'picometres_cubed'         '*'   1.0E+06
#
     'picometres_cubed'         'nanometres_cubed'         '*'   1.0E-09
     'picometres_cubed'         'angstroms_cubed'          '*'   1.0E-06
###
     'kilopascals'              'gigapascals'              '*'   1.0E-06
     'gigapascals'              'kilopascals'              '*'   1.0E+06
###
     'hours'                    'minutes'                  '*'   6.0E+01
     'hours'                    'seconds'                  '*'   3.6E+03
     'hours'                    'microseconds'             '*'   3.6E+09
#
     'minutes'                  'hours'                    '/'   6.0E+01
     'minutes'                  'seconds'                  '*'   6.0E+01
     'minutes'                  'microseconds'             '*'   6.0E+07
#
     'seconds'                  'hours'                    '/'   3.6E+03
     'seconds'                  'minutes'                  '/'   6.0E+01
     'seconds'                  'microseconds'             '*'   1.0E+06
#
     'microseconds'             'hours'                    '/'   3.6E+09
     'microseconds'             'minutes'                  '/'   6.0E+07
     'microseconds'             'seconds'                  '/'   1.0E+06
###
     'celsius'                  'kelvins'                  '-'     273.0
     'kelvins'                  'celsius'                  '+'     273.0
###
     'electrons_per_nanometres_cubed'
     'electrons_per_angstroms_cubed'                       '*'   1.0E+03
     'electrons_per_nanometres_cubed'
     'electrons_per_picometres_cubed'                      '*'   1.0E+09
#
     'electrons_per_angstroms_cubed'
     'electrons_per_nanometres_cubed'                      '*'   1.0E-03
     'electrons_per_angstroms_cubed'
     'electrons_per_picometres_cubed'                      '*'   1.0E+06
#
     'electrons_per_picometres_cubed'
     'electrons_per_nanometres_cubed'                      '*'   1.0E-09
     'electrons_per_picometres_cubed'
     'electrons_per_angstroms_cubed'                       '*'   1.0E-06
###

### EOF mmcif_std-data.dic
###########################################################################
#
# File:  mmcif_std-def-1.dic
#
#                      mmCIF Data Dictionary (standard defintions)
#
# This data dictionary contains the standard mmCIF data definitions.
#
#                           Defintion Section 1
#
#
###########################################################################


###############
## ATOM_SITE ##
###############

save_atom_site
    _category.description
;              Data items in the ATOM_SITE category record details about
               the atom sites in a macromolecular crystal structure, such as
               the positional coordinates, atomic displacement parameters,
               magnetic moments and directions.

               The data items for describing anisotropic atomic
               displacement factors are only used if the corresponding items
               are not given in the ATOM_SITE_ANISOTROP category.
;
    _category.id                  atom_site
    _category.mandatory_code      no
    _category_key.name          '_atom_site.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'atom_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _atom_site.group_PDB
    _atom_site.type_symbol
    _atom_site.label_atom_id
    _atom_site.label_comp_id
    _atom_site.label_asym_id
    _atom_site.label_seq_id
    _atom_site.label_alt_id
    _atom_site.Cartn_x
    _atom_site.Cartn_y
    _atom_site.Cartn_z
    _atom_site.occupancy
    _atom_site.B_iso_or_equiv
    _atom_site.footnote_id
    _atom_site.auth_seq_id
    _atom_site.id
    ATOM N  N   VAL  A  11  .  25.369  30.691  11.795  1.00  17.93  .  11   1
    ATOM C  CA  VAL  A  11  .  25.970  31.965  12.332  1.00  17.75  .  11   2
    ATOM C  C   VAL  A  11  .  25.569  32.010  13.808  1.00  17.83  .  11   3
    ATOM O  O   VAL  A  11  .  24.735  31.190  14.167  1.00  17.53  .  11   4
    ATOM C  CB  VAL  A  11  .  25.379  33.146  11.540  1.00  17.66  .  11   5
    ATOM C  CG1 VAL  A  11  .  25.584  33.034  10.030  1.00  18.86  .  11   6
    ATOM C  CG2 VAL  A  11  .  23.933  33.309  11.872  1.00  17.12  .  11   7
    ATOM N  N   THR  A  12  .  26.095  32.930  14.590  1.00  18.97  4  12   8
    ATOM C  CA  THR  A  12  .  25.734  32.995  16.032  1.00  19.80  4  12   9
    ATOM C  C   THR  A  12  .  24.695  34.106  16.113  1.00  20.92  4  12  10
    ATOM O  O   THR  A  12  .  24.869  35.118  15.421  1.00  21.84  4  12  11
    ATOM C  CB  THR  A  12  .  26.911  33.346  17.018  1.00  20.51  4  12  12
    ATOM O  OG1 THR  A  12  3  27.946  33.921  16.183  0.50  20.29  4  12  13
    ATOM O  OG1 THR  A  12  4  27.769  32.142  17.103  0.50  20.59  4  12  14
    ATOM C  CG2 THR  A  12  3  27.418  32.181  17.878  0.50  20.47  4  12  15
    ATOM C  CG2 THR  A  12  4  26.489  33.778  18.426  0.50  20.00  4  12  16
    ATOM N  N   ILE  A  13  .  23.664  33.855  16.884  1.00  22.08  .  13  17
    ATOM C  CA  ILE  A  13  .  22.623  34.850  17.093  1.00  23.44  .  13  18
    ATOM C  C   ILE  A  13  .  22.657  35.113  18.610  1.00  25.77  .  13  19
    ATOM O  O   ILE  A  13  .  23.123  34.250  19.406  1.00  26.28  .  13  20
    ATOM C  CB  ILE  A  13  .  21.236  34.463  16.492  1.00  22.67  .  13  21
    ATOM C  CG1 ILE  A  13  .  20.478  33.469  17.371  1.00  22.14  .  13  22
    ATOM C  CG2 ILE  A  13  .  21.357  33.986  15.016  1.00  21.75  .  13  23
    # - - - - data truncated for brevity - - - -
    HETATM C C1 APS  C   .  1   4.171  29.012   7.116  0.58  17.27  1 300  101
    HETATM C C2 APS  C   .  1   4.949  27.758   6.793  0.58  16.95  1 300  102
    HETATM O O3 APS  C   .  1   4.800  26.678   7.393  0.58  16.85  1 300  103
    HETATM N N4 APS  C   .  1   5.930  27.841   5.869  0.58  16.43  1 300  104
    # - - - - data truncated for brevity - - - -
;
     save_

save__atom_site.aniso_B[1][1]
    _item_description.description
;              The [1][1] element of the anisotropic atomic displacement
               matrix B, which appears in the structure-factor term as:

               T = exp{-1/4 sum~i~[sum~j~(B^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.

               The IUCr Commission on Nomenclature recommends against the use
               of B for reporting atomic displacement parameters. U, being
               directly proportional to B, is preferred.
;
    _item.name                  '_atom_site.aniso_B[1][1]'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_B[1][1]_esd'
                                  associated_esd
                                '_atom_site.aniso_U[1][1]'
                                  conversion_constant
                                '_atom_site_anisotrop.U[1][1]'
                                  conversion_constant
                                '_atom_site.aniso_U[1][1]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][1]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][1]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.aniso_B[1][1]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.aniso_B[1][1].
;
    _item.name                  '_atom_site.aniso_B[1][1]_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_B[1][1]'
                                  associated_value
                                '_atom_site.aniso_U[1][1]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.U[1][1]_esd'
                                  conversion_constant
                                '_atom_site.aniso_U[1][1]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][1]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][1]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.aniso_B[1][2]
    _item_description.description
;              The [1][2] element of the anisotropic atomic displacement
               matrix B, which appears in the structure-factor term as:

               T = exp{-1/4 sum~i~[sum~j~(B^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.

               The IUCr Commission on Nomenclature recommends against the use
               of B for reporting atomic displacement parameters. U, being
               directly proportional to B, is preferred.
;
    _item.name                  '_atom_site.aniso_B[1][2]'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_B[1][2]_esd'
                                  associated_esd
                                '_atom_site.aniso_U[1][2]'
                                  conversion_constant
                                '_atom_site_anisotrop.U[1][2]'
                                  conversion_constant
                                '_atom_site.aniso_U[1][2]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][2]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][2]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.aniso_B[1][2]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.aniso_B[1][2].
;
    _item.name                  '_atom_site.aniso_B[1][2]_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_B[1][2]'
                                  associated_value
                                '_atom_site.aniso_U[1][2]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.U[1][2]_esd'
                                  conversion_constant
                                '_atom_site.aniso_U[1][2]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][2]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][2]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.aniso_B[1][3]
    _item_description.description
;              The [1][3] element of the anisotropic atomic displacement
               matrix B, which appears in the structure-factor term as:

               T = exp{-1/4 sum~i~[sum~j~(B^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.

               The IUCr Commission on Nomenclature recommends against the use
               of B for reporting atomic displacement parameters. U, being
               directly proportional to B, is preferred.
;
    _item.name                  '_atom_site.aniso_B[1][3]'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_B[1][3]_esd'
                                  associated_esd
                                '_atom_site.aniso_U[1][3]'
                                  conversion_constant
                                '_atom_site_anisotrop.U[1][3]'
                                  conversion_constant
                                '_atom_site.aniso_U[1][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][3]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.aniso_B[1][3]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.aniso_B[1][3].
;
    _item.name                  '_atom_site.aniso_B[1][3]_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_B[1][3]'
                                  associated_value
                                '_atom_site.aniso_U[1][3]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.U[1][3]_esd'
                                  conversion_constant
                                '_atom_site.aniso_U[1][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][3]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.aniso_B[2][2]
    _item_description.description
;              The [2][2] element of the anisotropic atomic displacement
               matrix B, which appears in the structure-factor term as:

               T = exp{-1/4 sum~i~[sum~j~(B^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.

               The IUCr Commission on Nomenclature recommends against the use
               of B for reporting atomic displacement parameters. U, being
               directly proportional to B, is preferred.
;
    _item.name                  '_atom_site.aniso_B[2][2]'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_B[2][2]_esd'
                                  associated_esd
                                '_atom_site.aniso_U[2][2]'
                                  conversion_constant
                                '_atom_site_anisotrop.U[2][2]'
                                  conversion_constant
                                '_atom_site.aniso_U[2][2]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[2][2]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[2][2]'
                                  alternate_exclusive
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.aniso_B[2][2]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.aniso_B[2][2].
;
    _item.name                  '_atom_site.aniso_B[2][2]_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_B[2][2]'
                                  associated_value
                                '_atom_site.aniso_U[2][2]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.U[2][2]_esd'
                                  conversion_constant
                                '_atom_site.aniso_U[2][2]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[2][2]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[2][2]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.aniso_B[2][3]
    _item_description.description
;              The [2][3] element of the anisotropic atomic displacement
               matrix B, which appears in the structure-factor term as:

               T = exp{-1/4 sum~i~[sum~j~(B^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.

               The IUCr Commission on Nomenclature recommends against the use
               of B for reporting atomic displacement parameters. U, being
               directly proportional to B, is preferred.
;
    _item.name                  '_atom_site.aniso_B[2][3]'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_B[2][3]_esd'
                                  associated_esd
                                '_atom_site.aniso_U[2][3]'
                                  conversion_constant
                                '_atom_site_anisotrop.U[2][3]'
                                  conversion_constant
                                '_atom_site.aniso_U[2][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[2][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[2][3]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.aniso_B[2][3]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.aniso_B[2][3].
;
    _item.name                  '_atom_site.aniso_B[2][3]_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_B[2][3]'
                                  associated_value
                                '_atom_site.aniso_U[2][3]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.U[2][3]_esd'
                                  conversion_constant
                                '_atom_site.aniso_U[2][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[2][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[2][3]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.aniso_B[3][3]
    _item_description.description
;              The [3][3] element of the anisotropic atomic displacement
               matrix B, which appears in the structure-factor term as:

               T = exp{-1/4 sum~i~[sum~j~(B^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.

               The IUCr Commission on Nomenclature recommends against the use
               of B for reporting atomic displacement parameters. U, being
               directly proportional to B, is preferred.
;
    _item.name                  '_atom_site.aniso_B[3][3]'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_B[3][3]_esd'
                                  associated_esd
                                '_atom_site.aniso_U[3][3]'
                                  conversion_constant
                                '_atom_site_anisotrop.U[3][3]'
                                  conversion_constant
                                '_atom_site.aniso_U[3][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[3][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[3][3]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.aniso_B[3][3]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.aniso_B[3][3].
;
    _item.name                  '_atom_site.aniso_B[3][3]_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_B[3][3]'
                                  associated_value
                                '_atom_site.aniso_U[3][3]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.U[3][3]_esd'
                                  conversion_constant
                                '_atom_site.aniso_U[3][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[3][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[3][3]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.aniso_ratio
    _item_description.description
;              Ratio of the maximum to minimum principal axes of
               displacement (thermal) ellipsoids.
;
    _item.name                  '_atom_site.aniso_ratio'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_related.related_name  '_atom_site_anisotrop.ratio'
    _item_related.function_code   alternate_exclusive
    loop_
    _item_range.maximum
    _item_range.minimum            .    1.0
                                  1.0   1.0
    _item_type.code               float
     save_

save__atom_site.aniso_U[1][1]
    _item_description.description
;              The [1][1] element of the standard anisotropic atomic
               displacement matrix U, which appears in the structure-factor
               term as:

               T = exp{-2 pi^2^ sum~i~[sum~j~(U^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.
;
    _item.name                  '_atom_site.aniso_U[1][1]'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_U[1][1]_esd'
                                  associated_esd
                                '_atom_site.aniso_B[1][1]'
                                  conversion_constant
                                '_atom_site_anisotrop.B[1][1]'
                                  conversion_constant
                                '_atom_site.aniso_B[1][1]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][1]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][1]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_squared
     save_

save__atom_site.aniso_U[1][1]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.aniso_U[1][1].
;
    _item.name                  '_atom_site.aniso_U[1][1]_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_U[1][1]'
                                  associated_value
                                '_atom_site.aniso_B[1][1]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.B[1][1]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[1][1]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][1]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][1]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__atom_site.aniso_U[1][2]
    _item_description.description
;              The [1][2] element of the standard anisotropic atomic
               displacement matrix U, which appears in the structure-factor
               term as:

               T = exp{-2 pi^2^ sum~i~[sum~j~(U^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.
;
    _item.name                  '_atom_site.aniso_U[1][2]'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_U[1][2]_esd'
                                  associated_esd
                                '_atom_site.aniso_B[1][2]'
                                  conversion_constant
                                '_atom_site_anisotrop.B[1][2]'
                                  conversion_constant
                                '_atom_site.aniso_B[1][2]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][2]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][2]'
                                  alternate_exclusive
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_squared
     save_

save__atom_site.aniso_U[1][2]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.aniso_U[1][2].
;
    _item.name                  '_atom_site.aniso_U[1][2]_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_U[1][2]'
                                  associated_value
                                '_atom_site.aniso_B[1][2]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.B[1][2]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[1][2]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][2]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][2]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__atom_site.aniso_U[1][3]
    _item_description.description
;              The [1][3] element of the standard anisotropic atomic
               displacement matrix U, which appears in the structure-factor
               term as:

               T = exp{-2 pi^2^ sum~i~[sum~j~(U^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.
;
    _item.name                  '_atom_site.aniso_U[1][3]'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_U[1][3]_esd'
                                  associated_esd
                                '_atom_site.aniso_B[1][3]'
                                  conversion_constant
                                '_atom_site_anisotrop.B[1][3]'
                                  conversion_constant
                                '_atom_site.aniso_B[1][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][3]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_squared
     save_

save__atom_site.aniso_U[1][3]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.aniso_U[1][3].
;
    _item.name                  '_atom_site.aniso_U[1][3]_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_U[1][3]'
                                  associated_value
                                '_atom_site.aniso_B[1][3]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.B[1][3]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[1][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][3]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__atom_site.aniso_U[2][2]
    _item_description.description
;              The [2][2] element of the standard anisotropic atomic
               displacement matrix U, which appears in the structure-factor
               term as:

               T = exp{-2 pi^2^ sum~i~[sum~j~(U^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.
;
    _item.name                  '_atom_site.aniso_U[2][2]'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_U[2][2]_esd'
                                  associated_esd
                                '_atom_site.aniso_B[2][2]'
                                  conversion_constant
                                '_atom_site_anisotrop.B[2][2]'
                                  conversion_constant
                                '_atom_site.aniso_B[2][2]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[2][2]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[2][2]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_squared
     save_

save__atom_site.aniso_U[2][2]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.aniso_U[2][2].
;
    _item.name                  '_atom_site.aniso_U[2][2]_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_U[2][2]'
                                  associated_value
                                '_atom_site.aniso_B[2][2]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.B[2][2]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[2][2]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[2][2]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[2][2]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__atom_site.aniso_U[2][3]
    _item_description.description
;              The [2][3] element of the standard anisotropic atomic
               displacement matrix U, which appears in the structure-factor
               term as:

               T = exp{-2 pi^2^ sum~i~[sum~j~(U^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.
;
    _item.name                  '_atom_site.aniso_U[2][3]'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_U[2][3]_esd'
                                  associated_esd
                                '_atom_site.aniso_B[2][3]'
                                  conversion_constant
                                '_atom_site_anisotrop.B[2][3]'
                                  conversion_constant
                                '_atom_site.aniso_B[2][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[2][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[2][3]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_squared
     save_

save__atom_site.aniso_U[2][3]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.aniso_U[2][3].
;
    _item.name                  '_atom_site.aniso_U[2][3]_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_U[2][3]'
                                  associated_value
                                '_atom_site.aniso_B[2][3]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.B[2][3]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[2][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[2][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[2][3]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__atom_site.aniso_U[3][3]
    _item_description.description
;              The [3][3] element of the standard anisotropic atomic
               displacement matrix U, which appears in the structure-factor
               term as:

               T = exp{-2 pi^2^ sum~i~[sum~j~(U^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.
;
    _item.name                  '_atom_site.aniso_U[3][3]'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_U[3][3]_esd'
                                  associated_esd
                                '_atom_site.aniso_B[3][3]'
                                  conversion_constant
                                '_atom_site_anisotrop.B[3][3]'
                                  conversion_constant
                                '_atom_site.aniso_B[3][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[3][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[3][3]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_squared
     save_

save__atom_site.aniso_U[3][3]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.aniso_U[3][3].
;
    _item.name                  '_atom_site.aniso_U[3][3]_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.aniso_U[3][3]'
                                  associated_value
                                '_atom_site.aniso_B[3][3]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.B[3][3]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[3][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[3][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[3][3]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__atom_site.attached_hydrogens
    _item_description.description
;              The number of hydrogen atoms attached to the atom at this site
               excluding any hydrogen atoms for which coordinates (measured or
               calculated) are given.
;
    _item.name                  '_atom_site.attached_hydrogens'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_attached_hydrogens'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           0
    loop_
    _item_range.maximum
    _item_range.minimum           8   8
                                  8   0
                                  0   0
    _item_type.code               int
    loop_
    _item_examples.case
    _item_examples.detail         2  'water oxygen'
                                  1  'hydroxyl oxygen'
                                  4  'ammonium nitrogen'
     save_

save__atom_site.auth_asym_id
    _item_description.description
;              An alternative identifier for _atom_site.label_asym_id that
               may be provided by an author in order to match the identification
               used in the publication that describes the structure.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
       '_atom_site.auth_asym_id'                     atom_site           yes
       '_geom_angle.atom_site_auth_asym_id_1'        geom_angle          no
       '_geom_angle.atom_site_auth_asym_id_2'        geom_angle          no
       '_geom_angle.atom_site_auth_asym_id_3'        geom_angle          no
       '_geom_bond.atom_site_auth_asym_id_1'         geom_bond           no
       '_geom_bond.atom_site_auth_asym_id_2'         geom_bond           no
       '_geom_contact.atom_site_auth_asym_id_1'      geom_contact        no
       '_geom_contact.atom_site_auth_asym_id_2'      geom_contact        no
       '_geom_hbond.atom_site_auth_asym_id_A'        geom_hbond          no
       '_geom_hbond.atom_site_auth_asym_id_D'        geom_hbond          no
       '_geom_hbond.atom_site_auth_asym_id_H'        geom_hbond          no
       '_geom_torsion.atom_site_auth_asym_id_1'      geom_torsion        no
       '_geom_torsion.atom_site_auth_asym_id_2'      geom_torsion        no
       '_geom_torsion.atom_site_auth_asym_id_3'      geom_torsion        no
       '_geom_torsion.atom_site_auth_asym_id_4'      geom_torsion        no
       '_struct_conf.beg_auth_asym_id'               struct_conf         no
       '_struct_conf.end_auth_asym_id'               struct_conf         no
       '_struct_conn.ptnr1_auth_asym_id'             struct_conn         no
       '_struct_conn.ptnr2_auth_asym_id'             struct_conn         no
       '_struct_mon_nucl.auth_asym_id'               struct_mon_nucl     no
       '_struct_mon_prot.auth_asym_id'               struct_mon_prot     no
       '_struct_mon_prot_cis.auth_asym_id'           struct_mon_prot_cis no
       '_struct_ncs_dom_lim.beg_auth_asym_id'        struct_ncs_dom_lim  no
       '_struct_ncs_dom_lim.end_auth_asym_id'        struct_ncs_dom_lim  no
       '_struct_sheet_range.beg_auth_asym_id'        struct_sheet_range  no
       '_struct_sheet_range.end_auth_asym_id'        struct_sheet_range  no
       '_struct_site_gen.auth_asym_id'               struct_site_gen     no
    loop_
    _item_linked.child_name
    _item_linked.parent_name
       '_geom_angle.atom_site_auth_asym_id_1'         '_atom_site.auth_asym_id'
       '_geom_angle.atom_site_auth_asym_id_2'         '_atom_site.auth_asym_id'
       '_geom_angle.atom_site_auth_asym_id_3'         '_atom_site.auth_asym_id'
       '_geom_bond.atom_site_auth_asym_id_1'          '_atom_site.auth_asym_id'
       '_geom_bond.atom_site_auth_asym_id_2'          '_atom_site.auth_asym_id'
       '_geom_contact.atom_site_auth_asym_id_1'       '_atom_site.auth_asym_id'
       '_geom_contact.atom_site_auth_asym_id_2'       '_atom_site.auth_asym_id'
       '_geom_hbond.atom_site_auth_asym_id_A'         '_atom_site.auth_asym_id'
       '_geom_hbond.atom_site_auth_asym_id_D'         '_atom_site.auth_asym_id'
       '_geom_hbond.atom_site_auth_asym_id_H'         '_atom_site.auth_asym_id'
       '_geom_torsion.atom_site_auth_asym_id_1'       '_atom_site.auth_asym_id'
       '_geom_torsion.atom_site_auth_asym_id_2'       '_atom_site.auth_asym_id'
       '_geom_torsion.atom_site_auth_asym_id_3'       '_atom_site.auth_asym_id'
       '_geom_torsion.atom_site_auth_asym_id_4'       '_atom_site.auth_asym_id'
       '_struct_conf.beg_auth_asym_id'                '_atom_site.auth_asym_id'
       '_struct_conf.end_auth_asym_id'                '_atom_site.auth_asym_id'
       '_struct_conn.ptnr1_auth_asym_id'              '_atom_site.auth_asym_id'
       '_struct_conn.ptnr2_auth_asym_id'              '_atom_site.auth_asym_id'
       '_struct_mon_nucl.auth_asym_id'                '_atom_site.auth_asym_id'
       '_struct_mon_prot.auth_asym_id'                '_atom_site.auth_asym_id'
       '_struct_mon_prot_cis.auth_asym_id'            '_atom_site.auth_asym_id'
       '_struct_ncs_dom_lim.beg_auth_asym_id'         '_atom_site.auth_asym_id'
       '_struct_ncs_dom_lim.end_auth_asym_id'         '_atom_site.auth_asym_id'
       '_struct_sheet_range.beg_auth_asym_id'         '_atom_site.auth_asym_id'
       '_struct_sheet_range.end_auth_asym_id'         '_atom_site.auth_asym_id'
       '_struct_site_gen.auth_asym_id'                '_atom_site.auth_asym_id'
    _item_sub_category.id         mm_atom_site_auth_label
    _item_type.code               code
     save_

save__atom_site.auth_atom_id
    _item_description.description
;              An alternative identifier for _atom_site.label_atom_id that
               may be provided by an author in order to match the identification
               used in the publication that describes the structure.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
       '_atom_site.auth_atom_id'                      atom_site           no
       '_geom_angle.atom_site_auth_atom_id_1'         geom_angle          no
       '_geom_angle.atom_site_auth_atom_id_2'         geom_angle          no
       '_geom_angle.atom_site_auth_atom_id_3'         geom_angle          no
       '_geom_bond.atom_site_auth_atom_id_1'          geom_bond           no
       '_geom_bond.atom_site_auth_atom_id_2'          geom_bond           no
       '_geom_contact.atom_site_auth_atom_id_1'       geom_contact        no
       '_geom_contact.atom_site_auth_atom_id_2'       geom_contact        no
       '_geom_hbond.atom_site_auth_atom_id_A'         geom_hbond          no
       '_geom_hbond.atom_site_auth_atom_id_D'         geom_hbond          no
       '_geom_hbond.atom_site_auth_atom_id_H'         geom_hbond          no
       '_geom_torsion.atom_site_auth_atom_id_1'       geom_torsion        no
       '_geom_torsion.atom_site_auth_atom_id_2'       geom_torsion        no
       '_geom_torsion.atom_site_auth_atom_id_3'       geom_torsion        no
       '_geom_torsion.atom_site_auth_atom_id_4'       geom_torsion        no
       '_struct_conn.ptnr1_auth_atom_id'              struct_conn         no
       '_struct_conn.ptnr2_auth_atom_id'              struct_conn         no
       '_struct_sheet_hbond.range_1_beg_auth_atom_id' struct_sheet_hbond  no
       '_struct_sheet_hbond.range_1_end_auth_atom_id' struct_sheet_hbond  no
       '_struct_sheet_hbond.range_2_beg_auth_atom_id' struct_sheet_hbond  no
       '_struct_sheet_hbond.range_2_end_auth_atom_id' struct_sheet_hbond  no
       '_struct_site_gen.auth_atom_id'                struct_site_gen     no
    loop_
    _item_linked.child_name
    _item_linked.parent_name
       '_geom_angle.atom_site_auth_atom_id_1'         '_atom_site.auth_atom_id'
       '_geom_angle.atom_site_auth_atom_id_2'         '_atom_site.auth_atom_id'
       '_geom_angle.atom_site_auth_atom_id_3'         '_atom_site.auth_atom_id'
       '_geom_bond.atom_site_auth_atom_id_1'          '_atom_site.auth_atom_id'
       '_geom_bond.atom_site_auth_atom_id_2'          '_atom_site.auth_atom_id'
       '_geom_contact.atom_site_auth_atom_id_1'       '_atom_site.auth_atom_id'
       '_geom_contact.atom_site_auth_atom_id_2'       '_atom_site.auth_atom_id'
       '_geom_hbond.atom_site_auth_atom_id_A'         '_atom_site.auth_atom_id'
       '_geom_hbond.atom_site_auth_atom_id_D'         '_atom_site.auth_atom_id'
       '_geom_hbond.atom_site_auth_atom_id_H'         '_atom_site.auth_atom_id'
       '_geom_torsion.atom_site_auth_atom_id_1'       '_atom_site.auth_atom_id'
       '_geom_torsion.atom_site_auth_atom_id_2'       '_atom_site.auth_atom_id'
       '_geom_torsion.atom_site_auth_atom_id_3'       '_atom_site.auth_atom_id'
       '_geom_torsion.atom_site_auth_atom_id_4'       '_atom_site.auth_atom_id'
       '_struct_conn.ptnr1_auth_atom_id'              '_atom_site.auth_atom_id'
       '_struct_conn.ptnr2_auth_atom_id'              '_atom_site.auth_atom_id'
       '_struct_sheet_hbond.range_1_beg_auth_atom_id' '_atom_site.auth_atom_id'
       '_struct_sheet_hbond.range_1_end_auth_atom_id' '_atom_site.auth_atom_id'
       '_struct_sheet_hbond.range_2_beg_auth_atom_id' '_atom_site.auth_atom_id'
       '_struct_sheet_hbond.range_2_end_auth_atom_id' '_atom_site.auth_atom_id'
       '_struct_site_gen.auth_atom_id'                '_atom_site.auth_atom_id'
    _item_sub_category.id         mm_atom_site_auth_label
    _item_type.code               atcode
     save_

save__atom_site.auth_comp_id
    _item_description.description
;              An alternative identifier for _atom_site.label_comp_id that
               may be provided by an author in order to match the identification
               used in the publication that describes the structure.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
       '_atom_site.auth_comp_id'                     atom_site           no
       '_geom_angle.atom_site_auth_comp_id_1'        geom_angle          no
       '_geom_angle.atom_site_auth_comp_id_2'        geom_angle          no
       '_geom_angle.atom_site_auth_comp_id_3'        geom_angle          no
       '_geom_bond.atom_site_auth_comp_id_1'         geom_bond           no
       '_geom_bond.atom_site_auth_comp_id_2'         geom_bond           no
       '_geom_contact.atom_site_auth_comp_id_1'      geom_contact        no
       '_geom_contact.atom_site_auth_comp_id_2'      geom_contact        no
       '_geom_hbond.atom_site_auth_comp_id_A'        geom_hbond          no
       '_geom_hbond.atom_site_auth_comp_id_D'        geom_hbond          no
       '_geom_hbond.atom_site_auth_comp_id_H'        geom_hbond          no
       '_geom_torsion.atom_site_auth_comp_id_1'      geom_torsion        no
       '_geom_torsion.atom_site_auth_comp_id_2'      geom_torsion        no
       '_geom_torsion.atom_site_auth_comp_id_3'      geom_torsion        no
       '_geom_torsion.atom_site_auth_comp_id_4'      geom_torsion        no
       '_struct_conf.beg_auth_comp_id'               struct_conf         no
       '_struct_conf.end_auth_comp_id'               struct_conf         no
       '_struct_conn.ptnr1_auth_comp_id'             struct_conn         no
       '_struct_conn.ptnr2_auth_comp_id'             struct_conn         no
       '_struct_mon_nucl.auth_comp_id'               struct_mon_nucl     no
       '_struct_mon_prot.auth_comp_id'               struct_mon_prot     no
       '_struct_mon_prot_cis.auth_comp_id'           struct_mon_prot_cis no
       '_struct_ncs_dom_lim.beg_auth_comp_id'        struct_ncs_dom_lim  no
       '_struct_ncs_dom_lim.end_auth_comp_id'        struct_ncs_dom_lim  no
       '_struct_sheet_range.beg_auth_comp_id'        struct_sheet_range  no
       '_struct_sheet_range.end_auth_comp_id'        struct_sheet_range  no
       '_struct_site_gen.auth_comp_id'               struct_site_gen     no
    loop_
    _item_linked.child_name
    _item_linked.parent_name
       '_geom_angle.atom_site_auth_comp_id_1'         '_atom_site.auth_comp_id'
       '_geom_angle.atom_site_auth_comp_id_2'         '_atom_site.auth_comp_id'
       '_geom_angle.atom_site_auth_comp_id_3'         '_atom_site.auth_comp_id'
       '_geom_bond.atom_site_auth_comp_id_1'          '_atom_site.auth_comp_id'
       '_geom_bond.atom_site_auth_comp_id_2'          '_atom_site.auth_comp_id'
       '_geom_contact.atom_site_auth_comp_id_1'       '_atom_site.auth_comp_id'
       '_geom_contact.atom_site_auth_comp_id_2'       '_atom_site.auth_comp_id'
       '_geom_hbond.atom_site_auth_comp_id_A'         '_atom_site.auth_comp_id'
       '_geom_hbond.atom_site_auth_comp_id_D'         '_atom_site.auth_comp_id'
       '_geom_hbond.atom_site_auth_comp_id_H'         '_atom_site.auth_comp_id'
       '_geom_torsion.atom_site_auth_comp_id_1'       '_atom_site.auth_comp_id'
       '_geom_torsion.atom_site_auth_comp_id_2'       '_atom_site.auth_comp_id'
       '_geom_torsion.atom_site_auth_comp_id_3'       '_atom_site.auth_comp_id'
       '_geom_torsion.atom_site_auth_comp_id_4'       '_atom_site.auth_comp_id'
       '_struct_conf.beg_auth_comp_id'                '_atom_site.auth_comp_id'
       '_struct_conf.end_auth_comp_id'                '_atom_site.auth_comp_id'
       '_struct_conn.ptnr1_auth_comp_id'              '_atom_site.auth_comp_id'
       '_struct_conn.ptnr2_auth_comp_id'              '_atom_site.auth_comp_id'
       '_struct_mon_nucl.auth_comp_id'                '_atom_site.auth_comp_id'
       '_struct_mon_prot.auth_comp_id'                '_atom_site.auth_comp_id'
       '_struct_mon_prot_cis.auth_comp_id'            '_atom_site.auth_comp_id'
       '_struct_ncs_dom_lim.beg_auth_comp_id'         '_atom_site.auth_comp_id'
       '_struct_ncs_dom_lim.end_auth_comp_id'         '_atom_site.auth_comp_id'
       '_struct_sheet_range.beg_auth_comp_id'         '_atom_site.auth_comp_id'
       '_struct_sheet_range.end_auth_comp_id'         '_atom_site.auth_comp_id'
       '_struct_site_gen.auth_comp_id'                '_atom_site.auth_comp_id'
    _item_sub_category.id         mm_atom_site_auth_label
    _item_type.code               code
     save_

save__atom_site.auth_seq_id
    _item_description.description
;              An alternative identifier for _atom_site.label_seq_id that
               may be provided by an author in order to match the identification
               used in the publication that describes the structure.

               Note that this is not necessarily a number, that the values do
               not have to be positive, and that the value does not have to
               correspond to the value of _atom_site.label_seq_id. The value
               of _atom_site.label_seq_id is required to be a sequential list
               of positive integers.

               The author may assign values to _atom_site.auth_seq_id in any
               desired way. For instance, the values may be used to relate
               this structure to a numbering scheme in a homologous structure,
               including sequence gaps or insertion codes. Alternatively, a
               scheme may be used for a truncated polymer that maintains the
               numbering scheme of the full length polymer. In all cases, the
               scheme used here must match the scheme used in the publication
               that describes the structure.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
       '_atom_site.auth_seq_id'                      atom_site           no
       '_geom_angle.atom_site_auth_seq_id_1'         geom_angle          no
       '_geom_angle.atom_site_auth_seq_id_2'         geom_angle          no
       '_geom_angle.atom_site_auth_seq_id_3'         geom_angle          no
       '_geom_bond.atom_site_auth_seq_id_1'          geom_bond           no
       '_geom_bond.atom_site_auth_seq_id_2'          geom_bond           no
       '_geom_contact.atom_site_auth_seq_id_1'       geom_contact        no
       '_geom_contact.atom_site_auth_seq_id_2'       geom_contact        no
       '_geom_hbond.atom_site_auth_seq_id_A'         geom_hbond          no
       '_geom_hbond.atom_site_auth_seq_id_D'         geom_hbond          no
       '_geom_hbond.atom_site_auth_seq_id_H'         geom_hbond          no
       '_geom_torsion.atom_site_auth_seq_id_1'       geom_torsion        no
       '_geom_torsion.atom_site_auth_seq_id_2'       geom_torsion        no
       '_geom_torsion.atom_site_auth_seq_id_3'       geom_torsion        no
       '_geom_torsion.atom_site_auth_seq_id_4'       geom_torsion        no
       '_struct_conf.beg_auth_seq_id'                struct_conf         no
       '_struct_conf.end_auth_seq_id'                struct_conf         no
       '_struct_conn.ptnr1_auth_seq_id'              struct_conn         no
       '_struct_conn.ptnr2_auth_seq_id'              struct_conn         no
       '_struct_mon_nucl.auth_seq_id'                struct_mon_nucl     no
       '_struct_mon_prot.auth_seq_id'                struct_mon_prot     no
       '_struct_mon_prot_cis.auth_seq_id'            struct_mon_prot_cis no
       '_struct_ncs_dom_lim.beg_auth_seq_id'         struct_ncs_dom_lim  no
       '_struct_ncs_dom_lim.end_auth_seq_id'         struct_ncs_dom_lim  no
       '_struct_sheet_hbond.range_1_beg_auth_seq_id' struct_sheet_hbond  no
       '_struct_sheet_hbond.range_1_end_auth_seq_id' struct_sheet_hbond  no
       '_struct_sheet_hbond.range_2_beg_auth_seq_id' struct_sheet_hbond  no
       '_struct_sheet_hbond.range_2_end_auth_seq_id' struct_sheet_hbond  no
       '_struct_sheet_range.beg_auth_seq_id'         struct_sheet_range  no
       '_struct_sheet_range.end_auth_seq_id'         struct_sheet_range  no
       '_struct_site_gen.auth_seq_id'                struct_site_gen     no
    loop_
    _item_linked.child_name
    _item_linked.parent_name
       '_geom_angle.atom_site_auth_seq_id_1'         '_atom_site.auth_seq_id'
       '_geom_angle.atom_site_auth_seq_id_2'         '_atom_site.auth_seq_id'
       '_geom_angle.atom_site_auth_seq_id_3'         '_atom_site.auth_seq_id'
       '_geom_bond.atom_site_auth_seq_id_1'          '_atom_site.auth_seq_id'
       '_geom_bond.atom_site_auth_seq_id_2'          '_atom_site.auth_seq_id'
       '_geom_contact.atom_site_auth_seq_id_1'       '_atom_site.auth_seq_id'
       '_geom_contact.atom_site_auth_seq_id_2'       '_atom_site.auth_seq_id'
       '_geom_hbond.atom_site_auth_seq_id_A'         '_atom_site.auth_seq_id'
       '_geom_hbond.atom_site_auth_seq_id_D'         '_atom_site.auth_seq_id'
       '_geom_hbond.atom_site_auth_seq_id_H'         '_atom_site.auth_seq_id'
       '_geom_torsion.atom_site_auth_seq_id_1'       '_atom_site.auth_seq_id'
       '_geom_torsion.atom_site_auth_seq_id_2'       '_atom_site.auth_seq_id'
       '_geom_torsion.atom_site_auth_seq_id_3'       '_atom_site.auth_seq_id'
       '_geom_torsion.atom_site_auth_seq_id_4'       '_atom_site.auth_seq_id'
       '_struct_conf.beg_auth_seq_id'                '_atom_site.auth_seq_id'
       '_struct_conf.end_auth_seq_id'                '_atom_site.auth_seq_id'
       '_struct_conn.ptnr1_auth_seq_id'              '_atom_site.auth_seq_id'
       '_struct_conn.ptnr2_auth_seq_id'              '_atom_site.auth_seq_id'
       '_struct_mon_nucl.auth_seq_id'                '_atom_site.auth_seq_id'
       '_struct_mon_prot.auth_seq_id'                '_atom_site.auth_seq_id'
       '_struct_mon_prot_cis.auth_seq_id'            '_atom_site.auth_seq_id'
       '_struct_ncs_dom_lim.beg_auth_seq_id'         '_atom_site.auth_seq_id'
       '_struct_ncs_dom_lim.end_auth_seq_id'         '_atom_site.auth_seq_id'
       '_struct_sheet_hbond.range_1_beg_auth_seq_id' '_atom_site.auth_seq_id'
       '_struct_sheet_hbond.range_1_end_auth_seq_id' '_atom_site.auth_seq_id'
       '_struct_sheet_hbond.range_2_beg_auth_seq_id' '_atom_site.auth_seq_id'
       '_struct_sheet_hbond.range_2_end_auth_seq_id' '_atom_site.auth_seq_id'
       '_struct_sheet_range.beg_auth_seq_id'         '_atom_site.auth_seq_id'
       '_struct_sheet_range.end_auth_seq_id'         '_atom_site.auth_seq_id'
       '_struct_site_gen.auth_seq_id'                '_atom_site.auth_seq_id'
    _item_sub_category.id         mm_atom_site_auth_label
    _item_type.code               code
     save_

save__atom_site.B_equiv_geom_mean
    _item_description.description
;              Equivalent isotropic atomic displacement parameter, B~eq~,
               in angstroms squared, calculated as the geometric mean of
               the anisotropic atomic displacement parameters.

               B~eq~ = (B~i~ B~j~ B~k~)^1/3^

               B~n~ = the principal components of the orthogonalized B^ij^

               The IUCr Commission on Nomenclature recommends against the use
               of B for reporting atomic displacement parameters. U, being
               directly proportional to B, is preferred.
;
    _item.name                  '_atom_site.B_equiv_geom_mean'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_B_equiv_geom_mean'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.B_equiv_geom_mean_esd'
                                  associated_esd
                                '_atom_site.U_equiv_geom_mean'
                                  conversion_constant
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.B_equiv_geom_mean_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.B_equiv_geom_mean.
;
    _item.name                  '_atom_site.B_equiv_geom_mean_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.B_equiv_geom_mean'
                                  associated_value
                                '_atom_site.U_equiv_geom_mean'
                                  conversion_constant
    _item_type.code               float
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.B_iso_or_equiv
    _item_description.description
;              Isotropic atomic displacement parameter, or equivalent isotropic
               atomic displacement parameter, B~eq~, calculated from the
               anisotropic displacement parameters.

               B~eq~ = (1/3) sum~i~[sum~j~(B^ij^ A~i~ A~j~ a*~i~ a*~j~)]

               A     = the real space cell lengths
               a*    = the reciprocal space cell lengths
               B^ij^ = 8 pi^2^ U^ij^

               Ref: Fischer, R. X. & Tillmanns, E. (1988). Acta Cryst. C44,
                    775-776.

               The IUCr Commission on Nomenclature recommends against the use
               of B for reporting atomic displacement parameters. U, being
               directly proportional to B, is preferred.
;
    _item.name                  '_atom_site.B_iso_or_equiv'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_B_iso_or_equiv'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    loop_
#    _item_range.maximum
#    _item_range.minimum            .    0.0
#                                  0.0   0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.B_iso_or_equiv_esd'
                                  associated_esd
                                '_atom_site.U_iso_or_equiv'
                                  conversion_constant
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.B_iso_or_equiv_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.B_iso_or_equiv.
;
    _item.name                  '_atom_site.B_iso_or_equiv_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.B_iso_or_equiv'
                                  associated_value
                                '_atom_site.U_iso_or_equiv_esd'
                                  conversion_constant
    _item_type.code               float
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site.calc_attached_atom
    _item_description.description
;              The _atom_site.id of the atom site to which the
               'geometry-calculated' atom site is attached.
;
    _item.name                  '_atom_site.calc_attached_atom'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_calc_attached_atom'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               code
     save_

save__atom_site.calc_flag
    _item_description.description
;              A standard code to signal whether the site coordinates have been
               determined from the intensities or calculated from the geometry
               of surrounding sites, or have been assigned dummy values. The
               abbreviation 'c' may be used in place of 'calc'.
;
    _item.name                  '_atom_site.calc_flag'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_calc_flag'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           d
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      d
                                 'determined from experimental measurements'
                                  calc
                                 'calculated from molecular geometry'
                                  c
                                 'abbreviation for "calc"'
                                  dum
                                 'dummy site with meaningless coordinates'
     save_

save__atom_site.Cartn_x
    _item_description.description
;              The x atom-site coordinate in angstroms specified according to
               a set of orthogonal Cartesian axes related to the cell axes as
               specified by the description given in
               _atom_sites.Cartn_transform_axes.
;
    _item.name                  '_atom_site.Cartn_x'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_Cartn_x'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_atom_site.Cartn_y'
                                '_atom_site.Cartn_z'
    _item_related.related_name  '_atom_site.Cartn_x_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         cartesian_coordinate
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__atom_site.Cartn_x_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.Cartn_x.
;
    _item.name                  '_atom_site.Cartn_x_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_atom_site.Cartn_y_esd'
                                '_atom_site.Cartn_z_esd'
    _item_related.related_name  '_atom_site.Cartn_x'
    _item_related.function_code   associated_value
    _item_sub_category.id         cartesian_coordinate_esd
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__atom_site.Cartn_y
    _item_description.description
;              The y atom-site coordinate in angstroms specified according to
               a set of orthogonal Cartesian axes related to the cell axes as
               specified by the description given in
               _atom_sites.Cartn_transform_axes.
;
    _item.name                  '_atom_site.Cartn_y'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_Cartn_y'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_atom_site.Cartn_x'
                                '_atom_site.Cartn_z'
    _item_related.related_name  '_atom_site.Cartn_y_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         cartesian_coordinate
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__atom_site.Cartn_y_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.Cartn_y.
;
    _item.name                  '_atom_site.Cartn_y_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_atom_site.Cartn_x_esd'
                                '_atom_site.Cartn_z_esd'
    _item_related.related_name  '_atom_site.Cartn_y'
    _item_related.function_code   associated_value
    _item_sub_category.id         cartesian_coordinate_esd
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__atom_site.Cartn_z
    _item_description.description
;              The z atom-site coordinate in angstroms specified according to
               a set of orthogonal Cartesian axes related to the cell axes as
               specified by the description given in
               _atom_sites.Cartn_transform_axes.
;
    _item.name                  '_atom_site.Cartn_z'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_Cartn_z'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_atom_site.Cartn_x'
                                '_atom_site.Cartn_y'
    _item_related.related_name  '_atom_site.Cartn_z_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         cartesian_coordinate
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__atom_site.Cartn_z_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.Cartn_z.
;
    _item.name                  '_atom_site.Cartn_z_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_atom_site.Cartn_x_esd'
                                '_atom_site.Cartn_y_esd'
    _item_related.related_name  '_atom_site.Cartn_z'
    _item_related.function_code   associated_value
    _item_sub_category.id         cartesian_coordinate_esd
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__atom_site.chemical_conn_number
    _item_description.description
;              This data item is a pointer to _chemical_conn_atom.number in the
               CHEMICAL_CONN_ATOM category.
;
    _item.name                  '_atom_site.chemical_conn_number'
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_chemical_conn_number'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
     save_

save__atom_site.constraints
    _item_description.description
;              A description of the constraints applied to parameters at this
               site during refinement. See also _atom_site.refinement_flags
               and _refine.ls_number_constraints.
;
    _item.name                  '_atom_site.constraints'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_constraints'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    _item_examples.case          'pop=1.0-pop(Zn3)'
     save_

save__atom_site.details
    _item_description.description
;              A description of special aspects of this site. See also
               _atom_site.refinement_flags.
;
    _item.name                  '_atom_site.details'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_description'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'Ag/Si disordered'
     save_

save__atom_site.disorder_assembly
    _item_description.description
;              A code which identifies a cluster of atoms that show long-range
               positional disorder but are locally ordered. Within each such
               cluster of atoms, _atom_site.disorder_group is used to identify
               the sites that are simultaneously occupied. This field is only
               needed if there is more than one cluster of disordered atoms
               showing independent local order.

               *** This data item would not in general be used in a
               macromolecular data block. ***
;
    _item.name                  '_atom_site.disorder_assembly'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_disorder_assembly'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               code
     save_

save__atom_site.disorder_group
    _item_description.description
;              A code which identifies a group of positionally disordered atom
               sites that are locally simultaneously occupied. Atoms that are
               positionally disordered over two or more sites (e.g. the hydrogen
               atoms of a methyl group that exists in two orientations) can
               be assigned to two or more groups. Sites belonging to the same
               group are simultaneously occupied, but those belonging to
               different groups are not. A minus prefix (e.g. '-1') is used to
               indicate sites disordered about a special position.

               *** This data item would not in general be used in a
               macromolecular data block. ***
;
    _item.name                  '_atom_site.disorder_group'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_disorder_group'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           .
    _item_type.code               code
     save_

save__atom_site.footnote_id
    _item_description.description
;              The value of _atom_site.footnote_id must match an ID
               specified by _atom_sites_footnote.id in the
               ATOM_SITES_FOOTNOTE list.
;
    _item.name                  '_atom_site.footnote_id'
    _item.mandatory_code          no
     save_

save__atom_site.fract_x
    _item_description.description
;              The x coordinate of the atom-site position specified as a
               fraction of _cell.length_a.
;
    _item.name                  '_atom_site.fract_x'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_fract_x'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_atom_site.fract_y'
                                '_atom_site.fract_z'
    _item_related.related_name  '_atom_site.fract_x_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         fractional_coordinate
    _item_type.code               float
    _item_type_conditions.code    esd
     save_

save__atom_site.fract_x_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.fract_x.
;
    _item.name                  '_atom_site.fract_x_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_atom_site.fract_y_esd'
                                '_atom_site.fract_z_esd'
    _item_related.related_name  '_atom_site.fract_x'
    _item_related.function_code   associated_value
    _item_sub_category.id         fractional_coordinate_esd
    _item_type.code               float
     save_

save__atom_site.fract_y
    _item_description.description
;              The y coordinate of the atom-site position specified as a
               fraction of _cell.length_b.
;
    _item.name                  '_atom_site.fract_y'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_fract_y'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_atom_site.fract_x'
                                '_atom_site.fract_z'
    _item_related.related_name  '_atom_site.fract_y_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         fractional_coordinate
    _item_type.code               float
    _item_type_conditions.code    esd
     save_

save__atom_site.fract_y_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.fract_y.
;
    _item.name                  '_atom_site.fract_y_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_atom_site.fract_x_esd'
                                '_atom_site.fract_z_esd'
    _item_related.related_name  '_atom_site.fract_y'
    _item_related.function_code   associated_value
    _item_sub_category.id         fractional_coordinate_esd
    _item_type.code               float
     save_

save__atom_site.fract_z
    _item_description.description
;              The z coordinate of the atom-site position specified as a
               fraction of _cell.length_c.
;
    _item.name                  '_atom_site.fract_z'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_fract_z'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_atom_site.fract_x'
                                '_atom_site.fract_y'
    _item_related.related_name  '_atom_site.fract_z_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         fractional_coordinate
    _item_type.code               float
    _item_type_conditions.code    esd
     save_

save__atom_site.fract_z_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.fract_z.
;
    _item.name                  '_atom_site.fract_z_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_atom_site.fract_x_esd'
                                '_atom_site.fract_y_esd'
    _item_related.related_name  '_atom_site.fract_z'
    _item_related.function_code   associated_value
    _item_sub_category.id         fractional_coordinate_esd
    _item_type.code               float
     save_

save__atom_site.group_PDB
    _item_description.description
;              The group of atoms to which the atom site belongs. This data
               item is provided for compatibility with the original Protein
               Data Bank format, and only for that purpose.
;
    _item.name                  '_atom_site.group_PDB'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_type.code               code
    loop_
    _item_enumeration.value       ATOM
                                  HETATM
     save_

save__atom_site.id
    _item_description.description
;              The value of _atom_site.id must uniquely identify a record in the
               ATOM_SITE list.

               Note that this item need not be a number; it can be any unique
               identifier.

               This data item was introduced to provide compatibility between
               small-molecule and macromolecular CIFs. In a small-molecule
               CIF, _atom_site_label is the identifier for the atom. In a
               macromolecular CIF, the atom identifier is the aggregate of
               _atom_site.label_alt_id, _atom_site.label_asym_id,
               _atom_site.label_atom_id, _atom_site.label_comp_id and
               _atom_site.label_seq_id. For the two types of files to be
               compatible, a formal identifier for the category had to be
               introduced that was independent of the different modes of
               identifying the atoms. For compatibility with older CIFs,
               _atom_site_label is aliased to _atom_site.id.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_atom_site.id'                 atom_site            yes
               '_atom_site_anisotrop.id'       atom_site_anisotrop  yes
               '_geom_angle.atom_site_id_1'    geom_angle           yes
               '_geom_angle.atom_site_id_2'    geom_angle           yes
               '_geom_angle.atom_site_id_3'    geom_angle           yes
               '_geom_bond.atom_site_id_1'     geom_bond            yes
               '_geom_bond.atom_site_id_2'     geom_bond            yes
               '_geom_contact.atom_site_id_1'  geom_contact         yes
               '_geom_contact.atom_site_id_2'  geom_contact         yes
               '_geom_hbond.atom_site_id_A'    geom_hbond           yes
               '_geom_hbond.atom_site_id_D'    geom_hbond           yes
               '_geom_hbond.atom_site_id_H'    geom_hbond           yes
               '_geom_torsion.atom_site_id_1'  geom_torsion         yes
               '_geom_torsion.atom_site_id_2'  geom_torsion         yes
               '_geom_torsion.atom_site_id_3'  geom_torsion         yes
               '_geom_torsion.atom_site_id_4'  geom_torsion         yes
    _item_aliases.alias_name    '_atom_site_label'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_atom_site_anisotrop.id'       '_atom_site.id'
               '_geom_angle.atom_site_id_1'    '_atom_site.id'
               '_geom_angle.atom_site_id_2'    '_atom_site.id'
               '_geom_angle.atom_site_id_3'    '_atom_site.id'
               '_geom_bond.atom_site_id_1'     '_atom_site.id'
               '_geom_bond.atom_site_id_2'     '_atom_site.id'
               '_geom_contact.atom_site_id_1'  '_atom_site.id'
               '_geom_contact.atom_site_id_2'  '_atom_site.id'
               '_geom_hbond.atom_site_id_A'    '_atom_site.id'
               '_geom_hbond.atom_site_id_D'    '_atom_site.id'
               '_geom_hbond.atom_site_id_H'    '_atom_site.id'
               '_geom_torsion.atom_site_id_1'  '_atom_site.id'
               '_geom_torsion.atom_site_id_2'  '_atom_site.id'
               '_geom_torsion.atom_site_id_3'  '_atom_site.id'
               '_geom_torsion.atom_site_id_4'  '_atom_site.id'
    _item_type.code               code
    loop_
    _item_examples.case          '5'
                                 'C12'
                                 'Ca3g28'
                                 'Fe3+17'
                                 'H*251'
                                 'boron2a'
                                 'C_a_phe_83_a_0'
                                 'Zn_Zn_301_A_0'
     save_

save__atom_site.label_alt_id
    _item_description.description
;              A component of the identifier for this atom site.
               For further details, see the definition of the ATOM_SITE_ALT
               category.

               This data item is a pointer to _atom_sites_alt.id in the
               ATOM_SITES_ALT category.
;
    _item.name                  '_atom_site.label_alt_id'
    _item.mandatory_code          yes
    _item_sub_category.id         mm_atom_site_label
     save_

save__atom_site.label_asym_id
    _item_description.description
;              A component of the identifier for this atom site.
               For further details, see the definition of the STRUCT_ASYM
               category.

               This data item is a pointer to _struct_asym.id in the
               STRUCT_ASYM category.
;
    _item.name                  '_atom_site.label_asym_id'
    _item.mandatory_code          yes
    _item_sub_category.id         mm_atom_site_label
     save_

save__atom_site.label_atom_id
    _item_description.description
;              A component of the identifier for this atom site.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_atom_site.label_atom_id'
    _item.mandatory_code          yes
    _item_sub_category.id         mm_atom_site_label
     save_

save__atom_site.label_comp_id
    _item_description.description
;              A component of the identifier for this atom site.

               This data item is a pointer to _chem_comp.id in the CHEM_COMP
               category.
;
    _item.name                  '_atom_site.label_comp_id'
    _item.mandatory_code          yes
    _item_sub_category.id         mm_atom_site_label
     save_

save__atom_site.label_entity_id
    _item_description.description
;              This data item is a pointer to _entity.id in the ENTITY category.
;
    _item.name                  '_atom_site.label_entity_id'
    _item.mandatory_code          yes
     save_

save__atom_site.label_seq_id
    _item_description.description
;              This data item is a pointer to _entity_poly_seq.num in the
               ENTITY_POLY_SEQ category.
;
    _item.name                  '_atom_site.label_seq_id'
    _item.mandatory_code          yes
     save_

save__atom_site.occupancy
    _item_description.description
;              The fraction of the atom type present at this site.
               The sum of the occupancies of all the atom types at this site
               may not significantly exceed 1.0 unless it is a dummy site.
;
    _item.name                  '_atom_site.occupancy'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_occupancy'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1.0
# JDW 17-Apr-2003  - Unsupportable restriction.
#    loop_
#    _item_range.maximum
#    _item_range.minimum           1.0   1.0
#                                  1.0   0.0
#                                  0.0   0.0
    _item_related.related_name  '_atom_site.occupancy_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
     save_

save__atom_site.occupancy_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.occupancy.
;
    _item.name                  '_atom_site.occupancy_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_atom_site.occupancy'
    _item_related.function_code   associated_value
    _item_type.code               float
     save_

#save__atom_site.refinement_flags
#    _item_description.description
#;              A concatenated series of single-letter codes which indicate the
#               refinement restraints or constraints applied to this site.
#;
#    _item.name                  '_atom_site.refinement_flags'
#    _item.category_id             atom_site
#    _item.mandatory_code          no
#   _item_aliases.alias_name    '_atom_site_refinement_flags'
#    _item_aliases.dictionary      cif_core.dic
#    _item_aliases.version         2.0.1
#    _item_type.code               ucode
#    loop_
#    _item_enumeration.value
#    _item_enumeration.detail      .
#                                 'no refinement constraints'
#                                  S
#                                 'special-position constraint on site'
#                                  G
#                                 'rigid-group refinement of site'
#                                  R
#                                 'riding atom site attached to non-riding atom'
#                                  D
#                                 'distance or angle restraint on site'
#                                  T
#                                 'thermal displacement constraints'
#                                  U
#                                 'Uiso or Uij restraint (rigid bond)'
#                                  P
#                                 'partial occupancy constraint'
#     save_

save__atom_site.restraints
    _item_description.description
;              A description of restraints applied to specific parameters at
               this site during refinement. See also _atom_site.refinement_flags
               and _refine.ls_number_restraints.
;
    _item.name                  '_atom_site.restraints'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_restraints'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'restrained to planar ring'
     save_

save__atom_site.symmetry_multiplicity
    _item_description.description
;              The multiplicity of a site due to the space-group symmetry as is
               given in International Tables for Crystallography Vol. A (2002).
;
    _item.name                  '_atom_site.symmetry_multiplicity'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_symmetry_multiplicity'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           192   192
                                  192     1
                                    1     1
    _item_type.code               int
     save_

save__atom_site.thermal_displace_type
    _item_description.description
;              A standard code used to describe the type of atomic displacement
               parameters used for the site.
;
    _item.name                  '_atom_site.thermal_displace_type'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_thermal_displace_type'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      Uani  'anisotropic Uij'
                                  Uiso  'isotropic U'
                                  Uovl  'overall U'
                                  Umpe  'multipole expansion U'
                                  Bani  'anisotropic Bij'
                                  Biso  'isotropic B'
                                  Bovl  'overall B'
     save_

save__atom_site.type_symbol
    _item_description.description
;              This data item is a pointer to _atom_type.symbol in the
               ATOM_TYPE category.
;
    _item.name                  '_atom_site.type_symbol'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_atom_site_type_symbol'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
     save_

save__atom_site.U_equiv_geom_mean
    _item_description.description
;              Equivalent isotropic atomic displacement parameter, U~eq~,
               in angstroms squared, calculated as the geometric mean of
               the anisotropic atomic displacement parameters.

               U~eq~ = (U~i~ U~j~ U~k~)^1/3^

               U~n~ = the principal components of the orthogonalized U^ij^
;
    _item.name                  '_atom_site.U_equiv_geom_mean'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_U_equiv_geom_mean'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           10.0   10.0
                                  10.0    0.0
                                   0.0    0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.U_equiv_geom_mean_esd'
                                  associated_esd
                                '_atom_site.B_equiv_geom_mean'
                                  conversion_constant
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_squared
     save_

save__atom_site.U_equiv_geom_mean_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.U_equiv_geom_mean.
;
    _item.name                  '_atom_site.U_equiv_geom_mean_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.U_equiv_geom_mean'
                                  associated_value
                                '_atom_site.B_equiv_geom_mean'
                                  conversion_constant
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__atom_site.U_iso_or_equiv
    _item_description.description
;              Isotropic atomic displacement parameter, or equivalent isotropic
               atomic  displacement parameter, U~eq~, calculated from
               anisotropic atomic displacement  parameters.

               U~eq~ = (1/3) sum~i~[sum~j~(U^ij^ A~i~ A~j~ a*~i~ a*~j~)]

               A  = the real space cell lengths
               a* = the reciprocal space cell lengths

               Ref: Fischer, R. X. & Tillmanns, E. (1988). Acta Cryst. C44,
                    775-776.
;
    _item.name                  '_atom_site.U_iso_or_equiv'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_U_iso_or_equiv'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           10.0   10.0
                                  10.0    0.0
                                   0.0    0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.U_iso_or_equiv_esd'
                                  associated_esd
                                '_atom_site.B_iso_or_equiv'
                                  conversion_constant
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_squared
     save_

save__atom_site.U_iso_or_equiv_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site.U_iso_or_equiv.
;
    _item.name                  '_atom_site.U_iso_or_equiv_esd'
    _item.category_id             atom_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site.U_iso_or_equiv'
                                  associated_value
                                '_atom_site.B_iso_or_equiv_esd'
                                  conversion_constant
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__atom_site.Wyckoff_symbol
    _item_description.description
;              The Wyckoff symbol (letter) as listed in the space-group tables
               of International Tables for Crystallography, Vol. A (2002).
;
    _item.name                  '_atom_site.Wyckoff_symbol'
    _item.category_id             atom_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_Wyckoff_symbol'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

#########################
## ATOM_SITE_ANISOTROP ##
#########################

save_atom_site_anisotrop
    _category.description
;              Data items in the ATOM_SITE_ANISOTROP category record details
               about anisotropic displacement parameters.
               If the ATOM_SITE_ANISOTROP category is used for storing these
               data, the corresponding ATOM_SITE data items are not used.
;
    _category.id                  atom_site_anisotrop
    _category.mandatory_code      no
    _category_key.name          '_atom_site_anisotrop.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'atom_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on NDB structure BDL005 of Holbrook, Dickerson &
                Kim [Acta Cryst. (1985), B41, 255-262].
;
;
    loop_
    _atom_site_anisotrop.id
    _atom_site_anisotrop.type_symbol
    _atom_site_anisotrop.U[1][1]
    _atom_site_anisotrop.U[1][2]
    _atom_site_anisotrop.U[1][3]
    _atom_site_anisotrop.U[2][2]
    _atom_site_anisotrop.U[2][3]
    _atom_site_anisotrop.U[3][3]
     1  O   8642   4866   7299   -342   -258  -1427
     2  C   5174   4871   6243  -1885  -2051  -1377
     3  C   6202   5020   4395  -1130   -556   -632
     4  O   4224   4700   5046   1105   -161    345
     5  C   8684   4688   4171  -1850   -433   -292
     6  O  11226   5255   3532   -341   2685   1328
     7  C  10214   2428   5614  -2610  -1940    902
     8  C   4590   3488   5827    751   -770    986
     9  N   5014   4434   3447    -17  -1593    539
    # ----   abbreviated  ----
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__atom_site_anisotrop.B[1][1]
    _item_description.description
;              The [1][1] element of the anisotropic atomic displacement
               matrix B, which appears in the structure-factor term as:

               T = exp{-1/4 sum~i~[sum~j~(B^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.

               The IUCr Commission on Nomenclature recommends against the use
               of B for reporting atomic displacement parameters. U, being
               directly proportional to B, is preferred.
;
    _item.name                  '_atom_site_anisotrop.B[1][1]'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_aniso_B_11'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.B[1][1]_esd'
                                  associated_esd
                                '_atom_site.aniso_U[1][1]'
                                  conversion_constant
                                '_atom_site_anisotrop.U[1][1]'
                                  conversion_constant
                                '_atom_site.aniso_B[1][1]'
                                  alternate_exclusive
                                '_atom_site.aniso_U[1][1]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][1]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site_anisotrop.B[1][1]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site_anisotrop.B[1][1].
;
    _item.name                  '_atom_site_anisotrop.B[1][1]_esd'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.B[1][1]'
                                  associated_value
                                '_atom_site.aniso_U[1][1]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.U[1][1]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[1][1]_esd'
                                  alternate_exclusive
                                '_atom_site.aniso_U[1][1]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][1]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site_anisotrop.B[1][2]
    _item_description.description
;              The [1][2] element of the anisotropic atomic displacement
               matrix B, which appears in the structure-factor term as:

               T = exp{-1/4 sum~i~[sum~j~(B^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.

               The IUCr Commission on Nomenclature recommends against the use
               of B for reporting atomic displacement parameters. U, being
               directly proportional to B, is preferred.
;
    _item.name                  '_atom_site_anisotrop.B[1][2]'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_aniso_B_12'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.B[1][2]_esd'
                                  associated_esd
                                '_atom_site.aniso_U[1][2]'
                                  conversion_constant
                                '_atom_site_anisotrop.U[1][2]'
                                  conversion_constant
                                '_atom_site.aniso_B[1][2]'
                                  alternate_exclusive
                                '_atom_site.aniso_U[1][2]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][2]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site_anisotrop.B[1][2]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site_anisotrop.B[1][2].
;
    _item.name                  '_atom_site_anisotrop.B[1][2]_esd'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.B[1][2]'
                                  associated_value
                                '_atom_site.aniso_U[1][2]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.U[1][2]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[1][2]_esd'
                                  alternate_exclusive
                                '_atom_site.aniso_U[1][2]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][2]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site_anisotrop.B[1][3]
    _item_description.description
;              The [1][3] element of the anisotropic atomic displacement
               matrix B, which appears in the structure-factor term as:

               T = exp{-1/4 sum~i~[sum~j~(B^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.

               The IUCr Commission on Nomenclature recommends against the use
               of B for reporting atomic displacement parameters. U, being
               directly proportional to B, is preferred.
;
    _item.name                  '_atom_site_anisotrop.B[1][3]'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_aniso_B_13'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.B[1][3]_esd'
                                  associated_esd
                                '_atom_site.aniso_U[1][3]'
                                  conversion_constant
                                '_atom_site_anisotrop.U[1][3]'
                                  conversion_constant
                                '_atom_site.aniso_B[1][3]'
                                  alternate_exclusive
                                '_atom_site.aniso_U[1][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][3]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site_anisotrop.B[1][3]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site_anisotrop.B[1][3].
;
    _item.name                  '_atom_site_anisotrop.B[1][3]_esd'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.B[1][3]'
                                  associated_value
                                '_atom_site.aniso_U[1][3]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.U[1][3]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[1][3]_esd'
                                  alternate_exclusive
                                '_atom_site.aniso_U[1][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[1][3]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site_anisotrop.B[2][2]
    _item_description.description
;              The [2][2] element of the anisotropic atomic displacement
               matrix B, which appears in the structure-factor term as:

               T = exp{-1/4 sum~i~[sum~j~(B^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.

               The IUCr Commission on Nomenclature recommends against the use
               of B for reporting atomic displacement parameters. U, being
               directly proportional to B, is preferred.
;
    _item.name                  '_atom_site_anisotrop.B[2][2]'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_aniso_B_22'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.B[2][2]_esd'
                                  associated_esd
                                '_atom_site.aniso_U[2][2]'
                                  conversion_constant
                                '_atom_site_anisotrop.U[2][2]'
                                  conversion_constant
                                '_atom_site.aniso_B[2][2]'
                                  alternate_exclusive
                                '_atom_site.aniso_U[2][2]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[2][2]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site_anisotrop.B[2][2]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site_anisotrop.B[2][2].
;
    _item.name                  '_atom_site_anisotrop.B[2][2]_esd'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.B[2][2]'
                                  associated_value
                                '_atom_site.aniso_U[2][2]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.U[2][2]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[2][2]_esd'
                                  alternate_exclusive
                                '_atom_site.aniso_U[2][2]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[2][2]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site_anisotrop.B[2][3]
    _item_description.description
;              The [2][3] element of the anisotropic atomic displacement
               matrix B, which appears in the structure-factor term as:

               T = exp{-1/4 sum~i~[sum~j~(B^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.

               The IUCr Commission on Nomenclature recommends against the use
               of B for reporting atomic displacement parameters. U, being
               directly proportional to B, is preferred.
;
    _item.name                  '_atom_site_anisotrop.B[2][3]'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_aniso_B_23'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.B[2][3]_esd'
                                  associated_esd
                                '_atom_site.aniso_U[2][3]'
                                  conversion_constant
                                '_atom_site_anisotrop.U[2][3]'
                                  conversion_constant
                                '_atom_site.aniso_B[2][3]'
                                  alternate_exclusive
                                '_atom_site.aniso_U[2][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[2][3]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site_anisotrop.B[2][3]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site_anisotrop.B[2][3].
;
    _item.name                  '_atom_site_anisotrop.B[2][3]_esd'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.B[2][3]'
                                  associated_value
                                '_atom_site.aniso_U[2][3]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.U[2][3]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[2][3]_esd'
                                  alternate_exclusive
                                '_atom_site.aniso_U[2][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[2][3]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site_anisotrop.B[3][3]
    _item_description.description
;              The [3][3] element of the anisotropic atomic displacement
               matrix B, which appears in the structure-factor term as:

               T = exp{-1/4 sum~i~[sum~j~(B^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.

               The IUCr Commission on Nomenclature recommends against the use
               of B for reporting atomic displacement parameters. U, being
               directly proportional to B, is preferred.
;
    _item.name                  '_atom_site_anisotrop.B[3][3]'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_aniso_B_33'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.B[3][3]_esd'
                                  associated_esd
                                '_atom_site.aniso_U[3][3]'
                                  conversion_constant
                                '_atom_site_anisotrop.U[3][3]'
                                  conversion_constant
                                '_atom_site.aniso_B[3][3]'
                                  alternate_exclusive
                                '_atom_site.aniso_U[3][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[3][3]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site_anisotrop.B[3][3]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site_anisotrop.B[3][3].
;
    _item.name                  '_atom_site_anisotrop.B[3][3]_esd'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.B[3][3]'
                                  associated_value
                                '_atom_site.aniso_U[3][3]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.U[3][3]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[3][3]_esd'
                                  alternate_exclusive
                                '_atom_site.aniso_U[3][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.U[3][3]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              8pi2_angstroms_squared
     save_

save__atom_site_anisotrop.ratio
    _item_description.description
;              Ratio of the maximum to minimum principal axes of
               displacement (thermal) ellipsoids.
;
    _item.name                  '_atom_site_anisotrop.ratio'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_aniso_ratio'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1

    loop_
    _item_range.maximum
    _item_range.minimum            .    1.0
                                  1.0   1.0
    _item_related.related_name  '_atom_site.aniso_ratio'
    _item_related.function_code   alternate_exclusive
    _item_type.code               float
     save_

save__atom_site_anisotrop.id
    _item_description.description
;              This data item is a pointer to _atom_site.id in the ATOM_SITE
               category.
;
    _item.name                  '_atom_site_anisotrop.id'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_atom_site_aniso_label'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
     save_

save__atom_site_anisotrop.type_symbol
    _item_description.description
;              This data item is a pointer to _atom_type.symbol in the
               ATOM_TYPE category.
;
    _item.name                  '_atom_site_anisotrop.type_symbol'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_atom_site_aniso_type_symbol'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
     save_

save__atom_site_anisotrop.U[1][1]
    _item_description.description
;              The [1][1] element of the standard anisotropic atomic
               displacement matrix U, which appears in the structure-factor
               term as:

               T = exp{-2 pi^2^ sum~i~[sum~j~(U^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.
;
    _item.name                  '_atom_site_anisotrop.U[1][1]'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_aniso_U_11'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.U[1][1]_esd'
                                  associated_esd
                                '_atom_site.aniso_B[1][1]'
                                  conversion_constant
                                '_atom_site_anisotrop.B[1][1]'
                                  conversion_constant
                                '_atom_site.aniso_B[1][1]'
                                  alternate_exclusive
                                '_atom_site.aniso_U[1][1]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][1]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_squared
     save_

save__atom_site_anisotrop.U[1][1]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site_anisotrop.U[1][1].
;
    _item.name                  '_atom_site_anisotrop.U[1][1]_esd'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.U[1][1]'
                                  associated_value
                                '_atom_site.aniso_B[1][1]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.B[1][1]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[1][1]_esd'
                                  alternate_exclusive
                                '_atom_site.aniso_U[1][1]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][1]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__atom_site_anisotrop.U[1][2]
    _item_description.description
;              The [1][2] element of the standard anisotropic atomic
               displacement matrix U, which appears in the structure-factor
               term as:

               T = exp{-2 pi^2^ sum~i~[sum~j~(U^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.
;
    _item.name                  '_atom_site_anisotrop.U[1][2]'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_aniso_U_12'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.U[1][2]_esd'
                                  associated_esd
                                '_atom_site.aniso_B[1][2]'
                                  conversion_constant
                                '_atom_site_anisotrop.B[1][2]'
                                  conversion_constant
                                '_atom_site.aniso_B[1][2]'
                                  alternate_exclusive
                                '_atom_site.aniso_U[1][2]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][2]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_squared
     save_

save__atom_site_anisotrop.U[1][2]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site_anisotrop.U[1][2].
;
    _item.name                  '_atom_site_anisotrop.U[1][2]_esd'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.U[1][2]'
                                  associated_value
                                '_atom_site.aniso_B[1][2]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.B[1][2]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[1][2]_esd'
                                  alternate_exclusive
                                '_atom_site.aniso_U[1][2]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][2]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__atom_site_anisotrop.U[1][3]
    _item_description.description
;              The [1][3] element of the standard anisotropic atomic
               displacement matrix U, which appears in the structure-factor
               term as:

               T = exp{-2 pi^2^ sum~i~[sum~j~(U^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.
;
    _item.name                  '_atom_site_anisotrop.U[1][3]'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_aniso_U_13'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.U[1][3]_esd'
                                  associated_esd
                                '_atom_site.aniso_B[1][3]'
                                  conversion_constant
                                '_atom_site_anisotrop.B[1][3]'
                                  conversion_constant
                                '_atom_site.aniso_B[1][3]'
                                  alternate_exclusive
                                '_atom_site.aniso_U[1][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][3]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_squared
     save_

save__atom_site_anisotrop.U[1][3]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site_anisotrop.U[1][3].
;
    _item.name                  '_atom_site_anisotrop.U[1][3]_esd'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.U[1][3]'
                                  associated_value
                                '_atom_site.aniso_B[1][3]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.B[1][3]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[1][3]_esd'
                                  alternate_exclusive
                                '_atom_site.aniso_U[1][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[1][3]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__atom_site_anisotrop.U[2][2]
    _item_description.description
;              The [2][2] element of the standard anisotropic atomic
               displacement matrix U, which appears in the structure-factor
               term as:

               T = exp{-2 pi^2^ sum~i~[sum~j~(U^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.
;
    _item.name                  '_atom_site_anisotrop.U[2][2]'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_aniso_U_22'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.U[2][2]_esd'
                                  associated_esd
                                '_atom_site.aniso_B[2][2]'
                                  conversion_constant
                                '_atom_site_anisotrop.B[2][2]'
                                  conversion_constant
                                '_atom_site.aniso_B[2][2]'
                                  alternate_exclusive
                                '_atom_site.aniso_U[2][2]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[2][2]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_squared
     save_

save__atom_site_anisotrop.U[2][2]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site_anisotrop.U[2][2].
;
    _item.name                  '_atom_site_anisotrop.U[2][2]_esd'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.U[2][2]'
                                  associated_value
                                '_atom_site.aniso_B[2][2]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.B[2][2]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[2][2]_esd'
                                  alternate_exclusive
                                '_atom_site.aniso_U[2][2]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[2][2]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__atom_site_anisotrop.U[2][3]
    _item_description.description
;              The [2][3] element of the standard anisotropic atomic
               displacement matrix U, which appears in the structure-factor
               term as:

               T = exp{-2 pi^2^ sum~i~[sum~j~(U^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.
;
    _item.name                  '_atom_site_anisotrop.U[2][3]'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_aniso_U_23'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.U[2][3]_esd'
                                  associated_esd
                                '_atom_site.aniso_B[2][3]'
                                  conversion_constant
                                '_atom_site_anisotrop.B[2][3]'
                                  conversion_constant
                                '_atom_site.aniso_B[2][3]'
                                  alternate_exclusive
                                '_atom_site.aniso_U[2][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[2][3]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_squared
     save_

save__atom_site_anisotrop.U[2][3]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site_anisotrop.U[2][3].
;
    _item.name                  '_atom_site_anisotrop.U[2][3]_esd'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.U[2][3]'
                                  associated_value
                                '_atom_site.aniso_B[2][3]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.B[2][3]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[2][3]_esd'
                                  alternate_exclusive
                                '_atom_site.aniso_U[2][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[2][3]_esd'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__atom_site_anisotrop.U[3][3]
    _item_description.description
;              The [3][3] element of the standard anisotropic atomic
               displacement matrix U, which appears in the structure-factor
               term as:

               T = exp{-2 pi^2^ sum~i~[sum~j~(U^ij^ h~i~ h~j~ a*~i~ a*~j~)]}

               h  = the Miller indices
               a* = the reciprocal space cell lengths

               These matrix elements may appear with atomic coordinates
               in the ATOM_SITE category, or they may appear in the separate
               ATOM_SITE_ANISOTROP category, but they may not appear in both
               places. Similarly, anisotropic displacements may appear as
               either B's or U's, but not as both.

               The unique elements of the real symmetric matrix are
               entered by row.
;
    _item.name                  '_atom_site_anisotrop.U[3][3]'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_site_aniso_U_33'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.U[3][3]_esd'
                                  associated_esd
                                '_atom_site.aniso_B[3][3]'
                                  conversion_constant
                                '_atom_site_anisotrop.B[3][3]'
                                  conversion_constant
                                '_atom_site.aniso_B[3][3]'
                                  alternate_exclusive
                                '_atom_site.aniso_U[3][3]'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[3][3]'
                                  alternate_exclusive
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_squared
     save_

save__atom_site_anisotrop.U[3][3]_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _atom_site_anisotrop.U[3][3].
;
    _item.name                  '_atom_site_anisotrop.U[3][3]_esd'
    _item.category_id             atom_site_anisotrop
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_atom_site_anisotrop.U[3][3]'
                                  associated_value
                                '_atom_site.aniso_B[3][3]_esd'
                                  conversion_constant
                                '_atom_site_anisotrop.B[3][3]_esd'
                                  conversion_constant
                                '_atom_site.aniso_B[3][3]_esd'
                                  alternate_exclusive
                                '_atom_site.aniso_U[3][3]_esd'
                                  alternate_exclusive
                                '_atom_site_anisotrop.B[3][3]_esd'
                                  alternate_exclusive
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

################
## ATOM_SITES ##
################

save_atom_sites
    _category.description
;              Data items in the ATOM_SITES category record details about
               the crystallographic cell and cell transformations, which are
               common to all atom sites.
;
    _category.id                  atom_sites
    _category.mandatory_code      no
    _category_key.name          '_atom_sites.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'atom_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _atom_sites.entry_id                   '5HVP'
    _atom_sites.Cartn_transform_axes
                         'c along z, astar along x, b along y'
    _atom_sites.Cartn_transf_matrix[1][1]  58.39
    _atom_sites.Cartn_transf_matrix[1][2]   0.00
    _atom_sites.Cartn_transf_matrix[1][3]   0.00
    _atom_sites.Cartn_transf_matrix[2][1]   0.00
    _atom_sites.Cartn_transf_matrix[2][2]  86.70
    _atom_sites.Cartn_transf_matrix[2][3]   0.00
    _atom_sites.Cartn_transf_matrix[3][1]   0.00
    _atom_sites.Cartn_transf_matrix[3][2]   0.00
    _atom_sites.Cartn_transf_matrix[3][3]  46.27
    _atom_sites.Cartn_transf_vector[1]      0.00
    _atom_sites.Cartn_transf_vector[2]      0.00
    _atom_sites.Cartn_transf_vector[3]      0.00
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__atom_sites.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_atom_sites.entry_id'
    _item.mandatory_code          yes
     save_

save__atom_sites.Cartn_transf_matrix[1][1]
    _item_description.description
;              The [1][1] element of the 3x3 matrix used to transform
               fractional coordinates in the ATOM_SITE category to Cartesian
               coordinates in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.Cartn_transf_vector[].

               |x'|              |11 12 13| |x|               |1|
               |y'|~Cartesian~ = |21 22 23| |y|~fractional~ + |2|
               |z'|              |31 32 33| |z|               |3|
;
    _item.name                  '_atom_sites.Cartn_transf_matrix[1][1]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_Cartn_tran_matrix_11'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.Cartn_transf_matrix[1][2]
    _item_description.description
;              The [1][2] element of the 3x3 matrix used to transform
               fractional coordinates in the ATOM_SITE category to Cartesian
               coordinates in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.Cartn_transf_vector[].

               |x'|              |11 12 13| |x|               |1|
               |y'|~Cartesian~ = |21 22 23| |y|~fractional~ + |2|
               |z'|              |31 32 33| |z|               |3|
;
    _item.name                  '_atom_sites.Cartn_transf_matrix[1][2]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_Cartn_tran_matrix_12'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.Cartn_transf_matrix[1][3]
    _item_description.description
;              The [1][3] element of the 3x3 matrix used to transform
               fractional coordinates in the ATOM_SITE category to Cartesian
               coordinates in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.Cartn_transf_vector[].

               |x'|              |11 12 13| |x|               |1|
               |y'|~Cartesian~ = |21 22 23| |y|~fractional~ + |2|
               |z'|              |31 32 33| |z|               |3|
;
    _item.name                  '_atom_sites.Cartn_transf_matrix[1][3]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_Cartn_tran_matrix_13'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.Cartn_transf_matrix[2][1]
    _item_description.description
;              The [2][1] element of the 3x3 matrix used to transform
               fractional coordinates in the ATOM_SITE category to Cartesian
               coordinates in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.Cartn_transf_vector[].

               |x'|              |11 12 13| |x|               |1|
               |y'|~Cartesian~ = |21 22 23| |y|~fractional~ + |2|
               |z'|              |31 32 33| |z|               |3|
;
    _item.name                  '_atom_sites.Cartn_transf_matrix[2][1]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_Cartn_tran_matrix_21'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.Cartn_transf_matrix[2][2]
    _item_description.description
;              The [2][2] element of the 3x3 matrix used to transform
               fractional coordinates in the ATOM_SITE category to Cartesian
               coordinates in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.Cartn_transf_vector[].

               |x'|              |11 12 13| |x|               |1|
               |y'|~Cartesian~ = |21 22 23| |y|~fractional~ + |2|
               |z'|              |31 32 33| |z|               |3|
;
    _item.name                  '_atom_sites.Cartn_transf_matrix[2][2]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_Cartn_tran_matrix_22'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.Cartn_transf_matrix[2][3]
    _item_description.description
;              The [2][3] element of the 3x3 matrix used to transform
               fractional coordinates in the ATOM_SITE category to Cartesian
               coordinates in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.Cartn_transf_vector[].

               |x'|              |11 12 13| |x|               |1|
               |y'|~Cartesian~ = |21 22 23| |y|~fractional~ + |2|
               |z'|              |31 32 33| |z|               |3|
;
    _item.name                  '_atom_sites.Cartn_transf_matrix[2][3]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_Cartn_tran_matrix_23'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.Cartn_transf_matrix[3][1]
    _item_description.description
;              The [3][1] element of the 3x3 matrix used to transform
               fractional coordinates in the ATOM_SITE category to Cartesian
               coordinates in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.Cartn_transf_vector[].

               |x'|              |11 12 13| |x|               |1|
               |y'|~Cartesian~ = |21 22 23| |y|~fractional~ + |2|
               |z'|              |31 32 33| |z|               |3|
;
    _item.name                  '_atom_sites.Cartn_transf_matrix[3][1]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_Cartn_tran_matrix_31'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.Cartn_transf_matrix[3][2]
    _item_description.description
;              The [3][2] element of the 3x3 matrix used to transform
               fractional coordinates in the ATOM_SITE category to Cartesian
               coordinates in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.Cartn_transf_vector[].

               |x'|              |11 12 13| |x|               |1|
               |y'|~Cartesian~ = |21 22 23| |y|~fractional~ + |2|
               |z'|              |31 32 33| |z|               |3|
;
    _item.name                  '_atom_sites.Cartn_transf_matrix[3][2]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_Cartn_tran_matrix_32'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.Cartn_transf_matrix[3][3]
    _item_description.description
;              The [3][3] element of the 3x3 matrix used to transform
               fractional coordinates in the ATOM_SITE category to Cartesian
               coordinates in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.Cartn_transf_vector[].

               |x'|              |11 12 13| |x|               |1|
               |y'|~Cartesian~ = |21 22 23| |y|~fractional~ + |2|
               |z'|              |31 32 33| |z|               |3|
;
    _item.name                  '_atom_sites.Cartn_transf_matrix[3][3]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_Cartn_tran_matrix_33'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.Cartn_transf_vector[1]
    _item_description.description
;              The [1] element of the three-element vector used to transform
               fractional coordinates in the ATOM_SITE category to Cartesian
               coordinates in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The rotation matrix is defined in
               _atom_sites.Cartn_transf_matrix[][].

               |x'|              |11 12 13| |x|               |1|
               |y'|~Cartesian~ = |21 22 23| |y|~fractional~ + |2|
               |z'|              |31 32 33| |z|               |3|
;
    _item.name                  '_atom_sites.Cartn_transf_vector[1]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_Cartn_tran_vector_1'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

save__atom_sites.Cartn_transf_vector[2]
    _item_description.description
;              The [2] element of the three-element vector used to transform
               fractional coordinates in the ATOM_SITE category to Cartesian
               coordinates in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The rotation matrix is defined in
               _atom_sites.Cartn_transf_matrix[][].

               |x'|              |11 12 13| |x|               |1|
               |y'|~Cartesian~ = |21 22 23| |y|~fractional~ + |2|
               |z'|              |31 32 33| |z|               |3|
;
    _item.name                  '_atom_sites.Cartn_transf_vector[2]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_Cartn_tran_vector_2'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

save__atom_sites.Cartn_transf_vector[3]
    _item_description.description
;              The [3] element of the three-element vector used to transform
               fractional coordinates in the ATOM_SITE category to Cartesian
               coordinates in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The rotation matrix is defined in
               _atom_sites.Cartn_transf_matrix[][].

               |x'|              |11 12 13| |x|               |1|
               |y'|~Cartesian~ = |21 22 23| |y|~fractional~ + |2|
               |z'|              |31 32 33| |z|               |3|
;
    _item.name                  '_atom_sites.Cartn_transf_vector[3]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_Cartn_tran_vector_3'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

save__atom_sites.Cartn_transform_axes
    _item_description.description
;              A description of the relative alignment of the crystal cell
               axes to the Cartesian orthogonal axes as applied in the
               transformation matrix _atom_sites.Cartn_transf_matrix[][].
;
    _item.name                  '_atom_sites.Cartn_transform_axes'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_Cartn_transform_axes'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'a parallel to x; b in the plane of y and z'
     save_

save__atom_sites.fract_transf_matrix[1][1]
    _item_description.description
;              The [1][1] element of the 3x3 matrix used to transform Cartesian
               coordinates in the ATOM_SITE category to fractional coordinates
               in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.fract_transf_vector[].

               |x'|               |11 12 13| |x|              |1|
               |y'|~fractional~ = |21 22 23| |y|~Cartesian~ + |2|
               |z'|               |31 32 33| |z|              |3|
;
    _item.name                  '_atom_sites.fract_transf_matrix[1][1]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_fract_tran_matrix_11'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.fract_transf_matrix[1][2]
    _item_description.description
;              The [1][2] element of the 3x3 matrix used to transform Cartesian
               coordinates in the ATOM_SITE category to fractional coordinates
               in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.fract_transf_vector[].

               |x'|               |11 12 13| |x|              |1|
               |y'|~fractional~ = |21 22 23| |y|~Cartesian~ + |2|
               |z'|               |31 32 33| |z|              |3|
;
    _item.name                  '_atom_sites.fract_transf_matrix[1][2]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_fract_tran_matrix_12'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.fract_transf_matrix[1][3]
    _item_description.description
;              The [1][3] element of the 3x3 matrix used to transform Cartesian
               coordinates in the ATOM_SITE category to fractional coordinates
               in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.fract_transf_vector[].

               |x'|               |11 12 13| |x|              |1|
               |y'|~fractional~ = |21 22 23| |y|~Cartesian~ + |2|
               |z'|               |31 32 33| |z|              |3|
;
    _item.name                  '_atom_sites.fract_transf_matrix[1][3]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_fract_tran_matrix_13'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.fract_transf_matrix[2][1]
    _item_description.description
;              The [2][1] element of the 3x3 matrix used to transform Cartesian
               coordinates in the ATOM_SITE category to fractional coordinates
               in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.fract_transf_vector[].

               |x'|               |11 12 13| |x|              |1|
               |y'|~fractional~ = |21 22 23| |y|~Cartesian~ + |2|
               |z'|               |31 32 33| |z|              |3|
;
    _item.name                  '_atom_sites.fract_transf_matrix[2][1]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_fract_tran_matrix_21'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.fract_transf_matrix[2][2]
    _item_description.description
;              The [2][2] element of the 3x3 matrix used to transform Cartesian
               coordinates in the ATOM_SITE category to fractional coordinates
               in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.fract_transf_vector[].

               |x'|               |11 12 13| |x|              |1|
               |y'|~fractional~ = |21 22 23| |y|~Cartesian~ + |2|
               |z'|               |31 32 33| |z|              |3|
;
    _item.name                  '_atom_sites.fract_transf_matrix[2][2]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_fract_tran_matrix_22'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.fract_transf_matrix[2][3]
    _item_description.description
;              The [2][3] element of the 3x3 matrix used to transform Cartesian
               coordinates in the ATOM_SITE category to fractional coordinates
               in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.fract_transf_vector[].

               |x'|               |11 12 13| |x|              |1|
               |y'|~fractional~ = |21 22 23| |y|~Cartesian~ + |2|
               |z'|               |31 32 33| |z|              |3|
;
    _item.name                  '_atom_sites.fract_transf_matrix[2][3]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_fract_tran_matrix_23'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.fract_transf_matrix[3][1]
    _item_description.description
;              The [3][1] element of the 3x3 matrix used to transform Cartesian
               coordinates in the ATOM_SITE category to fractional coordinates
               in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.fract_transf_vector[].

               |x'|               |11 12 13| |x|              |1|
               |y'|~fractional~ = |21 22 23| |y|~Cartesian~ + |2|
               |z'|               |31 32 33| |z|              |3|
;
    _item.name                  '_atom_sites.fract_transf_matrix[3][1]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_fract_tran_matrix_31'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.fract_transf_matrix[3][2]
    _item_description.description
;              The [3][2] element of the 3x3 matrix used to transform Cartesian
               coordinates in the ATOM_SITE category to fractional coordinates
               in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.fract_transf_vector[].

               |x'|               |11 12 13| |x|              |1|
               |y'|~fractional~ = |21 22 23| |y|~Cartesian~ + |2|
               |z'|               |31 32 33| |z|              |3|
;
    _item.name                  '_atom_sites.fract_transf_matrix[3][2]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_fract_tran_matrix_32'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.fract_transf_matrix[3][3]
    _item_description.description
;              The [3][3] element of the 3x3 matrix used to transform Cartesian
               coordinates in the ATOM_SITE category to fractional coordinates
               in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x1 translation is defined in
               _atom_sites.fract_transf_vector[].

               |x'|               |11 12 13| |x|              |1|
               |y'|~fractional~ = |21 22 23| |y|~Cartesian~ + |2|
               |z'|               |31 32 33| |z|              |3|
;
    _item.name                  '_atom_sites.fract_transf_matrix[3][3]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_fract_tran_matrix_33'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__atom_sites.fract_transf_vector[1]
    _item_description.description
;              The [1] element of the three-element vector used to transform
               Cartesian coordinates in the ATOM_SITE category to fractional
               coordinates in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x3 rotation is defined in
               _atom_sites.fract_transf_matrix[][].

               |x'|               |11 12 13| |x|              |1|
               |y'|~fractional~ = |21 22 23| |y|~Cartesian~ + |2|
               |z'|               |31 32 33| |z|              |3|
;
    _item.name                  '_atom_sites.fract_transf_vector[1]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_fract_tran_vector_1'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

save__atom_sites.fract_transf_vector[2]
    _item_description.description
;              The [2] element of the three-element vector used to transform
               Cartesian coordinates in the ATOM_SITE category to fractional
               coordinates in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x3 rotation is defined in
               _atom_sites.fract_transf_matrix[][].

               |x'|               |11 12 13| |x|              |1|
               |y'|~fractional~ = |21 22 23| |y|~Cartesian~ + |2|
               |z'|               |31 32 33| |z|              |3|
;
    _item.name                  '_atom_sites.fract_transf_vector[2]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_fract_tran_vector_2'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

save__atom_sites.fract_transf_vector[3]
    _item_description.description
;              The [3] element of the three-element vector used to transform
               Cartesian coordinates in the ATOM_SITE category to fractional
               coordinates in the same category. The axial alignments of this
               transformation are described in _atom_sites.Cartn_transform_axes.
               The 3x3 rotation is defined in
               _atom_sites.fract_transf_matrix[][].

               |x'|               |11 12 13| |x|              |1|
               |y'|~fractional~ = |21 22 23| |y|~Cartesian~ + |2|
               |z'|               |31 32 33| |z|              |3|
;
    _item.name                  '_atom_sites.fract_transf_vector[3]'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_fract_tran_vector_3'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

save__atom_sites.solution_primary
    _item_description.description
;              This code identifies the method used to locate the initial
               atom sites.

               *** This data item would not in general be used in a
               macromolecular data block. ***
;
    _item.name                  '_atom_sites.solution_primary'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_solution_primary'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      difmap  'difference Fourier map'
                                  vecmap  'real-space vector search'
                                  heavy   'heavy-atom method'
                                  direct  'structure-invariant direct methods'
                                  geom    'inferred from neighbouring sites'
                                  disper  'anomalous-dispersion techniques'
                                  isomor  'isomorphous structure methods'
     save_

save__atom_sites.solution_secondary
    _item_description.description
;             This code identifies the method used to locate the
              non-hydrogen-atom sites not found by
              _atom_sites.solution_primary.

               *** This data item would not in general be used in a
               macromolecular data block. ***
;
    _item.name                  '_atom_sites.solution_secondary'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_solution_secondary'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      difmap  'difference Fourier map'
                                  vecmap  'real-space vector search'
                                  heavy   'heavy-atom method'
                                  direct  'structure-invariant direct methods'
                                  geom    'inferred from neighbouring sites'
                                  disper  'anomalous-dispersion techniques'
                                  isomor  'isomorphous structure methods'
     save_

save__atom_sites.solution_hydrogens
    _item_description.description
;              This code identifies the method used to locate the
               hydrogen atoms.

               *** This data item would not in general be used in a
               macromolecular data block. ***
;
    _item.name                  '_atom_sites.solution_hydrogens'
    _item.category_id             atom_sites
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_sites_solution_hydrogens'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      difmap  'difference Fourier map'
                                  vecmap  'real-space vector search'
                                  heavy   'heavy-atom method'
                                  direct  'structure-invariant direct methods'
                                  geom    'inferred from neighbouring sites'
                                  disper  'anomalous-dispersion techniques'
                                  isomor  'isomorphous structure methods'
     save_

####################
## ATOM_SITES_ALT ##
####################

save_atom_sites_alt
    _category.description
;              Data items in the ATOM_SITES_ALT category record details
               about the structural ensembles that should be generated from
               atom sites or groups of atom sites that are modelled in
               alternative conformations in this data block.
;
    _category.id                  atom_sites_alt
    _category.mandatory_code      no
    _category_key.name          '_atom_sites_alt.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'atom_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _atom_sites_alt.id
    _atom_sites_alt.details
     .
    ; Atom sites with the alternative ID set to null are not
      modeled in alternative conformations
    ;
     1
    ; Atom sites with the alternative ID set to 1 have been
      modeled in alternative conformations with respect to atom
      sites marked with alternative ID 2. The conformations of
      amino-acid side chains and solvent atoms with alternative
      ID set to 1 correlate with the conformation of the
      inhibitor marked with alternative ID 1. They have been
      given an occupancy of 0.58 to match the occupancy assigned
      to the inhibitor.
    ;
     2
    ; Atom sites with the alternative ID set to 2 have been
      modeled in alternative conformations with respect to atom
      sites marked with alternative ID 1. The conformations of
      amino-acid side chains and solvent atoms with alternative
      ID set to 2 correlate with the conformation of the
      inhibitor marked with alternative ID 2. They have been
      given an occupancy of 0.42 to match the occupancy assigned
      to the inhibitor.
    ;
     3
    ; Atom sites with the alternative ID set to 3 have been
      modeled in alternative conformations with respect to
      atoms marked with alternative ID 4. The conformations of
      amino-acid side chains and solvent atoms with alternative
      ID set to 3 do not correlate with the conformation of the
      inhibitor. These atom sites have arbitrarily been given
      an occupancy of 0.50.
    ;
     4
    ; Atom sites with the alternative ID set to 4 have been
      modeled in alternative conformations with respect to
      atoms marked with alternative ID 3. The conformations of
      amino-acid side chains and solvent atoms with alternative
      ID set to 4 do not correlate with the conformation of the
      inhibitor. These atom sites have arbitrarily been given
      an occupancy of 0.50.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__atom_sites_alt.details
    _item_description.description
;              A description of special aspects of the modelling of atoms in
               alternative conformations.
;
    _item.name                  '_atom_sites_alt.details'
    _item.category_id             atom_sites_alt
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__atom_sites_alt.id
    _item_description.description
;              The value of _atom_sites_alt.id must uniquely identify
               a record in the ATOM_SITES_ALT list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
         '_atom_sites_alt.id'                       atom_sites_alt      yes
         '_atom_site.label_alt_id'                  atom_site           no
         '_atom_sites_alt_gen.alt_id'               atom_sites_alt_gen  yes
         '_geom_angle.atom_site_label_alt_id_1'     geom_angle          no
         '_geom_angle.atom_site_label_alt_id_2'     geom_angle          no
         '_geom_angle.atom_site_label_alt_id_3'     geom_angle          no
         '_geom_bond.atom_site_label_alt_id_1'      geom_bond           no
         '_geom_bond.atom_site_label_alt_id_2'      geom_bond           no
         '_geom_contact.atom_site_label_alt_id_1'   geom_contact        no
         '_geom_contact.atom_site_label_alt_id_2'   geom_contact        no
         '_geom_hbond.atom_site_label_alt_id_A'     geom_hbond          no
         '_geom_hbond.atom_site_label_alt_id_D'     geom_hbond          no
         '_geom_hbond.atom_site_label_alt_id_H'     geom_hbond          no
         '_geom_torsion.atom_site_label_alt_id_1'   geom_torsion        no
         '_geom_torsion.atom_site_label_alt_id_2'   geom_torsion        no
         '_geom_torsion.atom_site_label_alt_id_3'   geom_torsion        no
         '_geom_torsion.atom_site_label_alt_id_4'   geom_torsion        no
         '_struct_conn.ptnr1_label_alt_id'          struct_conn         no
         '_struct_conn.ptnr2_label_alt_id'          struct_conn         no
         '_struct_mon_nucl.label_alt_id'            struct_mon_nucl     yes
         '_struct_mon_prot.label_alt_id'            struct_mon_prot     yes
         '_struct_mon_prot_cis.label_alt_id'        struct_mon_prot_cis yes
         '_struct_ncs_dom_lim.beg_label_alt_id'     struct_ncs_dom_lim  yes
         '_struct_ncs_dom_lim.end_label_alt_id'     struct_ncs_dom_lim  yes
         '_struct_site_gen.label_alt_id'            struct_site_gen     yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
         '_atom_site.label_alt_id'                 '_atom_sites_alt.id'
         '_atom_sites_alt_gen.alt_id'              '_atom_sites_alt.id'
         '_geom_angle.atom_site_label_alt_id_1'    '_atom_site.label_alt_id'
         '_geom_angle.atom_site_label_alt_id_2'    '_atom_site.label_alt_id'
         '_geom_angle.atom_site_label_alt_id_3'    '_atom_site.label_alt_id'
         '_geom_bond.atom_site_label_alt_id_1'     '_atom_site.label_alt_id'
         '_geom_bond.atom_site_label_alt_id_2'     '_atom_site.label_alt_id'
         '_geom_contact.atom_site_label_alt_id_1'  '_atom_site.label_alt_id'
         '_geom_contact.atom_site_label_alt_id_2'  '_atom_site.label_alt_id'
         '_geom_hbond.atom_site_label_alt_id_A'    '_atom_site.label_alt_id'
         '_geom_hbond.atom_site_label_alt_id_D'    '_atom_site.label_alt_id'
         '_geom_hbond.atom_site_label_alt_id_H'    '_atom_site.label_alt_id'
         '_geom_torsion.atom_site_label_alt_id_1'  '_atom_site.label_alt_id'
         '_geom_torsion.atom_site_label_alt_id_2'  '_atom_site.label_alt_id'
         '_geom_torsion.atom_site_label_alt_id_3'  '_atom_site.label_alt_id'
         '_geom_torsion.atom_site_label_alt_id_4'  '_atom_site.label_alt_id'
         '_struct_conn.ptnr1_label_alt_id'         '_atom_site.label_alt_id'
         '_struct_conn.ptnr2_label_alt_id'         '_atom_site.label_alt_id'
         '_struct_mon_nucl.label_alt_id'           '_atom_site.label_alt_id'
         '_struct_mon_prot.label_alt_id'           '_atom_site.label_alt_id'
         '_struct_mon_prot_cis.label_alt_id'       '_atom_site.label_alt_id'
         '_struct_ncs_dom_lim.beg_label_alt_id'    '_atom_site.label_alt_id'
         '_struct_ncs_dom_lim.end_label_alt_id'    '_atom_site.label_alt_id'
         '_struct_site_gen.label_alt_id'           '_atom_site.label_alt_id'
    _item_type.code               code
    loop_
    _item_examples.case          'orientation 1'
                                 'molecule abc'
     save_

########################
## ATOM_SITES_ALT_ENS ##
########################

save_atom_sites_alt_ens
    _category.description
;              Data items in the ATOM_SITES_ALT_ENS category record details
               about the ensemble structure generated from atoms with various
               alternative conformation IDs.
;
    _category.id                  atom_sites_alt_ens
    _category.mandatory_code      no
    _category_key.name          '_atom_sites_alt_ens.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'atom_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _atom_sites_alt_ens.id
    _atom_sites_alt_ens.details
     'Ensemble 1-A'
    ; The inhibitor binds to the enzyme in two, roughly twofold
      symmetric alternative conformations.

      This conformational ensemble includes the more populated
      conformation of the inhibitor (ID=1) and the amino-acid
      side chains and solvent structure that correlate with this
      inhibitor conformation.

      Also included are one set (ID=3) of side chains with
      alternative conformations when the conformations are not
      correlated with the inhibitor conformation.
    ;
     'Ensemble 1-B'
    ; The inhibitor binds to the enzyme in two, roughly twofold
      symmetric alternative conformations.

      This conformational ensemble includes the more populated
      conformation of the inhibitor (ID=1) and the amino-acid
      side chains and solvent structure that correlate with
      this inhibitor conformation.

      Also included are one set (ID=4) of side chains with
      alternative conformations when the conformations are not
      correlated with the inhibitor conformation.
    ;
     'Ensemble 2-A'
    ; The inhibitor binds to the enzyme in two, roughly twofold
      symmetric alternative conformations.

      This conformational ensemble includes the less populated
      conformation of the inhibitor (ID=2) and the amino-acid
      side chains and solvent structure that correlate with this
      inhibitor conformation.

      Also included are one set (ID=3) of side chains with
      alternative conformations when the conformations are not
      correlated with the inhibitor conformation.
    ;
     'Ensemble 2-B'
    ; The inhibitor binds to the enzyme in two, roughly twofold
      symmetric alternative conformations.

      This conformational ensemble includes the less populated
      conformation of the inhibitor (ID=2) and the amino-acid
      side chains and solvent structure that correlate with this
      inhibitor conformation.

      Also included are one set (ID=4) of side chains with
      alternative conformations when the conformations are not
      correlated with the inhibitor conformation.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__atom_sites_alt_ens.details
    _item_description.description
;              A description of special aspects of the ensemble structure
               generated from atoms with various alternative IDs.
;
    _item.name                  '_atom_sites_alt_ens.details'
    _item.category_id             atom_sites_alt_ens
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__atom_sites_alt_ens.id
    _item_description.description
;              The value of _atom_sites_alt_ens.id must uniquely identify a
               record in the ATOM_SITES_ALT_ENS list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_atom_sites_alt_ens.id'      atom_sites_alt_ens  yes
               '_atom_sites_alt_gen.ens_id'  atom_sites_alt_gen  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_atom_sites_alt_gen.ens_id'  '_atom_sites_alt_ens.id'
    _item_type.code               code
     save_

########################
## ATOM_SITES_ALT_GEN ##
########################

save_atom_sites_alt_gen
    _category.description
;              Data items in the ATOM_SITES_ALT_GEN category record details
               about the interpretation of multiple conformations in the
               structure.
;
    _category.id                  atom_sites_alt_gen
    _category.mandatory_code      no
    loop_
    _category_key.name          '_atom_sites_alt_gen.ens_id'
                                '_atom_sites_alt_gen.alt_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'atom_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _atom_sites_alt_gen.ens_id
    _atom_sites_alt_gen.alt_id
     'Ensemble 1-A'  .
     'Ensemble 1-A'  1
     'Ensemble 1-A'  3
     'Ensemble 1-B'  .
     'Ensemble 1-B'  1
     'Ensemble 1-B'  4
     'Ensemble 2-A'  .
     'Ensemble 2-A'  2
     'Ensemble 2-A'  3
     'Ensemble 2-B'  .
     'Ensemble 2-B'  2
     'Ensemble 2-B'  4
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__atom_sites_alt_gen.alt_id
    _item_description.description
;              This data item is a pointer to _atom_sites_alt.id in the
               ATOM_SITES_ALT category.
;
    _item.name                  '_atom_sites_alt_gen.alt_id'
    _item.mandatory_code          yes
     save_

save__atom_sites_alt_gen.ens_id
     _item_description.description
;              This data item is a pointer to _atom_sites_alt_ens.id in the
               ATOM_SITES_ALT_ENS category.
;
    _item.name                  '_atom_sites_alt_gen.ens_id'
    _item.mandatory_code          yes
     save_

#########################
## ATOM_SITES_FOOTNOTE ##
#########################

save_atom_sites_footnote
    _category.description
;              Data items in the ATOM_SITES_FOOTNOTE category record detailed
               comments about an atom site or a group of atom sites.
;
    _category.id                  atom_sites_footnote
    _category.mandatory_code      no
    _category_key.name          '_atom_sites_footnote.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'atom_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _atom_sites_footnote.id
    _atom_sites_footnote.text
      1
    ; The inhibitor binds to the enzyme in two alternative
      orientations. The two orientations have been assigned
      alternative IDs *1* and *2*.
    ;
      2
    ; Side chains of these residues adopt alternative
      orientations that correlate with the alternative
      orientations of the inhibitor.
      Side chains with alternative ID *1* and occupancy 0.58
      correlate with inhibitor orientation *1*.
      Side chains with alternative ID *2* and occupancy 0.42
      correlate with inhibitor orientation *2*.
    ;
      3
    ; The positions of these water molecules correlate with
      the alternative orientations of the inhibitor.
      Water molecules with alternative ID *1* and occupancy 0.58
      correlate with inhibitor orientation *1*.
      Water molecules with alternative ID *2* and occupancy 0.42
      correlate with inhibitor orientation *2*.
    ;
      4
    ; Side chains of these residues adopt alternative
      orientations that do not correlate with the alternative
      orientation of the inhibitor.
    ;
      5
    ; The positions of these water molecules correlate with
      alternative orientations of amino-acid side chains that
      do not correlate with alternative orientations of the
      inhibitor.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__atom_sites_footnote.id
    _item_description.description
;              A code that identifies the footnote.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_atom_sites_footnote.id'  atom_sites_footnote  yes
               '_atom_site.footnote_id'   atom_site            no
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_atom_site.footnote_id'  '_atom_sites_footnote.id'
    _item_type.code               code
    loop_
    _item_examples.case          'a'
                                 'b'
                                 '1'
                                 '2'
     save_

save__atom_sites_footnote.text
    _item_description.description
;              The text of the footnote. Footnotes are used to describe
               an atom site or a group of atom sites in the ATOM_SITE list.

               For example, footnotes may be used to indicate atoms for which
               the electron density is very weak, or atoms for which static
               disorder has been modelled.
;
    _item.name                  '_atom_sites_footnote.text'
    _item.category_id             atom_sites_footnote
    _item.mandatory_code          no
    _item_type.code               text
     save_

###############
## ATOM_TYPE ##
###############

save_atom_type
    _category.description
;              Data items in the ATOM_TYPE category record details about the
               properties of the atoms that occupy the atom sites, such as the
               atomic scattering factors.
;
    _category.id                  atom_type
    _category.mandatory_code      no
    _category_key.name          '_atom_type.symbol'
    loop_
    _category_group.id           'inclusive_group'
                                 'atom_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _atom_type.symbol
    _atom_type.oxidation_number
    _atom_type.scat_Cromer_Mann_a1
    _atom_type.scat_Cromer_Mann_a2
    _atom_type.scat_Cromer_Mann_a3
    _atom_type.scat_Cromer_Mann_a4
    _atom_type.scat_Cromer_Mann_b1
    _atom_type.scat_Cromer_Mann_b2
    _atom_type.scat_Cromer_Mann_b3
    _atom_type.scat_Cromer_Mann_b4
    _atom_type.scat_Cromer_Mann_c
      C   0   2.31000  20.8439    1.02000   10.2075
              1.58860   0.568700  0.865000  51.6512      0.21560
      N   0  12.2126    0.005700  3.13220    9.89330
              2.01250  28.9975    1.16630    0.582600  -11.529
      O   0   3.04850  13.2771    2.28680    5.70110
              1.54630   0.323900  0.867000  32.9089      0.250800
      S   0   6.90530   1.46790   5.20340   22.2151
              1.43790   0.253600  1.58630   56.1720      0.866900
      CL -1  18.2915    0.006600  7.20840    1.17170
              6.53370  19.5424    2.33860   60.4486    -16.378
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - based on data set TOZ of Willis, Beckwith & Tozer
                [Acta Cryst. (1991), C47, 2276-2277].
;
;
    loop_
    _atom_type.symbol
    _atom_type.oxidation_number
    _atom_type.number_in_cell
    _atom_type.scat_dispersion_real
    _atom_type.scat_dispersion_imag
    _atom_type.scat_source
     C  0  72  .017  .009  International_Tables_Vol_IV_Table_2.2B
     H  0  100  0     0    International_Tables_Vol_IV_Table_2.2B
     O  0  12  .047  .032  International_Tables_Vol_IV_Table_2.2B
     N  0  4   .029  .018  International_Tables_Vol_IV_Table_2.2B
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__atom_type.analytical_mass_percent
    _item_description.description
;              Mass percentage of this atom type derived from chemical analysis.
;
    _item.name                  '_atom_type.analytical_mass_percent'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_analytical_mass_%'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__atom_type.description
    _item_description.description
;              A description of the atom(s) designated by this atom type. In
               most cases, this is the element name and oxidation state of
               a single atom species. For disordered or nonstoichiometric
               structures it will describe a combination of atom species.
;
    _item.name                  '_atom_type.description'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_description'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          'deuterium'
                                 '0.34Fe+0.66Ni'
     save_

save__atom_type.number_in_cell
    _item_description.description
;              Total number of atoms of this atom type in the unit cell.
;
    _item.name                  '_atom_type.number_in_cell'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_number_in_cell'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__atom_type.oxidation_number
    _item_description.description
;              Formal oxidation state of this atom type in the structure.
;
    _item.name                  '_atom_type.oxidation_number'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_oxidation_number'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           0
    loop_
    _item_range.maximum
    _item_range.minimum           8    8
                                  8   -8
                                 -8   -8
    _item_type.code               int
     save_

save__atom_type.radius_bond
    _item_description.description
;              The effective intramolecular bonding radius in angstroms
               of this atom type.
;
    _item.name                  '_atom_type.radius_bond'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_radius_bond'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           5.0   5.0
                                  5.0   0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__atom_type.radius_contact
    _item_description.description
;              The effective intermolecular bonding radius in angstroms
               of this atom type.
;
    _item.name                  '_atom_type.radius_contact'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_radius_contact'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           5.0   5.0
                                  5.0   0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__atom_type.scat_Cromer_Mann_a1
    _item_description.description
;              The Cromer-Mann scattering-factor coefficient a1 used to
               calculate the scattering factors for this atom type.

               Ref: International Tables for X-ray Crystallography (1974).
                   Vol. IV, Table 2.2B
                or: International Tables for Crystallography  (2004). Vol. C,
                    Tables 6.1.1.4 and 6.1.1.5.
;
    _item.name                  '_atom_type.scat_Cromer_Mann_a1'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_scat_Cromer_Mann_a1'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_atom_type.scat_Cromer_Mann_a2'
                                '_atom_type.scat_Cromer_Mann_a3'
                                '_atom_type.scat_Cromer_Mann_a4'
                                '_atom_type.scat_Cromer_Mann_b1'
                                '_atom_type.scat_Cromer_Mann_b2'
                                '_atom_type.scat_Cromer_Mann_b3'
                                '_atom_type.scat_Cromer_Mann_b4'
                                '_atom_type.scat_Cromer_Mann_c'
    _item_type.code               float
     save_

save__atom_type.scat_Cromer_Mann_a2
    _item_description.description
;              The Cromer-Mann scattering-factor coefficient a2 used to
               calculate the scattering factors for this atom type.

               Ref: International Tables for X-ray Crystallography (1974).
                   Vol. IV, Table 2.2B
                or: International Tables for Crystallography  (2004). Vol. C,
                    Tables 6.1.1.4 and 6.1.1.5.
;
    _item.name                  '_atom_type.scat_Cromer_Mann_a2'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_scat_Cromer_Mann_a2'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_atom_type.scat_Cromer_Mann_a1'
                                '_atom_type.scat_Cromer_Mann_a3'
                                '_atom_type.scat_Cromer_Mann_a4'
                                '_atom_type.scat_Cromer_Mann_b1'
                                '_atom_type.scat_Cromer_Mann_b2'
                                '_atom_type.scat_Cromer_Mann_b3'
                                '_atom_type.scat_Cromer_Mann_b4'
                                '_atom_type.scat_Cromer_Mann_c'
    _item_type.code               float
     save_

save__atom_type.scat_Cromer_Mann_a3
    _item_description.description
;              The Cromer-Mann scattering-factor coefficient a3 used to
               calculate the scattering factors for this atom type.

               Ref: International Tables for X-ray Crystallography (1974).
                   Vol. IV, Table 2.2B
                or: International Tables for Crystallography  (2004). Vol. C,
                    Tables 6.1.1.4 and 6.1.1.5.
;
    _item.name                  '_atom_type.scat_Cromer_Mann_a3'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_scat_Cromer_Mann_a3'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_atom_type.scat_Cromer_Mann_a1'
                                '_atom_type.scat_Cromer_Mann_a2'
                                '_atom_type.scat_Cromer_Mann_a4'
                                '_atom_type.scat_Cromer_Mann_b1'
                                '_atom_type.scat_Cromer_Mann_b2'
                                '_atom_type.scat_Cromer_Mann_b3'
                                '_atom_type.scat_Cromer_Mann_b4'
                                '_atom_type.scat_Cromer_Mann_c'
    _item_type.code               float
     save_

save__atom_type.scat_Cromer_Mann_a4
    _item_description.description
;              The Cromer-Mann scattering-factor coefficient a4 used to
               calculate the scattering factors for this atom type.

               Ref: International Tables for X-ray Crystallography (1974).
                   Vol. IV, Table 2.2B
                or: International Tables for Crystallography  (2004). Vol. C,
                    Tables 6.1.1.4 and 6.1.1.5.
;
    _item.name                  '_atom_type.scat_Cromer_Mann_a4'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_scat_Cromer_Mann_a4'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_atom_type.scat_Cromer_Mann_a1'
                                '_atom_type.scat_Cromer_Mann_a2'
                                '_atom_type.scat_Cromer_Mann_a3'
                                '_atom_type.scat_Cromer_Mann_b1'
                                '_atom_type.scat_Cromer_Mann_b2'
                                '_atom_type.scat_Cromer_Mann_b3'
                                '_atom_type.scat_Cromer_Mann_b4'
                                '_atom_type.scat_Cromer_Mann_c'
    _item_type.code               float
     save_

save__atom_type.scat_Cromer_Mann_b1
    _item_description.description
;              The Cromer-Mann scattering-factor coefficient b1 used to
               calculate the scattering factors for this atom type.

               Ref: International Tables for X-ray Crystallography (1974).
                   Vol. IV, Table 2.2B
                or: International Tables for Crystallography  (2004). Vol. C,
                    Tables 6.1.1.4 and 6.1.1.5.
;

    _item.name                  '_atom_type.scat_Cromer_Mann_b1'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_scat_Cromer_Mann_b1'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_atom_type.scat_Cromer_Mann_a1'
                                '_atom_type.scat_Cromer_Mann_a2'
                                '_atom_type.scat_Cromer_Mann_a3'
                                '_atom_type.scat_Cromer_Mann_a4'
                                '_atom_type.scat_Cromer_Mann_b2'
                                '_atom_type.scat_Cromer_Mann_b3'
                                '_atom_type.scat_Cromer_Mann_b4'
                                '_atom_type.scat_Cromer_Mann_c'
    _item_type.code               float
     save_

save__atom_type.scat_Cromer_Mann_b2
    _item_description.description
;              The Cromer-Mann scattering-factor coefficient b2 used to
               calculate the scattering factors for this atom type.

               Ref: International Tables for X-ray Crystallography (1974).
                   Vol. IV, Table 2.2B
                or: International Tables for Crystallography  (2004). Vol. C,
                    Tables 6.1.1.4 and 6.1.1.5.
;
    _item.name                  '_atom_type.scat_Cromer_Mann_b2'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_scat_Cromer_Mann_b2'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_atom_type.scat_Cromer_Mann_a1'
                                '_atom_type.scat_Cromer_Mann_a2'
                                '_atom_type.scat_Cromer_Mann_a3'
                                '_atom_type.scat_Cromer_Mann_a4'
                                '_atom_type.scat_Cromer_Mann_b1'
                                '_atom_type.scat_Cromer_Mann_b3'
                                '_atom_type.scat_Cromer_Mann_b4'
                                '_atom_type.scat_Cromer_Mann_c'
    _item_type.code               float
     save_

save__atom_type.scat_Cromer_Mann_b3
    _item_description.description
;              The Cromer-Mann scattering-factor coefficient b3 used to
               calculate the scattering factors for this atom type.

               Ref: International Tables for X-ray Crystallography (1974).
                   Vol. IV, Table 2.2B
                or: International Tables for Crystallography  (2004). Vol. C,
                    Tables 6.1.1.4 and 6.1.1.5.
;
    _item.name                  '_atom_type.scat_Cromer_Mann_b3'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_scat_Cromer_Mann_b3'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_atom_type.scat_Cromer_Mann_a1'
                                '_atom_type.scat_Cromer_Mann_a2'
                                '_atom_type.scat_Cromer_Mann_a3'
                                '_atom_type.scat_Cromer_Mann_a4'
                                '_atom_type.scat_Cromer_Mann_b1'
                                '_atom_type.scat_Cromer_Mann_b2'
                                '_atom_type.scat_Cromer_Mann_b4'
                                '_atom_type.scat_Cromer_Mann_c'
    _item_type.code               float
     save_

save__atom_type.scat_Cromer_Mann_b4
    _item_description.description
;              The Cromer-Mann scattering-factor coefficient b4 used to
               calculate the scattering factors for this atom type.

               Ref: International Tables for X-ray Crystallography (1974).
                   Vol. IV, Table 2.2B
                or: International Tables for Crystallography  (2004). Vol. C,
                    Tables 6.1.1.4 and 6.1.1.5.
;
    _item.name                  '_atom_type.scat_Cromer_Mann_b4'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_scat_Cromer_Mann_b4'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_atom_type.scat_Cromer_Mann_a1'
                                '_atom_type.scat_Cromer_Mann_a2'
                                '_atom_type.scat_Cromer_Mann_a3'
                                '_atom_type.scat_Cromer_Mann_a4'
                                '_atom_type.scat_Cromer_Mann_b1'
                                '_atom_type.scat_Cromer_Mann_b2'
                                '_atom_type.scat_Cromer_Mann_b3'
                                '_atom_type.scat_Cromer_Mann_c'
    _item_type.code               float
     save_

save__atom_type.scat_Cromer_Mann_c
    _item_description.description
;              The Cromer-Mann scattering-factor coefficient c used to
               calculate the scattering factors for this atom type.

               Ref: International Tables for X-ray Crystallography (1974).
                   Vol. IV, Table 2.2B
                or: International Tables for Crystallography  (2004). Vol. C,
                    Tables 6.1.1.4 and 6.1.1.5.
;
    _item.name                  '_atom_type.scat_Cromer_Mann_c'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_scat_Cromer_Mann_c'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_atom_type.scat_Cromer_Mann_a1'
                                '_atom_type.scat_Cromer_Mann_a2'
                                '_atom_type.scat_Cromer_Mann_a3'
                                '_atom_type.scat_Cromer_Mann_a4'
                                '_atom_type.scat_Cromer_Mann_b1'
                                '_atom_type.scat_Cromer_Mann_b2'
                                '_atom_type.scat_Cromer_Mann_b3'
                                '_atom_type.scat_Cromer_Mann_b4'
    _item_type.code               float
     save_

save__atom_type.scat_dispersion_imag
    _item_description.description
;              The imaginary component of the anomalous-dispersion
               scattering factor, f'', in electrons for this atom type and
               the radiation identified by _diffrn_radiation_wavelength.id.
;
    _item.name                  '_atom_type.scat_dispersion_imag'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_scat_dispersion_imag'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           0.0
    _item_dependent.dependent_name
                                '_atom_type.scat_dispersion_real'
    _item_type.code               float
     save_

save__atom_type.scat_dispersion_real
    _item_description.description
;              The real component of the anomalous-dispersion
               scattering factor, f', in electrons for this atom type and
               the radiation identified by _diffrn_radiation_wavelength.id.
;
    _item.name                  '_atom_type.scat_dispersion_real'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_scat_dispersion_real'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           0.0
    _item_dependent.dependent_name
                                '_atom_type.scat_dispersion_imag'
    _item_type.code               float
     save_

save__atom_type.scat_length_neutron
    _item_description.description
;              The bound coherent scattering length in femtometres for the
               atom type at the isotopic composition used for the diffraction
               experiment.
;
    _item.name                  '_atom_type.scat_length_neutron'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_scat_length_neutron'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_units.code              femtometres
     save_

save__atom_type.scat_source
    _item_description.description
;              Reference to the source of the scattering factors or scattering
               lengths used for this atom type.
;
    _item.name                  '_atom_type.scat_source'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_scat_source'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'International Tables Vol. IV Table 2.4.6B'
     save_

save__atom_type.scat_versus_stol_list
    _item_description.description
;              A table of scattering factors as a function of sin theta over
               lambda. This table should be well commented to indicate the
               items present. Regularly formatted lists are strongly
               recommended.
;
    _item.name                  '_atom_type.scat_versus_stol_list'
    _item.category_id             atom_type
    _item.mandatory_code          no
    _item_aliases.alias_name    '_atom_type_scat_versus_stol_list'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__atom_type.symbol
    _item_description.description
;              The code used to identify the atom species (singular or plural)
               representing this atom type. Normally this code is the element
               symbol. The code may be composed of any character except
               an underscore with the additional proviso that digits designate
               an oxidation state and must be followed by a + or - character.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_atom_type.symbol'                   atom_type            yes
               '_atom_site.type_symbol'              atom_site            yes
               '_atom_site_anisotrop.type_symbol'    atom_site_anisotrop  yes
               '_chemical_conn_atom.type_symbol'     chemical_conn_atom   yes
               '_chem_comp_atom.type_symbol'         chem_comp_atom       yes
               '_phasing_MIR_der_site.atom_type_symbol'
                                                 phasing_MIR_der_site     yes

    _item_aliases.alias_name    '_atom_type_symbol'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_atom_site.type_symbol'              '_atom_type.symbol'
               '_atom_site_anisotrop.type_symbol'    '_atom_type.symbol'
               '_chemical_conn_atom.type_symbol'     '_atom_type.symbol'
               '_chem_comp_atom.type_symbol'         '_atom_type.symbol'
               '_phasing_MIR_der_site.atom_type_symbol'  '_atom_type.symbol'
    _item_type.code               code
    loop_
    _item_examples.case          'C'
                                 'Cu2+'
                                 'H(SDS)'
                                 'dummy'
                                 'FeNi'
     save_

###########
## AUDIT ##
###########

save_audit
    _category.description
;              Data items in the AUDIT category record details about the
               creation and subsequent updating of the data block.

               Note that these items apply only to the creation and updating of
               the data block, and should not be confused with the data items
               in the JOURNAL category that record different stages in the
               publication of the material in the data block.
;
    _category.id                  audit
    _category.mandatory_code      no
    _category_key.name          '_audit.revision_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'audit_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _audit.revision_id                   1
    _audit.creation_date                '1992-12-08'

    _audit.creation_method
    ; Created by hand from PDB entry 5HVP, from the J. Biol.
      Chem. paper describing this structure and from
      laboratory records
    ;

    _audit.update_record
    ; 1992-12-09  adjusted to reflect comments from B. McKeever
      1992-12-10  adjusted to reflect comments from H. Berman
      1992-12-12  adjusted to reflect comments from K. Watenpaugh
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - based on data set TOZ of Willis, Beckwith & Tozer
                [Acta Cryst. (1991), C47, 2276-2277].
;
;
    _audit.creation_date               1991-03-20
    _audit.creation_method     from_xtal_archive_file_using_CIFIO
    _audit.update_record
    ; 1991-04-09  text and data added by Tony Willis.
      1991-04-15  rec'd by co-editor as manuscript HL0007.
      1991-04-17  adjustments based on first referee report.
      1991-04-18  adjustments based on second referee report.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__audit.creation_date
    _item_description.description
;              A date that the data block was created. The date format is
               yyyy-mm-dd.
;
    _item.name                  '_audit.creation_date'
    _item.category_id             audit
    _item.mandatory_code          no
    _item_aliases.alias_name    '_audit_creation_date'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               yyyy-mm-dd
    _item_examples.case          '1990-07-12'
     save_

save__audit.creation_method
    _item_description.description
;              A description of how data were entered into the data block.
;
    _item.name                  '_audit.creation_method'
    _item.category_id             audit
    _item.mandatory_code          no
    _item_aliases.alias_name    '_audit_creation_method'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'spawned by the program QBEE'
     save_

save__audit.revision_id
    _item_description.description
;              The value of _audit.revision_id must uniquely identify a record
               in the AUDIT list.
;
    _item.name                  '_audit.revision_id'
    _item.category_id             audit
    _item.mandatory_code          yes
    _item_type.code               code
    _item_examples.case          'rev1'
     save_

save__audit.update_record
    _item_description.description
;              A record of any changes to the data block. The update format is
               a date (yyyy-mm-dd) followed by a description of the changes.
               The latest update entry is added to the bottom of this record.
;
    _item.name                  '_audit.update_record'
    _item.category_id             audit
    _item.mandatory_code          no
    _item_aliases.alias_name    '_audit_update_record'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          '1990-07-15   Updated by the Co-editor'
     save_

##################
## AUDIT_AUTHOR ##
##################

save_audit_author
    _category.description
;              Data items in the AUDIT_AUTHOR category record details about
               the author(s) of the data block.
;
    _category.id                  audit_author
    _category.mandatory_code      no
    _category_key.name          '_audit_author.name'
    loop_
    _category_group.id           'inclusive_group'
                                 'audit_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _audit_author.name
    _audit_author.address
     'Fitzgerald, Paula M.D.'
    ; Department of Biophysical Chemistry
      Merck Research Laboratories
      P. O. Box 2000, Ry80M203
      Rahway, New Jersey  07065
      USA
    ;
     'McKeever, Brian M.'
    ; Department of Biophysical Chemistry
      Merck Research Laboratories
      P. O. Box 2000, Ry80M203
      Rahway, New Jersey  07065
      USA
    ;
     'Van Middlesworth, J.F.'
    ; Department of Biophysical Chemistry
      Merck Research Laboratories
      P. O. Box 2000, Ry80M203
      Rahway, New Jersey  07065
      USA
    ;
     'Springer, James P.'
    ; Department of Biophysical Chemistry
      Merck Research Laboratories
      P. O. Box 2000, Ry80M203
      Rahway, New Jersey  07065
      USA
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__audit_author.address
    _item_description.description
;              The address of an author of this data block. If there are
               multiple authors, _audit_author.address is looped with
               _audit_author.name.
;
    _item.name                  '_audit_author.address'
    _item.category_id             audit_author
    _item.mandatory_code          no
    _item_aliases.alias_name    '_audit_author_address'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case
;                                 Department
                                  Institute
                                  Street
                                  City and postcode
                                  COUNTRY
;
     save_

save__audit_author.name
    _item_description.description
;              The name of an author of this data block. If there are multiple
               authors, _audit_author.name is looped with _audit_author.address.
               The family name(s), followed by a comma and including any
               dynastic components, precedes the first name(s) or initial(s).
;
    _item.name                  '_audit_author.name'
    _item.category_id             audit_author
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_audit_author_name'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          'Bleary, Percival R.'
                                 "O'Neil, F.K."
                                 'Van den Bossche, G.'
                                 'Yang, D.-L.'
                                 'Simonov, Yu.A.'
     save_

###################
## AUDIT_CONFORM ##
###################

save_audit_conform
    _category.description
;              Data items in the AUDIT_CONFORM category describe the
               dictionary versions against which the data names appearing in
               the current data block are conformant.
;
    _category.id                  audit_conform
    _category.mandatory_code      no
    loop_
    _category_key.name          '_audit_conform.dict_name'
                                '_audit_conform.dict_version'
    loop_
    _category_group.id           'inclusive_group'
                                 'audit_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - any file conforming to the current CIF core dictionary.
;
;
    _audit_conform.dict_name         cif_core.dic
    _audit_conform.dict_version      2.3.1
    _audit_conform.dict_location
                         ftp://ftp.iucr.org/pub/cif_core.2.3.1.dic
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__audit_conform.dict_location
    _item_description.description
;              A file name or uniform resource locator (URL) for the
               dictionary to which the current data block conforms.
;
    _item.name                  '_audit_conform.dict_location'
    _item.category_id             audit_conform
    _item.mandatory_code          no
    _item_aliases.alias_name    '_audit_conform_dict_location'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__audit_conform.dict_name
    _item_description.description
;              The string identifying the highest-level dictionary defining
               data names used in this file.
;
    _item.name                  '_audit_conform.dict_name'
    _item.category_id             audit_conform
    _item.mandatory_code          no
    _item_aliases.alias_name    '_audit_conform_dict_name'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__audit_conform.dict_version
    _item_description.description
;              The version number of the dictionary to which the current
               data block conforms.
;
    _item.name                  '_audit_conform.dict_version'
    _item.category_id             audit_conform
    _item.mandatory_code          no
    _item_aliases.alias_name    '_audit_conform_dict_version'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

##########################
## AUDIT_CONTACT_AUTHOR ##
##########################

save_audit_contact_author
    _category.description
;              Data items in the AUDIT_CONTACT_AUTHOR category record details
               about the name and address of the author to be contacted
               concerning the content of this data block.
;
    _category.id                  audit_contact_author
    _category.mandatory_code      no
    _category_key.name          '_audit_contact_author.name'
    loop_
    _category_group.id           'inclusive_group'
                                 'audit_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _audit_contact_author.name    'Fitzgerald, Paula M.D.'
    _audit_contact_author.address
    ; Department of Biophysical Chemistry
      Merck Research Laboratories
      PO Box 2000, Ry80M203
      Rahway, New Jersey 07065
      USA
    ;
    _audit_contact_author.phone   '1(908)5945510'
    _audit_contact_author.fax     '1(908)5946645'
    _audit_contact_author.email   'paula_fitzgerald@merck.com'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__audit_contact_author.address
    _item_description.description
;              The mailing address of the author of the data block to whom
               correspondence should be addressed.
;
    _item.name                  '_audit_contact_author.address'
    _item.category_id             audit_contact_author
    _item.mandatory_code          no
    _item_aliases.alias_name    '_audit_contact_author_address'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case
;                                 Department
                                  Institute
                                  Street
                                  City and postcode
                                  COUNTRY
;
     save_

save__audit_contact_author.email
    _item_description.description
;              The electronic mail address of the author of the data block to
               whom correspondence should be addressed, in a form recognizable
               to international networks. The format of e-mail
               addresses is given in Section 3.4, Address Specification, of
               Internet Message Format, RFC 2822, P. Resnick (Editor),
               Network Standards Group, April 2001.
;
    _item.name                  '_audit_contact_author.email'
    _item.category_id             audit_contact_author
    _item.mandatory_code          no
    _item_aliases.alias_name    '_audit_contact_author_email'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          'name@host.domain.country'
                                 'bm@iucr.org'
     save_

save__audit_contact_author.fax
    _item_description.description
;              The facsimile telephone number of the author of the data
               block to whom correspondence should be addressed.

               The recommended style starts with the international dialing
               prefix, followed by the area code in parentheses, followed by the
               local number with no spaces.
;
    _item.name                  '_audit_contact_author.fax'
    _item.category_id             audit_contact_author
    _item.mandatory_code          no
    _item_aliases.alias_name    '_audit_contact_author_fax'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          '12(34)9477334'
                                 '12()349477334'
     save_

save__audit_contact_author.name
    _item_description.description
;              The name of the author of the data block to whom correspondence
               should be addressed.

               The family name(s), followed by a comma and including any
               dynastic components, precedes the first name(s) or initial(s).
;
    _item.name                  '_audit_contact_author.name'
    _item.category_id             audit_contact_author
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_audit_contact_author_name'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          'Bleary, Percival R.'
                                 "O'Neil, F.K."
                                 'Van den Bossche, G.'
                                 'Yang, D.-L.'
                                 'Simonov, Yu.A.'
     save_

save__audit_contact_author.phone
    _item_description.description
;              The telephone number of the author of the data block to whom
               correspondence should be addressed.

               The recommended style starts with the international dialing
               prefix, followed by the area code in parentheses, followed by the
               local number and any extension number prefixed by 'x',
               with no spaces.
;
    _item.name                  '_audit_contact_author.phone'
    _item.category_id             audit_contact_author
    _item.mandatory_code          no
    _item_aliases.alias_name    '_audit_contact_author_phone'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          '12(34)9477330'
                                 '12()349477330'
                                 '12(34)9477330x5543'
     save_

##########
## CELL ##
##########

save_cell
    _category.description
;              Data items in the CELL category record details about the
               crystallographic cell parameters.
;
    _category.id                  cell
    _category.mandatory_code      no
    _category_key.name          '_cell.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'cell_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _cell.entry_id                         '5HVP'
    _cell.length_a                         58.39
    _cell.length_a_esd                      0.05
    _cell.length_b                         86.70
    _cell.length_b_esd                      0.12
    _cell.length_c                         46.27
    _cell.length_c_esd                      0.06
    _cell.angle_alpha                      90.00
    _cell.angle_beta                       90.00
    _cell.angle_gamma                      90.00
    _cell.volume                           234237
    _cell.details
    ; The cell parameters were refined every twenty frames during
      data integration. The cell lengths given are the mean of
      55 such refinements; the esds given are the root mean
      square deviations of these 55 observations from that mean.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - based on data set TOZ of Willis, Beckwith & Tozer
                [Acta Cryst. (1991), C47, 2276-2277].
;
;
    _cell.length_a                      5.959
    _cell.length_a_esd                  0.001
    _cell.length_b                     14.956
    _cell.length_b_esd                  0.001
    _cell.length_c                     19.737
    _cell.length_c_esd                  0.003
    _cell.angle_alpha                  90.0
    _cell.angle_beta                   90.0
    _cell.angle_gamma                  90.0
    _cell.volume                       1759.0
    _cell.volume_esd                      0.3
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__cell.angle_alpha
    _item_description.description
;              Unit-cell angle alpha of the reported structure in degrees.
;
    _item.name                  '_cell.angle_alpha'
    _item.category_id             cell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_angle_alpha'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           90.0
    loop_
    _item_dependent.dependent_name
                                '_cell.angle_beta'
                                '_cell.angle_gamma'
    loop_
    _item_range.maximum
    _item_range.minimum           180.0   180.0
                                  180.0     0.0
                                    0.0     0.0
    _item_related.related_name  '_cell.angle_alpha_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         cell_angle
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              degrees
     save_

save__cell.angle_alpha_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _cell.angle_alpha.
;
    _item.name                  '_cell.angle_alpha_esd'
    _item.category_id             cell
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_cell.angle_beta_esd'
                                '_cell.angle_gamma_esd'
    _item_related.related_name  '_cell.angle_alpha'
    _item_related.function_code   associated_value
    _item_sub_category.id         cell_angle_esd
    _item_type.code               float
    _item_units.code              degrees
     save_

save__cell.angle_beta
    _item_description.description
;              Unit-cell angle beta of the reported structure in degrees.
;
    _item.name                  '_cell.angle_beta'
    _item.category_id             cell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_angle_beta'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           90.0
    loop_
    _item_dependent.dependent_name
                                '_cell.angle_alpha'
                                '_cell.angle_gamma'
    loop_
    _item_range.maximum
    _item_range.minimum           180.0   180.0
                                  180.0     0.0
                                    0.0     0.0
    _item_related.related_name  '_cell.angle_beta_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         cell_angle
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              degrees
     save_

save__cell.angle_beta_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _cell.angle_beta.
;
    _item.name                  '_cell.angle_beta_esd'
    _item.category_id             cell
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_cell.angle_alpha_esd'
                                '_cell.angle_gamma_esd'
    _item_related.related_name  '_cell.angle_beta'
    _item_related.function_code   associated_value
    _item_sub_category.id         cell_angle_esd
    _item_type.code               float
    _item_units.code              degrees
     save_

save__cell.angle_gamma
    _item_description.description
;              Unit-cell angle gamma of the reported structure in degrees.
;
    _item.name                  '_cell.angle_gamma'
    _item.category_id             cell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_angle_gamma'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           90.0
    loop_
    _item_dependent.dependent_name
                                '_cell.angle_alpha'
                                '_cell.angle_beta'
    loop_
    _item_range.maximum
    _item_range.minimum           180.0   180.0
                                  180.0     0.0
                                    0.0     0.0
    _item_related.related_name  '_cell.angle_gamma_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         cell_angle
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              degrees
     save_

save__cell.angle_gamma_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _cell.angle_gamma.
;
    _item.name                  '_cell.angle_gamma_esd'
    _item.category_id             cell
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_cell.angle_alpha_esd'
                                '_cell.angle_beta_esd'
    _item_related.related_name  '_cell.angle_gamma'
    _item_related.function_code   associated_value
    _item_sub_category.id         cell_angle_esd
    _item_type.code               float
    _item_units.code              degrees
     save_

save__cell.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_cell.entry_id'
    _item.mandatory_code          yes
     save_

save__cell.details
    _item_description.description
;              A description of special aspects of the cell choice, noting
               possible alternative settings.
;
    _item.name                  '_cell.details'
    _item.category_id             cell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_special_details'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          'pseudo-orthorhombic'
      'standard setting from 45 deg rotation around c'

     save_

save__cell.formula_units_Z
    _item_description.description
;              The number of the formula units in the unit cell as specified
               by _chemical_formula.structural, _chemical_formula.moiety or
               _chemical_formula.sum.
;
    _item.name                  '_cell.formula_units_Z'
    _item.category_id             cell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_formula_units_Z'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   1
                                  1   1
    _item_type.code               int
     save_

save__cell.length_a
    _item_description.description
;              Unit-cell length a corresponding to the structure reported in
              angstroms.
;
    _item.name                  '_cell.length_a'
    _item.category_id             cell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_length_a'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_cell.length_b'
                                '_cell.length_c'
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_cell.length_a_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         cell_length
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__cell.length_a_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _cell.length_a.
;
    _item.name                  '_cell.length_a_esd'
    _item.category_id             cell
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_cell.length_b_esd'
                                '_cell.length_c_esd'
    _item_related.related_name  '_cell.length_a'
    _item_related.function_code   associated_value
    _item_sub_category.id         cell_length_esd
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__cell.length_b
    _item_description.description
;              Unit-cell length b corresponding to the structure reported in
               angstroms.
;
    _item.name                  '_cell.length_b'
    _item.category_id             cell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_length_b'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_cell.length_a'
                                '_cell.length_c'
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_cell.length_b_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         cell_length
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__cell.length_b_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _cell.length_b.
;
    _item.name                  '_cell.length_b_esd'
    _item.category_id             cell
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_cell.length_a_esd'
                                '_cell.length_c_esd'
    _item_related.related_name  '_cell.length_b'
    _item_related.function_code   associated_value
    _item_sub_category.id         cell_length_esd
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__cell.length_c
    _item_description.description
;              Unit-cell length c corresponding to the structure reported in
              angstroms.
;
    _item.name                  '_cell.length_c'
    _item.category_id             cell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_length_c'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_cell.length_a'
                                '_cell.length_b'
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_cell.length_c_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         cell_length
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__cell.length_c_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _cell.length_c.
;
    _item.name                  '_cell.length_c_esd'
    _item.category_id             cell
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_cell.length_a_esd'
                                '_cell.length_b_esd'
    _item_related.related_name  '_cell.length_c'
    _item_related.function_code   associated_value
    _item_sub_category.id         cell_length_esd
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__cell.volume
    _item_description.description
;              Cell volume V in angstroms cubed.

               V = a b c (1 - cos^2^~alpha~ - cos^2^~beta~ - cos^2^~gamma~
                          + 2 cos~alpha~ cos~beta~ cos~gamma~)^1/2^

               a     = _cell.length_a
               b     = _cell.length_b
               c     = _cell.length_c
               alpha = _cell.angle_alpha
               beta  = _cell.angle_beta
               gamma = _cell.angle_gamma
;
    _item.name                  '_cell.volume'
    _item.category_id             cell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_volume'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_cell.volume_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_cubed
     save_

save__cell.volume_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _cell.volume.
;
    _item.name                  '_cell.volume_esd'
    _item.category_id             cell
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_cell.volume'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms_cubed
     save_

save__cell.Z_PDB
    _item_description.description
;              The number of the polymeric chains in a unit cell. In the case
               of heteropolymers, Z is the number of occurrences of the most
               populous chain.

               This data item is provided for compatibility with the original
               Protein Data Bank format, and only for that purpose.
;
    _item.name                  '_cell.Z_PDB'
    _item.category_id             cell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   1
                                  1   1
    _item_type.code               int
     save_

######################
## CELL_MEASUREMENT ##
######################

save_cell_measurement
    _category.description
;              Data items in the CELL_MEASUREMENT category record details
               about the measurement of the crystallographic cell parameters.
;
    _category.id                  cell_measurement
    _category.mandatory_code      no
    _category_key.name          '_cell_measurement.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'cell_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _cell_measurement.entry_id             '5HVP'
    _cell_measurement.temp                 293
    _cell_measurement.temp_esd             3
    _cell_measurement.theta_min            11
    _cell_measurement.theta_max            31
    _cell_measurement.wavelength           1.54
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - based on data set TOZ of Willis, Beckwith & Tozer
                [Acta Cryst. (1991), C47, 2276-2277].
;
;
    _cell_measurement.temp                 293
    _cell_measurement.reflns_used          25
    _cell_measurement.theta_min            25
    _cell_measurement.theta_max            31
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__cell_measurement.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_cell_measurement.entry_id'
    _item.mandatory_code          yes
     save_

save__cell_measurement.pressure
    _item_description.description
;              The pressure in kilopascals at which the unit-cell parameters
               were measured (not the pressure at which the sample was
               synthesized).
;
    _item.name                  '_cell_measurement.pressure'
    _item.category_id             cell_measurement
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_measurement_pressure'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_related.related_name  '_cell_measurement.pressure_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              kilopascals
     save_

save__cell_measurement.pressure_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _cell_measurement.pressure.
;
    _item.name                  '_cell_measurement.pressure_esd'
    _item.category_id             cell_measurement
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_cell_measurement.pressure'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              kilopascals
     save_

save__cell_measurement.radiation
    _item_description.description
;              Description of the radiation used to measure the unit-cell data.
               See also _cell_measurement.wavelength.
;
    _item.name                  '_cell_measurement.radiation'
    _item.category_id             cell_measurement
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_measurement_radiation'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          'neutron'
                                 'Cu K\a'
                                 'synchrotron'
     save_

save__cell_measurement.reflns_used
    _item_description.description
;              The total number of reflections used to determine the unit cell.
               These reflections may be specified as CELL_MEASUREMENT_REFLN
               data items.
;
    _item.name                  '_cell_measurement.reflns_used'
    _item.category_id             cell_measurement
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_measurement_reflns_used'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__cell_measurement.temp
    _item_description.description
;              The temperature in kelvins at which the unit-cell parameters
               were measured (not the temperature of synthesis).
;
    _item.name                  '_cell_measurement.temp'
    _item.category_id             cell_measurement
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_measurement_temperature'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_cell_measurement.temp_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              kelvins
     save_

save__cell_measurement.temp_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _cell_measurement.temp.
;
    _item.name                  '_cell_measurement.temp_esd'
    _item.category_id             cell_measurement
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_cell_measurement.temp'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              kelvins
     save_

save__cell_measurement.theta_max
    _item_description.description
;              The maximum theta angle of reflections used to measure
               the unit cell in degrees.
;
    _item.name                  '_cell_measurement.theta_max'
    _item.category_id             cell_measurement
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_measurement_theta_max'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           90.0   90.0
                                  90.0    0.0
                                   0.0    0.0
    _item_type.code               float
    _item_units.code              degrees
     save_

save__cell_measurement.theta_min
    _item_description.description
;              The minimum theta angle of reflections used to measure
               the unit cell in degrees.
;
    _item.name                  '_cell_measurement.theta_min'
    _item.category_id             cell_measurement
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_measurement_theta_min'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           90.0   90.0
                                  90.0    0.0
                                   0.0    0.0
    _item_type.code               float
    _item_units.code              degrees
     save_

save__cell_measurement.wavelength
    _item_description.description
;              The wavelength in angstroms of the radiation used to measure
               the unit cell. If this is not specified, the wavelength is
               assumed to be that specified in the category
               DIFFRN_RADIATION_WAVELENGTH.
;
    _item.name                  '_cell_measurement.wavelength'
    _item.category_id             cell_measurement
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_measurement_wavelength'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

############################
## CELL_MEASUREMENT_REFLN ##
############################

save_cell_measurement_refln
    _category.description
;              Data items in the CELL_MEASUREMENT_REFLN category record
               details about the reflections used to determine the
               crystallographic cell parameters.

               The CELL_MEASUREMENT_REFLN data items would in general be used
               only for diffractometer data.
;
    _category.id                  cell_measurement_refln
    _category.mandatory_code      no
    loop_
    _category_key.name          '_cell_measurement_refln.index_h'
                                '_cell_measurement_refln.index_k'
                                '_cell_measurement_refln.index_l'
    loop_
    _category_group.id           'inclusive_group'
                                 'cell_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - extracted from the CAD-4 listing of Rb~2~S~2~O~6~ at room
                temperature (unpublished).
;
;
    loop_
    _cell_measurement_refln.index_h
    _cell_measurement_refln.index_k
    _cell_measurement_refln.index_l
    _cell_measurement_refln.theta
       -2    4    1          8.67
        0    3    2          9.45
        3    0    2          9.46
       -3    4    1          8.93
       -2    1   -2          7.53
       10    0    0         23.77
        0   10    0         23.78
       -5    4    1         11.14
      # - - - - data truncated for brevity - - - -
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__cell_measurement_refln.index_h
    _item_description.description
;              Miller index h of a reflection used for measurement of the unit
               cell.
;
    _item.name                  '_cell_measurement_refln.index_h'
    _item.category_id             cell_measurement_refln
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_cell_measurement_refln_index_h'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_cell_measurement_refln.index_k'
                                '_cell_measurement_refln.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__cell_measurement_refln.index_k
    _item_description.description
;              Miller index k of a reflection used for measurement of the unit
               cell.
;
    _item.name                  '_cell_measurement_refln.index_k'
    _item.category_id             cell_measurement_refln
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_cell_measurement_refln_index_k'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_cell_measurement_refln.index_h'
                                '_cell_measurement_refln.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__cell_measurement_refln.index_l
    _item_description.description
;              Miller index l of a reflection used for measurement of the unit
               cell.
;
    _item.name                  '_cell_measurement_refln.index_l'
    _item.category_id             cell_measurement_refln
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_cell_measurement_refln_index_l'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_cell_measurement_refln.index_h'
                                '_cell_measurement_refln.index_k'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__cell_measurement_refln.theta
    _item_description.description
;              Theta angle for a reflection used for measurement of
               the unit cell in degrees.
;
    _item.name                  '_cell_measurement_refln.theta'
    _item.category_id             cell_measurement_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_cell_measurement_refln_theta'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           90.0   90.0
                                  90.0    0.0
                                   0.0    0.0
    _item_type.code               float
    _item_units.code              degrees
     save_

###############
## CHEM_COMP ##
###############

save_chem_comp
    _category.description
;              Data items in the CHEM_COMP category give details about each
               of the chemical components from which the relevant chemical
               structures can be constructed, such as name, mass or charge.

               The related categories CHEM_COMP_ATOM, CHEM_COMP_BOND,
               CHEM_COMP_ANGLE etc. describe the detailed geometry of these
               chemical components.
;
    _category.id                  chem_comp
    _category.mandatory_code      no
    _category_key.name          '_chem_comp.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_comp_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _chem_comp.id
    _chem_comp.model_source
    _chem_comp.name
      phe  '1987 Protin/Prolsq Ideals file' phenylalanine
      val  '1987 Protin/Prolsq Ideals file' alanine
    # - - - - data truncated for brevity - - - -
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chem_comp.formula
    _item_description.description
;              The formula for the chemical component. Formulae are written
               according to the following rules:

               (1) Only recognized element symbols may be used.

               (2) Each element symbol is followed by a 'count' number. A count
                  of '1' may be omitted.

               (3) A space or parenthesis must separate each cluster of
                  (element symbol + count), but in general parentheses are
                  not used.

               (4) The order of elements depends on whether carbon is
                  present or not. If carbon is present, the order should be:
                  C, then H, then the other elements in alphabetical order
                  of their symbol. If carbon is not present, the elements
                  are listed purely in alphabetic order of their symbol. This
                  is the 'Hill' system used by Chemical Abstracts.
;
    _item.name                  '_chem_comp.formula'
    _item.category_id             chem_comp
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'C18 H19 N7 O8 S'
     save_

save__chem_comp.formula_weight
    _item_description.description
;              Formula mass in daltons of the chemical component.
;
    _item.name                  '_chem_comp.formula_weight'
    _item.category_id             chem_comp
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    1.0
                                  1.0   1.0
    _item_type.code               float
     save_

save__chem_comp.id
    _item_description.description
;              The value of _chem_comp.id must uniquely identify each item in
               the CHEM_COMP list.

               For protein polymer entities, this is the three-letter code for
               the amino acid.

               For nucleic acid polymer entities, this is the one-letter code
               for the base.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
        '_chem_comp.id'                             chem_comp            yes
        '_atom_site.label_comp_id'                  atom_site            no
        '_chem_comp.mon_nstd_parent_comp_id'        chem_comp            no
        '_chem_comp_atom.comp_id'                   chem_comp_atom       yes
        '_chem_comp_angle.comp_id'                  chem_comp_angle      yes
        '_chem_comp_bond.comp_id'                   chem_comp_bond       yes
        '_chem_comp_chir.comp_id'                   chem_comp_chir       yes
        '_chem_comp_chir_atom.comp_id'              chem_comp_chir_atom  yes
        '_chem_comp_plane.comp_id'                  chem_comp_plane      yes
        '_chem_comp_plane_atom.comp_id'             chem_comp_plane_atom yes
        '_chem_comp_tor.comp_id'                    chem_comp_tor        yes
        '_chem_comp_tor_value.comp_id'              chem_comp_tor_value  yes
        '_entity_poly_seq.mon_id'                   entity_poly_seq      yes
        '_geom_angle.atom_site_label_comp_id_1'     geom_angle           no
        '_geom_angle.atom_site_label_comp_id_2'     geom_angle           no
        '_geom_angle.atom_site_label_comp_id_3'     geom_angle           no
        '_geom_bond.atom_site_label_comp_id_1'      geom_bond            no
        '_geom_bond.atom_site_label_comp_id_2'      geom_bond            no
        '_geom_contact.atom_site_label_comp_id_1'   geom_contact         no
        '_geom_contact.atom_site_label_comp_id_2'   geom_contact         no
        '_geom_hbond.atom_site_label_comp_id_A'     geom_hbond           no
        '_geom_hbond.atom_site_label_comp_id_D'     geom_hbond           no
        '_geom_hbond.atom_site_label_comp_id_H'     geom_hbond           no
        '_geom_torsion.atom_site_label_comp_id_1'   geom_torsion         no
        '_geom_torsion.atom_site_label_comp_id_2'   geom_torsion         no
        '_geom_torsion.atom_site_label_comp_id_3'   geom_torsion         no
        '_geom_torsion.atom_site_label_comp_id_4'   geom_torsion         no
        '_struct_conf.beg_label_comp_id'            struct_conf          yes
        '_struct_conf.end_label_comp_id'            struct_conf          yes
        '_struct_conn.ptnr1_label_comp_id'          struct_conn          yes
        '_struct_conn.ptnr2_label_comp_id'          struct_conn          yes
        '_struct_mon_nucl.label_comp_id'            struct_mon_nucl      yes
        '_struct_mon_prot.label_comp_id'            struct_mon_prot      yes
        '_struct_mon_prot_cis.label_comp_id'        struct_mon_prot_cis  yes
        '_struct_ncs_dom_lim.beg_label_comp_id'     struct_ncs_dom_lim   yes
        '_struct_ncs_dom_lim.end_label_comp_id'     struct_ncs_dom_lim   yes
        '_struct_ref_seq_dif.db_mon_id'             struct_ref_seq_dif   yes
        '_struct_ref_seq_dif.mon_id'                struct_ref_seq_dif   yes
        '_struct_sheet_range.beg_label_comp_id'     struct_sheet_range   yes
        '_struct_sheet_range.end_label_comp_id'     struct_sheet_range   yes
        '_struct_site_gen.label_comp_id'            struct_site_gen      yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
         '_atom_site.label_comp_id'                 '_chem_comp.id'
         '_chem_comp.mon_nstd_parent_comp_id'       '_chem_comp.id'
         '_chem_comp_atom.comp_id'                  '_chem_comp.id'
         '_chem_comp_chir.comp_id'                  '_chem_comp.id'
         '_chem_comp_chir_atom.comp_id'             '_chem_comp.id'
         '_chem_comp_plane.comp_id'                 '_chem_comp.id'
         '_chem_comp_plane_atom.comp_id'            '_chem_comp.id'
         '_entity_poly_seq.mon_id'                  '_chem_comp.id'
         '_chem_comp_angle.comp_id'                 '_chem_comp_atom.comp_id'
         '_chem_comp_bond.comp_id'                  '_chem_comp_atom.comp_id'
         '_chem_comp_tor.comp_id'                   '_chem_comp_atom.comp_id'
         '_chem_comp_tor_value.comp_id'             '_chem_comp_atom.comp_id'
         '_geom_angle.atom_site_label_comp_id_1'    '_atom_site.label_comp_id'
         '_geom_angle.atom_site_label_comp_id_2'    '_atom_site.label_comp_id'
         '_geom_angle.atom_site_label_comp_id_3'    '_atom_site.label_comp_id'
         '_geom_bond.atom_site_label_comp_id_1'     '_atom_site.label_comp_id'
         '_geom_bond.atom_site_label_comp_id_2'     '_atom_site.label_comp_id'
         '_geom_contact.atom_site_label_comp_id_1'  '_atom_site.label_comp_id'
         '_geom_contact.atom_site_label_comp_id_2'  '_atom_site.label_comp_id'
         '_geom_hbond.atom_site_label_comp_id_A'    '_atom_site.label_comp_id'
         '_geom_hbond.atom_site_label_comp_id_D'    '_atom_site.label_comp_id'
         '_geom_hbond.atom_site_label_comp_id_H'    '_atom_site.label_comp_id'
         '_geom_torsion.atom_site_label_comp_id_1'  '_atom_site.label_comp_id'
         '_geom_torsion.atom_site_label_comp_id_2'  '_atom_site.label_comp_id'
         '_geom_torsion.atom_site_label_comp_id_3'  '_atom_site.label_comp_id'
         '_geom_torsion.atom_site_label_comp_id_4'  '_atom_site.label_comp_id'
         '_struct_conf.beg_label_comp_id'           '_atom_site.label_comp_id'
         '_struct_conf.end_label_comp_id'           '_atom_site.label_comp_id'
         '_struct_conn.ptnr1_label_comp_id'         '_atom_site.label_comp_id'
         '_struct_conn.ptnr2_label_comp_id'         '_atom_site.label_comp_id'
         '_struct_mon_nucl.label_comp_id'           '_atom_site.label_comp_id'
         '_struct_mon_prot.label_comp_id'           '_atom_site.label_comp_id'
         '_struct_mon_prot_cis.label_comp_id'       '_atom_site.label_comp_id'
         '_struct_ncs_dom_lim.beg_label_comp_id'    '_atom_site.label_comp_id'
         '_struct_ncs_dom_lim.end_label_comp_id'    '_atom_site.label_comp_id'
         '_struct_ref_seq_dif.db_mon_id'            '_chem_comp.id'
         '_struct_ref_seq_dif.mon_id'               '_chem_comp.id'
         '_struct_sheet_range.beg_label_comp_id'    '_atom_site.label_comp_id'
         '_struct_sheet_range.end_label_comp_id'    '_atom_site.label_comp_id'
         '_struct_site_gen.label_comp_id'           '_atom_site.label_comp_id'
    _item_type.code               ucode
    loop_
    _item_examples.case          'ala'
                                 'val'
                                 'A'
                                 'C'
     save_

save__chem_comp.model_details
    _item_description.description
;              A description of special aspects of the generation of the
               coordinates for the model of the component.
;
    _item.name                  '_chem_comp.model_details'
    _item.category_id             chem_comp
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case          'geometry idealized but not minimized'
     save_

save__chem_comp.model_erf
    _item_description.description
;              A pointer to an external reference file from which the atomic
               description of the component is taken.
;
    _item.name                  '_chem_comp.model_erf'
    _item.category_id             chem_comp
    _item.mandatory_code          no
    _item_type.code               line
     save_

save__chem_comp.model_source
    _item_description.description
;              The source of the coordinates for the model of the component.
;
    _item.name                  '_chem_comp.model_source'
    _item.category_id             chem_comp
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'CSD entry ABCDEF'
                                 'built using Quanta/Charmm'
     save_

save__chem_comp.mon_nstd_class
    _item_description.description
;              A description of the class of a nonstandard monomer if the
               nonstandard monomer represents a modification of a
               standard monomer.
;
    _item.name                  '_chem_comp.mon_nstd_class'
    _item.category_id             chem_comp
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'iodinated base'
                                 'phosphorylated amino acid'
                                 'brominated base'
                                 'modified amino acid'
                                 'glycosylated amino acid'
     save_

save__chem_comp.mon_nstd_details
    _item_description.description
;              A description of special details of a nonstandard monomer.
;
    _item.name                  '_chem_comp.mon_nstd_details'
    _item.category_id             chem_comp
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__chem_comp.mon_nstd_flag
    _item_description.description
;              'yes' indicates that this is a 'standard' monomer, 'no'
               indicates that it is 'nonstandard'. Nonstandard monomers
               should be described in more detail using the
               _chem_comp.mon_nstd_parent, _chem_comp.mon_nstd_class and
               _chem_comp.mon_nstd_details data items.
;
    _item.name                  '_chem_comp.mon_nstd_flag'
    _item.category_id             chem_comp
    _item.mandatory_code          no
    _item_type.code               ucode
    _item_default.value           no
    loop_
    _item_enumeration.value
    _item_enumeration.detail      no   'the monomer is nonstandard'
                                  n    'abbreviation for "no"'
                                  yes  'the monomer is standard'
                                  y    'abbreviation for "yes"'
     save_

save__chem_comp.mon_nstd_parent
    _item_description.description
;              The name of the parent monomer of the nonstandard monomer,
               if the nonstandard monomer represents a modification of a
               standard monomer.
;
    _item.name                  '_chem_comp.mon_nstd_parent'
    _item.category_id             chem_comp
    _item.mandatory_code          no
    _item_type.code               code
    loop_
    _item_examples.case          'tyrosine'
                                 'cytosine'
     save_

save__chem_comp.mon_nstd_parent_comp_id
    _item_description.description
;              The identifier for the parent component of the nonstandard
               component.

               This data item is a pointer to _chem_comp.id in the CHEM_COMP
               category.
;
    _item.name                  '_chem_comp.mon_nstd_parent_comp_id'
    _item.mandatory_code          no
     save_

save__chem_comp.name
    _item_description.description
;              The full name of the component.
;
    _item.name                  '_chem_comp.name'
    _item.category_id             chem_comp
    _item.mandatory_code          no
    _item_type.code               line
    loop_
    _item_examples.case          'alanine'
                                 'valine'
                                 'adenine'
                                 'cytosine'
     save_

save__chem_comp.number_atoms_all
    _item_description.description
;              The total number of atoms in the component.
;
    _item.name                  '_chem_comp.number_atoms_all'
    _item.category_id             chem_comp
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   1
                                  1   1
    _item_type.code               int
     save_

save__chem_comp.number_atoms_nh
    _item_description.description
;              The number of non-hydrogen atoms in the component.
;
    _item.name                  '_chem_comp.number_atoms_nh'
    _item.category_id             chem_comp
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   1
                                  1   1
    _item_type.code               int
     save_

save__chem_comp.one_letter_code
    _item_description.description
;              For standard polymer components, the one-letter code for
               the component. If there is not a standard one-letter code
               for this component, or if this is a non-polymer
               component, the one-letter code should be given as 'X'.
               This code may be preceded by a '+' character to indicate
               that the component is a modification of a standard
               component.
;
    _item.name                  '_chem_comp.one_letter_code'
    _item.category_id             chem_comp
    _item.mandatory_code          no
    _item_type.code               uchar1
    loop_
    _item_examples.case
    _item_examples.detail         A  'alanine or adenine'
                                  B  'ambiguous asparagine/aspartic acid'
                                  R  'arginine'
                                  N  'asparagine'
                                  D  'aspartic acid'
                                  C  'cysteine or cystine or cytosine'
                                  Q  'glutamine'
                                  E  'glutamic acid'
                                  Z  'ambiguous glutamine/glutamic acid'
                                  G  'glycine or guanine'
                                  H  'histidine'
                                  I  'isoleucine'
                                  L  'leucine'
                                  K  'lysine'
                                  M  'methionine'
                                  F  'phenylalanine'
                                  P  'proline'
                                  S  'serine'
                                  T  'threonine or thymine'
                                  W  'tryptophan'
                                  Y  'tyrosine'
                                  V  'valine'
                                  U  'uracil'
                                  O  'water'
                                  X  'other'
     save_

save__chem_comp.three_letter_code
    _item_description.description
;              For standard polymer components, the three-letter code for
               the component. If there is not a standard three-letter code
               for this component, or if this is a non-polymer
               component, the three-letter code should be given as 'UNK'.
               This code may be preceded by a '+' character to indicate
               that the component is a modification of a standard
               component.
;
    _item.name                  '_chem_comp.three_letter_code'
    _item.category_id             chem_comp
    _item.mandatory_code          no
    _item_type.code               uchar3
    loop_
    _item_examples.case
    _item_examples.detail         ALA  'alanine'
                                  ARG  'arginine'
                                  ASN  'asparagine'
                                  ASP  'aspartic acid'
                                  ASX  'ambiguous asparagine/aspartic acid'
                                  CYS  'cysteine'
                                  GLN  'glutamine'
                                  GLU  'glutamic acid'
                                  GLY  'glycine'
                                  GLX  'ambiguous glutamine/glutamic acid'
                                  HIS  'histidine'
                                  ILE  'isoleucine'
                                  LEU  'leucine'
                                  LYS  'lysine'
                                  MET  'methionine'
                                  PHE  'phenylalanine'
                                  PRO  'proline'
                                  SER  'serine'
                                  THR  'threonine'
                                  TRP  'tryptophan'
                                  TRY  'tyrosine'
                                  VAL  'valine'
                                  1MA  '1-methyladenosine'
                                  5MC  '5-methylcytosine'
                                  OMC  '2(prime)-O-methylcytodine'
                                  1MG  '1-methylguanosine'
                                  2MG  'N(2)-methylguanosine'
                                  M2G  'N(2)-dimethylguanosine'
                                  7MG  '7-methylguanosine'
                                  0MG  '2(prime)-O-methylguanosine'
                                  H2U  'dihydrouridine'
                                  5MU  'ribosylthymidine'
                                  PSU  'pseudouridine'
                                  ACE  'acetic acid'
                                  FOR  'formic acid'
                                  HOH  'water'
                                  UNK  'other'
     save_

save__chem_comp.type
    _item_description.description
;              For standard polymer components, the type of the monomer.
               Note that monomers that will form polymers are of three types:
               linking monomers, monomers with some type of N-terminal (or 5')
               cap and monomers with some type of C-terminal (or 3') cap.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
        '_chem_comp.type'              chem_comp       yes
        '_chem_comp_link.type_comp_1'  chem_comp_link  yes
        '_chem_comp_link.type_comp_2'  chem_comp_link  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
        '_chem_comp_link.type_comp_1'  '_chem_comp.type'
        '_chem_comp_link.type_comp_2'  '_chem_comp.type'
    _item_type.code               uline
    loop_
    _item_enumeration.value      'D-peptide linking'
                                 'L-peptide linking'
                                 'D-peptide NH3 amino terminus'
                                 'L-peptide NH3 amino terminus'
                                 'D-peptide COOH carboxy terminus'
                                 'L-peptide COOH carboxy terminus'
                                 'DNA linking'
                                 'RNA linking'
                                 'DNA OH 5 prime terminus'
                                 'RNA OH 5 prime terminus'
                                 'DNA OH 3 prime terminus'
                                 'RNA OH 3 prime terminus'
                                 'D-saccharide 1,4 and 1,4 linking'
                                 'L-saccharide 1,4 and 1,4 linking'
                                 'D-saccharide 1,4 and 1,6 linking'
                                 'L-saccharide 1,4 and 1,6 linking'
                                 'L-saccharide'
                                 'D-saccharide'
                                 'saccharide'
                                 'non-polymer'
                                 'other'
     save_

#####################
## CHEM_COMP_ANGLE ##
#####################

save_chem_comp_angle
    _category.description
;              Data items in the CHEM_COMP_ANGLE category record details about
               angles in a chemical component. Angles are designated by three
               atoms, with the second atom forming the vertex of the angle.
               Target values may be specified as angles in degrees, as a
               distance between the first and third atoms, or both.
;
    _category.id                  chem_comp_angle
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_comp_angle.comp_id'
                                '_chem_comp_angle.atom_id_1'
                                '_chem_comp_angle.atom_id_2'
                                '_chem_comp_angle.atom_id_3'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_comp_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _chem_comp_angle.comp_id
    _chem_comp_angle.atom_id_1
    _chem_comp_angle.atom_id_2
    _chem_comp_angle.atom_id_3
    _chem_comp_angle.value_angle
    _chem_comp_angle.value_dist
      phe  N    CA   C    xxx.xx   x.xx
      phe  CA   C    O    xxx.xx   x.xx
      phe  CB   CA   C    xxx.xx   x.xx
      phe  CB   CA   N    xxx.xx   x.xx
      phe  CA   CB   CG   xxx.xx   x.xx
      phe  CB   CG   CD1  xxx.xx   x.xx
      phe  CB   CG   CD2  xxx.xx   x.xx
      phe  CD1  CG   CD2  xxx.xx   x.xx
      phe  CG   CD1  CE1  xxx.xx   x.xx
      phe  CD1  CE1  CZ   xxx.xx   x.xx
      phe  CE1  CZ   CE2  xxx.xx   x.xx
      phe  CZ   CE2  CD2  xxx.xx   x.xx
      phe  CG   CD2  CE2  xxx.xx   x.xx
      val  N    CA   C    xxx.xx   x.xx
      val  CA   C    O    xxx.xx   x.xx
      val  CB   CA   C    xxx.xx   x.xx
      val  CB   CA   N    xxx.xx   x.xx
      val  CA   CB   CG1  xxx.xx   x.xx
      val  CA   CB   CG2  xxx.xx   x.xx
      val  CG1  CB   CG2  xxx.xx   x.xx
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chem_comp_angle.atom_id_1
    _item_description.description
;              The ID of the first of the three atoms that define the angle.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_chem_comp_angle.atom_id_1'
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_chem_comp_angle.atom_id_2'
                                '_chem_comp_angle.atom_id_3'
     save_

save__chem_comp_angle.atom_id_2
    _item_description.description
;              The ID of the second of the three atoms that define the angle.
               The second atom is taken to be the apex of the angle.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_chem_comp_angle.atom_id_2'
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_chem_comp_angle.atom_id_1'
                                '_chem_comp_angle.atom_id_3'
     save_

save__chem_comp_angle.atom_id_3
    _item_description.description
;              The ID of the third of the three atoms that define the angle.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_chem_comp_angle.atom_id_3'
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_chem_comp_angle.atom_id_1'
                                '_chem_comp_angle.atom_id_2'
     save_

save__chem_comp_angle.comp_id
    _item_description.description
;              This data item is a pointer to _chem_comp.id in the CHEM_COMP
               category.
;
    _item.name                  '_chem_comp_angle.comp_id'
    _item.mandatory_code          yes
     save_

save__chem_comp_angle.value_angle
    _item_description.description
;              The value that should be taken as the target value for the angle
               associated with the specified atoms, expressed in degrees.
;
    _item.name                  '_chem_comp_angle.value_angle'
    _item.category_id             chem_comp_angle
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           180.0   180.0
                                  180.0     0.0
                                    0.0     0.0
    _item_related.related_name  '_chem_comp_angle.value_angle_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              degrees
     save_

save__chem_comp_angle.value_angle_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _chem_comp_angle.value_angle.
;
    _item.name                  '_chem_comp_angle.value_angle_esd'
    _item.category_id             chem_comp_angle
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           180.0   180.0
                                  180.0     0.0
                                    0.0     0.0
    _item_related.related_name  '_chem_comp_angle.value_angle'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              degrees
     save_

save__chem_comp_angle.value_dist
    _item_description.description
;              The value that should be taken as the target value for the angle
               associated with the specified atoms, expressed as the distance
               between the atoms specified by _chem_comp_angle.atom_id_1 and
               _chem_comp_angle.atom_id_3.
;
    _item.name                  '_chem_comp_angle.value_dist'
    _item.category_id             chem_comp_angle
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_chem_comp_angle.value_dist_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__chem_comp_angle.value_dist_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _chem_comp_angle.value_dist.
;
    _item.name                  '_chem_comp_angle.value_dist_esd'
    _item.category_id             chem_comp_angle
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_chem_comp_angle.value_dist'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms
     save_

####################
## CHEM_COMP_ATOM ##
####################

save_chem_comp_atom
    _category.description
;              Data items in the CHEM_COMP_ATOM category record details about
               the atoms in a chemical component. Specifying the atomic
               coordinates for the components in this category is an
               alternative to specifying the structure of the component
               via bonds, angles, planes etc. in the appropriate
               CHEM_COMP subcategories.
;
    _category.id                  chem_comp_atom
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_comp_atom.comp_id'
                                '_chem_comp_atom.atom_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_comp_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _chem_comp_atom.comp_id
    _chem_comp_atom.atom_id
    _chem_comp_atom.type_symbol
    _chem_comp_atom.substruct_code
    _chem_comp_atom.model_Cartn_x
    _chem_comp_atom.model_Cartn_y
    _chem_comp_atom.model_Cartn_z
      phe  N    N  main   1.20134   0.84658   0.00000
      phe  CA   C  main   0.00000   0.00000   0.00000
      phe  C    C  main  -1.25029   0.88107   0.00000
      phe  O    O  main  -2.18525   0.66029  -0.78409
      phe  CB   C  side   0.00662  -1.03603   1.11081
      phe  CG   C  side   0.03254  -0.49711   2.50951
      phe  CD1  C  side  -1.15813  -0.12084   3.13467
      phe  CE1  C  side  -1.15720   0.38038   4.42732
      phe  CZ   C  side   0.05385   0.51332   5.11032
      phe  CE2  C  side   1.26137   0.11613   4.50975
      phe  CD2  C  side   1.23668  -0.38351   3.20288
      val  N    N  main   1.20134   0.84658   0.00000
      val  CA   C  main   0.00000   0.00000   0.00000
      val  C    C  main  -1.25029   0.88107   0.00000
      val  O    O  main  -2.18525   0.66029  -0.78409
      val  CB   C  side   0.05260  -0.99339   1.17429
      val  CG1  C  side  -0.13288  -0.31545   2.52668
      val  CG2  C  side  -0.94265  -2.12930   0.99811
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chem_comp_atom.alt_atom_id
    _item_description.description
;              An alternative identifier for the atom. This data item would be
               used in cases where alternative nomenclatures exist for labelling
               atoms in a group.
;
    _item.name                  '_chem_comp_atom.alt_atom_id'
    _item.category_id             chem_comp_atom
    _item.mandatory_code          no
    _item_type.code               line
     save_

save__chem_comp_atom.atom_id
    _item_description.description
;              The value of _chem_comp_atom.atom_id must uniquely identify
               each atom in each monomer in the CHEM_COMP_ATOM list.

               The atom identifiers need not be unique over all atoms in the
               data block; they need only be unique for each atom in a
               component.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
        '_chem_comp_atom.atom_id'                   chem_comp_atom        yes
        '_atom_site.label_atom_id'                  atom_site             no
        '_chem_comp_angle.atom_id_1'                chem_comp_angle       yes
        '_chem_comp_angle.atom_id_2'                chem_comp_angle       yes
        '_chem_comp_angle.atom_id_3'                chem_comp_angle       yes
        '_chem_comp_bond.atom_id_1'                 chem_comp_bond        yes
        '_chem_comp_bond.atom_id_2'                 chem_comp_bond        yes
        '_chem_comp_chir.atom_id'                   chem_comp_chir        yes
        '_chem_comp_chir_atom.atom_id'              chem_comp_chir_atom   yes
        '_chem_comp_plane_atom.atom_id'             chem_comp_plane_atom  yes
        '_chem_comp_tor.atom_id_1'                  chem_comp_tor         yes
        '_chem_comp_tor.atom_id_2'                  chem_comp_tor         yes
        '_chem_comp_tor.atom_id_3'                  chem_comp_tor         yes
        '_chem_comp_tor.atom_id_4'                  chem_comp_tor         yes
        '_geom_angle.atom_site_label_atom_id_1'     geom_angle            no
        '_geom_angle.atom_site_label_atom_id_2'     geom_angle            no
        '_geom_angle.atom_site_label_atom_id_3'     geom_angle            no
        '_geom_bond.atom_site_label_atom_id_1'      geom_bond             no
        '_geom_bond.atom_site_label_atom_id_2'      geom_bond             no
        '_geom_contact.atom_site_label_atom_id_1'   geom_contact          no
        '_geom_contact.atom_site_label_atom_id_2'   geom_contact          no
        '_geom_hbond.atom_site_label_atom_id_A'     geom_hbond            no
        '_geom_hbond.atom_site_label_atom_id_D'     geom_hbond            no
        '_geom_hbond.atom_site_label_atom_id_H'     geom_hbond            no
        '_geom_torsion.atom_site_label_atom_id_1'   geom_torsion          no
        '_geom_torsion.atom_site_label_atom_id_2'   geom_torsion          no
        '_geom_torsion.atom_site_label_atom_id_3'   geom_torsion          no
        '_geom_torsion.atom_site_label_atom_id_4'   geom_torsion          no
        '_struct_conn.ptnr1_label_atom_id'          struct_conn           yes
        '_struct_conn.ptnr2_label_atom_id'          struct_conn           yes
        '_struct_sheet_hbond.range_1_beg_label_atom_id'
                                                    struct_sheet_hbond    yes
        '_struct_sheet_hbond.range_1_end_label_atom_id'
                                                    struct_sheet_hbond    yes
        '_struct_sheet_hbond.range_2_beg_label_atom_id'
                                                    struct_sheet_hbond    yes
        '_struct_sheet_hbond.range_2_end_label_atom_id'
                                                    struct_sheet_hbond    yes
        '_struct_site_gen.label_atom_id'            struct_site_gen       yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
        '_atom_site.label_atom_id'                 '_chem_comp_atom.atom_id'
        '_chem_comp_angle.atom_id_1'               '_chem_comp_atom.atom_id'
        '_chem_comp_angle.atom_id_2'               '_chem_comp_atom.atom_id'
        '_chem_comp_angle.atom_id_3'               '_chem_comp_atom.atom_id'
        '_chem_comp_bond.atom_id_1'                '_chem_comp_atom.atom_id'
        '_chem_comp_bond.atom_id_2'                '_chem_comp_atom.atom_id'
        '_chem_comp_chir.atom_id'                  '_chem_comp_atom.atom_id'
        '_chem_comp_chir_atom.atom_id'             '_chem_comp_atom.atom_id'
        '_chem_comp_plane_atom.atom_id'            '_chem_comp_atom.atom_id'
        '_chem_comp_tor.atom_id_1'                 '_chem_comp_atom.atom_id'
        '_chem_comp_tor.atom_id_2'                 '_chem_comp_atom.atom_id'
        '_chem_comp_tor.atom_id_3'                 '_chem_comp_atom.atom_id'
        '_chem_comp_tor.atom_id_4'                 '_chem_comp_atom.atom_id'
        '_geom_angle.atom_site_label_atom_id_1'    '_atom_site.label_atom_id'
        '_geom_angle.atom_site_label_atom_id_2'    '_atom_site.label_atom_id'
        '_geom_angle.atom_site_label_atom_id_3'    '_atom_site.label_atom_id'
        '_geom_bond.atom_site_label_atom_id_1'     '_atom_site.label_atom_id'
        '_geom_bond.atom_site_label_atom_id_2'     '_atom_site.label_atom_id'
        '_geom_contact.atom_site_label_atom_id_1'  '_atom_site.label_atom_id'
        '_geom_contact.atom_site_label_atom_id_2'  '_atom_site.label_atom_id'
        '_geom_hbond.atom_site_label_atom_id_A'    '_atom_site.label_atom_id'
        '_geom_hbond.atom_site_label_atom_id_D'    '_atom_site.label_atom_id'
        '_geom_hbond.atom_site_label_atom_id_H'    '_atom_site.label_atom_id'
        '_geom_torsion.atom_site_label_atom_id_1'  '_atom_site.label_atom_id'
        '_geom_torsion.atom_site_label_atom_id_2'  '_atom_site.label_atom_id'
        '_geom_torsion.atom_site_label_atom_id_3'  '_atom_site.label_atom_id'
        '_geom_torsion.atom_site_label_atom_id_4'  '_atom_site.label_atom_id'
        '_struct_conn.ptnr1_label_atom_id'         '_atom_site.label_atom_id'
        '_struct_conn.ptnr2_label_atom_id'         '_atom_site.label_atom_id'
        '_struct_sheet_hbond.range_1_beg_label_atom_id'
                                                   '_atom_site.label_atom_id'
        '_struct_sheet_hbond.range_1_end_label_atom_id'
                                                   '_atom_site.label_atom_id'
        '_struct_sheet_hbond.range_2_beg_label_atom_id'
                                                   '_atom_site.label_atom_id'
        '_struct_sheet_hbond.range_2_end_label_atom_id'
                                                   '_atom_site.label_atom_id'
        '_struct_site_gen.label_atom_id'           '_atom_site.label_atom_id'
    _item_type.code               atcode
     save_

save__chem_comp_atom.charge
    _item_description.description
;              The net integer charge assigned to this atom. This is the
               formal charge assignment normally found in chemical diagrams.
;
    _item.name                  '_chem_comp_atom.charge'
    _item.category_id             chem_comp_atom
    _item.mandatory_code          no
    _item_default.value           0
    loop_
    _item_range.maximum
    _item_range.minimum           8    8
                                  8   -8
                                 -8   -8
    _item_type.code               int
    loop_
    _item_examples.case
    _item_examples.detail         1   'for an ammonium nitrogen'
                                  -1  'for a chloride ion'
     save_

save__chem_comp_atom.model_Cartn_x
    _item_description.description
;              The x component of the coordinates for this atom in this
               component specified as orthogonal angstroms. The choice of
               reference axis frame for the coordinates is arbitrary.

               The set of coordinates input for the entity here is intended to
               correspond to the atomic model used to generate restraints for
               structure refinement, not to atom sites in the ATOM_SITE
               list.
;
    _item.name                  '_chem_comp_atom.model_Cartn_x'
    _item.category_id             chem_comp_atom
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_chem_comp_atom.model_Cartn_y'
                                '_chem_comp_atom.model_Cartn_z'
    _item_related.related_name  '_chem_comp_atom.model_Cartn_x_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         cartesian_coordinate
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__chem_comp_atom.model_Cartn_x_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _chem_comp_atom.model_Cartn_x.
;
    _item.name                  '_chem_comp_atom.model_Cartn_x_esd'
    _item.category_id             chem_comp_atom
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_chem_comp_atom.model_Cartn_y_esd'
                                '_chem_comp_atom.model_Cartn_z_esd'
    _item_related.related_name  '_chem_comp_atom.model_Cartn_x'
    _item_related.function_code   associated_value
    _item_sub_category.id         cartesian_coordinate_esd
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__chem_comp_atom.model_Cartn_y
    _item_description.description
;              The y component of the coordinates for this atom in this
               component specified as orthogonal angstroms. The choice of
               reference axis frame for the coordinates is arbitrary.

               The set of coordinates input for the entity here is intended to
               correspond to the atomic model used to generate restraints for
               structure refinement, not to atom sites in the ATOM_SITE
               list.
;
    _item.name                  '_chem_comp_atom.model_Cartn_y'
    _item.category_id             chem_comp_atom
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_chem_comp_atom.model_Cartn_x'
                                '_chem_comp_atom.model_Cartn_z'
    _item_related.related_name  '_chem_comp_atom.model_Cartn_y_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         cartesian_coordinate
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__chem_comp_atom.model_Cartn_y_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _chem_comp_atom.model_Cartn_y.
;
    _item.name                  '_chem_comp_atom.model_Cartn_y_esd'
    _item.category_id             chem_comp_atom
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_chem_comp_atom.model_Cartn_x_esd'
                                '_chem_comp_atom.model_Cartn_z_esd'
    _item_related.related_name  '_chem_comp_atom.model_Cartn_y'
    _item_related.function_code   associated_value
    _item_sub_category.id         cartesian_coordinate_esd
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__chem_comp_atom.model_Cartn_z
    _item_description.description
;              The z component of the coordinates for this atom in this
               component specified as orthogonal angstroms. The choice of
               reference axis frame for the coordinates is arbitrary.

               The set of coordinates input for the entity here is intended to
               correspond to the atomic model used to generate restraints for
               structure refinement, not to atom sites in the ATOM_SITE
               list.
;
    _item.name                  '_chem_comp_atom.model_Cartn_z'
    _item.category_id             chem_comp_atom
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_chem_comp_atom.model_Cartn_x'
                                '_chem_comp_atom.model_Cartn_y'
    _item_related.related_name  '_chem_comp_atom.model_Cartn_z_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         cartesian_coordinate
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__chem_comp_atom.model_Cartn_z_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _chem_comp_atom.model_Cartn_z.
;
    _item.name                  '_chem_comp_atom.model_Cartn_z_esd'
    _item.category_id             chem_comp_atom
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_chem_comp_atom.model_Cartn_x_esd'
                                '_chem_comp_atom.model_Cartn_y_esd'
    _item_related.related_name  '_chem_comp_atom.model_Cartn_z'
    _item_related.function_code   associated_value
    _item_sub_category.id         cartesian_coordinate_esd
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__chem_comp_atom.comp_id
    _item_description.description
;              This data item is a pointer to _chem_comp.id in the CHEM_COMP
               category.
;
    _item.name                  '_chem_comp_atom.comp_id'
    _item.mandatory_code          yes
     save_

save__chem_comp_atom.partial_charge
    _item_description.description
;              The partial charge assigned to this atom.
;
    _item.name                  '_chem_comp_atom.partial_charge'
    _item.category_id             chem_comp_atom
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__chem_comp_atom.substruct_code
    _item_description.description
;              This data item assigns the atom to a substructure of the
               component, if appropriate.
;
    _item.name                  '_chem_comp_atom.substruct_code'
    _item.category_id             chem_comp_atom
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      main   'main chain of an amino acid'
                                  side   'side chain of an amino acid'
                                  base   'base of a nucleic acid'
                                  phos   'phosphate of a nucleic acid'
                                  sugar  'sugar of a nucleic acid'
                                  none   'not appropriate for this monomer'
     save_

#save_chem_comp_atom.type_energy
#    _item_description.description
#;              This data item is a pointer to _atom_type_energy.type in the
#               ATOM_TYPE_ENERGY category.
#;
#     save_

save__chem_comp_atom.type_symbol
    _item_description.description
;              This data item is a pointer to _atom_type.symbol in the
               ATOM_TYPE category.
;
    _item.name                  '_chem_comp_atom.type_symbol'
    _item.mandatory_code          yes
     save_

####################
## CHEM_COMP_BOND ##
####################

save_chem_comp_bond
    _category.description
;              Data items in the CHEM_COMP_BOND category record details about
               the bonds between atoms in a chemical component. Target values
               may be specified as bond orders, as a distance between the two
               atoms, or both.
;
    _category.id                  chem_comp_bond
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_comp_bond.comp_id'
                                '_chem_comp_bond.atom_id_1'
                                '_chem_comp_bond.atom_id_2'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_comp_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _chem_comp_bond.comp_id
    _chem_comp_bond.atom_id_1
    _chem_comp_bond.atom_id_2
    _chem_comp_bond.value_order
      phe  N    CA   sing
      phe  CA   C    sing
      phe  C    O    doub
      phe  CB   CA   sing
      phe  CB   CG   sing
      phe  CG   CD1  arom
      phe  CD1  CE1  arom
      phe  CE1  CZ   arom
      phe  CZ   CE2  arom
      phe  CE2  CD2  arom
      phe  CD2  CG   arom
      val  N    CA   sing
      val  CA   C    sing
      val  C    O    doub
      val  CB   CA   sing
      val  CB   CG1  sing
      val  CB   CG2  sing
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chem_comp_bond.atom_id_1
    _item_description.description
;              The ID of the first of the two atoms that define the bond.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_chem_comp_bond.atom_id_1'
    _item.mandatory_code          yes
    _item_dependent.dependent_name
                                '_chem_comp_bond.atom_id_2'
     save_

save__chem_comp_bond.atom_id_2
    _item_description.description
;              The ID of the second of the two atoms that define the bond.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_chem_comp_bond.atom_id_2'
    _item.mandatory_code          yes
    _item_dependent.dependent_name
                                '_chem_comp_bond.atom_id_1'
     save_

save__chem_comp_bond.comp_id
    _item_description.description
;              This data item is a pointer to _chem_comp.id in the CHEM_COMP
               category.
;
    _item.name                  '_chem_comp_bond.comp_id'
    _item.mandatory_code          yes
     save_

save__chem_comp_bond.value_order
    _item_description.description
;              The value that should be taken as the target for the chemical
               bond associated with the specified atoms, expressed as a bond
               order.
;
    _item.name                  '_chem_comp_bond.value_order'
    _item.category_id             chem_comp_bond
    _item.mandatory_code          no
    _item_default.value           sing
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      sing  'single bond'
                                  doub  'double bond'
                                  trip  'triple bond'
                                  quad  'quadruple bond'
                                  arom  'aromatic bond'
                                  poly  'polymeric bond'
                                  delo  'delocalized double bond'
                                  pi    'pi bond'
     save_

save__chem_comp_bond.value_dist
    _item_description.description
;              The value that should be taken as the target for the chemical
               bond associated with the specified atoms, expressed as a
               distance.
;
    _item.name                  '_chem_comp_bond.value_dist'
    _item.category_id             chem_comp_bond
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_chem_comp_bond.value_dist_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__chem_comp_bond.value_dist_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _chem_comp_bond.value_dist.
;
    _item.name                  '_chem_comp_bond.value_dist_esd'
    _item.category_id             chem_comp_bond
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_chem_comp_bond.value_dist'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms
     save_

####################
## CHEM_COMP_CHIR ##
####################

save_chem_comp_chir
    _category.description
;              Data items in the CHEM_COMP_CHIR category provide details about
               the chiral centres in a chemical component. The atoms bonded
               to the chiral atom are specified in the CHEM_COMP_CHIR_ATOM
               category.
;
    _category.id                  chem_comp_chir
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_comp_chir.comp_id'
                                '_chem_comp_chir.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_comp_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _chem_comp_chir.comp_id
    _chem_comp_chir.id
    _chem_comp_chir.atom_id
      phe  phe1  CA
      val  val1  CA
    # - - - - data truncated for brevity - - - -
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chem_comp_chir.atom_id
    _item_description.description
;              The ID of the atom that is a chiral centre.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_chem_comp_chir.atom_id'
    _item.mandatory_code          yes
     save_

save__chem_comp_chir.atom_config
    _item_description.description
;              The chiral configuration of the atom that is a chiral centre.
;
    _item.name                  '_chem_comp_chir.atom_config'
    _item.category_id             chem_comp_chir
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      R  'absolute configuration R'
                                  S  'absolute configuration S'
     save_

save__chem_comp_chir.id
    _item_description.description
;              The value of _chem_comp_chir.id must uniquely identify a record
               in the CHEM_COMP_CHIR list.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_chem_comp_chir.id'            chem_comp_chir        yes
               '_chem_comp_chir_atom.chir_id'  chem_comp_chir_atom   yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_chem_comp_chir_atom.chir_id'  '_chem_comp_chir.id'
    _item_type.code               code
     save_

save__chem_comp_chir.comp_id
    _item_description.description
;              This data item is a pointer to _chem_comp.id in the CHEM_COMP
               category.
;
    _item.name                  '_chem_comp_chir.comp_id'
    _item.mandatory_code          yes
     save_

save__chem_comp_chir.number_atoms_all
    _item_description.description
;              The total number of atoms bonded to the atom specified by
               _chem_comp_chir.atom_id.
;
    _item.name                  '_chem_comp_chir.number_atoms_all'
    _item.category_id             chem_comp_chir
    _item.mandatory_code          no
    _item_type.code               int
     save_

save__chem_comp_chir.number_atoms_nh
    _item_description.description
;              The number of non-hydrogen atoms bonded to the atom specified by
               _chem_comp_chir.atom_id.
;
    _item.name                  '_chem_comp_chir.number_atoms_nh'
    _item.category_id             chem_comp_chir
    _item.mandatory_code          no
    _item_type.code               int
     save_

save__chem_comp_chir.volume_flag
    _item_description.description
;              A flag to indicate whether a chiral volume should match the
               standard value in both magnitude and sign, or in magnitude only.
;
    _item.name                  '_chem_comp_chir.volume_flag'
    _item.category_id             chem_comp_chir
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      sign    'match magnitude and sign'
                                  nosign  'match magnitude only'
     save_

save__chem_comp_chir.volume_three
    _item_description.description
;              The chiral volume, V~c~, for chiral centres that involve a chiral
               atom bonded to three non-hydrogen atoms and one hydrogen atom.

               V~c~ = V1 * (V2 X V3)

               V1 = the vector distance from the atom specified by
                    _chem_comp_chir.atom_id to the first atom in the
                    CHEM_COMP_CHIR_ATOM list
               V2 = the vector distance from the atom specified by
                    _chem_comp_chir.atom_id to the second atom in the
                    CHEM_COMP_CHIR_ATOM list
               V3 = the vector distance from the atom specified by
                    _chem_comp_chir.atom_id to the third atom in the
                    CHEM_COMP_CHIR_ATOM list
               *  = the vector dot product
               X  = the vector cross product
;
    _item.name                  '_chem_comp_chir.volume_three'
    _item.category_id             chem_comp_chir
    _item.mandatory_code          no
    _item_related.related_name  '_chem_comp_chir.volume_three_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_cubed
     save_

save__chem_comp_chir.volume_three_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _chem_comp_chir.volume_three.
;
    _item.name                  '_chem_comp_chir.volume_three_esd'
    _item.category_id             chem_comp_chir
    _item.mandatory_code          no
    _item_related.related_name  '_chem_comp_chir.volume_three'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms_cubed
     save_

#########################
## CHEM_COMP_CHIR_ATOM ##
#########################

save_chem_comp_chir_atom
    _category.description
;              Data items in the CHEM_COMP_CHIR_ATOM category enumerate the
               atoms bonded to a chiral atom within a chemical component.
;
    _category.id                  chem_comp_chir_atom
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_comp_chir_atom.chir_id'
                                '_chem_comp_chir_atom.atom_id'
                                '_chem_comp_chir_atom.comp_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_comp_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _chem_comp_chir_atom.comp_id
    _chem_comp_chir_atom.chir_id
    _chem_comp_chir_atom.atom_id
      phe  1  N
      phe  1  C
      phe  1  CB
      val  1  N
      val  1  C
      val  1  CB
   # - - - - data truncated for brevity - - - -
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chem_comp_chir_atom.atom_id
    _item_description.description
;              The ID of an atom bonded to the chiral atom.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_chem_comp_chir_atom.atom_id'
    _item.mandatory_code          yes
     save_

save__chem_comp_chir_atom.chir_id
    _item_description.description
;              This data item is a pointer to _chem_comp_chir.id in the
               CHEM_COMP_CHIR category.
;
    _item.name                  '_chem_comp_chir_atom.chir_id'
    _item.mandatory_code          yes
     save_

save__chem_comp_chir_atom.comp_id
    _item_description.description
;              This data item is a pointer to _chem_comp.id in the
               CHEM_COMP category.
;
    _item.name                  '_chem_comp_chir_atom.comp_id'
    _item.mandatory_code          yes
     save_

save__chem_comp_chir_atom.dev
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of the position of this atom from the plane defined by
               all of the atoms in the plane.
;
    _item.name                  '_chem_comp_chir_atom.dev'
    _item.category_id             chem_comp_chir_atom
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              angstroms
     save_

####################
## CHEM_COMP_LINK ##
####################

save_chem_comp_link
    _category.description
;              Data items in the CHEM_COMP_LINK category give details about
               the links between chemical components.
;
    _category.id                  chem_comp_link
    _category.mandatory_code      no
    _category_key.name          '_chem_comp_link.link_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_link_group'
#     loop_
#     _category_examples.detail
#     _category_examples.case
# # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# ;
#     Example 1 - from nucleotide external reference dictionary Nucleic
#                 Database Project 1997.
# ;
# ;
#     _chem_comp_link.link_id        ribose_adenine
#     _chem_comp_link.type_comp_1    ribose
#     _chem_comp_link.type_comp_2    adenine
#     _chem_comp_link.details
#     ;
#       Defines the linkage between adenine base and ribose sugar
#     ;
# ;
# # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chem_comp_link.link_id
    _item_description.description
;              This data item is a pointer to _chem_link.id in the
               CHEM_LINK category.
;
    _item.name                  '_chem_comp_link.link_id'
    _item.mandatory_code          yes
     save_

save__chem_comp_link.details
    _item_description.description
;              A description of special aspects of a link between
               chemical components in the structure.
;
    _item.name                  '_chem_comp_link.details'
    _item.category_id             chem_comp_link
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__chem_comp_link.type_comp_1
    _item_description.description
;              The type of the first of the two components joined by the
               link.

               This data item is a pointer to _chem_comp.type in the CHEM_COMP
               category.
;
    _item.name                  '_chem_comp_link.type_comp_1'
    _item.mandatory_code          yes
     save_

save__chem_comp_link.type_comp_2
    _item_description.description
;              The type of the second of the two components joined by the
               link.

               This data item is a pointer to _chem_comp.type in the CHEM_COMP
               category.
;
    _item.name                  '_chem_comp_link.type_comp_2'
    _item.mandatory_code          yes
     save_

#####################
## CHEM_COMP_PLANE ##
#####################

save_chem_comp_plane
    _category.description
;              Data items in the CHEM_COMP_PLANE category provide identifiers
               for the planes in a chemical component.  The atoms in the plane
               are specified in the CHEM_COMP_PLANE_ATOM category.
;
    _category.id                  chem_comp_plane
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_comp_plane.comp_id'
                                '_chem_comp_plane.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_comp_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _chem_comp_plane.comp_id
    _chem_comp_plane.id
      phe  phe1
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chem_comp_plane.id
    _item_description.description
;              The value of _chem_comp_plane.id must uniquely identify a record
               in the CHEM_COMP_PLANE list.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_chem_comp_plane.id'             chem_comp_plane       yes
               '_chem_comp_plane_atom.plane_id'  chem_comp_plane_atom  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_chem_comp_plane_atom.plane_id'  '_chem_comp_plane.id'
    _item_type.code               code
     save_

save__chem_comp_plane.comp_id
    _item_description.description
;              This data item is a pointer to _chem_comp.id in the CHEM_COMP
               category.
;
    _item.name                  '_chem_comp_plane.comp_id'
    _item.mandatory_code          yes
     save_

save__chem_comp_plane.number_atoms_all
    _item_description.description
;              The total number of atoms in the plane.
;
    _item.name                  '_chem_comp_plane.number_atoms_all'
    _item.category_id             chem_comp_plane
    _item.mandatory_code          no
    _item_type.code               int
     save_

save__chem_comp_plane.number_atoms_nh
    _item_description.description
;              The number of non-hydrogen atoms in the plane.
;
    _item.name                  '_chem_comp_plane.number_atoms_nh'
    _item.category_id             chem_comp_plane
    _item.mandatory_code          no
    _item_type.code               int
     save_

##########################
## CHEM_COMP_PLANE_ATOM ##
##########################

save_chem_comp_plane_atom
    _category.description
;              Data items in the CHEM_COMP_PLANE_ATOM category enumerate the
               atoms in a plane within a chemical component.
;
    _category.id                  chem_comp_plane_atom
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_comp_plane_atom.plane_id'
                                '_chem_comp_plane_atom.atom_id'
                                '_chem_comp_plane_atom.comp_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_comp_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _chem_comp_plane_atom.plane_id
    _chem_comp_plane_atom.comp_id
    _chem_comp_plane_atom.atom_id
      phe1  phe  CB
      phe1  phe  CG
      phe1  phe  CD1
      phe1  phe  CE1
      phe1  phe  CZ
      phe1  phe  CE2
      phe1  phe  CD2
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chem_comp_plane_atom.atom_id
    _item_description.description
;              The ID of an atom involved in the plane.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_chem_comp_plane_atom.atom_id'
    _item.mandatory_code          yes
     save_

save__chem_comp_plane_atom.comp_id
    _item_description.description
;              This data item is a pointer to _chem_comp.id in the CHEM_COMP
               category.
;
    _item.name                  '_chem_comp_plane_atom.comp_id'
    _item.mandatory_code          yes
     save_

save__chem_comp_plane_atom.plane_id
    _item_description.description
;              This data item is a pointer to _chem_comp_plane.id in the
               CHEM_COMP_PLANE category.
;
    _item.name                  '_chem_comp_plane_atom.plane_id'
    _item.mandatory_code          yes
     save_

save__chem_comp_plane_atom.dist_esd
    _item_description.description
;              This data item is the standard deviation of the
               out-of-plane distance for this atom.
;
    _item.name                  '_chem_comp_plane_atom.dist_esd'
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              angstroms
     save_

####################
## CHEM_COMP_TOR ##
####################

save_chem_comp_tor
    _category.description
;              Data items in the CHEM_COMP_TOR category record details about
               the torsion angles in a chemical component. As torsion angles
               can have more than one target value, the target values are
               specified in the CHEM_COMP_TOR_VALUE category.
;
    _category.id                  chem_comp_tor
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_comp_tor.comp_id'
                                '_chem_comp_tor.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_comp_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _chem_comp_tor.comp_id
    _chem_comp_tor.id
    _chem_comp_tor.atom_id_1
    _chem_comp_tor.atom_id_2
    _chem_comp_tor.atom_id_3
    _chem_comp_tor.atom_id_4
      phe  phe_chi1   N    CA   CB   CG
      phe  phe_chi2   CA   CB   CG   CD1
      phe  phe_ring1  CB   CG   CD1  CE1
      phe  phe_ring2  CB   CG   CD2  CE2
      phe  phe_ring3  CG   CD1  CE1  CZ
      phe  phe_ring4  CD1  CE1  CZ   CE2
      phe  phe_ring5  CE1  CZ   CE2  CD2
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chem_comp_tor.atom_id_1
    _item_description.description
;              The ID of the first of the four atoms that define the torsion
               angle.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_chem_comp_tor.atom_id_1'
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_chem_comp_tor.atom_id_2'
                                '_chem_comp_tor.atom_id_3'
                                '_chem_comp_tor.atom_id_4'
     save_

save__chem_comp_tor.atom_id_2
    _item_description.description
;              The ID of the second of the four atoms that define the torsion
               angle.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_chem_comp_tor.atom_id_2'
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_chem_comp_tor.atom_id_1'
                                '_chem_comp_tor.atom_id_3'
                                '_chem_comp_tor.atom_id_4'
     save_

save__chem_comp_tor.atom_id_3
    _item_description.description
;              The ID of the third of the four atoms that define the torsion
               angle.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_chem_comp_tor.atom_id_3'
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_chem_comp_tor.atom_id_1'
                                '_chem_comp_tor.atom_id_2'
                                '_chem_comp_tor.atom_id_4'
     save_

save__chem_comp_tor.atom_id_4
    _item_description.description
;              The ID of the fourth of the four atoms that define the torsion
               angle.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_chem_comp_tor.atom_id_4'
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_chem_comp_tor.atom_id_1'
                                '_chem_comp_tor.atom_id_2'
                                '_chem_comp_tor.atom_id_3'
     save_

save__chem_comp_tor.id
    _item_description.description
;              The value of _chem_comp_tor.id must uniquely identify a
               record in the CHEM_COMP_TOR list.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_chem_comp_tor.id'            chem_comp_tor        yes
               '_chem_comp_tor_value.tor_id'  chem_comp_tor_value  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_chem_comp_tor_value.tor_id'  '_chem_comp_tor.id'
    _item_type.code               code
     save_

save__chem_comp_tor.comp_id
    _item_description.description
;              This data item is a pointer to _chem_comp.id in the CHEM_COMP
               category.
;
    _item.name                  '_chem_comp_tor.comp_id'
    _item.mandatory_code          yes
     save_

##########################
## CHEM_COMP_TOR_VALUE ##
##########################

save_chem_comp_tor_value
    _category.description
;              Data items in the CHEM_COMP_TOR_VALUE category record details
               about the target values for the torsion angles enumerated in the
               CHEM_COMP_TOR list. Target values may be specified as angles
               in degrees, as a distance between the first and fourth atoms, or
               both.
;
    _category.id                  chem_comp_tor_value
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_comp_tor_value.tor_id'
                                '_chem_comp_tor_value.comp_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_comp_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _chem_comp_tor_value.tor_id
    _chem_comp_tor_value.comp_id
    _chem_comp_tor_value.angle
    _chem_comp_tor_value.dist
      phe_chi1   phe  -60.0  2.88
      phe_chi1   phe  180.0  3.72
      phe_chi1   phe   60.0  2.88
      phe_chi2   phe   90.0  3.34
      phe_chi2   phe  -90.0  3.34
      phe_ring1  phe  180.0  3.75
      phe_ring2  phe  180.0  3.75
      phe_ring3  phe    0.0  2.80
      phe_ring4  phe    0.0  2.80
      phe_ring5  phe    0.0  2.80
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chem_comp_tor_value.comp_id
    _item_description.description
;              This data item is a pointer to _chem_comp_atom.comp_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_chem_comp_tor_value.comp_id'
    _item.mandatory_code          yes
     save_

save__chem_comp_tor_value.tor_id
    _item_description.description
;              This data item is a pointer to _chem_comp_tor.id in the
               CHEM_COMP_TOR category.
;
    _item.name                  '_chem_comp_tor_value.tor_id'
    _item.mandatory_code          yes
     save_

save__chem_comp_tor_value.angle
    _item_description.description
;              A value that should be taken as a potential target value for the
               torsion angle associated with the specified atoms, expressed in
               degrees.
;
    _item.name                  '_chem_comp_tor_value.angle'
    _item.category_id             chem_comp_tor_value
    _item.mandatory_code          yes
    loop_
    _item_range.maximum
    _item_range.minimum           180.0    180.0
                                  180.0   -180.0
                                 -180.0   -180.0
    _item_related.related_name  '_chem_comp_tor_value.angle_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              degrees
     save_

save__chem_comp_tor_value.angle_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _chem_comp_tor_value.angle.
;
    _item.name                  '_chem_comp_tor_value.angle_esd'
    _item.category_id             chem_comp_tor_value
    _item.mandatory_code          yes
    loop_
    _item_range.maximum
    _item_range.minimum           180.0    180.0
                                  180.0   -180.0
                                 -180.0   -180.0
    _item_related.related_name  '_chem_comp_tor_value.angle'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              degrees
     save_

save__chem_comp_tor_value.dist
    _item_description.description
;              A value that should be taken as a potential target value for the
               torsion angle associated with the specified atoms, expressed as
               the distance between the atoms specified by
               _chem_comp_tor.atom_id_1 and _chem_comp_tor.atom_id_4 in the
               referenced record in the CHEM_COMP_TOR list. Note that the
               torsion angle cannot be fully specified by a distance (for
               instance, a torsion angle of -60  degree will yield the same
               distance as a 60 degree angle). However, the distance
               specification can be useful for refinement in situations
               in which the angle is already close to the desired value.
;
    _item.name                  '_chem_comp_tor_value.dist'
    _item.category_id             chem_comp_tor_value
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_chem_comp_tor_value.dist_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__chem_comp_tor_value.dist_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _chem_comp_tor_value.dist.
;
    _item.name                  '_chem_comp_tor_value.dist_esd'
    _item.category_id             chem_comp_tor_value
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_chem_comp_tor_value.dist'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms
     save_

###############
## CHEM_LINK ##
###############

save_chem_link
    _category.description
;              Data items in the CHEM_LINK category give details about
               the links between chemical components.
;
    _category.id                  chem_link
    _category.mandatory_code      no
    _category_key.name          '_chem_link.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_link_group'
     save_

save__chem_link.id
    _item_description.description
;              The value of _chem_link.id must uniquely identify each
               item in the CHEM_LINK list.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_chem_link.id'                 chem_link         yes
               '_chem_link_angle.link_id'      chem_link_angle   yes
               '_chem_link_bond.link_id'       chem_link_bond    yes
               '_chem_link_chir.link_id'       chem_link_chir    yes
               '_chem_link_plane.link_id'      chem_link_plane   yes
               '_chem_link_tor.link_id'        chem_link_tor     yes
               '_chem_comp_link.link_id'       chem_comp_link    yes
               '_entity_link.link_id'          entity_link       yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_chem_link_angle.link_id'      '_chem_link.id'
               '_chem_link_bond.link_id'       '_chem_link.id'
               '_chem_link_chir.link_id'       '_chem_link.id'
               '_chem_link_plane.link_id'      '_chem_link.id'
               '_chem_link_tor.link_id'        '_chem_link.id'
               '_chem_comp_link.link_id'       '_chem_link.id'
               '_entity_link.link_id'          '_chem_link.id'
    _item_type.code               code
    loop_
    _item_examples.case          'peptide'
                                 'oligosaccharide 1,4'
                                 'DNA'
     save_

save__chem_link.details
    _item_description.description
;              A description of special aspects of a link between
               chemical components in the structure.
;
    _item.name                  '_chem_link.details'
    _item.category_id             chem_link
    _item.mandatory_code          no
    _item_type.code               text
     save_

#####################
## CHEM_LINK_ANGLE ##
#####################

save_chem_link_angle
    _category.description
;              Data items in the CHEM_LINK_ANGLE category record details
               about angles in a link between chemical components.
;
    _category.id                  chem_link_angle
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_link_angle.link_id'
                                '_chem_link_angle.atom_id_1'
                                '_chem_link_angle.atom_id_2'
                                '_chem_link_angle.atom_id_3'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_link_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - Engh & Huber parameters [Acta Cryst. (1991), A47,
                392-400] as interpreted by J. P. Priestle (1995). Consistent
                Stereochemical Dictionaries for Refinement and Model
                Building. CCP4 Daresbury Study Weekend,
                DL-CONF-95-001, ISSN 1358-6254. Warrington: Daresbury
                Laboratory.
;
;
    loop_
    _chem_link_angle.link_id
    _chem_link_angle.value_angle
    _chem_link_angle.value_angle_esd
    _chem_link_angle.atom_id_1
    _chem_link_angle.atom_1_comp_id
    _chem_link_angle.atom_id_2
    _chem_link_angle.atom_2_comp_id
    _chem_link_angle.atom_id_3
    _chem_link_angle.atom_3_comp_id
     PEPTIDE  111.2  2.8  N  1  CA 1  C  1
     PEPTIDE  120.8  1.7  CA 1  C  1  O  1
     PEPTIDE  116.2  2.0  CA 1  C  1  N  2
     PEPTIDE  123.0  1.6  O  1  C  1  N  2
     PEPTIDE  121.7  1.8  C  1  N  2  CA 2
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chem_link_angle.atom_1_comp_id
    _item_description.description
;              This data item indicates whether atom 1 is found in the first
               or the second of the two components connected by the link.
;
    _item.name                  '_chem_link_angle.atom_1_comp_id'
    _item.category_id             chem_link_angle
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_chem_link_angle.atom_2_comp_id'
                                '_chem_link_angle.atom_3_comp_id'
    loop_
    _item_enumeration.value
    _item_enumeration.detail      1  'the atom is in component 1'
                                  2  'the atom is in component 2'
    _item_type.code               ucode
     save_

save__chem_link_angle.atom_2_comp_id
    _item_description.description
;              This data item indicates whether atom 2 is found in the first
               or the second of the two components connected by the link.
;
    _item.name                  '_chem_link_angle.atom_2_comp_id'
    _item.category_id             chem_link_angle
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_chem_link_angle.atom_1_comp_id'
                                '_chem_link_angle.atom_3_comp_id'
    loop_
    _item_enumeration.value
    _item_enumeration.detail      1  'the atom is in component 1'
                                  2  'the atom is in component 2'
    _item_type.code               ucode
     save_

save__chem_link_angle.atom_3_comp_id
    _item_description.description
;              This data item indicates whether atom 3 is found in the first
               or the second of the two components connected by the link.
;
    _item.name                  '_chem_link_angle.atom_3_comp_id'
    _item.category_id             chem_link_angle
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_chem_link_angle.atom_1_comp_id'
                                '_chem_link_angle.atom_2_comp_id'
    loop_
    _item_enumeration.value
    _item_enumeration.detail      1  'the atom is in component 1'
                                  2  'the atom is in component 2'
    _item_type.code               ucode
     save_

save__chem_link_angle.atom_id_1
    _item_description.description
;              The ID of the first of the three atoms that define the angle.

               An atom with this ID must exist in the component of the type
               specified by _chem_comp_link.type_comp_1 (or
               _chem_comp_link.type_comp_2, where the appropriate data item
               is indicated by the value of _chem_comp_angle.atom_1_comp_id).
;
    _item.name                  '_chem_link_angle.atom_id_1'
    _item.category_id             chem_link_angle
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_chem_link_angle.atom_id_2'
                                '_chem_link_angle.atom_id_3'
    _item_type.code               code
     save_

save__chem_link_angle.atom_id_2
    _item_description.description
;              The ID of the second of the three atoms that define the angle.
               The second atom is taken to be the apex of the angle.

               An atom with this ID must exist in the component of the type
               specified by _chem_comp_link.type_comp_1 (or
               _chem_comp_link.type_comp_2, where the appropriate data item
               is indicated by the value of _chem_comp_angle.atom_2_comp_id).
;
    _item.name                  '_chem_link_angle.atom_id_2'
    _item.category_id             chem_link_angle
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_chem_link_angle.atom_id_1'
                                '_chem_link_angle.atom_id_3'
    _item_type.code               code
     save_

save__chem_link_angle.atom_id_3
    _item_description.description
;              The ID of the third of the three atoms that define the angle.

               An atom with this ID must exist in the component of the type
               specified by _chem_comp_link.type_comp_1 (or
               _chem_comp_link.type_comp_2, where the appropriate data item
              is indicated by the value of _chem_comp_angle.atom_3_comp_id).
;
    _item.name                  '_chem_link_angle.atom_id_3'
    _item.category_id             chem_link_angle
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_chem_link_angle.atom_id_1'
                                '_chem_link_angle.atom_id_2'
    _item_type.code               code
     save_

save__chem_link_angle.link_id
    _item_description.description
;              This data item is a pointer to _chem_link.id in the CHEM_LINK
               category.
;
    _item.name                  '_chem_link_angle.link_id'
    _item.mandatory_code          yes
     save_

save__chem_link_angle.value_angle
    _item_description.description
;              The value that should be taken as the target value for the angle
               associated with the specified atoms, expressed in degrees.
;
    _item.name                  '_chem_link_angle.value_angle'
    _item.category_id             chem_link_angle
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           180.0   180.0
                                  180.0     0.0
                                    0.0     0.0
    _item_related.related_name  '_chem_link_angle.value_angle_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              degrees
     save_

save__chem_link_angle.value_angle_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _chem_link_angle.value_angle.
;
    _item.name                  '_chem_link_angle.value_angle_esd'
    _item.category_id             chem_link_angle
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           180.0   180.0
                                  180.0     0.0
                                    0.0     0.0
    _item_related.related_name  '_chem_link_angle.value_angle'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              degrees
     save_

save__chem_link_angle.value_dist
    _item_description.description
;              The value that should be taken as the target value for the angle
               associated with the specified atoms, expressed as the distance
               between the atoms specified by _chem_comp_angle.atom_id_1 and
               _chem_comp_angle.atom_id_3.
;
    _item.name                  '_chem_link_angle.value_dist'
    _item.category_id             chem_link_angle
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_chem_link_angle.value_dist_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__chem_link_angle.value_dist_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _chem_comp_angle.value_dist.
;
    _item.name                  '_chem_link_angle.value_dist_esd'
    _item.category_id             chem_link_angle
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_chem_link_angle.value_dist'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms
     save_

####################
## CHEM_LINK_BOND ##
####################

save_chem_link_bond
    _category.description
;              Data items in the CHEM_LINK_BOND category record details about
               bonds in a link between components in the chemical structure.
;
    _category.id                  chem_link_bond
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_link_bond.link_id'
                                '_chem_link_bond.atom_id_1'
                                '_chem_link_bond.atom_id_2'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_link_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - Engh & Huber parameters [Acta Cryst. (1991), A47,
                392-400] as interpreted by J. P. Priestle (1995). Consistent
                Stereochemical Dictionaries for Refinement and Model
                Building. CCP4 Daresbury Study Weekend,
                DL-CONF-95-001, ISSN 1358-6254. Warrington: Daresbury
                Laboratory.
;
;
    loop_
    _chem_link_bond.link_id
    _chem_link_bond.value_dist
    _chem_link_bond.value_dist_esd
    _chem_link_bond.atom_id_1
    _chem_link_bond.atom_1_comp_id
    _chem_link_bond.atom_id_2
    _chem_link_bond.atom_2_comp_id
     PEPTIDE  1.458  0.019  N  1  CA 1
     PEPTIDE  1.525  0.021  CA 1  C  1
     PEPTIDE  1.329  0.014  C  1  N  2
     PEPTIDE  1.231  0.020  C  1  O  1
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chem_link_bond.atom_1_comp_id
    _item_description.description
;              This data item indicates whether atom 1 is found in the first
               or the second of the two components connected by the link.
;
    _item.name                  '_chem_link_bond.atom_1_comp_id'
    _item.category_id             chem_link_bond
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_chem_link_bond.atom_2_comp_id'
    loop_
    _item_enumeration.value
    _item_enumeration.detail      1  'the atom is in component 1'
                                  2  'the atom is in component 2'
    _item_type.code               ucode
     save_

save__chem_link_bond.atom_2_comp_id
    _item_description.description
;              This data item indicates whether atom 2 is found in the first
               or the second of the two chemical components connected by
               the link.
;
    _item.name                  '_chem_link_bond.atom_2_comp_id'
    _item.category_id             chem_link_bond
    _item.mandatory_code          no
    _item_dependent.dependent_name
                                '_chem_link_bond.atom_1_comp_id'
    loop_
    _item_enumeration.value
    _item_enumeration.detail      1  'the atom is in component 1'
                                  2  'the atom is in component 2'
    _item_type.code               ucode
     save_

save__chem_link_bond.atom_id_1
    _item_description.description
;              The ID of the first of the two atoms that define the bond.

               As this data item does not point to a specific atom in a
               specific chemical component, it is not a child in the
               linkage sense.
;
    _item.name                  '_chem_link_bond.atom_id_1'
    _item.category_id             chem_link_bond
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_chem_link_bond.atom_id_2'
    _item_type.code               code
     save_

save__chem_link_bond.atom_id_2
    _item_description.description
;              The ID of the second of the two atoms that define the bond.

               As this data item does not point to a specific atom in a
               specific component, it is not a child in the linkage sense.
;
    _item.name                  '_chem_link_bond.atom_id_2'
    _item.category_id             chem_link_bond
    _item.mandatory_code          yes
    _item_dependent.dependent_name
                                '_chem_link_bond.atom_id_1'
    _item_type.code               code
     save_

save__chem_link_bond.link_id
    _item_description.description
;              This data item is a pointer to _chem_link.id in the CHEM_LINK
               category.
;
    _item.name                  '_chem_link_bond.link_id'
    _item.mandatory_code          yes
     save_

save__chem_link_bond.value_dist
    _item_description.description
;              The value that should be taken as the target for the chemical
               bond associated with the specified atoms, expressed as a
               distance.
;
    _item.name                  '_chem_link_bond.value_dist'
    _item.category_id             chem_link_bond
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_chem_link_bond.value_dist_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__chem_link_bond.value_dist_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _chem_link_bond.value_dist.
;
    _item.name                  '_chem_link_bond.value_dist_esd'
    _item.category_id             chem_link_bond
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_chem_link_bond.value_dist'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__chem_link_bond.value_order
    _item_description.description
;              The value that should be taken as the target for the chemical
               bond associated with the specified atoms, expressed as a bond
               order.
;
    _item.name                  '_chem_link_bond.value_order'
    _item.category_id             chem_link_bond
    _item.mandatory_code          no
    _item_default.value           sing
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      sing  'single bond'
                                  doub  'double bond'
                                  trip  'triple bond'
                                  quad  'quadruple bond'
                                  arom  'aromatic bond'
                                  poly  'polymeric bond'
                                  delo  'delocalized double bond'
                                  pi    'pi bond'
     save_

####################
## CHEM_LINK_CHIR ##
####################

save_chem_link_chir
    _category.description
;              Data items in the CHEM_LINK_CHIR category provide details about
               the chiral centres in a link between two chemical components.
               The atoms bonded to the chiral atom are specified in the
               CHEM_LINK_CHIR_ATOM category.
;
    _category.id                  chem_link_chir
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_link_chir.link_id'
                                '_chem_link_chir.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_link_group'
     save_

save__chem_link_chir.atom_comp_id
    _item_description.description
;              This data item indicates whether the chiral atom is found in the
               first or the second of the two components connected by the
               link.
;
    _item.name                  '_chem_link_chir.atom_comp_id'
    _item.category_id             chem_link_chir
    _item.mandatory_code          no
    loop_
    _item_enumeration.value
    _item_enumeration.detail      1  'the atom is in component 1'
                                  2  'the atom is in component 2'
    _item_type.code               ucode
     save_

save__chem_link_chir.atom_id
    _item_description.description
;              The ID of the atom that is a chiral centre.

               As this data item does not point to a specific atom in a
               specific chemical component, it is not a child in the linkage
               sense.
;
    _item.name                  '_chem_link_chir.atom_id'
    _item.mandatory_code          yes
    _item_type.code               code
     save_

save__chem_link_chir.atom_config
    _item_description.description
;              The chiral configuration of the atom that is a chiral centre.
;
    _item.name                  '_chem_link_chir.atom_config'
    _item.category_id             chem_link_chir
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      R  'absolute configuration R'
                                  S  'absolute configuration S'
     save_

save__chem_link_chir.id
    _item_description.description
;              The value of _chem_link_chir.id must uniquely identify a record
               in the CHEM_LINK_CHIR list.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_chem_link_chir.id'            chem_link_chir        yes
               '_chem_link_chir_atom.chir_id'  chem_link_chir_atom   yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_chem_link_chir_atom.chir_id'  '_chem_link_chir.id'
    _item_type.code               code
     save_

save__chem_link_chir.link_id
    _item_description.description
;              This data item is a pointer to _chem_link.id in the CHEM_LINK
               category.
;
    _item.name                  '_chem_link_chir.link_id'
    _item.mandatory_code          yes
     save_

save__chem_link_chir.number_atoms_all
    _item_description.description
;              The total number of atoms bonded to the atom specified by
               _chem_link_chir.atom_id.
;
    _item.name                  '_chem_link_chir.number_atoms_all'
    _item.category_id             chem_link_chir
    _item.mandatory_code          no
    _item_type.code               int
     save_

save__chem_link_chir.number_atoms_nh
    _item_description.description
;              The number of non-hydrogen atoms bonded to the atom specified by
               _chem_link_chir.atom_id.
;
    _item.name                  '_chem_link_chir.number_atoms_nh'
    _item.category_id             chem_link_chir
    _item.mandatory_code          no
    _item_type.code               int
     save_

save__chem_link_chir.volume_flag
    _item_description.description
;              A flag to indicate whether a chiral volume should match the
               standard value in both magnitude and sign, or in magnitude only.
;
    _item.name                  '_chem_link_chir.volume_flag'
    _item.category_id             chem_link_chir
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      sign    'match magnitude and sign'
                                  nosign  'match magnitude only'
     save_

save__chem_link_chir.volume_three
    _item_description.description
;              The chiral volume, V(c), for chiral centres that involve a chiral
               atom bonded to three non-hydrogen atoms and one hydrogen atom.

               V~c~ = V1 * (V2 X V3)

               V1 = the vector distance from the atom specified by
                    _chem_link_chir.atom_id to the first atom in the
                    CHEM_LINK_CHIR_ATOM list
               V2 = the vector distance from the atom specified by
                    _chem_link_chir.atom_id to the second atom in the
                    CHEM_LINK_CHIR_ATOM list
               V3 = the vector distance from the atom specified by
                    _chem_link_chir.atom_id to the third atom in the
                    CHEM_LINK_CHIR_ATOM list
               *  = the vector dot product
               X  = the vector cross product
;
    _item.name                  '_chem_link_chir.volume_three'
    _item.category_id             chem_link_chir
    _item.mandatory_code          no
    _item_related.related_name  '_chem_link_chir.volume_three_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms_cubed
     save_

save__chem_link_chir.volume_three_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _chem_link_chir.volume_three.
;
    _item.name                  '_chem_link_chir.volume_three_esd'
    _item.category_id             chem_link_chir
    _item.mandatory_code          no
    _item_related.related_name  '_chem_link_chir.volume_three'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms_cubed
     save_

#########################
## CHEM_LINK_CHIR_ATOM ##
#########################

save_chem_link_chir_atom
    _category.description
;              Data items in the CHEM_LINK_CHIR_ATOM category enumerate the
               atoms bonded to a chiral atom in a link between two
               chemical components.
;
    _category.id                  chem_link_chir_atom
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_link_chir_atom.chir_id'
                                '_chem_link_chir_atom.atom_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_link_group'
     save_

save__chem_link_chir_atom.atom_comp_id
    _item_description.description
;              This data item indicates whether the atom bonded to a chiral
               atom is found in the first or the second of the two components
               connected by the link.
;
    _item.name                  '_chem_link_chir_atom.atom_comp_id'
    _item.category_id             chem_link_chir_atom
    _item.mandatory_code          no
    loop_
    _item_enumeration.value
    _item_enumeration.detail      1  'the atom is in component 1'
                                  2  'the atom is in component 2'
    _item_type.code               ucode
     save_

save__chem_link_chir_atom.atom_id
    _item_description.description
;              The ID of an atom bonded to the chiral atom.

               As this data item does not point to a specific atom in a
               specific chemical component, it is not a child in the linkage
               sense.
;
    _item.name                  '_chem_link_chir_atom.atom_id'
    _item.mandatory_code          yes
    _item_type.code               code
     save_

save__chem_link_chir_atom.chir_id
    _item_description.description
;              This data item is a pointer to _chem_link_chir.id in the
               CHEM_LINK_CHIR category.
;
    _item.name                  '_chem_link_chir_atom.chir_id'
    _item.mandatory_code          yes
     save_

save__chem_link_chir_atom.dev
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of the position of this atom from the plane defined by
               all of the atoms in the plane.
;
    _item.name                  '_chem_link_chir_atom.dev'
    _item.category_id             chem_link_chir_atom
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              angstroms
     save_

#####################
## CHEM_LINK_PLANE ##
#####################

save_chem_link_plane
    _category.description
;              Data items in the CHEM_LINK_PLANE category provide identifiers
               for the planes in a link between two chemical components.
               The atoms in the plane are specified in the CHEM_LINK_PLANE_ATOM
               category.
;
    _category.id                  chem_link_plane
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_link_plane.link_id'
                                '_chem_link_plane.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_link_group'
     save_

save__chem_link_plane.id
    _item_description.description
;              The value of _chem_link_plane.id must uniquely identify a record
               in the CHEM_LINK_PLANE list.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_chem_link_plane.id'             chem_link_plane       yes
               '_chem_link_plane_atom.plane_id'  chem_link_plane_atom  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_chem_link_plane_atom.plane_id'  '_chem_link_plane.id'
    _item_type.code               code
     save_

save__chem_link_plane.link_id
    _item_description.description
;              This data item is a pointer to _chem_link.id in the CHEM_LINK
               category.
;
    _item.name                  '_chem_link_plane.link_id'
    _item.mandatory_code          yes
     save_

save__chem_link_plane.number_atoms_all
    _item_description.description
;              The total number of atoms in the plane.
;
    _item.name                  '_chem_link_plane.number_atoms_all'
    _item.category_id             chem_link_plane
    _item.mandatory_code          no
    _item_type.code               int
     save_

save__chem_link_plane.number_atoms_nh
    _item_description.description
;              The number of non-hydrogen atoms in the plane.
;
    _item.name                  '_chem_link_plane.number_atoms_nh'
    _item.category_id             chem_link_plane
    _item.mandatory_code          no
    _item_type.code               int
     save_

##########################
## CHEM_LINK_PLANE_ATOM ##
##########################

save_chem_link_plane_atom
    _category.description
;              Data items in the CHEM_LINK_PLANE_ATOM category enumerate the
               atoms in a plane in a link between two chemical components.
;
    _category.id                  chem_link_plane_atom
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_link_plane_atom.plane_id'
                                '_chem_link_plane_atom.atom_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_link_group'
     save_

save__chem_link_plane_atom.atom_comp_id
    _item_description.description
;              This data item indicates whether the atom in a plane is found in
               the first or the second of the two components connected by the
               link.
;
    _item.name                  '_chem_link_plane_atom.atom_comp_id'
    _item.category_id             chem_link_plane_atom
    _item.mandatory_code          no
    loop_
    _item_enumeration.value
    _item_enumeration.detail      1  'the atom is in component 1'
                                  2  'the atom is in component 2'
    _item_type.code               ucode
     save_

save__chem_link_plane_atom.atom_id
    _item_description.description
;              The ID of an atom involved in the plane.

               As this data item does not point to a specific atom in a
               specific chemical component, it is not a child in the linkage
               sense.
;
    _item.name                  '_chem_link_plane_atom.atom_id'
    _item.mandatory_code          yes
    _item_type.code               code
     save_

save__chem_link_plane_atom.plane_id
    _item_description.description
;              This data item is a pointer to _chem_link_plane.id in the
               CHEM_LINK_PLANE category.
;
    _item.name                  '_chem_link_plane_atom.plane_id'
    _item.mandatory_code          yes
     save_

###################
## CHEM_LINK_TOR ##
###################

save_chem_link_tor
    _category.description
;              Data items in the CHEM_LINK_TOR category record details about
               the torsion angles in a link between two chemical components.
               As torsion angles can have more than one target value, the
               target values are specified in the CHEM_LINK_TOR_VALUE category.
;
    _category.id                  chem_link_tor
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chem_link_tor.link_id'
                                '_chem_link_tor.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_link_group'
     save_

save__chem_link_tor.atom_1_comp_id
    _item_description.description
;              This data item indicates whether atom 1 is found in the first
               or the second of the two components connected by the link.
;
    _item.name                  '_chem_link_tor.atom_1_comp_id'
    _item.category_id             chem_link_tor
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_chem_link_tor.atom_2_comp_id'
                                '_chem_link_tor.atom_3_comp_id'
                                '_chem_link_tor.atom_4_comp_id'
    loop_
    _item_enumeration.value
    _item_enumeration.detail      1  'the atom is in component 1'
                                  2  'the atom is in component 2'
    _item_type.code               ucode
     save_

save__chem_link_tor.atom_2_comp_id
    _item_description.description
;              This data item indicates whether atom 2 is found in the first
               or the second of the two components connected by the link.
;
    _item.name                  '_chem_link_tor.atom_2_comp_id'
    _item.category_id             chem_link_tor
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_chem_link_tor.atom_1_comp_id'
                                '_chem_link_tor.atom_3_comp_id'
                                '_chem_link_tor.atom_4_comp_id'
    loop_
    _item_enumeration.value
    _item_enumeration.detail      1  'the atom is in component 1'
                                  2  'the atom is in component 2'
    _item_type.code               ucode
     save_

save__chem_link_tor.atom_3_comp_id
    _item_description.description
;              This data item indicates whether atom 3 is found in the first
               or the second of the two components connected by the link.
;
    _item.name                  '_chem_link_tor.atom_3_comp_id'
    _item.category_id             chem_link_tor
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_chem_link_tor.atom_1_comp_id'
                                '_chem_link_tor.atom_2_comp_id'
                                '_chem_link_tor.atom_4_comp_id'
    loop_
    _item_enumeration.value
    _item_enumeration.detail      1  'the atom is in component 1'
                                  2  'the atom is in component 2'
    _item_type.code               ucode
     save_

save__chem_link_tor.atom_4_comp_id
    _item_description.description
;              This data item indicates whether atom 4 is found in the first
               or the second of the two components connected by the link.
;
    _item.name                  '_chem_link_tor.atom_4_comp_id'
    _item.category_id             chem_link_tor
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_chem_link_tor.atom_1_comp_id'
                                '_chem_link_tor.atom_2_comp_id'
                                '_chem_link_tor.atom_3_comp_id'
    loop_
    _item_enumeration.value
    _item_enumeration.detail      1  'the atom is in component 1'
                                  2  'the atom is in component 2'
    _item_type.code               ucode
     save_

save__chem_link_tor.atom_id_1
    _item_description.description
;              The ID of the first of the four atoms that define the torsion
               angle.

               As this data item does not point to a specific atom in a
               specific chemical component, it is not a child in the linkage
               sense.
;
    _item.name                  '_chem_link_tor.atom_id_1'
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_chem_link_tor.atom_id_2'
                                '_chem_link_tor.atom_id_3'
                                '_chem_link_tor.atom_id_4'
    _item_type.code               code
     save_

save__chem_link_tor.atom_id_2
    _item_description.description
;              The ID of the second of the four atoms that define the torsion
               angle.

               As this data item does not point to a specific atom in a
               specific chemical component, it is not a child in the linkage
               sense.
;
    _item.name                  '_chem_link_tor.atom_id_2'
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_chem_link_tor.atom_id_1'
                                '_chem_link_tor.atom_id_3'
                                '_chem_link_tor.atom_id_4'
    _item_type.code               code
     save_

save__chem_link_tor.atom_id_3
    _item_description.description
;              The ID of the third of the four atoms that define the torsion
               angle.

               As this data item does not point to a specific atom in a
               specific chemical component, it is not a child in the linkage
               sense.
;
    _item.name                  '_chem_link_tor.atom_id_3'
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_chem_link_tor.atom_id_1'
                                '_chem_link_tor.atom_id_2'
                                '_chem_link_tor.atom_id_4'
    _item_type.code               code
     save_

save__chem_link_tor.atom_id_4
    _item_description.description
;              The ID of the fourth of the four atoms that define the torsion
               angle.

               As this data item does not point to a specific atom in a
               specific chemical component, it is not a child in the linkage
               sense.
;
    _item.name                  '_chem_link_tor.atom_id_4'
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_chem_link_tor.atom_id_1'
                                '_chem_link_tor.atom_id_2'
                                '_chem_link_tor.atom_id_3'
    _item_type.code               code
     save_

save__chem_link_tor.id
    _item_description.description
;              The value of _chem_link_tor.id must uniquely identify a
               record in the CHEM_LINK_TOR list.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_chem_link_tor.id'            chem_link_tor        yes
               '_chem_link_tor_value.tor_id'  chem_link_tor_value  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_chem_link_tor_value.tor_id'  '_chem_link_tor.id'
    _item_type.code               code
     save_

save__chem_link_tor.link_id
    _item_description.description
;              This data item is a pointer to _chem_link.id in the CHEM_LINK
               category.
;
    _item.name                  '_chem_link_tor.link_id'
    _item.mandatory_code          yes
     save_

#########################
## CHEM_LINK_TOR_VALUE ##
#########################

save_chem_link_tor_value
    _category.description
;              Data items in the CHEM_LINK_TOR_VALUE category record details
               about the target values for the torsion angles enumerated in the
               CHEM_LINK_TOR list. Target values may be specified as angles
               in degrees, as a distance between the first and fourth atoms, or
               both.
;
    _category.id                  chem_link_tor_value
    _category.mandatory_code      no
    _category_key.name          '_chem_link_tor_value.tor_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_link_group'
     save_

save__chem_link_tor_value.tor_id
    _item_description.description
;              This data item is a pointer to _chem_link_tor.id in the
               CHEM_LINK_TOR category.
;
    _item.name                  '_chem_link_tor_value.tor_id'
    _item.mandatory_code          yes
     save_

save__chem_link_tor_value.angle
    _item_description.description
;              A value that should be taken as a potential target value for the
               torsion angle associated with the specified atoms, expressed in
               degrees.
;
    _item.name                  '_chem_link_tor_value.angle'
    _item.category_id             chem_link_tor_value
    _item.mandatory_code          yes
    loop_
    _item_range.maximum
    _item_range.minimum           180.0    180.0
                                  180.0   -180.0
                                 -180.0   -180.0
    _item_related.related_name  '_chem_link_tor_value.angle_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              degrees
     save_

save__chem_link_tor_value.angle_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _chem_link_tor_value.angle.
;
    _item.name                  '_chem_link_tor_value.angle_esd'
    _item.category_id             chem_link_tor_value
    _item.mandatory_code          yes
    loop_
    _item_range.maximum
    _item_range.minimum           180.0    180.0
                                  180.0   -180.0
                                 -180.0   -180.0
    _item_related.related_name  '_chem_link_tor_value.angle'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              degrees
     save_

save__chem_link_tor_value.dist
    _item_description.description
;              A value that should be taken as a potential target value for the
               torsion angle associated with the specified atoms, expressed as
               the distance between the atoms specified by
               _chem_link_tor.atom_id_1 and _chem_link_tor.atom_id_4 in the
               referenced record in the CHEM_LINK_TOR list. Note that the
               torsion angle cannot be fully specified by a distance (for
               instance, a torsion angle of -60 degree will yield the same
               distance as a 60 degree angle). However, the distance
               specification can be useful for refinement in situations in
               which the angle is already close to the desired value.
;
    _item.name                  '_chem_link_tor_value.dist'
    _item.category_id             chem_link_tor_value
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_chem_link_tor_value.dist_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__chem_link_tor_value.dist_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _chem_link_tor_value.dist.
;
    _item.name                  '_chem_link_tor_value.dist_esd'
    _item.category_id             chem_link_tor_value
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_chem_link_tor_value.dist'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms
     save_

##############
## CHEMICAL ##
##############

save_chemical
    _category.description
;              Data items in the CHEMICAL category would not in general be
               used in a macromolecular CIF. See instead the ENTITY data
               items.

               Data items in the CHEMICAL category record details about the
               composition and chemical properties of the compounds. The
               formula data items must agree with those that specify the
               density, unit-cell and Z values.
;
    _category.id                  chemical
    _category.mandatory_code      no
    _category_key.name          '_chemical.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chemical_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on data set 9597gaus of Alyea, Ferguson & Kannan
                [Acta Cryst. (1996), C52, 765-767].
;
;
    _chemical.entry_id        '9597gaus'
    _chemical.name_systematic
      trans-bis(tricyclohexylphosphine)tetracarbonylmolybdenum(0)
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chemical.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_chemical.entry_id'
    _item.mandatory_code          yes
     save_

save__chemical.compound_source
    _item_description.description
;              Description of the source of the compound under study, or of the
               parent  molecule if a simple derivative is studied. This includes
               the place of discovery for minerals or the actual source of a
               natural product.
;
    _item.name                  '_chemical.compound_source'
    _item.category_id             chemical
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_compound_source'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          'From Norilsk (USSR)'
                                 'Extracted from the bark of Cinchona Naturalis'
     save_

save__chemical.melting_point
    _item_description.description
;              The temperature in kelvins at which the crystalline solid changes
               to a liquid.
;
    _item.name                  '_chemical.melting_point'
    _item.category_id             chemical
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_melting_point'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              kelvins
     save_

save__chemical.name_common
    _item_description.description
;              Trivial name by which the compound is commonly known.
;
    _item.name                  '_chemical.name_common'
    _item.category_id             chemical
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_name_common'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          '1-bromoestradiol'
     save_

save__chemical.name_mineral
    _item_description.description
;              Mineral name accepted by the International Mineralogical
               Association. Use only for natural minerals. See also
               _chemical.compound_source.
;
    _item.name                  '_chemical.name_mineral'
    _item.category_id             chemical
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_name_mineral'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'chalcopyrite'
     save_

save__chemical.name_structure_type
    _item_description.description
;              Commonly used structure-type name. Usually only applied to
               minerals or inorganic compounds.
;
    _item.name                  '_chemical.name_structure_type'
    _item.category_id             chemical
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_name_structure_type'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          'perovskite'
                                 'sphalerite'
                                 'A15'
     save_

save__chemical.name_systematic
    _item_description.description
;              IUPAC or Chemical Abstracts full name of the compound.
;

    _item.name                  '_chemical.name_systematic'
    _item.category_id             chemical
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_name_systematic'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          '1-bromoestra-1,3,5(10)-triene-3,17\b-diol'
     save_

########################
## CHEMICAL_CONN_ATOM ##
########################

save_chemical_conn_atom
    _category.description
;              Data items in the CHEMICAL_CONN_ATOM category would not, in
               general, be used in a macromolecular CIF. See instead the
               ENTITY data items.

               Data items in the CHEMICAL_CONN_ATOM and CHEMICAL_CONN_BOND
               categories record details about the two-dimensional (2D)
               chemical structure of the molecular species. They allow
               a 2D chemical diagram to be reconstructed for use in a
               publication or in a database search for structural and
               substructural relationships.

               The CHEMICAL_CONN_ATOM data items provide information about the
               chemical properties of the atoms in the structure. In cases
               where crystallographic and molecular symmetry elements coincide,
               they must also contain symmetry-generated atoms, so that the
               CHEMICAL_CONN_ATOM and CHEMICAL_CONN_BOND data items will always
               describe a complete chemical entity.
;
    _category.id                  chemical_conn_atom
    _category.mandatory_code      no
    _category_key.name          '_chemical_conn_atom.number'
    loop_
    _category_group.id           'inclusive_group'
                                 'chemical_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on data set DPTD of Yamin, Suwandi, Fun, Sivakumar &
                bin Shawkataly [Acta Cryst. (1996), C52, 951-953].
;
;
    loop_
    _chemical_conn_atom.number
    _chemical_conn_atom.type_symbol
    _chemical_conn_atom.display_x
    _chemical_conn_atom.display_y
    _chemical_conn_atom.NCA
    _chemical_conn_atom.NH
        1   S    .39  .81   1   0
        2   S    .39  .96   2   0
        3   N    .14  .88   3   0
        4   C    .33  .88   3   0
        5   C    .11  .96   2   2
        6   C    .03  .96   2   2
        7   C    .03  .80   2   2
        8   C    .11  .80   2   2
        9   S    .54  .81   1   0
        10  S    .54  .96   2   0
        11  N    .80  .88   3   0
        12  C    .60  .88   3   0
        13  C    .84  .96   2   2
        14  C    .91  .96   2   2
        15  C    .91  .80   2   2
        16  C    .84  .80   2   2
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chemical_conn_atom.charge
    _item_description.description
;              The net integer charge assigned to this atom. This is the
               formal charge assignment normally found in chemical diagrams.
;
    _item.name                  '_chemical_conn_atom.charge'
    _item.category_id             chemical_conn_atom
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_conn_atom_charge'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           0
    loop_
    _item_range.maximum
    _item_range.minimum           8    8
                                  8   -8
                                 -8   -8
    _item_type.code               int
    loop_
    _item_examples.case
    _item_examples.detail         1   'for an ammonium nitrogen'
                                  -1  'for a chloride ion'
     save_

save__chemical_conn_atom.display_x
    _item_description.description
;              The 2D Cartesian x coordinate of the position of this atom in a
               recognizable chemical diagram. The coordinate origin is at the
               lower left corner, the x axis is horizontal and the y axis
               is vertical. The coordinates must lie in the range 0.0 to 1.0.
               These coordinates can be obtained from projections of a suitable
               uncluttered view of the molecular structure.
;
    _item.name                  '_chemical_conn_atom.display_x'
    _item.category_id             chemical_conn_atom
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_conn_atom_display_x'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_dependent.dependent_name
                                '_chemical_conn_atom.display_y'
    loop_
    _item_range.maximum
    _item_range.minimum           1.0   1.0
                                  1.0   0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__chemical_conn_atom.display_y
    _item_description.description
;              The 2D Cartesian y coordinate of the position of this atom in a
               recognizable chemical diagram. The coordinate origin is at the
               lower left corner, the x axis is horizontal and the y axis
               is vertical. The coordinates must lie in the range 0.0 to 1.0.
               These coordinates can be obtained from projections of a suitable
               uncluttered view of the molecular structure.
;
    _item.name                  '_chemical_conn_atom.display_y'
    _item.category_id             chemical_conn_atom
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_conn_atom_display_y'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_dependent.dependent_name
                                '_chemical_conn_atom.display_x'
    loop_
    _item_range.maximum
    _item_range.minimum           1.0   1.0
                                  1.0   0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__chemical_conn_atom.NCA
    _item_description.description
;              The number of connected atoms excluding terminal hydrogen atoms.
;
    _item.name                  '_chemical_conn_atom.NCA'
    _item.category_id             chemical_conn_atom
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_conn_atom_NCA'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__chemical_conn_atom.NH
    _item_description.description
;              The total number of hydrogen atoms attached to this atom,
               regardless of whether they are included in the refinement or
               the ATOM_SITE list. This number is the same as
               _atom_site.attached_hydrogens only if none of the hydrogen
               atoms appear in the ATOM_SITE list.
;
    _item.name                  '_chemical_conn_atom.NH'
    _item.category_id             chemical_conn_atom
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_conn_atom_NH'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__chemical_conn_atom.number
    _item_description.description
;              The chemical sequence number to be associated with this atom.
               Within an ATOM_SITE list, this number must match one of
               the _atom_site.chemical_conn_number values.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_chemical_conn_atom.number'       chemical_conn_atom  yes
               '_atom_site.chemical_conn_number'  atom_site           no
               '_chemical_conn_bond.atom_1'       chemical_conn_bond  yes
               '_chemical_conn_bond.atom_2'       chemical_conn_bond  yes
    _item_aliases.alias_name    '_chemical_conn_atom_number'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_atom_site.chemical_conn_number'  '_chemical_conn_atom.number'
               '_chemical_conn_bond.atom_1'       '_chemical_conn_atom.number'
               '_chemical_conn_bond.atom_2'       '_chemical_conn_atom.number'
    loop_
    _item_range.maximum
    _item_range.minimum           .   1
                                  1   1
    _item_type.code               int
     save_

save__chemical_conn_atom.type_symbol
    _item_description.description
;              This data item is a pointer to _atom_type.symbol in the
               ATOM_TYPE category.
;
    _item.name                  '_chemical_conn_atom.type_symbol'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_chemical_conn_atom_type_symbol'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
     save_

########################
## CHEMICAL_CONN_BOND ##
########################

save_chemical_conn_bond
    _category.description
;              Data items in the CHEMICAL_CONN_BOND category would not, in
               general, be used in a macromolecular CIF. See instead the
               ENTITY data items.

               Data items in the CHEMICAL_CONN_ATOM and CHEMICAL_CONN_BOND
               categories record details about the two-dimensional (2D)
               chemical structure of the molecular species. They allow a
               2D chemical diagram to be reconstructed for use in a
               publication or in a database search for structural and
               substructural relationships.

               The CHEMICAL_CONN_BOND data items specify the connections
               between the atoms in the CHEMICAL_CONN_ATOM list and the nature
               of the chemical bond between these atoms.
;
    _category.id                  chemical_conn_bond
    _category.mandatory_code      no
    loop_
    _category_key.name          '_chemical_conn_bond.atom_1'
                                '_chemical_conn_bond.atom_2'
    loop_
    _category_group.id           'inclusive_group'
                                 'chemical_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on data set DPTD of Yamin, Suwandi, Fun, Sivakumar &
                bin Shawkataly [Acta Cryst. (1996), C52, 951-953].
;
;
    loop_
    _chemical_conn_bond.atom_1
    _chemical_conn_bond.atom_2
    _chemical_conn_bond.type
       4     1     doub     4     3     sing
       4     2     sing     5     3     sing
       6     5     sing     7     6     sing
       8     7     sing     8     3     sing
       10    2     sing     12    9     doub
       12    11    sing     12    10    sing
       13    11    sing     14    13    sing
       15    14    sing     16    15    sing
       16    11    sing     17    5     sing
       18    5     sing     19    6     sing
       20    6     sing     21    7     sing
       22    7     sing     23    8     sing
       24    8     sing     25    13    sing
       26    13    sing     27    14    sing
       28    14    sing     29    15    sing
       30    15    sing     31    16    sing
       32    16    sing
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chemical_conn_bond.atom_1
    _item_description.description
;              This data item is a pointer to _chemical_conn_atom.number in the
               CHEMICAL_CONN_ATOM category.
;
    _item.name                  '_chemical_conn_bond.atom_1'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_chemical_conn_bond_atom_1'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_dependent.dependent_name
                                '_chemical_conn_bond.atom_2'
     save_

save__chemical_conn_bond.atom_2
    _item_description.description
;              This data item is a pointer to _chemical_conn_atom.number in the
               CHEMICAL_CONN_ATOM category.
;
    _item.name                  '_chemical_conn_bond.atom_2'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_chemical_conn_bond_atom_2'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_dependent.dependent_name
                                '_chemical_conn_bond.atom_1'
     save_

save__chemical_conn_bond.type
    _item_description.description
;              The chemical bond type associated with the connection between
               the two sites _chemical_conn_bond.atom_1 and
               _chemical_conn_bond.atom_2.
;
    _item.name                  '_chemical_conn_bond.type'
    _item.category_id             chemical_conn_bond
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_conn_bond_type'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           sing
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      sing  'single bond'
                                  doub  'double bond'
                                  trip  'triple bond'
                                  quad  'quadruple bond'
                                  arom  'aromatic bond'
                                  poly  'polymeric bond'
                                  delo  'delocalized double bond'
                                  pi    'pi bond'
     save_

######################
## CHEMICAL_FORMULA ##
######################

save_chemical_formula
    _category.description
;              Data items in the CHEMICAL_FORMULA category would not, in
               general, be used in a macromolecular CIF. See instead the
               ENTITY data items.

               Data items in the CHEMICAL_FORMULA category specify the
               composition and chemical properties of the compound. The formula
               data items must agree with those that specify the density,
               unit-cell and Z values.

               The following rules apply to the construction of the data items
               _chemical_formula.analytical, _chemical_formula.structural and
               _chemical_formula.sum. For the data item
               _chemical_formula.moiety, the formula construction is broken up
               into residues or moieties, i.e. groups of atoms that form a
               molecular unit or molecular ion. The rules given below apply
               within each moiety but different requirements apply to the way
               that moieties are connected (see _chemical_formula.moiety).

               (1) Only recognized element symbols may be used.

               (2) Each element symbol is followed by a 'count' number. A count
                  of '1' may be omitted.

               (3) A space or parenthesis must separate each cluster of (element
                  symbol + count).

               (4) Where a group of elements is enclosed in parentheses, the
                  multiplier for the group must follow the closing parenthesis.
                  That is, all element and group multipliers are assumed to be
                  printed as subscripted numbers. (An exception to this rule
                  exists for _chemical_formula.moiety formulae where pre- and
                  post-multipliers are permitted for molecular units.)

               (5) Unless the elements are ordered in a manner that corresponds
                  to their chemical structure, as in
                  _chemical_formula.structural, the order of the elements within
                  any group or moiety should be:  C, then H, then the other
                  elements in alphabetical order of their symbol. This is the
                  'Hill' system used by Chemical Abstracts. This ordering is
                  used in _chemical_formula.moiety and _chemical_formula.sum.
;
    _category.id                  chemical_formula
    _category.mandatory_code      no
    _category_key.name          '_chemical_formula.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chemical_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - based on data set TOZ of Willis, Beckwith & Tozer [(1991).
                Acta Cryst. C47, 2276-2277].
;
;
    _chemical_formula.entry_id          'TOZ'
    _chemical_formula.moiety            'C18 H25 N O3'
    _chemical_formula.sum               'C18 H25 N O3'
    _chemical_formula.weight            303.40
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__chemical_formula.analytical
    _item_description.description
;              Formula determined by standard chemical analysis including trace
               elements. See the CHEMICAL_FORMULA category description for
               rules for writing chemical formulae. Parentheses are used only
               for standard uncertainties (estimated standard deviations).
;
    _item.name                  '_chemical_formula.analytical'
    _item.category_id             chemical_formula
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_formula_analytical'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'Fe2.45(2)  Ni1.60(3)  S4'
     save_

save__chemical_formula.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_chemical_formula.entry_id'
    _item.mandatory_code          yes
     save_

save__chemical_formula.iupac
    _item_description.description
;              Formula expressed in conformance with IUPAC rules for inorganic
               and metal-organic compounds where these conflict with the rules
               for any other CHEMICAL_FORMULA entries. Typically used for
               formatting a formula in accordance with journal rules. This
               should appear in the data block in addition to the most
               appropriate of the other CHEMICAL_FORMULA data names.

               Ref: IUPAC (1990). Nomenclature of Inorganic Chemistry.
                    Oxford: Blackwell Scientific Publications.
;
    _item.name                  '_chemical_formula.iupac'
    _item.category_id             chemical_formula
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_formula_iupac'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          '[Co Re (C12 H22 P)2 (C O)6].0.5C H3 O H'
     save_

save__chemical_formula.moiety
    _item_description.description
;              Formula with each discrete bonded residue or ion shown as a
               separate moiety. See the CHEMICAL_FORMULA category description
               for rules for writing chemical formulae. In addition to the
               general formulae requirements, the following rules apply:
                  (1) Moieties are separated by commas ','.
                  (2) The order of elements within a moiety follows general rule
                     (5) in the CHEMICAL_FORMULA category description.
                  (3) Parentheses are not used within moieties but may surround
                     a moiety. Parentheses may not be nested.
                  (4) Charges should be placed at the end of the moiety. The
                     charge '+' or '-' may be preceded by a numerical multiplier
                     and should be separated from the last (element symbol +
                     count) by a space. Pre- or post-multipliers may be used for
                     individual moieties.
;
    _item.name                  '_chemical_formula.moiety'
    _item.category_id             chemical_formula
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_formula_moiety'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          'C7 H4 Cl Hg N O3 S'
                                 'C12 H17 N4 O S 1+, C6 H2 N3 O7 1-'
                                 'C12 H16 N2 O6, 5(H2 O1)'
                                 "(Cd 2+)3, (C6 N6 Cr 3-)2, 2(H2 O)"
     save_

save__chemical_formula.structural
    _item_description.description
;              See the CHEMICAL_FORMULA category description for the rules for
               writing chemical formulae for inorganics, organometallics, metal
               complexes etc., in which bonded groups are preserved as
               discrete entities within parentheses, with post-multipliers as
               required. The order of the elements should give as much
               information as possible about the chemical structure.
               Parentheses may be used and nested as required. This formula
               should correspond to the structure as actually reported, i.e.
               trace elements not included in atom-type and atom-site data
               should not be included in this formula (see also
               _chemical_formula.analytical).
;
    _item.name                  '_chemical_formula.structural'
    _item.category_id             chemical_formula
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_formula_structural'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          'Ca ((Cl O3)2 O)2 (H2 O)6'
                                 '(Pt (N H3)2 (C5 H7 N3 O)2) (Cl O4)2'
     save_

save__chemical_formula.sum
    _item_description.description
;              See the CHEMICAL_FORMULA category description for the rules
               for writing chemical formulae in which all discrete bonded
               residues and ions are summed over the constituent elements,
               following the ordering given in general rule (5) in the
               CHEMICAL_FORMULA category description. Parentheses are not
               normally used.
;
    _item.name                  '_chemical_formula.sum'
    _item.category_id             chemical_formula
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_formula_sum'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          'C18 H19 N7 O8 S'
     save_

save__chemical_formula.weight
    _item_description.description
;              Formula mass in daltons. This mass should correspond to the
               formulae given under _chemical_formula.structural,
               _chemical_formula.moiety or _chemical_formula.sum and,
               together with the Z value and cell parameters, should
               yield the density given as _exptl_crystal.density_diffrn.
;
    _item.name                  '_chemical_formula.weight'
    _item.category_id             chemical_formula
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_formula_weight'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    1.0
                                  1.0   1.0
    _item_type.code               float
     save_

save__chemical_formula.weight_meas
    _item_description.description
;              Formula mass in daltons measured by a non-diffraction experiment.
;
    _item.name                  '_chemical_formula.weight_meas'
    _item.category_id             chemical_formula
    _item.mandatory_code          no
    _item_aliases.alias_name    '_chemical_formula_weight_meas'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    1.0
                                  1.0   1.0
    _item_type.code               float
     save_

##############
## CITATION ##
##############

save_citation
    _category.description
;              Data items in the CITATION category record details about the
               literature cited as being relevant to the contents of the data
               block.
;
    _category.id                  citation
    _category.mandatory_code      no
    _category_key.name          '_citation.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'citation_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _citation.id
    _citation.coordinate_linkage
    _citation.title
    _citation.country
    _citation.journal_abbrev
    _citation.journal_volume
    _citation.journal_issue
    _citation.page_first
    _citation.page_last
    _citation.year
    _citation.journal_id_ASTM
    _citation.journal_id_ISSN
    _citation.journal_id_CSD
    _citation.book_title
    _citation.book_publisher
    _citation.book_id_ISBN
    _citation.details
      primary  yes
    ; Crystallographic analysis of a complex between human
      immunodeficiency virus type 1 protease and acetyl-pepstatin
      at 2.0-Angstroms resolution.
    ;
      US  'J. Biol. Chem.'  265  .  14209  14219  1990
      HBCHA3  0021-9258  071  .  .  .
    ; The publication that directly relates to this coordinate
      set.
    ;
      2  no
    ; Three-dimensional structure of aspartyl-protease from human
      immunodeficiency virus HIV-1.
    ;
      UK  'Nature'  337  .  615  619  1989
      NATUAS  0028-0836  006  .  .  .
    ; Determination of the structure of the unliganded enzyme.
    ;
      3 no
    ; Crystallization of the aspartylprotease from human
      immunodeficiency virus, HIV-1.
    ;
      US  'J. Biol. Chem.'  264  .  1919  1921  1989
      HBCHA3  0021-9258  071  .  .  .
    ; Crystallization of the unliganded enzyme.
    ;
      4 no
    ; Human immunodeficiency virus protease. Bacterial expression
      and characterization of the purified aspartic protease.
    ;
      US  'J. Biol. Chem.'  264  .  2307  2312  1989
      HBCHA3  0021-9258  071  .  .  .
    ; Expression and purification of the enzyme.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__citation.abstract
    _item_description.description
;              Abstract for the citation. This is used most when the
               citation is extracted from a bibliographic database that
               contains full text or abstract information.
;
    _item.name                  '_citation.abstract'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_abstract'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__citation.abstract_id_CAS
    _item_description.description
;              The Chemical Abstracts Service (CAS) abstract identifier;
               relevant for journal articles.
;
    _item.name                  '_citation.abstract_id_CAS'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_abstract_id_CAS'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__citation.book_id_ISBN
    _item_description.description
;              The International Standard Book Number (ISBN) code assigned to
               the book cited; relevant for books or book chapters.
;
    _item.name                  '_citation.book_id_ISBN'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_book_id_ISBN'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__citation.book_publisher
    _item_description.description
;              The name of the publisher of the citation; relevant
               for books or book chapters.
;
    _item.name                  '_citation.book_publisher'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_book_publisher'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'John Wiley and Sons'
     save_

save__citation.book_publisher_city
    _item_description.description
;              The location of the publisher of the citation; relevant
               for books or book chapters.
;
    _item.name                  '_citation.book_publisher_city'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_book_publisher_city'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'London'
     save_

save__citation.book_title
    _item_description.description
;              The title of the book in which the citation appeared; relevant
               for books or book chapters.
;
    _item.name                  '_citation.book_title'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_book_title'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__citation.coordinate_linkage
    _item_description.description
;              _citation.coordinate_linkage states whether this citation
               is concerned with precisely the set of coordinates given in the
               data block. If, for instance, the publication described the same
               structure, but the coordinates had undergone further refinement
               prior to the creation of the data block, the value of this data
               item would be 'no'.
;
    _item.name                  '_citation.coordinate_linkage'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_coordinate_linkage'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      no
                                 'citation unrelated to current coordinates'
                                  n
                                 'abbreviation for "no"'
                                  yes
                                 'citation related to current coordinates'
                                  y
                                 'abbreviation for "yes"'
     save_

save__citation.country
    _item_description.description
;              The country of publication; relevant for books
               and book chapters.
;
    _item.name                  '_citation.country'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_country'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__citation.database_id_Medline
    _item_description.description
;              Accession number used by Medline to categorize a specific
               bibliographic entry.
;
    _item.name                  '_citation.database_id_Medline'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_database_id_Medline'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   1
                                  1   1
    _item_type.code               int
    _item_examples.case           89064067
     save_

save__citation.details
    _item_description.description
;              A description of special aspects of the relationship
               of the contents of the data block to the literature item cited.
;
    _item.name                  '_citation.details'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_special_details'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case
;                                 citation relates to this precise
                                  coordinate set
;
;                                 citation relates to earlier low-resolution
                                  structure
;
;                                 citation relates to further refinement of
                                  structure reported in citation 2
;
     save_

save__citation.id
    _item_description.description
;              The value of _citation.id must uniquely identify a record in the
               CITATION list.

               The _citation.id 'primary' should be used to indicate the
               citation that the author(s) consider to be the most pertinent to
               the contents of the data block.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_citation.id'                  citation         yes
               '_citation_author.citation_id'  citation_author  yes
               '_citation_editor.citation_id'  citation_editor  yes
               '_software.citation_id'         software         no
    _item_aliases.alias_name    '_citation_id'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_citation_author.citation_id'  '_citation.id'
               '_citation_editor.citation_id'  '_citation.id'
               '_software.citation_id'         '_citation.id'
    _item_type.code               code
    loop_
    _item_examples.case          'primary'
                                 '1'
                                 '2'
     save_

save__citation.journal_abbrev
    _item_description.description
;              Abbreviated name of the cited journal as given in the
               Chemical Abstracts Service Source Index.
;
    _item.name                  '_citation.journal_abbrev'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_journal_abbrev'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    _item_examples.case          'J. Mol. Biol.'
     save_

save__citation.journal_id_ASTM
    _item_description.description
;              The American Society for Testing and Materials (ASTM) code
               assigned to the journal cited (also referred to as the CODEN
               designator of the Chemical Abstracts Service); relevant for
               journal articles.
;
    _item.name                  '_citation.journal_id_ASTM'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_journal_id_ASTM'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__citation.journal_id_CSD
   _item_description.description
;              The Cambridge Structural Database (CSD) code assigned to the
               journal cited; relevant for journal articles. This is also the
               system used at the Protein Data Bank (PDB).
;
    _item.name                  '_citation.journal_id_CSD'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_journal_id_CSD'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    _item_examples.case          '0070'
     save_

save__citation.journal_id_ISSN
    _item_description.description
;              The International Standard Serial Number (ISSN) code assigned to
               the journal cited; relevant for journal articles.
;
    _item.name                  '_citation.journal_id_ISSN'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_journal_id_ISSN'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__citation.journal_full
    _item_description.description
;              Full name of the cited journal; relevant for journal articles.
;
    _item.name                  '_citation.journal_full'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_journal_full'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'Journal of Molecular Biology'
     save_

save__citation.journal_issue
    _item_description.description
;              Issue number of the journal cited; relevant for journal
               articles.
;
    _item.name                  '_citation.journal_issue'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_journal_issue'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    _item_examples.case          '2'
     save_

save__citation.journal_volume
    _item_description.description
;              Volume number of the journal cited; relevant for journal
               articles.
;
    _item.name                  '_citation.journal_volume'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_journal_volume'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    _item_examples.case          '174'
     save_

save__citation.language
    _item_description.description
;              Language in which the cited article is written.
;
    _item.name                  '_citation.language'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_language'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    _item_examples.case          'German'
     save_

save__citation.page_first
    _item_description.description
;              The first page of the citation; relevant for journal
               articles, books and book chapters.
;
    _item.name                  '_citation.page_first'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_page_first'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__citation.page_last
    _item_description.description
;              The last page of the citation; relevant for journal
               articles, books and book chapters.
;
    _item.name                  '_citation.page_last'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_page_last'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__citation.title
    _item_description.description
;              The title of the citation; relevant for journal articles, books
               and book chapters.
;
    _item.name                  '_citation.title'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_title'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case
;                                 Structure of diferric duck ovotransferrin
                                  at 2.35 \%A resolution.
;
     save_

save__citation.year
    _item_description.description
;              The year of the citation; relevant for journal articles, books
               and book chapters.
;
    _item.name                  '_citation.year'
    _item.category_id             citation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_year'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
    _item_examples.case           1984
     save_

#####################
## CITATION_AUTHOR ##
#####################

save_citation_author
    _category.description
;              Data items in the CITATION_AUTHOR category record details
               about the authors associated with the citations in the
               CITATION list.
;
    _category.id                  citation_author
    _category.mandatory_code      no
    loop_
    _category_key.name          '_citation_author.citation_id'
                                '_citation_author.name'
    loop_
    _category_group.id           'inclusive_group'
                                 'citation_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _citation_author.citation_id
    _citation_author.ordinal
    _citation_author.name
      primary  1  'Fitzgerald, P.M.D.'
      primary  2  'McKeever, B.M.'
      primary  3  'Van Middlesworth, J.F.'
      primary  4  'Springer, J.P.'
      primary  5  'Heimbach, J.C.'
      primary  6  'Leu, C.-T.'
      primary  7  'Herber, W.K.'
      primary  8  'Dixon, R.A.F.'
      primary  9  'Darke, P.L.'
      2        1  'Navia, M.A.'
      2        2  'Fitzgerald, P.M.D.'
      2        3  'McKeever, B.M.'
      2        4  'Leu, C.-T.'
      2        5  'Heimbach, J.C.'
      2        6  'Herber, W.K.'
      2        7  'Sigal, I.S.'
      2        8  'Darke, P.L.'
      2        9  'Springer, J.P.'
      3        1  'McKeever, B.M.'
      3        2  'Navia, M.A.'
      3        3  'Fitzgerald, P.M.D.'
      3        4  'Springer, J.P.'
      3        5  'Leu, C.-T.'
      3        6  'Heimbach, J.C.'
      3        7  'Herber, W.K.'
      3        8  'Sigal, I.S.'
      3        9  'Darke, P.L.'
      4        1  'Darke, P.L.'
      4        2  'Leu, C.-T.'
      4        3  'Davis, L.J.'
      4        4  'Heimbach, J.C.'
      4        5  'Diehl, R.E.'
      4        6  'Hill, W.S.'
      4        7  'Dixon, R.A.F.'
      4        8  'Sigal, I.S.'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__citation_author.citation_id
    _item_description.description
;              This data item is a pointer to _citation.id in the CITATION
               category.
;
    _item.name                  '_citation_author.citation_id'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_citation_author_citation_id'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
     save_

save__citation_author.name
    _item_description.description
;              Name of an author of the citation; relevant for journal
               articles, books and book chapters.

               The family name(s), followed by a comma and including any
               dynastic components, precedes the first name(s) or initial(s).
;
    _item.name                  '_citation_author.name'
    _item.category_id             citation_author
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_citation_author_name'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          'Bleary, Percival R.'
                                 "O'Neil, F.K."
                                 'Van den Bossche, G.'
                                 'Yang, D.-L.'
                                 'Simonov, Yu.A.'
     save_

save__citation_author.ordinal
    _item_description.description
;              This data item defines the order of the author's name in the
               list of authors of a citation.
;
    _item.name                  '_citation_author.ordinal'
    _item.category_id             citation_author
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_author_ordinal'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

#####################
## CITATION_EDITOR ##
#####################

save_citation_editor
    _category.description
;              Data items in the CITATION_EDITOR category record details
               about the editors associated with the books or book chapters
               cited in the CITATION list.
;
    _category.id                  citation_editor
    _category.mandatory_code      no
    loop_
    _category_key.name          '_citation_editor.citation_id'
                                '_citation_editor.name'
    loop_
    _category_group.id           'inclusive_group'
                                 'citation_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - hypothetical example.
;
;
    loop_
    _citation_editor.citation_id
    _citation_editor.name
      5        'McKeever, B.M.'
      5        'Navia, M.A.'
      5        'Fitzgerald, P.M.D.'
      5        'Springer, J.P.'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__citation_editor.citation_id
    _item_description.description
;              This data item is a pointer to _citation.id in the CITATION
               category.
;
    _item.name                  '_citation_editor.citation_id'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_citation_editor_citation_id'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
     save_

save__citation_editor.name
    _item_description.description
;              Names of an editor of the citation; relevant for books and
               book chapters.

               The family name(s), followed by a comma and including any
               dynastic components, precedes the first name(s) or initial(s).
;
    _item.name                  '_citation_editor.name'
    _item.category_id             citation_editor
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_editor_name'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          'Bleary, Percival R.'
                                 "O'Neil, F.K."
                                 'Van den Bossche, G.'
                                 'Yang, D.-L.'
                                 'Simonov, Yu.A.'
     save_

save__citation_editor.ordinal
    _item_description.description
;              This data item defines the order of the editor's name in the
               list of editors of a citation.
;
    _item.name                  '_citation_editor.ordinal'
    _item.category_id             citation_editor
    _item.mandatory_code          no
    _item_aliases.alias_name    '_citation_editor_ordinal'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

###############
## COMPUTING ##
###############

save_computing
    _category.description
;              Data items in the COMPUTING category record details about the
               computer programs used in the crystal structure analysis.

               Data items in this category would not, in general, be used in
               a macromolecular CIF.  The category SOFTWARE, which allows
               a more detailed description of computer programs and
               their attributes to be given, would be used instead.
;
    _category.id                  computing
    _category.mandatory_code      no
    _category_key.name          '_computing.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'computing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - Rodr\'iguez-Romera, Ruiz-P\'erez & Solans [Acta
                Cryst. (1996), C52, 1415-1417].
;
;
    _computing.data_collection      'CAD-4 (Enraf-Nonius, 1989)'
    _computing.cell_refinement      'CAD-4 (Enraf-Nonius, 1989)'
    _computing.data_reduction       'CFEO (Solans, 1978)'
    _computing.structure_solution   'SHELXS86 (Sheldrick, 1990)'
    _computing.structure_refinement 'SHELXL93 (Sheldrick, 1993)'
    _computing.molecular_graphics   'ORTEPII (Johnson, 1976)'
    _computing.publication_material 'PARST (Nardelli, 1983)'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__computing.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_computing.entry_id'
    _item.mandatory_code          yes
     save_

save__computing.cell_refinement
    _item_description.description
;              Software used for cell refinement.

               Give the program or package name and a brief reference.
;
    _item.name                  '_computing.cell_refinement'
    _item.category_id             computing
    _item.mandatory_code          no
    _item_aliases.alias_name    '_computing_cell_refinement'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'CAD4 (Enraf-Nonius, 1989)'
     save_

save__computing.data_collection
    _item_description.description
;              Software used for data collection.

               Give the program or package name and a brief reference.
;
    _item.name                  '_computing.data_collection'
    _item.category_id             computing
    _item.mandatory_code          no
    _item_aliases.alias_name    '_computing_data_collection'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'CAD4 (Enraf-Nonius, 1989)'
     save_

save__computing.data_reduction
    _item_description.description
;              Software used for data reduction.

               Give the program or package name and a brief reference.
;
    _item.name                  '_computing.data_reduction'
    _item.category_id             computing
    _item.mandatory_code          no
    _item_aliases.alias_name    '_computing_data_reduction'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case
           'DIFDAT, SORTRF, ADDREF (Hall & Stewart, 1990)'
     save_

save__computing.molecular_graphics
    _item_description.description
;              Software used for molecular graphics.

               Give the program or package name and a brief reference.
;
    _item.name                  '_computing.molecular_graphics'
    _item.category_id             computing
    _item.mandatory_code          no
    _item_aliases.alias_name    '_computing_molecular_graphics'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'FRODO (Jones, 1986), ORTEP (Johnson, 1965)'
     save_

save__computing.publication_material
    _item_description.description
;              Software used for generating material for publication.

               Give the program or package name and a brief reference.
;
    _item.name                  '_computing.publication_material'
    _item.category_id             computing
    _item.mandatory_code          no
    _item_aliases.alias_name    '_computing_publication_material'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__computing.structure_refinement
    _item_description.description
;              Software used for refinement of the structure.

               Give the program or package name and a brief reference.
;
    _item.name                  '_computing.structure_refinement'
    _item.category_id             computing
    _item.mandatory_code          no
    _item_aliases.alias_name    '_computing_structure_refinement'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          'SHELX85 (Sheldrick, 1985)'
                                 'X-PLOR (Brunger, 1992)'
     save_

save__computing.structure_solution
    _item_description.description
;              Software used for solution of the structure.

               Give the program or package name and a brief reference.
;
    _item.name                  '_computing.structure_solution'
    _item.category_id             computing
    _item.mandatory_code          no
    _item_aliases.alias_name    '_computing_structure_solution'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'SHELX85 (Sheldrick, 1985)'
     save_

##############
## DATABASE ##
##############

save_database
    _category.description
;              Data items in the DATABASE category have been superseded by
               data items in the DATABASE_2 category. They are included
               here only for compliance with older CIFs.
;
    _category.id                  database
    _category.mandatory_code      no
    _category_key.name          '_database.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'compliance_group'
     save_

save__database.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_database.entry_id'
    _item.mandatory_code          yes
     save_

#save__database.code_CAS
#    _item_description.description
#;              The code assigned by Chemical Abstracts.
#;
#    _item.name                  '_database.code_CAS'
#    _item.category_id             database
#    _item.mandatory_code          no
#    _item_aliases.alias_name    '_database_code_CAS'
#    _item_aliases.dictionary      cif_core.dic
#    _item_aliases.version         2.0.1
#    loop_
#    _item_related.related_name
#    _item_related.function_code '_database_2.database_id'
#                                  replacedby
#                                '_database_2.database_code'
#                                  replacedby
#    _item_type.code               line
#     save_
#
#save__database.code_CSD
#    _item_description.description
#;              The code assigned by the Cambridge Structural Database
#               (organic and metal-organic compounds).
#;
#    _item.name                  '_database.code_CSD'
#    _item.category_id             database
#    _item.mandatory_code          no
#    _item_aliases.alias_name    '_database_code_CSD'
#    _item_aliases.dictionary      cif_core.dic
#    _item_aliases.version         2.0.1
#    loop_
#    _item_related.related_name
#    _item_related.function_code '_database_2.database_id'
#                                  replacedby
#                                '_database_2.database_code'
#                                  replacedby
#    _item_type.code               line
#     save_
#
#save__database.code_ICSD
#    _item_description.description
#;              The code assigned by the Inorganic Crystal Structure Database.
#;
#    _item.name                  '_database.code_ICSD'
#    _item.category_id             database
#    _item.mandatory_code          no
#    _item_aliases.alias_name    '_database_code_ICSD'
#    _item_aliases.dictionary      cif_core.dic
#    _item_aliases.version         2.0.1
#    loop_
#    _item_related.related_name
#    _item_related.function_code '_database_2.database_id'
#                                  replacedby
#                                '_database_2.database_code'
#                                  replacedby
#    _item_type.code               line
#     save_
#
#save__database.code_MDF
#    _item_description.description
#;              The code assigned by the Metals Data File (metal structures).
#;
#    _item.name                  '_database.code_MDF'
#    _item.category_id             database
#    _item.mandatory_code          no
#    _item_aliases.alias_name    '_database_code_MDF'
#    _item_aliases.dictionary      cif_core.dic
#    _item_aliases.version         2.0.1
#    loop_
#    _item_related.related_name
#    _item_related.function_code '_database_2.database_id'
#                                  replacedby
#                                '_database_2.database_code'
#                                  replacedby
#    _item_type.code               line
#     save_
#
#save__database.code_NBS
#    _item_description.description
#;              The code assigned by the NBS (NIST) Crystal Data Database
#               (lattice parameters).
#;
#    _item.name                  '_database.code_NBS'
#    _item.category_id             database
#    _item.mandatory_code          no
#    _item_aliases.alias_name    '_database_code_NBS'
#    _item_aliases.dictionary      cif_core.dic
#    _item_aliases.version         2.0.1
#    loop_
#    _item_related.related_name
#    _item_related.function_code '_database_2.database_id'
#                                  replacedby
#                                '_database_2.database_code'
#                                  replacedby
#    _item_type.code               line
#     save_
#
#save__database.code_PDF
#    _item_description.description
#;              The code assigned by the Powder Diffraction File (JCPDS/ICDD).
#;
#    _item.name                  '_database.code_PDF'
#    _item.category_id             database
#    _item.mandatory_code          no
#    _item_aliases.alias_name    '_database_code_PDF'
#    _item_aliases.dictionary      cif_core.dic
#    _item_aliases.version         2.0.1
#    loop_
#    _item_related.related_name
#    _item_related.function_code '_database_2.database_id'
#                                  replacedby
#                                '_database_2.database_code'
#                                  replacedby
#    _item_type.code               line
#     save_
#
save__database.journal_ASTM
    _item_description.description
;              The ASTM CODEN designator for a journal as given in the Chemical
               Source List maintained by the Chemical Abstracts Service.
;
    _item.name                  '_database.journal_ASTM'
    _item.category_id             database
    _item.mandatory_code          no
    _item_aliases.alias_name    '_database_journal_ASTM'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__database.journal_CSD
    _item_description.description
;              The journal code used in the Cambridge Structural Database.
;
    _item.name                  '_database.journal_CSD'
    _item.category_id             database
    _item.mandatory_code          no
    _item_aliases.alias_name    '_database_journal_CSD'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

################
## DATABASE_2 ##
################

save_database_2
    _category.description
;              Data items in the DATABASE_2 category record details about the
               database identifiers of the data block.

               These data items are assigned by database managers and should
               only appear in a data block if they originate from that source.

               The name of this category, DATABASE_2, arose because the
               category name DATABASE was already in use in the core CIF
               dictionary, but was used differently from the way it needed
               to be used in the mmCIF dictionary. Since CIF data names
               cannot be changed once they have been adopted, a new category
               had to be created.
;
    _category.id                  database_2
    _category.mandatory_code      no
    loop_
    _category_key.name          '_database_2.database_id'
                                '_database_2.database_code'
    loop_
    _category_group.id           'inclusive_group'
                                 'database_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _database_2.database_id                'PDB'
    _database_2.database_code              '5HVP'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__database_2.database_id
    _item_description.description
;              An abbreviation that identifies the database.
;
    _item.name                  '_database_2.database_id'
    _item.category_id             database_2
    _item.mandatory_code          yes
    loop_
    _item_related.related_name
    _item_related.function_code '_database.code_CAS'
                                  replaces
                                '_database.code_CSD'
                                  replaces
                                '_database.code_ICSD'
                                  replaces
                                '_database.code_MDF'
                                  replaces
                                '_database.code_NBS'
                                  replaces
                                '_database.code_PDF'
                                  replaces
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      CAS
;                                 Chemical Abstracts
;
                                  CSD
;                                 Cambridge Structural Database
                                  (organic and metal-organic compounds)
;
                                  ICSD
;                                 Inorganic Crystal Structure Database
;
                                  MDF
;                                 Metals Data File (metal structures)
;
                                  NDB
;                                 Nucleic Acid Database
;
                                  NBS
;                                 NBS (NIST) Crystal Data Database
                                  (lattice parameters)
;
                                  PDB
;                                 Protein Data Bank
;
                                  PDF
;                                 Powder Diffraction File (JCPDS/ICDD)
;
                                  RCSB
;                         Research Collaboratory for Structural Bioinformatics
;
                                  EBI
;                                 European Bioinformatics Institute
;
     save_

save__database_2.database_code
    _item_description.description
;              The code assigned by the database identified in
               _database_2.database_id.
;
    _item.name                  '_database_2.database_code'
    _item.category_id             database_2
    _item.mandatory_code          yes
    loop_
    _item_related.related_name
    _item_related.function_code '_database.code_CAS'
                                  replaces
                                '_database.code_CSD'
                                  replaces
                                '_database.code_ICSD'
                                  replaces
                                '_database.code_MDF'
                                  replaces
                                '_database.code_NBS'
                                  replaces
                                '_database.code_PDF'
                                  replaces
    _item_type.code               line
    loop_
    _item_examples.case           1ABC
                                  ABCDEF
     save_

#########################
## DATABASE_PDB_CAVEAT ##
#########################

save_database_PDB_caveat
    _category.description
;              Data items in the DATABASE_PDB_CAVEAT category record details
               about features of the data block flagged as 'caveats' by the
               Protein Data Bank (PDB).

               These data items are included only for consistency with PDB
               format files. They should appear in a data block only if that
               data block was created by reformatting a PDB format file.
;
    _category.id                  database_PDB_caveat
    _category.mandatory_code      no
    _category_key.name          '_database_PDB_caveat.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'database_group'
                                 'pdb_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - hypothetical example.
;
;
    loop_
    _database_PDB_caveat.id
    _database_PDB_caveat.text
    1
    ; THE CRYSTAL TRANSFORMATION IS IN ERROR BUT IS
    ;
    2
    ; UNCORRECTABLE AT THIS TIME
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__database_PDB_caveat.id
    _item_description.description
;              A unique identifier for the PDB caveat record.
;
    _item.name                  '_database_PDB_caveat.id'
    _item.category_id             database_PDB_caveat
    _item.mandatory_code          yes
    _item_type.code               int
     save_

save__database_PDB_caveat.text
    _item_description.description
;              The full text of the PDB caveat record.
;
    _item.name                  '_database_PDB_caveat.text'
    _item.category_id             database_PDB_caveat
    _item.mandatory_code          no
    _item_type.code               text
     save_

#########################
## DATABASE_PDB_MATRIX ##
#########################

save_database_PDB_matrix
    _category.description
;              The DATABASE_PDB_MATRIX category provides placeholders for
               transformation matrices and vectors used by the Protein Data
               Bank (PDB).

               These data items are included only for consistency with older
               PDB format files. They should appear in a data block only if
               that data block was created by reformatting a PDB format file.
;
    _category.id                  database_PDB_matrix
    _category.mandatory_code      no
    _category_key.name          '_database_PDB_matrix.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'database_group'
                                 'pdb_group'
     save_

save__database_PDB_matrix.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_database_PDB_matrix.entry_id'
    _item.mandatory_code          yes
     save_

save__database_PDB_matrix.origx[1][1]
    _item_description.description
;              The [1][1] element of the PDB ORIGX matrix.
;

    _item.name                  '_database_PDB_matrix.origx[1][1]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           1.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.origx[1][2]
    _item_description.description
;              The [1][2] element of the PDB ORIGX matrix.
;
    _item.name                  '_database_PDB_matrix.origx[1][2]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.origx[1][3]
    _item_description.description
;              The [1][3] element of the PDB ORIGX matrix.
;
    _item.name                  '_database_PDB_matrix.origx[1][3]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.origx[2][1]
    _item_description.description
;              The [2][1] element of the PDB ORIGX matrix.
;
    _item.name                  '_database_PDB_matrix.origx[2][1]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.origx[2][2]
    _item_description.description
;              The [2][2] element of the PDB ORIGX matrix.
;
    _item.name                  '_database_PDB_matrix.origx[2][2]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           1.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.origx[2][3]
    _item_description.description
;              The [2][3] element of the PDB ORIGX matrix.
;
    _item.name                  '_database_PDB_matrix.origx[2][3]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.origx[3][1]
    _item_description.description
;              The [3][1] element of the PDB ORIGX matrix.
;
    _item.name                  '_database_PDB_matrix.origx[3][1]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.origx[3][2]
    _item_description.description
;              The [3][2] element of the PDB ORIGX matrix.
;
    _item.name                  '_database_PDB_matrix.origx[3][2]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.origx[3][3]
    _item_description.description
;              The [3][3] element of the PDB ORIGX matrix.
;
    _item.name                  '_database_PDB_matrix.origx[3][3]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           1.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.origx_vector[1]
    _item_description.description
;              The [1] element of the PDB ORIGX vector.
;
    _item.name                  '_database_PDB_matrix.origx_vector[1]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

save__database_PDB_matrix.origx_vector[2]
    _item_description.description
;              The [2] element of the PDB ORIGX vector.
;
    _item.name                  '_database_PDB_matrix.origx_vector[2]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

save__database_PDB_matrix.origx_vector[3]
    _item_description.description
;              The [3] element of the PDB ORIGX vector.
;
    _item.name                  '_database_PDB_matrix.origx_vector[3]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

save__database_PDB_matrix.scale[1][1]
    _item_description.description
;              The [1][1] element of the PDB SCALE matrix.
;

    _item.name                  '_database_PDB_matrix.scale[1][1]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           1.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.scale[1][2]
    _item_description.description
;              The [1][2] element of the PDB SCALE matrix.
;
    _item.name                  '_database_PDB_matrix.scale[1][2]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.scale[1][3]
    _item_description.description
;              The [1][3] element of the PDB SCALE matrix.
;
    _item.name                  '_database_PDB_matrix.scale[1][3]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.scale[2][1]
    _item_description.description
;              The [2][1] element of the PDB SCALE matrix.
;
    _item.name                  '_database_PDB_matrix.scale[2][1]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.scale[2][2]
    _item_description.description
;              The [2][2] element of the PDB SCALE matrix.
;
    _item.name                  '_database_PDB_matrix.scale[2][2]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           1.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.scale[2][3]
    _item_description.description
;              The [2][3] element of the PDB SCALE matrix.
;
    _item.name                  '_database_PDB_matrix.scale[2][3]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.scale[3][1]
    _item_description.description
;              The [3][1] element of the PDB SCALE matrix.
;
    _item.name                  '_database_PDB_matrix.scale[3][1]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.scale[3][2]
    _item_description.description
;              The [3][2] element of the PDB SCALE matrix.
;
    _item.name                  '_database_PDB_matrix.scale[3][2]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.scale[3][3]
    _item_description.description
;              The [3][3] element of the PDB SCALE matrix.
;
    _item.name                  '_database_PDB_matrix.scale[3][3]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           1.0
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__database_PDB_matrix.scale_vector[1]
    _item_description.description
;              The [1] element of the PDB SCALE vector.
;
    _item.name                  '_database_PDB_matrix.scale_vector[1]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

save__database_PDB_matrix.scale_vector[2]
    _item_description.description
;              The [2] element of the PDB SCALE vector.
;
    _item.name                  '_database_PDB_matrix.scale_vector[2]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

save__database_PDB_matrix.scale_vector[3]
    _item_description.description
;              The [3] element of the PDB SCALE vector.
;
    _item.name                  '_database_PDB_matrix.scale_vector[3]'
    _item.category_id             database_PDB_matrix
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

#########################
## DATABASE_PDB_REMARK ##
#########################

save_database_PDB_remark
    _category.description
;              Data items in the DATABASE_PDB_REMARK category record details
               about the data block as archived by the Protein Data Bank (PDB).

               Some data appearing in PDB REMARK records can be
               algorithmically extracted into the appropriate data items
               in the data block.

               These data items are included only for consistency with older
               PDB format files. They should appear in a data block only if
               that data block was created by reformatting a PDB format file.
;
    _category.id                  database_PDB_remark
    _category.mandatory_code      no
    _category_key.name          '_database_PDB_remark.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'database_group'
                                 'pdb_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _database_PDB_remark.id
    _database_PDB_remark.text
    3
    ; REFINEMENT. BY THE RESTRAINED LEAST-SQUARES PROCEDURE OF J.
      KONNERT AND W. HENDRICKSON (PROGRAM *PROLSQ*).  THE R
      VALUE IS 0.176 FOR 12901 REFLECTIONS IN THE RESOLUTION
      RANGE 8.0 TO 2.0 ANGSTROMS WITH I .GT. SIGMA(I).

      RMS DEVIATIONS FROM IDEAL VALUES (THE VALUES OF
      SIGMA, IN PARENTHESES, ARE THE INPUT ESTIMATED
      STANDARD DEVIATIONS THAT DETERMINE THE RELATIVE
      WEIGHTS OF THE CORRESPONDING RESTRAINTS)
      DISTANCE RESTRAINTS (ANGSTROMS)
      BOND DISTANCE                            0.018(0.020)
      ANGLE DISTANCE                           0.038(0.030)
      PLANAR 1-4 DISTANCE                      0.043(0.040)
      PLANE RESTRAINT (ANGSTROMS)                0.015(0.020)
      CHIRAL-CENTER RESTRAINT (ANGSTROMS**3)     0.177(0.150)
      NON-BONDED CONTACT RESTRAINTS (ANGSTROMS)
      SINGLE TORSION CONTACT                   0.216(0.500)
      MULTIPLE TORSION CONTACT                 0.207(0.500)
      POSSIBLE HYDROGEN BOND                   0.245(0.500)
      CONFORMATIONAL TORSION ANGLE RESTRAINT (DEGREES)
      PLANAR (OMEGA)                             2.6(3.0)
      STAGGERED                                 17.4(15.0)
      ORTHONORMAL                               18.1(20.0)
    ;
    4
    ; THE TWO CHAINS OF THE DIMERIC ENZYME HAS BEEN ASSIGNED THE
      THE CHAIN INDICATORS *A* AND *B*.
    ;
    #  - - - - data truncated for brevity - - - -
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__database_PDB_remark.id
    _item_description.description
;              A unique identifier for the PDB remark record.
;
    _item.name                  '_database_PDB_remark.id'
    _item.category_id             database_PDB_remark
    _item.mandatory_code          yes
    _item_type.code               int
     save_

save__database_PDB_remark.text
    _item_description.description
;              The full text of the PDB remark record.
;
    _item.name                  '_database_PDB_remark.text'
    _item.category_id             database_PDB_remark
    _item.mandatory_code          no
    _item_type.code               text
     save_

######################
## DATABASE_PDB_REV ##
######################

save_database_PDB_rev
    _category.description
;              Data items in the DATABASE_PDB_REV category record details
               about the history of the data block as archived by the Protein
               Data Bank (PDB).

               These data items are assigned by the PDB database managers and
               should only appear in a data block if they originate from that
               source.
;
    _category.id                  database_PDB_rev
    _category.mandatory_code      no
    _category_key.name          '_database_PDB_rev.num'
    loop_
    _category_group.id           'inclusive_group'
                                 'database_group'
                                 'pdb_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _database_PDB_rev.num
    _database_PDB_rev.author_name
    _database_PDB_rev.date
    _database_PDB_rev.date_original
    _database_PDB_rev.status
    _database_PDB_rev.mod_type
      1  'Fitzgerald, Paula M.D' 1991-10-15  1990-04-30
         'full release'  0
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__database_PDB_rev.author_name
    _item_description.description
;              The name of the person responsible for submitting this revision
               to the PDB.

               The family name(s) followed by a comma precedes the first
               name(s) or initial(s).
;
    _item.name                  '_database_PDB_rev.author_name'
    _item.category_id             database_PDB_rev
    _item.mandatory_code          no
    _item_type.code               line
    loop_
    _item_examples.case          'Bleary, Percival R.'
                                 "O'Neil, F.K."
                                 'Van den Bossche, G.'
                                 'Yang, D.-L.'
                                 'Simonov, Yu.A.'
     save_

save__database_PDB_rev.date
    _item_description.description
;              Date the PDB revision took place. Taken from the REVDAT record.
;
    _item.name                  '_database_PDB_rev.date'
    _item.category_id             database_PDB_rev
    _item.mandatory_code          no
    _item_type.code               yyyy-mm-dd
     save_

save__database_PDB_rev.date_original
    _item_description.description
;              Date the entry first entered the PDB database in the form
               yyyy-mm-dd. Taken from the PDB HEADER record.
;
    _item.name                  '_database_PDB_rev.date_original'
    _item.category_id             database_PDB_rev
    _item.mandatory_code          no
    _item_type.code               yyyy-mm-dd
    _item_examples.case          '1980-08-21'
     save_

save__database_PDB_rev.mod_type
    _item_description.description
;              Taken from the REVDAT record. Refer to the Protein Data Bank
               format description at
            http://www.rcsb.org/pdb/docs/format/pdbguide2.2/guide2.2_frame.html
               for details.
;
    _item.name                  '_database_PDB_rev.mod_type'
    _item.category_id             database_PDB_rev
    _item.mandatory_code          no
    _item_type.code               int
    loop_
    _item_enumeration.value
    _item_enumeration.detail      0  'initial entry'
                                  1  'all other types of modification'
                                  2  'modifications to CONECT records'
                                  3
;                                     modifications affecting the coordinates
                                      or their transforms (CRYST1, ORIGX, SCALE,
                                      MTRIX, TVECT, ATOM, HETATM, SIGATM
                                      records)
;
                                  4
;
                                   layer 1 to layer 2 revision which may affect
                                   all record types
;
                                  5 'data uniformity processing'

     save_

save__database_PDB_rev.num
    _item_description.description
;              The value of _database_PDB_rev.num must uniquely and
               sequentially identify a record in the DATABASE_PDB_REV list.

               Note that this item must be a number and that modification
               numbers are assigned in increasing numerical order.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_database_PDB_rev.num'             database_PDB_rev         yes
               '_database_PDB_rev_record.rev_num'  database_PDB_rev_record  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_database_PDB_rev_record.rev_num'  '_database_PDB_rev.num'
    _item_type.code               int
     save_

save__database_PDB_rev.replaced_by
    _item_description.description
;              The PDB code for a subsequent PDB entry that replaced the
               PDB file corresponding to this data block.
;
    _item.name                  '_database_PDB_rev.replaced_by'
    _item.category_id             database_PDB_rev
    _item.mandatory_code          no
    _item_type.code               line
     save_

save__database_PDB_rev.replaces
    _item_description.description
;              The PDB code for a previous PDB entry that was replaced by
               the PDB file corresponding to this data block.
;
    _item.name                  '_database_PDB_rev.replaces'
    _item.category_id             database_PDB_rev
    _item.mandatory_code          no
    _item_type.code               line
     save_

save__database_PDB_rev.status
    _item_description.description
;              The status of this revision.
;
    _item.name                  '_database_PDB_rev.status'
    _item.category_id             database_PDB_rev
    _item.mandatory_code          no
    _item_type.code               uline
    loop_
    _item_enumeration.value      'in preparation'
                                 'prerelease'
                                 'full release'
                                 'obsolete'
     save_

#############################
## DATABASE_PDB_REV_RECORD ##
#############################

save_database_PDB_rev_record
     _category.description
;              Data items in the DATABASE_PDB_REV_RECORD category record
               details about specific record types that were changed in a
               given revision of a PDB entry.

               These data items are assigned by the PDB database managers and
               should only appear in a data block if they originate from that
               source.
;
    _category.id                  database_PDB_rev_record
    _category.mandatory_code      no
    loop_
    _category_key.name          '_database_PDB_rev_record.rev_num'
                                '_database_PDB_rev_record.type'
    loop_
    _category_group.id           'inclusive_group'
                                 'database_group'
                                 'pdb_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - hypothetical example.
;
;
    loop_
    _database_PDB_rev_record.rev_num
    _database_PDB_rev_record.type
    _database_PDB_rev_record.details
      1  CONECT
    ; Error fix - incorrect connection between
      atoms 2312 and 2317
    ;
      2  MATRIX  'For consistency with 1995-08-04 style-guide'
      3  ORIGX   'Based on new data from author'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__database_PDB_rev_record.details
    _item_description.description
;              A description of special aspects of the revision of records in
               this PDB entry.
;
    _item.name                  '_database_PDB_rev_record.details'
    _item.category_id             database_PDB_rev_record
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'Based on new data from author'
                                 'For consistency with 1995-08-04 style-guide'
                                 'For consistency with structural class'
     save_

save__database_PDB_rev_record.rev_num
    _item_description.description
;              This data item is a pointer to _database_PDB_rev.num in the
               DATABASE_PDB_REV category.
;
    _item.name                  '_database_PDB_rev_record.rev_num'
    _item.mandatory_code          yes
     save_

save__database_PDB_rev_record.type
    _item_description.description
;              The types of records that were changed in this revision to a
               PDB entry.
;
    _item.name                  '_database_PDB_rev_record.type'
    _item.category_id             database_PDB_rev_record
    _item.mandatory_code          yes
    _item_type.code               line
    loop_
    _item_examples.case          'CRYST1'
                                 'SCALE'
                                 'MTRIX'
                                 'ATOM'
                                 'HETATM'
     save_

########################
## DATABASE_PDB_TVECT ##
########################

save_database_PDB_tvect
    _category.description
;              The DATABASE_PDB_TVECT category provides placeholders for
               the TVECT matrices and vectors used by the Protein Data
               Bank (PDB).

               These data items are included only for consistency with older
               PDB format files. They should appear in a data block only if
               the data block was created by reformatting a PDB format file.
;
    _category.id                  database_PDB_tvect
    _category.mandatory_code      no
    _category_key.name          '_database_PDB_tvect.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'database_group'
                                 'pdb_group'
     save_

save__database_PDB_tvect.details
    _item_description.description
;              A description of special aspects of this TVECT.
;
    _item.name                  '_database_PDB_tvect.details'
    _item.category_id             database_PDB_tvect
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__database_PDB_tvect.id
    _item_description.description
;              The value of _database_PDB_tvect.id must uniquely identify a
               record in the DATABASE_PDB_TVECT list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    _item.name                  '_database_PDB_tvect.id'
    _item.category_id             database_PDB_tvect
    _item.mandatory_code          yes
    _item_type.code               code
     save_

save__database_PDB_tvect.vector[1]
    _item_description.description
;              The [1] element of the PDB TVECT vector.
;
    _item.name                  '_database_PDB_tvect.vector[1]'
    _item.category_id             database_PDB_tvect
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

save__database_PDB_tvect.vector[2]
    _item_description.description
;              The [2] element of the PDB TVECT vector.
;
    _item.name                  '_database_PDB_tvect.vector[2]'
    _item.category_id             database_PDB_tvect
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

save__database_PDB_tvect.vector[3]
    _item_description.description
;              The [3] element of the PDB TVECT vector.
;
    _item.name                  '_database_PDB_tvect.vector[3]'
    _item.category_id             database_PDB_tvect
    _item.mandatory_code          no
    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

############
## DIFFRN ##
############

save_diffrn
    _category.description
;              Data items in the DIFFRN category record details about the
               diffraction data and their measurement.
;
    _category.id                  diffrn
    _category.mandatory_code      no
    _category_key.name          '_diffrn.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'diffrn_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _diffrn.id                            'Set1'
    _diffrn.ambient_temp                   293(3)
    _diffrn.ambient_environment
    ; Mother liquor from the reservoir of the vapor diffusion
      experiment, mounted in room air
    ;
    _diffrn.crystal_support
    ; 0.7 mm glass capillary, sealed with dental wax
    ;
    _diffrn.crystal_treatment
    ; Equilibrated in rotating anode radiation enclosure for
      18 hours prior to beginning of data collection
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - based on data set TOZ of Willis, Beckwith & Tozer [(1991).
                Acta Cryst. C47, 2276-2277].
;
;
    _diffrn.id                            'd1'
    _diffrn.details
    ; \q scan width (1.0 + 0.14tan\q)\%, \q scan rate 1.2\% per
       min. Background counts for 5 sec on each side every scan.
    ;

    _diffrn.ambient_temp                293
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__diffrn.ambient_environment
    _item_description.description
;              The gas or liquid surrounding the sample, if not air.
;
    _item.name                  '_diffrn.ambient_environment'
    _item.category_id             diffrn
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_ambient_environment'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

#save__diffrn.ambient_pressure
#    _item_description.description
#;              The mean pressure in kilopascals at which the intensities were
#               measured.
#;
#    _item.name                  '_diffrn.ambient_pressure'
#    _item.category_id             diffrn
#    _item.mandatory_code          no
#    _item_aliases.alias_name    '_diffrn_ambient_pressure'
#    _item_aliases.dictionary      cif_core.dic
#    _item_aliases.version         2.0.1
#    loop_
#    _item_range.maximum
#    _item_range.minimum            .    0.0
#                                  0.0   0.0
#    _item_related.related_name  '_diffrn.ambient_pressure_esd'
#    _item_related.function_code   associated_esd
#    _item_type.code               float
#    _item_type_conditions.code    esd
#    _item_units.code              kilopascals
#     save_
#
#save__diffrn.ambient_pressure_esd
#    _item_description.description
#;              The standard uncertainty (estimated standard deviation)
#               of _diffrn.ambient_pressure.
#;
#    _item.name                  '_diffrn.ambient_pressure_esd'
#    _item.category_id             diffrn
#    _item.mandatory_code          no
#    _item_default.value           0.0
#    _item_related.related_name  '_diffrn.ambient_pressure'
#    _item_related.function_code   associated_value
#    _item_type.code               float
#    _item_units.code              kilopascals
#     save_

save__diffrn.ambient_temp
    _item_description.description
;              The mean temperature in kelvins at which the intensities were
               measured.
;
    _item.name                  '_diffrn.ambient_temp'
    _item.category_id             diffrn
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_ambient_temperature'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_diffrn.ambient_temp_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              kelvins
     save_

save__diffrn.ambient_temp_details
    _item_description.description
;              A description of special aspects of temperature control during
               data collection.
;
    _item.name                  '_diffrn.ambient_temp_details'
    _item.category_id             diffrn
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__diffrn.ambient_temp_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _diffrn.ambient_temp.
;
    _item.name                  '_diffrn.ambient_temp_esd'
    _item.category_id             diffrn
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_diffrn.ambient_temp'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              kelvins
     save_

save__diffrn.crystal_id
    _item_description.description
;              This data item is a pointer to _exptl_crystal.id in the
               EXPTL_CRYSTAL category.
;
    _item.name                  '_diffrn.crystal_id'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_diffrn_refln_crystal_id'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
     save_

save__diffrn.crystal_support
    _item_description.description
;              The physical device used to support the crystal during data
               collection.
;
    _item.name                  '_diffrn.crystal_support'
    _item.category_id             diffrn
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'glass capillary'
                                 'quartz capillary'
                                 'fiber'
                                 'metal loop'
     save_

save__diffrn.crystal_treatment
    _item_description.description
;              Remarks about how the crystal was treated prior to intensity
               measurement. Particularly relevant when intensities were
               measured at low temperature.
;
    _item.name                  '_diffrn.crystal_treatment'
    _item.category_id             diffrn
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_crystal_treatment'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          'equilibrated in hutch for 24 hours'
                                 'flash frozen in liquid nitrogen'
                                 'slow cooled with direct air stream'
     save_

save__diffrn.details
    _item_description.description
;              Special details of the diffraction measurement process. Should
               include information about source instability, crystal motion,
               degradation and so on.
;
    _item.name                  '_diffrn.details'
    _item.category_id             diffrn
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_special_details'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__diffrn.id
    _item_description.description
;              This data item uniquely identifies a set of diffraction
               data.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
           '_diffrn.id'                             diffrn                  yes
           '_diffrn_detector.diffrn_id'             diffrn_detector         yes
           '_diffrn_measurement.diffrn_id'          diffrn_measurement      yes
           '_diffrn_orient_matrix.diffrn_id'        diffrn_orient_matrix    yes
           '_diffrn_orient_refln.diffrn_id'         diffrn_orient_refln     yes
           '_diffrn_radiation.diffrn_id'            diffrn_radiation        yes
           '_diffrn_refln.diffrn_id'                diffrn_refln            yes
           '_diffrn_reflns.diffrn_id'               diffrn_reflns           yes
           '_diffrn_source.diffrn_id'               diffrn_source           yes
           '_diffrn_standard_refln.diffrn_id'       diffrn_standard_refln   yes
           '_diffrn_standards.diffrn_id'            diffrn_standards        yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_diffrn_detector.diffrn_id'          '_diffrn.id'
               '_diffrn_measurement.diffrn_id'       '_diffrn.id'
               '_diffrn_orient_matrix.diffrn_id'     '_diffrn.id'
               '_diffrn_orient_refln.diffrn_id'      '_diffrn.id'
               '_diffrn_radiation.diffrn_id'         '_diffrn.id'
               '_diffrn_refln.diffrn_id'             '_diffrn.id'
               '_diffrn_reflns.diffrn_id'            '_diffrn.id'
               '_diffrn_source.diffrn_id'            '_diffrn.id'
               '_diffrn_standard_refln.diffrn_id'    '_diffrn.id'
               '_diffrn_standards.diffrn_id'         '_diffrn.id'

    _item_type.code               code
     save_

#######################
## DIFFRN_ATTENUATOR ##
#######################

save_diffrn_attenuator
    _category.description
;              Data items in the DIFFRN_ATTENUATOR category record details
               about the diffraction attenuator scales employed.
;
    _category.id                  diffrn_attenuator
    _category.mandatory_code      no
    _category_key.name          '_diffrn_attenuator.code'
    loop_
    _category_group.id           'inclusive_group'
                                 'diffrn_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - based on data set TOZ of Willis, Beckwith & Tozer
                [Acta Cryst. (1991), C47, 2276-2277].
;
;
    _diffrn_attenuator.code        1
    _diffrn_attenuator.scale       16.976
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__diffrn_attenuator.code
    _item_description.description
;              A code associated with a particular attenuator setting. This
               code is referenced by the _diffrn_refln.attenuator_code which is
               stored with the diffraction data. See _diffrn_attenuator.scale.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
            '_diffrn_attenuator.code'  diffrn_attenuator   yes
    _item_aliases.alias_name    '_diffrn_attenuator_code'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_linked.child_name
    _item_linked.parent_name
                '_diffrn_refln.attenuator_code' '_diffrn_attenuator.code'
    _item_type.code               code
     save_

save__diffrn_attenuator.scale
    _item_description.description
;              The scale factor applied when an intensity measurement is
               reduced by an attenuator identified by _diffrn_attenuator.code.
               The measured intensity must be multiplied by this scale to
                convert it to the same scale as unattenuated intensities.
;
    _item.name                  '_diffrn_attenuator.scale'
    _item.category_id             diffrn_attenuator
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_attenuator_scale'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    1.0
                                  1.0   1.0
    _item_type.code               float
     save_

#####################
## DIFFRN_DETECTOR ##
#####################

save_diffrn_detector
    _category.description
;              Data items in the DIFFRN_DETECTOR category describe the
               detector used to measure the scattered radiation, including
               any analyser and post-sample collimation.
;
    _category.id                  diffrn_detector
    _category.mandatory_code      no
    _category_key.name          '_diffrn_detector.diffrn_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'diffrn_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _diffrn_detector.diffrn_id             'd1'
    _diffrn_detector.detector              'multiwire'
    _diffrn_detector.type                  'Siemens'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__diffrn_detector.details
    _item_description.description
;              A description of special aspects of the radiation detector.
;
    _item.name                  '_diffrn_detector.details'
    _item.category_id             diffrn_detector
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_detector_details'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__diffrn_detector.detector
    _item_description.description
;              The general class of the radiation detector.
;
    _item.name                  '_diffrn_detector.detector'
    _item.category_id             diffrn_detector
    _item.mandatory_code          no
    loop_
    _item_aliases.alias_name
    _item_aliases.dictionary
    _item_aliases.version       '_diffrn_radiation_detector'
                                  cifdic.c91
                                  1.0
                                '_diffrn_detector'
                                  cif_core.dic
                                  2.0
    _item_type.code               text
    loop_
    _item_examples.case          'photographic film'
                                 'scintillation counter'
                                 'CCD plate'
                                 'BF~3~ counter'
     save_

save__diffrn_detector.diffrn_id
    _item_description.description
;              This data item is a pointer to _diffrn.id in the DIFFRN
               category.
;
    _item.name                  '_diffrn_detector.diffrn_id'
    _item.mandatory_code          yes
     save_

#save__diffrn_detector.dtime
#    _item_description.description
#;              The deadtime in microseconds of the detectors used to measure
#               the diffraction intensities.
#;
#    _item.name                  '_diffrn_detector.dtime'
#    _item.category_id             diffrn_detector
#    _item.mandatory_code          no
#    loop_
#    _item_aliases.alias_name
#    _item_aliases.dictionary
#    _item_aliases.version       '_diffrn_radiation_detector_dtime'
#                                  cifdic.c91
#                                  1.0
#                                '_diffrn_detector_dtime'
#                                  cif_core.dic
#                                  2.0
#    loop_
#    _item_range.maximum
#    _item_range.minimum            .    0.0
#                                  0.0   0.0
#    _item_type.code               float
#    _item_units.code              microseconds
#     save_

save__diffrn_detector.type
    _item_description.description
;              The make, model or name of the detector device used.
;
    _item.name                  '_diffrn_detector.type'
    _item.category_id             diffrn_detector
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_detector_type'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

########################
## DIFFRN_MEASUREMENT ##
########################

save_diffrn_measurement
    _category.description
;              Data items in the DIFFRN_MEASUREMENT category record details
               about the device used to orient and/or position the crystal
               during data measurement and the manner in which the diffraction
               data were measured.
;
    _category.id                  diffrn_measurement
    _category.mandatory_code      no
    _category_key.name          '_diffrn_measurement.diffrn_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'diffrn_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _diffrn_measurement.diffrn_id          'd1'
    _diffrn_measurement.device             '3-circle camera'
    _diffrn_measurement.device_type        'Supper model x'
    _diffrn_measurement.device_details     'none'
    _diffrn_measurement.method             'omega scan'
    _diffrn_measurement.details
    ; 440 frames, 0.20 degrees, 150 sec, detector distance 12 cm,
      detector angle 22.5 degrees
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - based on data set TOZ of Willis, Beckwith & Tozer
                [Acta Cryst. (1991), C47, 2276-2277].
;
;
    _diffrn_measurement.diffrn_id       's1'
    _diffrn_measurement.device_type
                              'Philips PW1100/20 diffractometer'
    _diffrn_measurement.method          \q/2\q
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__diffrn_measurement.diffrn_id
    _item_description.description
;              This data item is a pointer to _diffrn.id in the DIFFRN
               category.
;
    _item.name                  '_diffrn_measurement.diffrn_id'
    _item.mandatory_code          yes
     save_

save__diffrn_measurement.details
    _item_description.description
;              A description of special aspects of the intensity measurement.
;
    _item.name                  '_diffrn_measurement.details'
    _item.category_id             diffrn_measurement
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_measurement_details'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case
;                                 440 frames, 0.20 degrees, 150 sec, detector
                                  distance 12 cm, detector angle 22.5 degrees
;
     save_

save__diffrn_measurement.device
    _item_description.description
;              The general class of  goniometer or device used to support and
               orient the specimen.
;
    _item.name                  '_diffrn_measurement.device'
    _item.category_id             diffrn_measurement
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_measurement_device'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          '3-circle camera'
                                 '4-circle camera'
                                 'kappa-geometry camera'
                                 'oscillation camera'
                                 'precession camera'
     save_

save__diffrn_measurement.device_details
    _item_description.description
;              A description of special aspects of the device used to measure
               the diffraction intensities.
;
    _item.name                  '_diffrn_measurement.device_details'
    _item.category_id             diffrn_measurement
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_measurement_device_details'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case
;                                 commercial goniometer modified locally to
                                 allow for 90\% \t arc
;
     save_

save__diffrn_measurement.device_type
    _item_description.description
;              The make, model or name of the measurement device
               (goniometer) used.
;
    _item.name                  '_diffrn_measurement.device_type'
    _item.category_id             diffrn_measurement
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_measurement_device_type'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          'Supper model q'
                                 'Huber model r'
                                 'Enraf-Nonius model s'
                                 'homemade'
     save_

save__diffrn_measurement.method
    _item_description.description
;              Method used to measure intensities.
;
    _item.name                  '_diffrn_measurement.method'
    _item.category_id             diffrn_measurement
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_measurement_method'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'profile data from theta/2theta scans'
     save_

save__diffrn_measurement.specimen_support
    _item_description.description
;              The physical device used to support the crystal during data
               collection.
;
    _item.name                  '_diffrn_measurement.specimen_support'
    _item.category_id             diffrn_measurement
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_measurement_specimen_support'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          'glass capillary'
                                 'quartz capillary'
                                 'fiber'
                                 'metal loop'
     save_

##########################
## DIFFRN_ORIENT_MATRIX ##
##########################

save_diffrn_orient_matrix
    _category.description
;              Data items in the DIFFRN_ORIENT_MATRIX category record details
               about the orientation matrix used in the measurement of the
               diffraction data.
;
    _category.id                  diffrn_orient_matrix
    _category.mandatory_code      no
    _category_key.name          '_diffrn_orient_matrix.diffrn_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'diffrn_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on CAD-4 diffractometer data obtained for
                Yb(S-C5H4N)2(THF)4.
;
;
    _diffrn_orient_matrix.diffrn_id    set1
    _diffrn_orient_matrix.type
    ; reciprocal axis matrix, multiplies hkl vector to generate
      diffractometer xyz vector and diffractometer angles
    ;
    _diffrn_orient_matrix.UB[1][1]     -0.071479
    _diffrn_orient_matrix.UB[1][2]      0.020208
    _diffrn_orient_matrix.UB[1][3]      0.039076
    _diffrn_orient_matrix.UB[2][1]      0.035372
    _diffrn_orient_matrix.UB[2][2]      0.056209
    _diffrn_orient_matrix.UB[2][3]      0.078324
    _diffrn_orient_matrix.UB[3][1]     -0.007470
    _diffrn_orient_matrix.UB[3][2]      0.067854
    _diffrn_orient_matrix.UB[3][3]     -0.017832
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__diffrn_orient_matrix.diffrn_id
    _item_description.description
;              This data item is a pointer to _diffrn.id in the DIFFRN
               category.
;
    _item.name                  '_diffrn_orient_matrix.diffrn_id'
    _item.mandatory_code          yes
     save_

save__diffrn_orient_matrix.type
    _item_description.description
;              A description of the orientation matrix type and how it should
               be applied to define the orientation of the crystal precisely
               with respect to the diffractometer axes.
;
    _item.name                  '_diffrn_orient_matrix.type'
    _item.category_id             diffrn_orient_matrix
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_matrix_type'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__diffrn_orient_matrix.UB[1][1]
    _item_description.description
;              The [1][1] element of the 3x3 matrix that defines the dimensions
               of the reciprocal cell and its orientation with respect to the
               local diffractometer axes. See also _diffrn_orient_matrix.type.
;
    _item.name                  '_diffrn_orient_matrix.UB[1][1]'
    _item.category_id             diffrn_orient_matrix
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_matrix_UB_11'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
     save_

save__diffrn_orient_matrix.UB[1][2]
    _item_description.description
;              The [1][2] element of the 3x3 matrix that defines the dimensions
               of the reciprocal cell and its orientation with respect to the
               local diffractometer axes. See also _diffrn_orient_matrix.type.
;
    _item.name                  '_diffrn_orient_matrix.UB[1][2]'
    _item.category_id             diffrn_orient_matrix
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_matrix_UB_12'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__diffrn_orient_matrix.UB[1][3]
    _item_description.description
;              The [1][3] element of the 3x3 matrix that defines the dimensions
               of the reciprocal cell and its orientation with respect to the
               local diffractometer axes. See also _diffrn_orient_matrix.type.
;
    _item.name                  '_diffrn_orient_matrix.UB[1][3]'
    _item.category_id             diffrn_orient_matrix
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_matrix_UB_13'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__diffrn_orient_matrix.UB[2][1]
    _item_description.description
;              The [2][1] element of the 3x3 matrix that defines the dimensions
               of the reciprocal cell and its orientation with respect to the
               local diffractometer axes. See also _diffrn_orient_matrix.type.
;
    _item.name                  '_diffrn_orient_matrix.UB[2][1]'
    _item.category_id             diffrn_orient_matrix
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_matrix_UB_21'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__diffrn_orient_matrix.UB[2][2]
    _item_description.description
;              The [2][2] element of the 3x3 matrix that defines the dimensions
               of the reciprocal cell and its orientation with respect to the
               local diffractometer axes. See also _diffrn_orient_matrix.type.
;
    _item.name                  '_diffrn_orient_matrix.UB[2][2]'
    _item.category_id             diffrn_orient_matrix
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_matrix_UB_22'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__diffrn_orient_matrix.UB[2][3]
    _item_description.description
;              The [2][3] element of the 3x3 matrix that defines the dimensions
               of the reciprocal cell and its orientation with respect to the
               local diffractometer axes. See also _diffrn_orient_matrix.type.
;
    _item.name                  '_diffrn_orient_matrix.UB[2][3]'
    _item.category_id             diffrn_orient_matrix
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_matrix_UB_23'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__diffrn_orient_matrix.UB[3][1]
    _item_description.description
;              The [3][1] element of the 3x3 matrix that defines the dimensions
               of the reciprocal cell and its orientation with respect to the
               local diffractometer axes. See also _diffrn_orient_matrix.type.
;
    _item.name                  '_diffrn_orient_matrix.UB[3][1]'
    _item.category_id             diffrn_orient_matrix
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_matrix_UB_31'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__diffrn_orient_matrix.UB[3][2]
    _item_description.description
;              The [3][2] element of the 3x3 matrix that defines the dimensions
               of the reciprocal cell and its orientation with respect to the
               local diffractometer axes. See also _diffrn_orient_matrix.type.
;
    _item.name                  '_diffrn_orient_matrix.UB[3][2]'
    _item.category_id             diffrn_orient_matrix
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_matrix_UB_32'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__diffrn_orient_matrix.UB[3][3]
    _item_description.description
;              The [3][3] element of the 3x3 matrix that defines the dimensions
               of the reciprocal cell and its orientation with respect to the
               local  diffractometer axes. See also _diffrn_orient_matrix.type.
;
    _item.name                  '_diffrn_orient_matrix.UB[3][3]'
    _item.category_id             diffrn_orient_matrix
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_matrix_UB_33'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

#########################
## DIFFRN_ORIENT_REFLN ##
#########################

save_diffrn_orient_refln
    _category.description
;              Data items in the DIFFRN_ORIENT_REFLN category record details
               about the reflections that define the orientation matrix used in
               the measurement of the diffraction intensities.
;
    _category.id                  diffrn_orient_refln
    _category.mandatory_code      no
    loop_
    _category_key.name          '_diffrn_orient_refln.diffrn_id'
                                '_diffrn_orient_refln.index_h'
                                '_diffrn_orient_refln.index_k'
                                '_diffrn_orient_refln.index_l'
    loop_
    _category_group.id           'inclusive_group'
                                 'diffrn_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on CAD-4 diffractometer data obtained for
                Yb(S-C5H4N)2(THF)4.
;
;
    _diffrn_orient_refln.diffrn_id     myset1
    _diffrn_orient_refln.index_h       2
    _diffrn_orient_refln.index_k       0
    _diffrn_orient_refln.index_l       2
    _diffrn_orient_refln.angle_chi     -28.45
    _diffrn_orient_refln.angle_kappa   -11.32
    _diffrn_orient_refln.angle_omega   5.33
    _diffrn_orient_refln.angle_phi     101.78
    _diffrn_orient_refln.angle_psi     0.00
    _diffrn_orient_refln.angle_theta   10.66
    # ... data abbreviated  ...
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__diffrn_orient_refln.angle_chi
    _item_description.description
;              Diffractometer angle chi of a reflection used to
               define the orientation matrix in degrees. See
               _diffrn_orient_matrix.UB[][] and the Miller indices
               in the DIFFRN_ORIENT_REFLN category.
;
    _item.name                  '_diffrn_orient_refln.angle_chi'
    _item.category_id             diffrn_orient_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_refln_angle_chi'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_diffrn_orient_refln.angle_kappa'
                                '_diffrn_orient_refln.angle_omega'
                                '_diffrn_orient_refln.angle_phi'
                                '_diffrn_orient_refln.angle_psi'
                                '_diffrn_orient_refln.angle_theta'
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_orient_refln.angle_kappa
    _item_description.description
;              Diffractometer angle kappa of a reflection used to
               define the orientation matrix in degrees. See
               _diffrn_orient_matrix.UB[][] and the Miller indices
               in the DIFFRN_ORIENT_REFLN category.
;
    _item.name                  '_diffrn_orient_refln.angle_kappa'
    _item.category_id             diffrn_orient_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_refln_angle_kappa'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_diffrn_orient_refln.angle_chi'
                                '_diffrn_orient_refln.angle_omega'
                                '_diffrn_orient_refln.angle_phi'
                                '_diffrn_orient_refln.angle_psi'
                                '_diffrn_orient_refln.angle_theta'
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_orient_refln.angle_omega
    _item_description.description
;              Diffractometer angle omega of a reflection used to
               define the orientation matrix in degrees. See
               _diffrn_orient_matrix.UB[][] and the Miller indices in
               the DIFFRN_ORIENT_REFLN category.
;
    _item.name                  '_diffrn_orient_refln.angle_omega'
    _item.category_id             diffrn_orient_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_refln_angle_omega'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_diffrn_orient_refln.angle_chi'
                                '_diffrn_orient_refln.angle_kappa'
                                '_diffrn_orient_refln.angle_phi'
                                '_diffrn_orient_refln.angle_psi'
                                '_diffrn_orient_refln.angle_theta'
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_orient_refln.angle_phi
    _item_description.description
;              Diffractometer angle phi of a reflection used to
               define the orientation matrix in degrees. See
               _diffrn_orient_matrix.UB[][] and the Miller indices
               in the DIFFRN_ORIENT_REFLN category.
;
    _item.name                  '_diffrn_orient_refln.angle_phi'
    _item.category_id             diffrn_orient_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_refln_angle_phi'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_diffrn_orient_refln.angle_chi'
                                '_diffrn_orient_refln.angle_kappa'
                                '_diffrn_orient_refln.angle_omega'
                                '_diffrn_orient_refln.angle_psi'
                                '_diffrn_orient_refln.angle_theta'
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_orient_refln.angle_psi
    _item_description.description
;              Diffractometer angle psi of a reflection used to
               define the orientation matrix in degrees. See
               _diffrn_orient_matrix.UB[][] and the Miller indices
               in the DIFFRN_ORIENT_REFLN category.
;
    _item.name                  '_diffrn_orient_refln.angle_psi'
    _item.category_id             diffrn_orient_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_refln_angle_psi'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_diffrn_orient_refln.angle_chi'
                                '_diffrn_orient_refln.angle_kappa'
                                '_diffrn_orient_refln.angle_omega'
                                '_diffrn_orient_refln.angle_phi'
                                '_diffrn_orient_refln.angle_theta'
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_orient_refln.angle_theta
    _item_description.description
;              Diffractometer angle theta of a reflection used to
               define the orientation matrix in degrees. See
               _diffrn_orient_matrix.UB[][] and the Miller indices
               in the DIFFRN_ORIENT_REFLN category.
;
    _item.name                  '_diffrn_orient_refln.angle_theta'
    _item.category_id             diffrn_orient_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_orient_refln_angle_theta'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_diffrn_orient_refln.angle_chi'
                                '_diffrn_orient_refln.angle_kappa'
                                '_diffrn_orient_refln.angle_omega'
                                '_diffrn_orient_refln.angle_phi'
                                '_diffrn_orient_refln.angle_psi'
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_orient_refln.diffrn_id
    _item_description.description
;              This data item is a pointer to _diffrn.id in the DIFFRN
               category.
;
    _item.name                  '_diffrn_orient_refln.diffrn_id'
    _item.mandatory_code          yes
     save_

save__diffrn_orient_refln.index_h
    _item_description.description
;              Miller index h of a reflection used to define the orientation
               matrix.
;
    _item.name                  '_diffrn_orient_refln.index_h'
    _item.category_id             diffrn_orient_refln
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_diffrn_orient_refln_index_h'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_diffrn_orient_refln.index_k'
                                '_diffrn_orient_refln.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__diffrn_orient_refln.index_k
    _item_description.description
;              Miller index k of a reflection used to define the orientation
               matrix.
;
    _item.name                  '_diffrn_orient_refln.index_k'
    _item.category_id             diffrn_orient_refln
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_diffrn_orient_refln_index_k'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_diffrn_orient_refln.index_h'
                                '_diffrn_orient_refln.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__diffrn_orient_refln.index_l
    _item_description.description
;              Miller index l of a reflection used to define the orientation
               matrix.
;
    _item.name                  '_diffrn_orient_refln.index_l'
    _item.category_id             diffrn_orient_refln
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_diffrn_orient_refln_index_l'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_diffrn_orient_refln.index_h'
                                '_diffrn_orient_refln.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

######################
## DIFFRN_RADIATION ##
######################

save_diffrn_radiation
    _category.description
;              Data items in the DIFFRN_RADIATION category describe
               the radiation used in measuring the diffraction intensities,
               its collimation and monochromatization before the sample.

               Post-sample treatment of the beam is described by data
               items in the DIFFRN_DETECTOR category.

;
    _category.id                  diffrn_radiation
    _category.mandatory_code      no
    _category_key.name          '_diffrn_radiation.diffrn_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'diffrn_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _diffrn_radiation.diffrn_id          'set1'

    _diffrn_radiation.collimation        '0.3 mm double pinhole'
    _diffrn_radiation.monochromator      'graphite'
    _diffrn_radiation.type               'Cu K\a'
    _diffrn_radiation.wavelength_id       1
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - based on data set TOZ of Willis, Beckwith & Tozer
                [Acta Cryst. (1991), C47, 2276-2277].
;
;
    _diffrn_radiation.wavelength_id    1
    _diffrn_radiation.type             'Cu K\a'
    _diffrn_radiation.monochromator    'graphite'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__diffrn_radiation.collimation
    _item_description.description
;              The collimation or focusing applied to the radiation.
;
    _item.name                  '_diffrn_radiation.collimation'
    _item.category_id             diffrn_radiation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_radiation_collimation'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          '0.3 mm double-pinhole'
                                 '0.5 mm'
                                 'focusing mirrors'
     save_

save__diffrn_radiation.diffrn_id
    _item_description.description
;              This data item is a pointer to _diffrn.id in the DIFFRN
               category.
;
    _item.name                  '_diffrn_radiation.diffrn_id'
    _item.mandatory_code          yes
     save_

save__diffrn_radiation.filter_edge
    _item_description.description
;              Absorption edge in angstroms of the radiation filter used.
;
    _item.name                  '_diffrn_radiation.filter_edge'
    _item.category_id             diffrn_radiation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_radiation_filter_edge'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__diffrn_radiation.inhomogeneity
    _item_description.description
;              Half-width in millimetres of the incident beam in the
               direction perpendicular to the diffraction plane.
;
    _item.name                  '_diffrn_radiation.inhomogeneity'
    _item.category_id             diffrn_radiation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_radiation_inhomogeneity'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              millimetres
     save_

save__diffrn_radiation.monochromator
    _item_description.description
;              The method used to obtain monochromatic radiation. If a mono-
               chromator crystal is used, the material and the indices of the
               Bragg reflection are specified.
;
    _item.name                  '_diffrn_radiation.monochromator'
    _item.category_id             diffrn_radiation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_radiation_monochromator'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          'Zr filter'
                                 'Ge 220'
                                 'none'
                                 'equatorial mounted graphite'
     save_

save__diffrn_radiation.polarisn_norm
    _item_description.description
;              The angle in degrees, as viewed from the specimen, between the
               perpendicular component of the polarization and the diffraction
               plane. See _diffrn_radiation.polarisn_ratio.
;
    _item.name                  '_diffrn_radiation.polarisn_norm'
    _item.category_id             diffrn_radiation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_radiation_polarisn_norm'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_radiation.polarisn_ratio
    _item_description.description
;              Polarization ratio of the diffraction beam incident on the
               crystal. This is the ratio of the perpendicularly polarized
               to the parallel-polarized component of the radiation. The
               perpendicular component forms an angle of
               _diffrn_radiation.polarisn_norm to the normal to the
               diffraction plane of the sample (i.e. the plane containing
               the incident and reflected beams).
;
    _item.name                  '_diffrn_radiation.polarisn_ratio'
    _item.category_id             diffrn_radiation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_radiation_polarisn_ratio'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__diffrn_radiation.probe
    _item_description.description
;             The nature of the radiation used (i.e. the name of the
              subatomic particle or the region of the electromagnetic
              spectrum). It is strongly recommended that this information
              is given, so that the probe radiation can be simply determined.
;
    _item.name                  '_diffrn_radiation.probe'
    _item.category_id             diffrn_radiation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_radiation_probe'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_enumeration.value      'x-ray'
                                 'neutron'
                                 'electron'
                                 'gamma'
     save_

save__diffrn_radiation.type
    _item_description.description
;              The nature of the radiation. This is typically a description
               of the X-ray wavelength in Siegbahn notation.
;
    _item.name                  '_diffrn_radiation.type'
    _item.category_id             diffrn_radiation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_radiation_type'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          'CuK\a'
                                 'Cu K\a~1~'
                                 'Cu K-L~2,3~'
                                 'white-beam'

     save_

save__diffrn_radiation.xray_symbol
    _item_description.description
;              The IUPAC symbol for the X-ray wavelength for the probe
               radiation.
;
    _item.name                  '_diffrn_radiation.xray_symbol'
    _item.category_id             diffrn_radiation
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_radiation_xray_symbol'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_enumeration.value
    _item_enumeration.detail     'K-L~3~'
                                 'K\a~1~ in older Siegbahn notation'
                                 'K-L~2~'
                                 'K\a~2~ in older Siegbahn notation'
                                 'K-M~3~'
                                 'K\b~1~ in older Siegbahn notation'
                                 'K-L~2,3~'
                                 'use where K-L~3~ and K-L~2~ are not resolved'
     save_

save__diffrn_radiation.wavelength_id
    _item_description.description
;              This data item is a pointer to _diffrn_radiation_wavelength.id
               in the DIFFRN_RADIATION_WAVELENGTH category.
;
    _item.name                  '_diffrn_radiation.wavelength_id'
    _item.mandatory_code          yes
     save_

#################################
## DIFFRN_RADIATION_WAVELENGTH ##
#################################

save_diffrn_radiation_wavelength
    _category.description
;              Data items in the DIFFRN_RADIATION_WAVELENGTH category
               describe the wavelength of the radiation used to measure the
               diffraction intensities. Items may be looped to identify
               and assign weights to distinct components of a
               polychromatic beam.
;
    _category.id                  diffrn_radiation_wavelength
    _category.mandatory_code      no
    _category_key.name          '_diffrn_radiation_wavelength.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'diffrn_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _diffrn_radiation_wavelength.id                    1
    _diffrn_radiation_wavelength.wavelength            1.54
    _diffrn_radiation_wavelength.wt                    1.0
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__diffrn_radiation_wavelength.id
    _item_description.description
;              The code identifying each value of
               _diffrn_radiation_wavelength.wavelength.
               Items in the DIFFRN_RADIATION_WAVELENGTH category are looped
               when multiple wavelengths are used.

               This code is used to link with the DIFFRN_REFLN category.
               The _diffrn_refln.wavelength_id codes must match one of
               the codes defined in this category.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
          '_diffrn_radiation_wavelength.id'  diffrn_radiation_wavelength  yes
          '_diffrn_radiation.wavelength_id'  diffrn_radiation             yes
          '_diffrn_refln.wavelength_id'      diffrn_refln                 yes
          '_refln.wavelength_id'             refln                        yes
    _item_aliases.alias_name    '_diffrn_radiation_wavelength_id'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_linked.child_name
    _item_linked.parent_name
           '_diffrn_radiation.wavelength_id'  '_diffrn_radiation_wavelength.id'
           '_diffrn_refln.wavelength_id'      '_diffrn_radiation_wavelength.id'
           '_refln.wavelength_id'             '_diffrn_radiation_wavelength.id'
    _item_type.code               code
    loop_
    _item_examples.case          'x1'
                                 'x2'
                                 'neut'
     save_

save__diffrn_radiation_wavelength.wavelength
    _item_description.description
;              The radiation wavelength in angstroms.
;
    _item.name                  '_diffrn_radiation_wavelength.wavelength'
    _item.category_id             diffrn_radiation_wavelength
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_diffrn_radiation_wavelength'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__diffrn_radiation_wavelength.wt
    _item_description.description
;              The relative weight of a wavelength identified by the code
               _diffrn_radiation_wavelength.id in the list of wavelengths.
;
    _item.name                  '_diffrn_radiation_wavelength.wt'
    _item.category_id             diffrn_radiation_wavelength
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_radiation_wavelength_wt'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1.0
    loop_
    _item_range.maximum
    _item_range.minimum           1.0   1.0
                                  1.0   0.0
                                  0.0   0.0
    _item_type.code               float
     save_

##################
## DIFFRN_REFLN ##
##################

save_diffrn_refln
    _category.description
;              Data items in the DIFFRN_REFLN category record details about
               the intensities in the diffraction data set
               identified by _diffrn_refln.diffrn_id.

               The DIFFRN_REFLN data items refer to individual intensity
               measurements and must be included in looped lists.

               The DIFFRN_REFLNS data items specify the parameters that apply
               to all intensity  measurements in the particular diffraction
               data set identified by _diffrn_reflns.diffrn_id.
;
    _category.id                  diffrn_refln
    _category.mandatory_code      no
    loop_
    _category_key.name          '_diffrn_refln.diffrn_id'
                                '_diffrn_refln.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'diffrn_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on CAD-4 diffractometer data obtained for
                Yb(S-C5H4N)2(THF)4  for data set 'set1' reflection 1102.
;
;
    _diffrn_refln.diffrn_id            set1
    _diffrn_refln.id                   1102
    _diffrn_refln.wavelength_id        Cu1fixed
    _diffrn_refln.angle_chi            32.21
    _diffrn_refln.angle_kappa          20.12
    _diffrn_refln.angle_omega          11.54
    _diffrn_refln.angle_phi            176.02
    _diffrn_refln.angle_psi            0.00
    _diffrn_refln.angle_theta          23.08
    _diffrn_refln.attenuator_code      'Ni.005'
    _diffrn_refln.counts_bg_1          22
    _diffrn_refln.counts_bg_2          25
    _diffrn_refln.counts_net           3450
    _diffrn_refln.counts_peak          321
    _diffrn_refln.counts_total         3499
    _diffrn_refln.detect_slit_horiz    0.04
    _diffrn_refln.detect_slit_vert     0.02
    _diffrn_refln.elapsed_time         1.00
    _diffrn_refln.index_h              4
    _diffrn_refln.index_k              0
    _diffrn_refln.index_l              2
    _diffrn_refln.intensity_net        202.56
    _diffrn_refln.intensity_sigma      2.18
    _diffrn_refln.scale_group_code     A24
    _diffrn_refln.scan_mode            om
    _diffrn_refln.scan_mode_backgd     mo
    _diffrn_refln.scan_rate            1.2
    _diffrn_refln.scan_time_backgd     900.00
    _diffrn_refln.scan_width           1.0
    _diffrn_refln.sint_over_lambda     0.25426
    _diffrn_refln.standard_code        1
    _diffrn_refln.wavelength           1.54184
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__diffrn_refln.angle_chi
    _item_description.description
;              The diffractometer angle chi of a reflection in degrees. This
               angle corresponds to the specified orientation matrix
               and the original measured cell before any subsequent cell
               transformations.
;
    _item.name                  '_diffrn_refln.angle_chi'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_angle_chi'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_refln.angle_kappa
    _item_description.description
;              The diffractometer angle kappa of a reflection in degrees. This
               angle corresponds to the specified orientation matrix
               and the original measured cell before any subsequent cell
               transformations.
;
    _item.name                  '_diffrn_refln.angle_kappa'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_angle_kappa'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_refln.angle_omega
    _item_description.description
;              The diffractometer angle omega of a reflection in degrees. This
               angle corresponds to the specified orientation matrix
               and the original measured cell before any subsequent cell
               transformations.
;
    _item.name                  '_diffrn_refln.angle_omega'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_angle_omega'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_refln.angle_phi
    _item_description.description
;              The diffractometer angle phi of a reflection in degrees. This
               angle corresponds to the specified orientation matrix
               and the original measured cell before any subsequent cell
               transformations.
;
    _item.name                  '_diffrn_refln.angle_phi'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_angle_phi'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_refln.angle_psi
    _item_description.description
;              The diffractometer angle psi of a reflection in degrees. This
               angle corresponds  to the specified orientation matrix
               and the original measured cell before any subsequent cell
               transformations.
;
    _item.name                  '_diffrn_refln.angle_psi'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_angle_psi'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_refln.angle_theta
    _item_description.description
;              The diffractometer angle theta of a reflection in degrees. This
               angle corresponds  to the specified orientation matrix
               and the original measured cell before any subsequent cell
               transformations.
;
    _item.name                  '_diffrn_refln.angle_theta'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_angle_theta'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_refln.attenuator_code
    _item_description.description
;              The code identifying the attenuator setting for this reflection.
               This code must match one of the _diffrn_attenuator.code values.
;
    _item.name                  '_diffrn_refln.attenuator_code'
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_attenuator_code'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
     save_

save__diffrn_refln.counts_bg_1
    _item_description.description
;              The diffractometer counts for the measurement of the background
               before the peak.
;
    _item.name                  '_diffrn_refln.counts_bg_1'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_counts_bg_1'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__diffrn_refln.counts_bg_2
    _item_description.description
;              The diffractometer counts for the measurement of the background
               after the peak.
;
    _item.name                  '_diffrn_refln.counts_bg_2'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_counts_bg_2'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__diffrn_refln.counts_net
    _item_description.description
;              The diffractometer counts for the measurement of net counts after
               background removal.
;
    _item.name                  '_diffrn_refln.counts_net'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_counts_net'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__diffrn_refln.counts_peak
    _item_description.description
;              The diffractometer counts for the measurement of counts for the
               peak scan or position.
;
    _item.name                  '_diffrn_refln.counts_peak'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_counts_peak'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__diffrn_refln.counts_total
    _item_description.description
;              The diffractometer counts for the measurement of total counts
               (background plus peak).
;
    _item.name                  '_diffrn_refln.counts_total'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_counts_total'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__diffrn_refln.detect_slit_horiz
    _item_description.description
;              Total slit aperture in degrees in the diffraction plane.
;
    _item.name                  '_diffrn_refln.detect_slit_horiz'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_detect_slit_horiz'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           90.0   90.0
                                  90.0    0.0
                                   0.0    0.0
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_refln.detect_slit_vert
    _item_description.description
;              Total slit aperture in degrees perpendicular to the
               diffraction plane.
;
    _item.name                  '_diffrn_refln.detect_slit_vert'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_detect_slit_vert'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           90.0   90.0
                                  90.0    0.0
                                   0.0    0.0
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_refln.diffrn_id
    _item_description.description
;              This data item is a pointer to _diffrn.id in the DIFFRN
               category.
;
    _item.name                  '_diffrn_refln.diffrn_id'
    _item.mandatory_code          yes
     save_

save__diffrn_refln.elapsed_time
    _item_description.description
;              Elapsed time in minutes from the start of the diffraction
               experiment to the measurement of this intensity.
;
    _item.name                  '_diffrn_refln.elapsed_time'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_elapsed_time'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              minutes
     save_

save__diffrn_refln.id
    _item_description.description
;              The value of _diffrn_refln.id must uniquely identify the
               reflection in the data set identified by the item
              _diffrn_refln.diffrn_id.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    _item.name                  '_diffrn_refln.id'
    _item.category_id             diffrn_refln
    _item.mandatory_code          yes
    _item_type.code               code
     save_

save__diffrn_refln.index_h
    _item_description.description
;              Miller index h of a reflection. The values of
               the Miller indices in the DIFFRN_REFLN category need not match
               the values of the Miller indices in the REFLN category if a
               transformation of the original measured cell has taken place.
               Details of the cell transformation are given in
               _diffrn_reflns.reduction_process. See also
               _diffrn_reflns.transf_matrix[][].
;
    _item.name                  '_diffrn_refln.index_h'
    _item.category_id             diffrn_refln
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_diffrn_refln_index_h'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_diffrn_refln.index_h'
                                '_diffrn_refln.index_k'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__diffrn_refln.index_k
    _item_description.description
;              Miller index k of a reflection. The values of
               the Miller indices in the DIFFRN_REFLN category need not match
               the values of the Miller indices in the REFLN category if a
               transformation of the original measured cell has taken place.
               Details of the cell transformation are given in
               _diffrn_reflns.reduction_process. See also
               _diffrn_reflns.transf_matrix[][].
;
    _item.name                  '_diffrn_refln.index_k'
    _item.category_id             diffrn_refln
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_diffrn_refln_index_k'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_diffrn_refln.index_h'
                                '_diffrn_refln.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__diffrn_refln.index_l
    _item_description.description
;              Miller index l of a reflection. The values of
               the Miller indices in the DIFFRN_REFLN category need not match
               the values of the Miller indices in the REFLN category if a
               transformation of the original measured cell has taken place.
               Details of the cell transformation are given in
               _diffrn_reflns.reduction_process. See also
               _diffrn_reflns.transf_matrix[][].
;
    _item.name                  '_diffrn_refln.index_l'
    _item.category_id             diffrn_refln
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_diffrn_refln_index_l'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_diffrn_refln.index_h'
                                '_diffrn_refln.index_k'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__diffrn_refln.intensity_net
    _item_description.description
;              Net intensity calculated from the diffraction counts after the
               attenuator and standard scales have been applied.
;
    _item.name                  '_diffrn_refln.intensity_net'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_intensity_net'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               float
     save_

save__diffrn_refln.intensity_sigma
    _item_description.description
;              Standard uncertainty (estimated standard deviation) of the
               intensity calculated from the diffraction counts after the
               attenuator and standard scales have been applied.
;
    _item.name                  '_diffrn_refln.intensity_sigma'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_intensity_sigma'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               float
     save_

save__diffrn_refln.scale_group_code
    _item_description.description
;              The code identifying the scale applying to this reflection.

               This data item is a pointer to _diffrn_scale_group.code in the
               DIFFRN_SCALE_GROUP category.
;
    _item.name                  '_diffrn_refln.scale_group_code'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_diffrn_refln_scale_group_code'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
     save_

save__diffrn_refln.scan_mode
    _item_description.description
;              The code identifying the mode of scanning for measurements
               using a diffractometer.
               See _diffrn_refln.scan_width and _diffrn_refln.scan_mode_backgd.
;
    _item.name                  '_diffrn_refln.scan_mode'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_scan_mode'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      om 'omega scan'
                                  ot 'omega/2theta scan'
                                  q  'Q scans (arbitrary reciprocal directions)'
     save_

save__diffrn_refln.scan_mode_backgd
    _item_description.description
;              The code identifying the mode of scanning a reflection to
               measure the background intensity.
;
    _item.name                  '_diffrn_refln.scan_mode_backgd'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_scan_mode_backgd'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      st  'stationary counter background'
                                  mo  'moving counter background'
     save_

save__diffrn_refln.scan_rate
    _item_description.description
;              The rate of scanning a reflection in degrees per minute
               to measure the intensity.
;
    _item.name                  '_diffrn_refln.scan_rate'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_scan_rate'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              degrees_per_minute
     save_

save__diffrn_refln.scan_time_backgd
    _item_description.description
;              The time spent measuring each background in seconds.
;
    _item.name                  '_diffrn_refln.scan_time_backgd'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_scan_time_backgd'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              seconds
     save_

save__diffrn_refln.scan_width
    _item_description.description
;              The scan width in degrees of the scan mode defined by the code
               _diffrn_refln.scan_mode.
;
    _item.name                  '_diffrn_refln.scan_width'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_scan_width'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           90.0   90.0
                                  90.0    0.0
                                   0.0    0.0
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_refln.sint_over_lambda
    _item_description.description
;              The (sin theta)/lambda value in reciprocal angstroms for this
               reflection.
;
    _item.name                  '_diffrn_refln.sint_over_lambda'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_sint/lambda'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              reciprocal_angstroms
     save_

save__diffrn_refln.standard_code
    _item_description.description
;              The code identifying that this reflection was measured as a
               standard intensity.

               This data item is a pointer to _diffrn_standard_refln.code in the
               DIFFRN_STANDARD_REFLN category.
;
    _item.name                  '_diffrn_refln.standard_code'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_diffrn_refln_standard_code'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
     save_

save__diffrn_refln.wavelength
    _item_description.description
;              The mean wavelength in angstroms of the radiation used to measure
               the intensity of this reflection. This is an important parameter
               for data collected using energy-dispersive detectors or the
               Laue method.
;
    _item.name                  '_diffrn_refln.wavelength'
    _item.category_id             diffrn_refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_refln_wavelength'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__diffrn_refln.wavelength_id
    _item_description.description
;              This data item is a pointer to _diffrn_radiation.wavelength_id in
               the DIFFRN_RADIATION category.
;
    _item.name                  '_diffrn_refln.wavelength_id'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_diffrn_refln_wavelength_id'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
     save_

###################
## DIFFRN_REFLNS ##
###################

save_diffrn_reflns
    _category.description
;              Data items in the DIFFRN_REFLNS category record details about
               the set of intensities measured in the diffraction experiment.

               The DIFFRN_REFLN data items refer to individual intensity
               measurements and must be included in looped lists.

               The DIFFRN_REFLNS data items specify the parameters that apply
               to all intensity measurements in a diffraction data set.
;
    _category.id                  diffrn_reflns
    _category.mandatory_code      no
    _category_key.name          '_diffrn_reflns.diffrn_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'diffrn_group'
#    loop_
#    _category_examples.detail
#    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__diffrn_reflns.av_R_equivalents
    _item_description.description
;              The residual [sum|avdel(I)| / sum|av(I)|] for symmetry-equivalent
               reflections used to calculate the average intensity av(I). The
               avdel(I) term is the average absolute difference between av(I)
               and the individual symmetry-equivalent intensities.
;
    _item.name                  '_diffrn_reflns.av_R_equivalents'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_av_R_equivalents'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__diffrn_reflns.av_sigmaI_over_netI
    _item_description.description
;              Measure [sum|sigma(I)|/sum|net(I)|] for all measured reflections.
;
    _item.name                  '_diffrn_reflns.av_sigmaI_over_netI'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_av_sigmaI/netI'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__diffrn_reflns.diffrn_id
    _item_description.description
;              This data item is a pointer to _diffrn.id in the DIFFRN
               category.
;
    _item.name                  '_diffrn_reflns.diffrn_id'
    _item.mandatory_code          yes
     save_

save__diffrn_reflns.limit_h_max
    _item_description.description
;              The maximum value of the Miller index h for the
               reflection data specified by _diffrn_refln.index_h.
;
    _item.name                  '_diffrn_reflns.limit_h_max'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_limit_h_max'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__diffrn_reflns.limit_h_min
    _item_description.description
;              The minimum value of the Miller index h for the
               reflection data specified by _diffrn_refln.index_h.
;
    _item.name                  '_diffrn_reflns.limit_h_min'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_limit_h_min'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__diffrn_reflns.limit_k_max
    _item_description.description
;              The maximum value of the Miller index k for the
               reflection data specified by _diffrn_refln.index_k.
;
    _item.name                  '_diffrn_reflns.limit_k_max'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_limit_k_max'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__diffrn_reflns.limit_k_min
    _item_description.description
;              The minimum value of the Miller index k for the
               reflection data specified by _diffrn_refln.index_k.
;
    _item.name                  '_diffrn_reflns.limit_k_min'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_limit_k_min'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__diffrn_reflns.limit_l_max
    _item_description.description
;              The maximum value of the Miller index l for the
               reflection data specified by _diffrn_refln.index_l.
;
    _item.name                  '_diffrn_reflns.limit_l_max'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_limit_l_max'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__diffrn_reflns.limit_l_min
    _item_description.description
;              The minimum value of the Miller index l for the
               reflection data specified by _diffrn_refln.index_l.
;
    _item.name                  '_diffrn_reflns.limit_l_min'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_limit_l_min'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__diffrn_reflns.number
    _item_description.description
;              The total number of measured intensities, excluding reflections
               that are classified as systematically absent.
;
    _item.name                  '_diffrn_reflns.number'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_number'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__diffrn_reflns.reduction_process
    _item_description.description
;              A description of the process used to reduce the intensity data
               into structure-factor magnitudes.
;
    _item.name                  '_diffrn_reflns.reduction_process'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_reduction_process'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'data averaged using Fisher test'
     save_

save__diffrn_reflns.theta_max
    _item_description.description
;              Maximum theta angle in degrees for the measured diffraction
               intensities.
;
    _item.name                  '_diffrn_reflns.theta_max'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_theta_max'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           90.0   90.0
                                  90.0    0.0
                                   0.0    0.0
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_reflns.theta_min
    _item_description.description
;              Minimum theta angle in degrees for the measured diffraction
               intensities.
;
    _item.name                  '_diffrn_reflns.theta_min'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_theta_min'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           90.0   90.0
                                  90.0    0.0
                                   0.0    0.0
    _item_type.code               float
    _item_units.code              degrees
     save_

save__diffrn_reflns.transf_matrix[1][1]
    _item_description.description
;              The [1][1] element of the 3x3 matrix used to transform Miller
               indices in the DIFFRN_REFLN category into the Miller indices in
               the REFLN category.
;
    _item.name                  '_diffrn_reflns.transf_matrix[1][1]'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_transf_matrix_11'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__diffrn_reflns.transf_matrix[1][2]
    _item_description.description
;              The [1][2] element of the 3x3 matrix used to transform Miller
               indices in the DIFFRN_REFLN category into the Miller indices in
               the REFLN category.
;
    _item.name                  '_diffrn_reflns.transf_matrix[1][2]'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_transf_matrix_12'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__diffrn_reflns.transf_matrix[1][3]
    _item_description.description
;              The [1][3] element of the 3x3 matrix used to transform Miller
               indices in the DIFFRN_REFLN category into the Miller indices in
               the REFLN category.
;
    _item.name                  '_diffrn_reflns.transf_matrix[1][3]'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_transf_matrix_13'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__diffrn_reflns.transf_matrix[2][1]
    _item_description.description
;              The [2][1] element of the 3x3 matrix used to transform Miller
               indices in the DIFFRN_REFLN category into the Miller indices in
               the REFLN category.
;
    _item.name                  '_diffrn_reflns.transf_matrix[2][1]'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_transf_matrix_21'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__diffrn_reflns.transf_matrix[2][2]
    _item_description.description
;              The [2][2] element of the 3x3 matrix used to transform Miller
               indices in the DIFFRN_REFLN category into the Miller indices in
               the REFLN category.
;
    _item.name                  '_diffrn_reflns.transf_matrix[2][2]'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_transf_matrix_22'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__diffrn_reflns.transf_matrix[2][3]
    _item_description.description
;              The [2][3] element of the 3x3 matrix used to transform Miller
               indices in the DIFFRN_REFLN category into the Miller indices in
               the REFLN category.
;
    _item.name                  '_diffrn_reflns.transf_matrix[2][3]'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_transf_matrix_23'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__diffrn_reflns.transf_matrix[3][1]
    _item_description.description
;              The [3][1] element of the 3x3 matrix used to transform Miller
               indices in the DIFFRN_REFLN category into the Miller indices in
               the REFLN category.
;
    _item.name                  '_diffrn_reflns.transf_matrix[3][1]'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_transf_matrix_31'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__diffrn_reflns.transf_matrix[3][2]
    _item_description.description
;              The [3][2] element of the 3x3 matrix used to transform Miller
               indices in the DIFFRN_REFLN category into the Miller indices in
               the REFLN category.
;
    _item.name                  '_diffrn_reflns.transf_matrix[3][2]'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_transf_matrix_32'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__diffrn_reflns.transf_matrix[3][3]
    _item_description.description
;              The [3][3] element of the 3x3 matrix used to transform Miller
               indices in the DIFFRN_REFLN category into the Miller indices in
               the REFLN category.
;
    _item.name                  '_diffrn_reflns.transf_matrix[3][3]'
    _item.category_id             diffrn_reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_reflns_transf_matrix_33'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

########################
## DIFFRN_SCALE_GROUP ##
########################

save_diffrn_scale_group
    _category.description
;              Data items in the DIFFRN_SCALE_GROUP category record details
               of the scaling factors applied to place all intensities in the
               reflection lists on a common scale.
               Scaling groups might, for example, correspond to each film in a
               multi-film data set or each crystal in a multi-crystal data set.
;
    _category.id                  diffrn_scale_group
    _category.mandatory_code      no
    _category_key.name          '_diffrn_scale_group.code'
    loop_
    _category_group.id           'inclusive_group'
                                 'diffrn_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on CAD-4 diffractometer data obtained for
                Yb(S-C5H4N)2(THF)4.
;
;
    _diffrn_scale_group.code        A24
    _diffrn_scale_group.I_net       1.021
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__diffrn_scale_group.code
    _item_description.description
;              The value of _diffrn_scale_group.code must uniquely identify a
               record in the DIFFRN_SCALE_GROUP list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_diffrn_scale_group.code'        diffrn_scale_group  yes
               '_diffrn_refln.scale_group_code'  diffrn_refln        yes
    _item_aliases.alias_name    '_diffrn_scale_group_code'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_diffrn_refln.scale_group_code'  '_diffrn_scale_group.code'
    _item_type.code               code
    loop_
    _item_examples.case          '1'
                                 '2'
                                 'c1'
                                 'c2'
     save_

save__diffrn_scale_group.I_net
    _item_description.description
;              The scale for a specific measurement group which is to be
               multiplied with the net intensity to place all intensities
               in the DIFFRN_REFLN or REFLN list on a common scale.
;
    _item.name                  '_diffrn_scale_group.I_net'
    _item.category_id             diffrn_scale_group
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_scale_group_I_net'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

###################
## DIFFRN_SOURCE ##
###################

save_diffrn_source
    _category.description
;              Data items in the DIFFRN_SOURCE category record details of
               the source of radiation used in the diffraction experiment.
;
    _category.id                  diffrn_source
    _category.mandatory_code      no
    _category_key.name          '_diffrn_source.diffrn_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'diffrn_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _diffrn_source.diffrn_id       's1'
    _diffrn_source.source          'rotating anode'
    _diffrn_source.type            'Rigaku RU-200'
    _diffrn_source.power           50
    _diffrn_source.current        180
    _diffrn_source.size            '8mm x 0.4 mm broad-focus'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__diffrn_source.current
    _item_description.description
;              The current in milliamperes at which the radiation source
               was operated.
;
    _item.name                  '_diffrn_source.current'
    _item.category_id             diffrn_source
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_source_current'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              milliamperes
     save_

save__diffrn_source.details
    _item_description.description
;              A description of special aspects of the radiation source used.
;
    _item.name                  '_diffrn_source.details'
    _item.category_id             diffrn_source
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_source_details'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__diffrn_source.diffrn_id
    _item_description.description
;              This data item is a pointer to _diffrn.id in the DIFFRN
               category.
;
    _item.name                  '_diffrn_source.diffrn_id'
    _item.mandatory_code          yes
     save_

save__diffrn_source.power
    _item_description.description
;              The power in kilowatts at which the radiation source
               was operated.
;
    _item.name                  '_diffrn_source.power'
    _item.category_id             diffrn_source
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_source_power'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              kilowatts
     save_

save__diffrn_source.size
    _item_description.description
;              The dimensions of the source as viewed from the sample.
;
    _item.name                  '_diffrn_source.size'
    _item.category_id             diffrn_source
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_source_size'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          '8mm x 0.4 mm fine-focus'
                                 'broad focus'
     save_

save__diffrn_source.source
    _item_description.description
;              The general class of the radiation source.
;
    _item.name                  '_diffrn_source.source'
    _item.category_id             diffrn_source
    _item.mandatory_code          no
    loop_
    _item_aliases.alias_name
    _item_aliases.dictionary
    _item_aliases.version       '_diffrn_radiation_source'
                                  cifdic.c91
                                  1.0
                                '_diffrn_source'
                                  cif_core.dic
                                  2.0
    _item_type.code               text
    loop_
    _item_examples.case          'sealed X-ray tube'
                                 'nuclear reactor'
                                 'spallation source'
                                 'electron microscope'
                                 'rotating-anode X-ray tube'
                                 'synchrotron'
     save_

save__diffrn_source.target
    _item_description.description
;              The chemical element symbol for the X-ray target
               (usually the anode) used to generate X-rays.
               This can also be used for spallation sources.
;
    _item.name                  '_diffrn_source.target'
    _item.category_id             diffrn_source
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_source_target'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               code
    loop_
    _item_enumeration.value
        H  He  Li  Be  B  C  N  O  F  Ne  Na  Mg  Al  Si  P  S  Cl
        Ar  K  Ca  Sc  Ti  V  Cr  Mn  Fe  Co  Ni  Cu  Zn  Ga  Ge
        As  Se  Br  Kr  Rb  Sr  Y  Zr  Nb  Mo  Tc  Ru  Rh  Pd  Ag
        Cd  In  Sn  Sb  Te  I  Xe  Cs  Ba  La  Ce  Pr  Nd  Pm  Sm
        Eu  Gd  Tb  Dy  Ho  Er  Tm  Yb  Lu  Hf  Ta  W  Re  Os  Ir
        Pt  Au  Hg  Tl  Pb  Bi  Po  At  Rn  Fr  Ra  Ac  Th  Pa  U
        Np  Pu  Am  Cm  Bk  Cf  Es  Fm  Md  No  Lr
     save_

save__diffrn_source.type
    _item_description.description
;              The make, model or name of the source of radiation.
;
    _item.name                  '_diffrn_source.type'
    _item.category_id             diffrn_source
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_source_type'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          'NSLS beamline X8C'
                                 'Rigaku RU200'
     save_

save__diffrn_source.voltage
    _item_description.description
;              The voltage in kilovolts at which the radiation source was
               operated.
;
    _item.name                  '_diffrn_source.voltage'
    _item.category_id             diffrn_source
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_source_voltage'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              kilovolts
     save_

###########################
## DIFFRN_STANDARD_REFLN ##
###########################

save_diffrn_standard_refln
    _category.description
;              Data items in the DIFFRN_STANDARD_REFLN category record details
               about the reflections treated as standards during the measurement
               of a set of diffraction intensities.

               Note that these are the individual standard reflections, not the
               results of the analysis of the standard reflections.
;
    _category.id                  diffrn_standard_refln
    _category.mandatory_code      no
    loop_
    _category_key.name          '_diffrn_standard_refln.diffrn_id'
                                '_diffrn_standard_refln.code'
    loop_
    _category_group.id           'inclusive_group'
                                 'diffrn_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - based on data set TOZ of Willis, Beckwith & Tozer
                [Acta Cryst. (1991), C47, 2276-2277].
;
;
    loop_
    _diffrn_standard_refln.diffrn_id
    _diffrn_standard_refln.code
    _diffrn_standard_refln.index_h
    _diffrn_standard_refln.index_k
    _diffrn_standard_refln.index_l
     s1 1  3  2  4
     s1 1  1  9  1
     s1 1  3  0 10
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__diffrn_standard_refln.code
    _item_description.description
;              The code identifying a reflection measured as a standard
               reflection with the indices _diffrn_standard_refln.index_h,
               _diffrn_standard_refln.index_k and
               _diffrn_standard_refln.index_l. This is the same code as the
               _diffrn_refln.standard_code in the DIFFRN_REFLN list.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_diffrn_standard_refln.code'  diffrn_standard_refln  yes
               '_diffrn_refln.standard_code'  diffrn_refln          yes
    _item_aliases.alias_name    '_diffrn_standard_refln_code'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_diffrn_refln.standard_code'  '_diffrn_standard_refln.code'
    _item_type.code               code
    loop_
    _item_examples.case          '1'
                                 '2'
                                 'c1'
                                 'c2'
     save_

save__diffrn_standard_refln.diffrn_id
    _item_description.description
;              This data item is a pointer to _diffrn.id in the DIFFRN
               category.
;
    _item.name                  '_diffrn_standard_refln.diffrn_id'
    _item.mandatory_code          yes
     save_

save__diffrn_standard_refln.index_h
    _item_description.description
;              Miller index h of a standard reflection used in the diffraction
               measurement process.
;
    _item.name                  '_diffrn_standard_refln.index_h'
    _item.category_id             diffrn_standard_refln
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_diffrn_standard_refln_index_h'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_diffrn_standard_refln.index_k'
                                '_diffrn_standard_refln.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__diffrn_standard_refln.index_k
    _item_description.description
;              Miller index k of a standard reflection used in the diffraction
               measurement process.
;
    _item.name                  '_diffrn_standard_refln.index_k'
    _item.category_id             diffrn_standard_refln
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_diffrn_standard_refln_index_k'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_diffrn_standard_refln.index_h'
                                '_diffrn_standard_refln.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__diffrn_standard_refln.index_l
    _item_description.description
;              Miller index l of a standard reflection used in the diffraction
               measurement process.
;
    _item.name                  '_diffrn_standard_refln.index_l'
    _item.category_id             diffrn_standard_refln
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_diffrn_standard_refln_index_l'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_diffrn_standard_refln.index_h'
                                '_diffrn_standard_refln.index_k'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

######################
## DIFFRN_STANDARDS ##
######################

save_diffrn_standards
    _category.description
;              Data items in the DIFFRN_STANDARDS category record details
               about the set of standard reflections used to monitor intensity
               stability during the measurement of diffraction intensities.

               Note that these records describe properties common to the set of
               standard reflections, not the standard reflections themselves.
;
    _category.id                  diffrn_standards
    _category.mandatory_code      no
    _category_key.name          '_diffrn_standards.diffrn_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'diffrn_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on data set TOZ of Willis, Beckwith & Tozer
                [Acta Cryst. (1991), C47, 2276-2277].
;
;
    _diffrn_standards.diffrn_id         's1'
    _diffrn_standards.number            3
    _diffrn_standards.interval_time     120
    _diffrn_standards.decay_%           0
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__diffrn_standards.diffrn_id
    _item_description.description
;              This data item is a pointer to _diffrn.id in the DIFFRN
               category.
;
    _item.name                  '_diffrn_standards.diffrn_id'
    _item.mandatory_code          yes
     save_

save__diffrn_standards.decay_%
    _item_description.description
;              The percentage decrease in the mean of the intensities
               for the set of standard reflections from the start of the
               measurement process to the end. This value usually
               affords a measure of the overall decay in crystal quality
               during the diffraction measurement process. Negative values
               are used in exceptional instances where the final intensities
               are greater than the initial ones.
;
    _item.name                  '_diffrn_standards.decay_%'
    _item.category_id             diffrn_standards
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_standards_decay_%'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           100.0  100.0
                                  100.0     .
    _item_type.code               float
     save_

save__diffrn_standards.interval_count
    _item_description.description
;              The number of reflection intensities between the measurement of
               standard reflection intensities.
;
    _item.name                  '_diffrn_standards.interval_count'
    _item.category_id             diffrn_standards
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_standards_interval_count'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__diffrn_standards.interval_time
    _item_description.description
;              The time in minutes between the measurement of standard
               reflection intensities.
;
    _item.name                  '_diffrn_standards.interval_time'
    _item.category_id             diffrn_standards
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_standards_interval_time'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               float
    _item_units.code              minutes
     save_

save__diffrn_standards.number
    _item_description.description
;              The number of unique standard reflections used during the
               measurement of  the diffraction intensities.
;
    _item.name                  '_diffrn_standards.number'
    _item.category_id             diffrn_standards
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_standards_number'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__diffrn_standards.scale_sigma
    _item_description.description
;              The standard uncertainty (estimated standard deviation) of
               the individual mean standard scales applied to the intensity
               data.
;
    _item.name                  '_diffrn_standards.scale_sigma'
    _item.category_id             diffrn_standards
    _item.mandatory_code          no
    _item_aliases.alias_name    '_diffrn_standards_scale_sigma'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

############
## ENTITY ##
############

save_entity
    _category.description
;              Data items in the ENTITY category record details (such as
               chemical composition, name and source) about the molecular
               entities that are present in the crystallographic structure.

               Items in the various ENTITY subcategories provide a full
               chemical description of these molecular entities.

               Entities are of three types:  polymer, non-polymer and water.
               Note that the water category includes only water;  ordered
               solvent such as sulfate ion or acetone would be described as
               individual non-polymer entities.

               The ENTITY category is specific to macromolecular CIF
               applications and replaces the function of the CHEMICAL category
               in the CIF core.

               It is important to remember that the ENTITY data are not the
               result of the crystallographic experiment;  those results are
               represented by the ATOM_SITE data items. ENTITY data items
               describe the chemistry of the molecules under investigation
               and can most usefully be thought of as the ideal groups to which
               the structure is restrained or constrained during refinement.

               It is also important to remember that entities do not correspond
               directly to the enumeration of the contents of the asymmetric
               unit. Entities are described only once, even in those structures
               that contain multiple observations of an entity. The
               STRUCT_ASYM data items, which reference the entity list,
               describe and label the contents of the asymmetric unit.
;
    _category.id                  entity
    _category.mandatory_code      no
    _category_key.name          '_entity.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'entity_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _entity.id
    _entity.type
    _entity.formula_weight
    _entity.details
     1 polymer      10916
    ;              The enzymatically competent form of HIV
                   protease is a dimer. This entity
                   corresponds to one monomer of an active dimer.
    ;
     2 non-polymer '762'  .
     3 water        18    .

;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__entity.details
    _item_description.description
;              A description of special aspects of the entity.
;
    _item.name                  '_entity.details'
    _item.category_id             entity
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__entity.formula_weight
    _item_description.description
;              Formula mass in daltons of the entity.
;
    _item.name                  '_entity.formula_weight'
    _item.category_id             entity
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    1.0
                                  1.0   1.0
    _item_type.code               float
     save_

save__entity.id
    _item_description.description
;              The value of _entity.id must uniquely identify a record in the
               ENTITY list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_entity.id'                      entity               yes
               '_atom_site.label_entity_id'      atom_site            no
               '_entity_keywords.entity_id'      entity_keywords      yes
               '_entity_link.entity_id_1'        entity_link          yes
               '_entity_link.entity_id_2'        entity_link          yes
               '_entity_name_com.entity_id'      entity_name_com      yes
               '_entity_name_sys.entity_id'      entity_name_sys      yes
               '_entity_poly.entity_id'          entity_poly          yes
               '_entity_poly_seq.entity_id'      entity_poly_seq      yes
               '_entity_src_gen.entity_id'       entity_src_gen       yes
               '_entity_src_nat.entity_id'       entity_src_nat       yes
               '_struct_asym.entity_id'          struct_asym          yes
               '_struct_ref.entity_id'           struct_ref           yes
    _item_type.code               code
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_atom_site.label_entity_id'      '_entity.id'
               '_entity_keywords.entity_id'      '_entity.id'
               '_entity_link.entity_id_1'        '_entity.id'
               '_entity_link.entity_id_2'        '_entity.id'
               '_entity_name_com.entity_id'      '_entity.id'
               '_entity_name_sys.entity_id'      '_entity.id'
               '_entity_poly.entity_id'          '_entity.id'
               '_entity_poly_seq.entity_id'      '_entity_poly.entity_id'
               '_entity_src_gen.entity_id'       '_entity.id'
               '_entity_src_nat.entity_id'       '_entity.id'
               '_struct_asym.entity_id'          '_entity.id'
               '_struct_ref.entity_id'           '_entity.id'

     save_

save__entity.src_method
    _item_description.description
;              The method by which the sample for the entity was produced.
               Entities isolated directly from natural sources (tissues, soil
               samples etc.) are expected to have further information in the
               ENTITY_SRC_NAT category. Entities isolated from genetically
               manipulated sources are expected to have further information in
               the ENTITY_SRC_GEN category.
;
    _item.name                  '_entity.src_method'
    _item.category_id             entity
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      nat
;                                 entity isolated from a natural source
;
                                  man
;                                 entity isolated from a genetically
                                  manipulated source
;
                                  syn
;                                 entity obtained synthetically
;
     save_

save__entity.type
    _item_description.description
;              Defines the type of the entity.

               Polymer entities are expected to have corresponding
               ENTITY_POLY and associated entries.

               Non-polymer entities are expected to have corresponding
               CHEM_COMP and associated entries.

               Water entities are not expected to have corresponding
               entries in the ENTITY category.
;
    _item.name                  '_entity.type'
    _item.category_id             entity
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      polymer      'entity is a polymer'
                                  non-polymer  'entity is not a polymer'
                                  water        'water in the solvent model'
     save_

#####################
## ENTITY_KEYWORDS ##
#####################

save_entity_keywords
    _category.description
;              Data items in the ENTITY_KEYWORDS category specify keywords
               relevant to the molecular entities. Note that this list of
               keywords is separate from the list that is used for the
               STRUCT_BIOL data items and is intended to provide only the
               information that one would know about the molecular entity *if
               one did not know its structure*. Hence polypeptides are simply
               polypeptides, not cytokines or beta-alpha-barrels, and
               polyribonucleic acids are simply poly-RNA, not transfer-
               RNA.
;
    _category.id                  entity_keywords
    _category.mandatory_code      no
    loop_
    _category_key.name          '_entity_keywords.entity_id'
                                '_entity_keywords.text'
    loop_
    _category_group.id           'inclusive_group'
                                 'entity_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _entity_keywords.entity_id
    _entity_keywords.text
      1  'polypeptide'
      2  'natural product, inhibitor, reduced peptide'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__entity_keywords.entity_id
    _item_description.description
;              This data item is a pointer to _entity.id in the ENTITY category.
;
    _item.name                  '_entity_keywords.entity_id'
    _item.mandatory_code          yes
     save_

save__entity_keywords.text
    _item_description.description
;              Keywords describing this entity.
;
    _item.name                  '_entity_keywords.text'
    _item.category_id             entity_keywords
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'polypeptide'
                                 'natural product'
                                 'polysaccharide'
     save_

#################
## ENTITY_LINK ##
#################

save_entity_link
    _category.description
;              Data items in the ENTITY_LINK category give details about
               the links between entities.
;
    _category.id                  entity_link
    _category.mandatory_code      no
    _category_key.name          '_entity_link.link_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'chem_link_group'
     save_

save__entity_link.link_id
    _item_description.description
;              This data item is a pointer to _chem_link.id in the
               CHEM_LINK category.
;
    _item.name                  '_entity_link.link_id'
    _item.mandatory_code          yes
     save_

save__entity_link.details
    _item_description.description
;              A description of special aspects of a link between
               chemical components in the structure.
;
    _item.name                  '_entity_link.details'
    _item.category_id             entity_link
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__entity_link.entity_id_1
    _item_description.description
;              The entity ID of the first of the two entities joined by the
               link.

               This data item is a pointer to _entity.id in the ENTITY
               category.
;
    _item.name                  '_entity_link.entity_id_1'
    _item.mandatory_code          yes
     save_

save__entity_link.entity_id_2
    _item_description.description
;              The entity ID of the second of the two entities joined by the
               link.

               This data item is a pointer to _entity.id in the ENTITY
               category.
;
    _item.name                  '_entity_link.entity_id_2'
    _item.mandatory_code          yes
     save_

save__entity_link.entity_seq_num_1
    _item_description.description
;              For a polymer entity, the sequence number in the first of
               the two entities containing the link.

               This data item is a pointer to _entity_poly_seq.num in the
               ENTITY_POLY_SEQ category.
;
    _item.name                  '_entity_link.entity_seq_num_1'
    _item.mandatory_code          no
     save_

save__entity_link.entity_seq_num_2
    _item_description.description
;              For a polymer entity, the sequence number in the second of
               the two entities containing the link.

               This data item is a pointer to _entity_poly_seq.num in the
               ENTITY_POLY_SEQ category.
;
    _item.name                  '_entity_link.entity_seq_num_2'
    _item.mandatory_code          no
     save_

#####################
## ENTITY_NAME_COM ##
#####################

save_entity_name_com
    _category.description
;              Data items in the ENTITY_NAME_COM category record the common name
               or names associated with the entity. In some cases, the entity
               name may not be the same as the name of the biological structure.
               For example, haemoglobin alpha chain would be the entity common
               name, not haemoglobin.
;
    _category.id                  entity_name_com
    _category.mandatory_code      no
    loop_
    _category_key.name          '_entity_name_com.entity_id'
                                '_entity_name_com.name'
    loop_
    _category_group.id           'inclusive_group'
                                 'entity_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _entity_name_com.entity_id
    _entity_name_com.name
     1  'HIV-1 protease monomer'
     1  'HIV-1 PR monomer'
     2  'acetyl-pepstatin'
     2  'acetyl-Ile-Val-Asp-Statine-Ala-Ile-Statine'
     3  'water'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__entity_name_com.entity_id
    _item_description.description
;              This data item is a pointer to _entity.id in the ENTITY category.
;
    _item.name                  '_entity_name_com.entity_id'
    _item.mandatory_code          yes
     save_

save__entity_name_com.name
    _item_description.description
;              A common name for the entity.
;
    _item.name                  '_entity_name_com.name'
    _item.category_id             entity_name_com
    _item.mandatory_code          yes
    _item_type.code               text
    loop_
    _item_examples.case          'HIV protease monomer'
                                 'hemoglobin alpha chain'
                                 '2-fluoro-1,4-dichloro benzene'
                                 'arbutin'
     save_

#####################
## ENTITY_NAME_SYS ##
#####################

save_entity_name_sys
    _category.description
;              Data items in the ENTITY_NAME_SYS category record the systematic
               name or names associated with the entity and the system that
               was used to construct the systematic name. In some cases, the
               entity name may not be the same as the name of the biological
               structure.
;
    _category.id                  entity_name_sys
    _category.mandatory_code      no
    loop_
    _category_key.name          '_entity_name_sys.entity_id'
                                '_entity_name_sys.name'
    loop_
    _category_group.id           'inclusive_group'
                                 'entity_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _entity_name_sys.entity_id
    _entity_name_sys.name
      1  'EC 3.4.23.16'
      2  'acetyl-Ile-Val-Asp-Sta-Ala-Ile-Sta'
      3  water
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__entity_name_sys.entity_id
    _item_description.description
;              This data item is a pointer to _entity.id in the ENTITY category.
;
    _item.name                  '_entity_name_sys.entity_id'
    _item.mandatory_code          yes
     save_

save__entity_name_sys.name
    _item_description.description
;              The systematic name for the entity.
;
    _item.name                  '_entity_name_sys.name'
    _item.category_id             entity_name_sys
    _item.mandatory_code          yes
    _item_type.code               text
    loop_
    _item_examples.case          'hydroquinone-beta-D-pyranoside'
                                 'EC 2.1.1.1'
                                 '2-fluoro-1,4-dichlorobenzene'
     save_

save__entity_name_sys.system
    _item_description.description
;              The system used to generate the systematic name of the entity.
;
    _item.name                  '_entity_name_sys.system'
    _item.category_id             entity_name_sys
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'Chemical Abstracts conventions'
                                 'enzyme convention'
                                 'Sigma catalog'
     save_

#################
## ENTITY_POLY ##
#################

save_entity_poly
    _category.description
;              Data items in the ENTITY_POLY category record details about the
               polymer, such as the type of the polymer, the number of
               monomers and whether it has nonstandard features.
;
    _category.id                  entity_poly
    _category.mandatory_code      no
    _category_key.name          '_entity_poly.entity_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'entity_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _entity_poly.entity_id
    _entity_poly.type
    _entity_poly.nstd_chirality
    _entity_poly.nstd_linkage
    _entity_poly.nstd_monomer
    _entity_poly.type_details
     1  polypeptide(L)  no  no  no  .
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__entity_poly.entity_id
    _item_description.description
;              This data item is a pointer to _entity.id in the ENTITY category.
;
    _item.name                  '_entity_poly.entity_id'
    _item.mandatory_code          yes
     save_

save__entity_poly.nstd_chirality
    _item_description.description
;              A flag to indicate whether the polymer contains at least
               one monomer unit with chirality different from that specified in
               _entity_poly.type.
;
    _item.name                  '_entity_poly.nstd_chirality'
    _item.category_id             entity_poly
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      no
;                                 polymer contains no monomers with different
                                  chirality
;
                                  n
;                                 abbreviation for "no"
;
                                  yes
;                                 polymer contains at least one monomer with
                                  different chirality
;
                                  y
;                                 abbreviation for "yes"
;
     save_

save__entity_poly.nstd_linkage
    _item_description.description
;              A flag to indicate whether the polymer contains at least
               one monomer-to-monomer link different from that implied by
               _entity_poly.type.
;
    _item.name                  '_entity_poly.nstd_linkage'
    _item.category_id             entity_poly
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      no
                                 'polymer contains no different links'
                                  n
                                 'abbreviation for "no"'
                                  yes
;                                 polymer contains at least one different
                                  link
;
                                  y
                                 'abbreviation for "yes"'
     save_

save__entity_poly.nstd_monomer
    _item_description.description
;              A flag to indicate whether the polymer contains at least
               one monomer that is not considered standard.
;
    _item.name                  '_entity_poly.nstd_monomer'
    _item.category_id             entity_poly
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      no
                                 'polymer contains no nonstandard monomers'
                                  n
                                 'abbreviation for "no"'
                                  yes
;                                 polymer contains at least one nonstandard
                                  monomer
;
                                  y
                                 'abbreviation for "yes"'
     save_

save__entity_poly.number_of_monomers
    _item_description.description
;              The number of monomers in the polymer.
;
    _item.name                  '_entity_poly.number_of_monomers'
    _item.category_id             entity_poly
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   1
                                  1   1
    _item_type.code               int
     save_

save__entity_poly.type
    _item_description.description
;              The type of the polymer.
;
    _item.name                  '_entity_poly.type'
    _item.category_id             entity_poly
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value      'polypeptide(D)'
                                 'polypeptide(L)'
                                 'polydeoxyribonucleotide'
                                 'polyribonucleotide'
                                 'polysaccharide(D)'
                                 'polysaccharide(L)'
                                 'other'
     save_

save__entity_poly.type_details
    _item_description.description
;              A description of special aspects of the polymer type.
;
    _item.name                  '_entity_poly.type_details'
    _item.category_id             entity_poly
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'monomer Ala 16 is a D-amino acid'
'the oligomer contains alternating RNA and DNA units'

     save_

#####################
## ENTITY_POLY_SEQ ##
#####################

save_entity_poly_seq
    _category.description
;              Data items in the ENTITY_POLY_SEQ category specify the sequence
               of monomers in a polymer. Allowance is made for the possibility
               of microheterogeneity in a sample by allowing a given sequence
               number to be correlated with more than one monomer ID. The
               corresponding ATOM_SITE entries should reflect this
               heterogeneity.
;
    _category.id                  entity_poly_seq
    _category.mandatory_code      no
    loop_
    _category_key.name          '_entity_poly_seq.entity_id'
                                '_entity_poly_seq.num'
                                '_entity_poly_seq.mon_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'entity_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _entity_poly_seq.entity_id
    _entity_poly_seq.num
    _entity_poly_seq.mon_id
      1  1  PRO   1  2  GLN   1  3  ILE   1  4  THR   1  5  LEU
      1  6  TRP   1  7  GLN   1  8  ARG   1  9  PRO   1 10  LEU
      1 11  VAL   1 12  THR   1 13  ILE   1 14  LYS   1 15  ILE
      1 16  GLY   1 17  GLY   1 18  GLN   1 19  LEU   1 20  LYS
      1 21  GLU   1 22  ALA   1 23  LEU   1 24  LEU   1 25  ASP
    # - - - - data truncated for brevity - - - -
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__entity_poly_seq.entity_id
    _item_description.description
;              This data item is a pointer to _entity.id in the ENTITY category.
;
    _item.name                  '_entity_poly_seq.entity_id'
    _item.mandatory_code          yes
     save_

save__entity_poly_seq.hetero
    _item_description.description
;              A flag to indicate whether this monomer in the polymer is
               heterogeneous in sequence. This would be rare.
;
    _item.name                  '_entity_poly_seq.hetero'
    _item.category_id             entity_poly_seq
    _item.mandatory_code          no
    _item_default.value           no
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      no
                                 'sequence is not heterogeneous at this monomer'
                                  n
                                 'abbreviation for "no"'
                                  yes
                                 'sequence is heterogeneous at this monomer'
                                  y
                                 'abbreviation for "yes"'
     save_

save__entity_poly_seq.mon_id
    _item_description.description
;              This data item is a pointer to _chem_comp.id in the CHEM_COMP
               category.
;
    _item.name                  '_entity_poly_seq.mon_id'
    _item.mandatory_code          yes
     save_

save__entity_poly_seq.num
    _item_description.description
;              The value of _entity_poly_seq.num must uniquely and sequentially
               identify a record in the ENTITY_POLY_SEQ list.

               Note that this item must be a number and that the sequence
               numbers must progress in increasing numerical order.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
       '_entity_poly_seq.num'                         entity_poly_seq     yes
       '_atom_site.label_seq_id'                      atom_site           no
       '_entity_link.entity_seq_num_1'                entity_link         no
       '_entity_link.entity_seq_num_2'                entity_link         no
       '_geom_angle.atom_site_label_seq_id_1'         geom_angle          no
       '_geom_angle.atom_site_label_seq_id_2'         geom_angle          no
       '_geom_angle.atom_site_label_seq_id_3'         geom_angle          no
       '_geom_bond.atom_site_label_seq_id_1'          geom_bond           no
       '_geom_bond.atom_site_label_seq_id_2'          geom_bond           no
       '_geom_contact.atom_site_label_seq_id_1'       geom_contact        no
       '_geom_contact.atom_site_label_seq_id_2'       geom_contact        no
       '_geom_hbond.atom_site_label_seq_id_A'         geom_hbond          no
       '_geom_hbond.atom_site_label_seq_id_D'         geom_hbond          no
       '_geom_hbond.atom_site_label_seq_id_H'         geom_hbond          no
       '_geom_torsion.atom_site_label_seq_id_1'       geom_torsion        no
       '_geom_torsion.atom_site_label_seq_id_2'       geom_torsion        no
       '_geom_torsion.atom_site_label_seq_id_3'       geom_torsion        no
       '_geom_torsion.atom_site_label_seq_id_4'       geom_torsion        no
       '_struct_conf.beg_label_seq_id'                struct_conf         yes
       '_struct_conf.end_label_seq_id'                struct_conf         yes
       '_struct_conn.ptnr1_label_seq_id'              struct_conn         yes
       '_struct_conn.ptnr2_label_seq_id'              struct_conn         yes
       '_struct_mon_nucl.label_seq_id'                struct_mon_nucl     yes
       '_struct_mon_prot.label_seq_id'                struct_mon_prot     yes
       '_struct_mon_prot_cis.label_seq_id'            struct_mon_prot_cis yes
       '_struct_ncs_dom_lim.beg_label_seq_id'         struct_ncs_dom_lim  yes
       '_struct_ncs_dom_lim.end_label_seq_id'         struct_ncs_dom_lim  yes
       '_struct_ref_seq.seq_align_beg'                struct_ref_seq      yes
       '_struct_ref_seq.seq_align_end'                struct_ref_seq      yes
       '_struct_ref_seq_dif.seq_num'                  struct_ref_seq_dif  yes
       '_struct_sheet_hbond.range_1_beg_label_seq_id' struct_sheet_hbond  yes
       '_struct_sheet_hbond.range_1_end_label_seq_id' struct_sheet_hbond  yes
       '_struct_sheet_hbond.range_2_beg_label_seq_id' struct_sheet_hbond  yes
       '_struct_sheet_hbond.range_2_end_label_seq_id' struct_sheet_hbond  yes
       '_struct_sheet_range.beg_label_seq_id'         struct_sheet_range  yes
       '_struct_sheet_range.end_label_seq_id'         struct_sheet_range  yes
       '_struct_site_gen.label_seq_id'                struct_site_gen     yes

    loop_
    _item_linked.child_name
    _item_linked.parent_name
       '_atom_site.label_seq_id'                      '_entity_poly_seq.num'
       '_entity_link.entity_seq_num_1'                '_entity_poly_seq.num'
       '_entity_link.entity_seq_num_2'                '_entity_poly_seq.num'
       '_geom_angle.atom_site_label_seq_id_1'         '_atom_site.label_seq_id'
       '_geom_angle.atom_site_label_seq_id_2'         '_atom_site.label_seq_id'
       '_geom_angle.atom_site_label_seq_id_3'         '_atom_site.label_seq_id'
       '_geom_bond.atom_site_label_seq_id_1'          '_atom_site.label_seq_id'
       '_geom_bond.atom_site_label_seq_id_2'          '_atom_site.label_seq_id'
       '_geom_contact.atom_site_label_seq_id_1'       '_atom_site.label_seq_id'
       '_geom_contact.atom_site_label_seq_id_2'       '_atom_site.label_seq_id'
       '_geom_hbond.atom_site_label_seq_id_A'         '_atom_site.label_seq_id'
       '_geom_hbond.atom_site_label_seq_id_D'         '_atom_site.label_seq_id'
       '_geom_hbond.atom_site_label_seq_id_H'         '_atom_site.label_seq_id'
       '_geom_torsion.atom_site_label_seq_id_1'       '_atom_site.label_seq_id'
       '_geom_torsion.atom_site_label_seq_id_2'       '_atom_site.label_seq_id'
       '_geom_torsion.atom_site_label_seq_id_3'       '_atom_site.label_seq_id'
       '_geom_torsion.atom_site_label_seq_id_4'       '_atom_site.label_seq_id'
       '_struct_conf.beg_label_seq_id'                '_atom_site.label_seq_id'
       '_struct_conf.end_label_seq_id'                '_atom_site.label_seq_id'
       '_struct_conn.ptnr1_label_seq_id'              '_atom_site.label_seq_id'
       '_struct_conn.ptnr2_label_seq_id'              '_atom_site.label_seq_id'
       '_struct_mon_nucl.label_seq_id'                '_atom_site.label_seq_id'
       '_struct_mon_prot.label_seq_id'                '_atom_site.label_seq_id'
       '_struct_mon_prot_cis.label_seq_id'            '_atom_site.label_seq_id'
       '_struct_ncs_dom_lim.beg_label_seq_id'         '_atom_site.label_seq_id'
       '_struct_ncs_dom_lim.end_label_seq_id'         '_atom_site.label_seq_id'
       '_struct_ref_seq.seq_align_beg'                '_entity_poly_seq.num'
       '_struct_ref_seq.seq_align_end'                '_entity_poly_seq.num'
       '_struct_ref_seq_dif.seq_num'                  '_entity_poly_seq.num'
       '_struct_sheet_hbond.range_1_beg_label_seq_id' '_atom_site.label_seq_id'
       '_struct_sheet_hbond.range_1_end_label_seq_id' '_atom_site.label_seq_id'
       '_struct_sheet_hbond.range_2_beg_label_seq_id' '_atom_site.label_seq_id'
       '_struct_sheet_hbond.range_2_end_label_seq_id' '_atom_site.label_seq_id'
       '_struct_sheet_range.beg_label_seq_id'         '_atom_site.label_seq_id'
       '_struct_sheet_range.end_label_seq_id'         '_atom_site.label_seq_id'
       '_struct_site_gen.label_seq_id'                '_atom_site.label_seq_id'

    loop_
    _item_range.maximum
    _item_range.minimum           .   1
                                  1   1
    _item_type.code               int
     save_

####################
## ENTITY_SRC_GEN ##
####################

save_entity_src_gen
    _category.description
;              Data items in the ENTITY_SRC_GEN category record details of
               the source from which the entity was obtained in cases
               where the source was genetically manipulated.  The
               following are treated separately:  items pertaining to the tissue
               from which the gene was obtained, items pertaining to the host
               organism for gene expression and items pertaining to the actual
               producing organism (plasmid).
;
    _category.id                  entity_src_gen
    _category.mandatory_code      no
    _category_key.name          '_entity_src_gen.entity_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'entity_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _entity_src_gen.entity_id
    _entity_src_gen.gene_src_common_name
    _entity_src_gen.gene_src_genus
    _entity_src_gen.gene_src_species
    _entity_src_gen.gene_src_strain
    _entity_src_gen.host_org_common_name
    _entity_src_gen.host_org_genus
    _entity_src_gen.host_org_species
    _entity_src_gen.plasmid_name
     1  'HIV-1'  '?'  '?'  'NY-5'
        'bacteria'  'Escherichia'  'coli'  'pB322'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__entity_src_gen.entity_id
    _item_description.description
;              This data item is a pointer to _entity.id in the ENTITY category.
;
    _item.name                  '_entity_src_gen.entity_id'
    _item.mandatory_code          yes
     save_

save__entity_src_gen.gene_src_common_name
    _item_description.description
;              The common name of the natural organism from which the gene was
               obtained.
;
    _item.name                  '_entity_src_gen.gene_src_common_name'
    _item.category_id             entity_src_gen
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'man'
                                 'yeast'
                                 'bacteria'
     save_

save__entity_src_gen.gene_src_details
    _item_description.description
;              A description of special aspects of the natural organism from
               which the gene was obtained.
;
    _item.name                  '_entity_src_gen.gene_src_details'
    _item.category_id             entity_src_gen
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__entity_src_gen.gene_src_genus
    _item_description.description
;              The genus of the natural organism from which the gene was
               obtained.
;
    _item.name                  '_entity_src_gen.gene_src_genus'
    _item.category_id             entity_src_gen
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'Homo'
                                 'Saccharomyces'
                                 'Escherichia'
     save_

save__entity_src_gen.gene_src_species
    _item_description.description
;              The species of the natural organism from which the gene was
               obtained.
;
    _item.name                  '_entity_src_gen.gene_src_species'
    _item.category_id             entity_src_gen
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'sapiens'
                                 'cerevisiae'
                                 'coli'
     save_

save__entity_src_gen.gene_src_strain
    _item_description.description
;              The strain of the natural organism from which the gene was
               obtained, if relevant.
;
    _item.name                  '_entity_src_gen.gene_src_strain'
    _item.category_id             entity_src_gen
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'DH5a'
                                 'BMH 71-18'
     save_

save__entity_src_gen.gene_src_tissue
    _item_description.description
;              The tissue of the natural organism from which the gene was
               obtained.
;
    _item.name                  '_entity_src_gen.gene_src_tissue'
    _item.category_id             entity_src_gen
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'heart'
                                 'liver'
                                 'eye lens'
     save_

save__entity_src_gen.gene_src_tissue_fraction
    _item_description.description
;              The subcellular fraction of the tissue of the natural organism
               from which the gene was obtained.
;
    _item.name                  '_entity_src_gen.gene_src_tissue_fraction'
    _item.category_id             entity_src_gen
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'mitochondria'
                                 'nucleus'
                                 'membrane'
     save_

save__entity_src_gen.host_org_common_name
    _item_description.description
;              The common name of the organism that served as host for the
               production of the entity.
;
    _item.name                  '_entity_src_gen.host_org_common_name'
    _item.category_id             entity_src_gen
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'yeast'
                                 'bacteria'
     save_

save__entity_src_gen.host_org_details
    _item_description.description
;              A description of special aspects of the organism that served as
               host for the production of the entity.
;
    _item.name                  '_entity_src_gen.host_org_details'
    _item.category_id             entity_src_gen
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__entity_src_gen.host_org_genus
    _item_description.description
;              The genus of the organism that served as host for the production
               of the entity.
;
    _item.name                  '_entity_src_gen.host_org_genus'
    _item.category_id             entity_src_gen
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'Saccharomyces'
                                 'Escherichia'
     save_

save__entity_src_gen.host_org_species
    _item_description.description
;              The species of the organism that served as host for the
               production of the entity.
;
    _item.name                  '_entity_src_gen.host_org_species'
    _item.category_id             entity_src_gen
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'cerevisiae'
                                 'coli'
     save_

save__entity_src_gen.host_org_strain
    _item_description.description
;              The strain of the organism that served as host for the
               production of the entity.
;
    _item.name                  '_entity_src_gen.host_org_strain'
    _item.category_id             entity_src_gen
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'DH5a'
                                 'BMH 71-18'
     save_

save__entity_src_gen.plasmid_details
    _item_description.description
;              A description of special aspects of the plasmid that produced the
               entity in the host organism.
;
    _item.name                  '_entity_src_gen.plasmid_details'
    _item.category_id             entity_src_gen
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__entity_src_gen.plasmid_name
    _item_description.description
;              The name of the plasmid that produced the entity in the host
               organism.
;
    _item.name                  '_entity_src_gen.plasmid_name'
    _item.category_id             entity_src_gen
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'pET3C'
                                 'pT123sab'
     save_

####################
## ENTITY_SRC_NAT ##
####################

save_entity_src_nat
    _category.description
;              Data items in the ENTITY_SRC_NAT category record details of
               the source from which the entity was obtained in cases
               where the entity was isolated directly from a natural tissue.
;
    _category.id                  entity_src_nat
    _category.mandatory_code      no
    _category_key.name          '_entity_src_nat.entity_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'entity_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _entity_src_nat.entity_id
    _entity_src_nat.common_name
    _entity_src_nat.genus
    _entity_src_nat.species
    _entity_src_nat.details
     2  'bacteria'  'Actinomycetes' '?'
    ;    Acetyl-pepstatin was isolated by Dr. K. Oda, Osaka
         Prefecture University, and provided to us by Dr. Ben
         Dunn, University of Florida, and Dr. J. Kay, University
         of Wales.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__entity_src_nat.common_name
    _item_description.description
;              The common name of the organism from which the entity
               was isolated.
;
    _item.name                  '_entity_src_nat.common_name'
    _item.category_id             entity_src_nat
    _item.mandatory_code          yes
    _item_type.code               text
    loop_
    _item_examples.case          'man'
                                 'yeast'
                                 'bacteria'
     save_

save__entity_src_nat.details
    _item_description.description
;              A description of special aspects of the organism from which the
               entity was isolated.
;
    _item.name                  '_entity_src_nat.details'
    _item.category_id             entity_src_nat
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__entity_src_nat.entity_id
    _item_description.description
;              This data item is a pointer to _entity.id in the ENTITY category.
;
    _item.name                  '_entity_src_nat.entity_id'
    _item.mandatory_code          yes
     save_

save__entity_src_nat.genus
    _item_description.description
;              The genus of the organism from which the entity was isolated.
;
    _item.name                  '_entity_src_nat.genus'
    _item.category_id             entity_src_nat
    _item.mandatory_code          yes
    _item_type.code               text
    loop_
    _item_examples.case          'Homo'
                                 'Saccharomyces'
                                 'Escherichia'
     save_

save__entity_src_nat.species
    _item_description.description
;              The species of the organism from which the entity was isolated.
;
    _item.name                  '_entity_src_nat.species'
    _item.category_id             entity_src_nat
    _item.mandatory_code          yes
    _item_type.code               text
    loop_
    _item_examples.case          'sapiens'
                                 'cerevisiae'
                                 'coli'
     save_

save__entity_src_nat.strain
    _item_description.description
;              The strain of the organism from which the entity was isolated.
;
    _item.name                  '_entity_src_nat.strain'
    _item.category_id             entity_src_nat
    _item.mandatory_code          yes
    _item_type.code               text
    loop_
    _item_examples.case          'DH5a'
                                 'BMH 71-18'
     save_

save__entity_src_nat.tissue
    _item_description.description
;              The tissue of the organism from which the entity was isolated.
;
    _item.name                  '_entity_src_nat.tissue'
    _item.category_id             entity_src_nat
    _item.mandatory_code          yes
    _item_type.code               text
    loop_
    _item_examples.case          'heart'
                                 'liver'
                                 'eye lens'
     save_

save__entity_src_nat.tissue_fraction
    _item_description.description
;              The subcellular fraction of the tissue of the organism from
               which the entity was isolated.
;
    _item.name                  '_entity_src_nat.tissue_fraction'
    _item.category_id             entity_src_nat
    _item.mandatory_code          yes
    _item_type.code               text
    loop_
    _item_examples.case          'mitochondria'
                                 'nucleus'
                                 'membrane'
     save_

###########
## ENTRY ##
###########

save_entry
    _category.description
;              There is only one item in the ENTRY category, _entry.id. This
               data item gives a name to this entry and is indirectly a key to
               the categories (such as CELL, GEOM, EXPTL) that describe
               information pertinent to the entire data block.
;
    _category.id                  entry
    _category.mandatory_code      no
    _category_key.name          '_entry.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'entry_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _entry.id                              '5HVP'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - based on data set TOZ of Willis, Beckwith & Tozer
                [Acta Cryst. (1991), C47, 2276-2277].
;
;
    _entry.id                              'TOZ'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__entry.id
    _item_description.description
;              The value of _entry.id identifies the data block.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_entry.id'                       entry                 yes
               '_atom_sites.entry_id'            atom_sites            yes
               '_cell.entry_id'                  cell                  yes
               '_cell_measurement.entry_id'      cell_measurement      yes
               '_chemical.entry_id'              chemical              yes
               '_chemical_formula.entry_id'      chemical_formula      yes
               '_computing.entry_id'             computing             yes
               '_database.entry_id'              database              yes
               '_database_PDB_matrix.entry_id'   database_PDB_matrix   yes
               '_entry_link.entry_id'            entry_link            yes
               '_exptl.entry_id'                 exptl                 yes
               '_geom.entry_id'                  geom                  yes
               '_journal.entry_id'               journal               yes
               '_phasing_averaging.entry_id'     phasing_averaging     yes
               '_phasing_isomorphous.entry_id'   phasing_isomorphous   yes
               '_phasing_MAD.entry_id'           phasing_MAD           yes
               '_phasing_MIR.entry_id'           phasing_MIR           yes
               '_publ.entry_id'                  publ                  yes
               '_publ_manuscript_incl.entry_id'  publ_manuscript_incl  yes
               '_refine.entry_id'                refine                yes
               '_refine_analyze.entry_id'        refine_analyze        yes
               '_reflns.entry_id'                reflns                yes
               '_struct.entry_id'                struct                yes
               '_struct_keywords.entry_id'       struct_keywords       yes
               '_struct_mon_details.entry_id'    struct_mon_details    yes
               '_symmetry.entry_id'              symmetry              yes
    _item_aliases.alias_name    '_audit_block_code'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_atom_sites.entry_id'            '_entry.id'
               '_cell.entry_id'                  '_entry.id'
               '_cell_measurement.entry_id'      '_entry.id'
               '_chemical.entry_id'              '_entry.id'
               '_chemical_formula.entry_id'      '_entry.id'
               '_computing.entry_id'             '_entry.id'
               '_database.entry_id'              '_entry.id'
               '_database_PDB_matrix.entry_id'   '_entry.id'
               '_entry_link.entry_id'            '_entry.id'
               '_exptl.entry_id'                 '_entry.id'
               '_geom.entry_id'                  '_entry.id'
               '_journal.entry_id'               '_entry.id'
               '_phasing_averaging.entry_id'     '_entry.id'
               '_phasing_isomorphous.entry_id'   '_entry.id'
               '_phasing_MAD.entry_id'           '_entry.id'
               '_phasing_MIR.entry_id'           '_entry.id'
               '_publ.entry_id'                  '_entry.id'
               '_publ_manuscript_incl.entry_id'  '_entry.id'
               '_refine.entry_id'                '_entry.id'
               '_refine_analyze.entry_id'        '_entry.id'
               '_reflns.entry_id'                '_entry.id'
               '_struct.entry_id'                '_entry.id'
               '_struct_keywords.entry_id'       '_entry.id'
               '_struct_mon_details.entry_id'    '_entry.id'
               '_symmetry.entry_id'              '_entry.id'
    _item_type.code               code
     save_

save_entry_link
    _category.description
;              Data items in the ENTRY_LINK category record the
               relationships between the current data block
               identified by _entry.id and other data blocks
               within the current file which may be referenced
               in the current data block.
;
    _category.id                  entry_link
    _category.mandatory_code      no
    loop_
    _category_key.name          '_entry_link.id'
                                '_entry_link.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'entry_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - example file for the one-dimensional incommensurately
                modulated structure of K~2~SeO~4~.
;
;
    loop_
    _entry_link.id
    _entry_link.entry_id
    _entry_link.details
     KSE_COM  KSE_TEXT
              'experimental data common to ref./mod. structures'
     KSE_REF  KSE_TEXT  'reference structure'
     KSE_MOD  KSE_TEXT  'modulated structure'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__entry_link.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_entry_link.entry_id'
    _item.mandatory_code          yes
     save_

save__entry_link.id
    _item_description.description
;              The value of _entry_link.id identifies a data block
               related to the current data block.
;
    _item.name                  '_entry_link.id'
    _item.category_id             entry_link
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_audit_link_block_code'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               code
     save_

save__entry_link.details
    _item_description.description
;              A description of the relationship between the data blocks
               identified by _entry_link.id and _entry_link.entry_id.
;
    _item.name                  '_entry_link.details'
    _item.category_id             entry_link
    _item.mandatory_code          no
    _item_aliases.alias_name    '_audit_link_block_description'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

###########
## EXPTL ##
###########

save_exptl
    _category.description
;              Data items in the EXPTL category record details about the
               experimental work prior to the intensity measurements and
               details about the absorption-correction technique employed.
;
    _category.id                  exptl
    _category.mandatory_code      no
    _category_key.name          '_exptl.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'exptl_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for Yb(S-C5H4N)2(THF)4.
;
;
    _exptl.entry_id                    datablock1
    _exptl.absorpt_coefficient_mu      1.22
    _exptl.absorpt_correction_T_max    0.896
    _exptl.absorpt_correction_T_min    0.802
    _exptl.absorpt_correction_type     integration
    _exptl.absorpt_process_details
    ; Gaussian grid method from SHELX76
      Sheldrick, G. M., "SHELX-76: structure determination and
      refinement program", Cambridge University, UK, 1976
    ;
    _exptl.crystals_number             1
    _exptl.details
    ; Enraf-Nonius LT2 liquid nitrogen variable-temperature
      device used
    ;
    _exptl.method             'single-crystal x-ray diffraction'
    _exptl.method_details
    ; graphite monochromatized Cu K(alpha) fixed tube and
      Enraf-Nonius CAD4 diffractometer used
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__exptl.absorpt_coefficient_mu
    _item_description.description
;              The absorption coefficient mu in reciprocal millimetres
               calculated from the atomic content of the cell, the density and
               the radiation wavelength.
;
    _item.name                  '_exptl.absorpt_coefficient_mu'
    _item.category_id             exptl
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_absorpt_coefficient_mu'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              reciprocal_millimetres
     save_

save__exptl.absorpt_correction_T_max
    _item_description.description
;              The maximum transmission factor for the crystal and radiation.
               The maximum and minimum transmission factors are also referred
               to as the absorption correction
               A or 1/A*.
;
    _item.name                  '_exptl.absorpt_correction_T_max'
    _item.category_id             exptl
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_absorpt_correction_T_max'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           1.0   1.0
                                  1.0   0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__exptl.absorpt_correction_T_min
    _item_description.description
;              The minimum transmission factor for the crystal and radiation.
               The maximum and minimum transmission factors are also referred
               to as the absorption correction
               A or 1/A*.
;
    _item.name                  '_exptl.absorpt_correction_T_min'
    _item.category_id             exptl
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_absorpt_correction_T_min'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           1.0   1.0
                                  1.0   0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__exptl.absorpt_correction_type
    _item_description.description
;              The absorption correction type and method. The value
               'empirical' should NOT be used unless more detailed
               information is not available.
;
    _item.name                  '_exptl.absorpt_correction_type'
    _item.category_id             exptl
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_absorpt_correction_type'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      analytical   'analytical from crystal shape'
                                  cylinder     'cylindrical'
                                  empirical    'empirical from intensities'
                                  gaussian     'Gaussian from crystal shape'
                                  integration  'integration from crystal shape'
                                  multi-scan   'symmetry-related measurements'
                                  none         'no correction applied'
                                  numerical    'numerical from crystal shape'
                                  psi-scan     'psi-scan corrections'
                                  refdelf      'refined from delta-F'
                                  sphere       'spherical'
     save_

save__exptl.absorpt_process_details
    _item_description.description
;              Description of the absorption process applied to the
               intensities. A literature reference should be supplied for
               psi-scan techniques.
;
    _item.name                  '_exptl.absorpt_process_details'
    _item.category_id             exptl
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_absorpt_process_details'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'Tompa analytical'
     save_

save__exptl.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_exptl.entry_id'
    _item.mandatory_code          yes
     save_

save__exptl.crystals_number
    _item_description.description
;              The total number of crystals used in the  measurement of
               intensities.
;
    _item.name                  '_exptl.crystals_number'
    _item.category_id             exptl
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystals_number'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   1
                                  1   1
    _item_type.code               int
     save_

save__exptl.details
    _item_description.description
;              Any special information about the experimental work prior to the
               intensity measurement. See also _exptl_crystal.preparation.
;
    _item.name                  '_exptl.details'
    _item.category_id             exptl
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_special_details'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__exptl.method
    _item_description.description
;              The method used in the experiment.
;
    _item.name                  '_exptl.method'
    _item.category_id             exptl
    _item.mandatory_code          yes
    _item_type.code               line
    loop_
    _item_examples.case          'single-crystal x-ray diffraction'
                                 'single-crystal neutron diffraction'
                                 'single-crystal electron diffraction'
                                 'fiber x-ray diffraction'
                                 'fiber neutron diffraction'
                                 'fiber electron diffraction'
                      'single-crystal joint x-ray and neutron diffraction'
                      'single-crystal joint x-ray and electron diffraction'
                                 'solution nmr'
                                 'solid-state nmr'
                                 'theoretical model'
                                 'other'
     save_

save__exptl.method_details
    _item_description.description
;              A description of special aspects of the experimental method.
;
    _item.name                  '_exptl.method_details'
    _item.category_id             exptl
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          '29 structures'
                                 'minimized average structure'
     save_

###################
## EXPTL_CRYSTAL ##
###################

save_exptl_crystal
    _category.description
;              Data items in the EXPTL_CRYSTAL category record the results of
               experimental measurements on the crystal or crystals used,
               such as shape, size or density.
;
    _category.id                  exptl_crystal
    _category.mandatory_code      no
    _category_key.name          '_exptl_crystal.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'exptl_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for Yb(S-C5H4N)2(THF)4.
;
;
    _exptl_crystal.id                  xst2l
    _exptl_crystal.colour              'pale yellow'
    _exptl_crystal.density_diffrn      1.113
    _exptl_crystal.density_Matthews    1.01
    _exptl_crystal.density_meas        1.11
    _exptl_crystal.density_meas_temp   294.5
    _exptl_crystal.density_method      'neutral buoyancy'
    _exptl_crystal.density_percent_sol 0.15
                                   # P = 1 - (1.23*N*MMass) / V
    _exptl_crystal.description         'hexagonal rod, uncut'
    _exptl_crystal.F_000               202
    _exptl_crystal.preparation
    ; hanging drop, crystal soaked in 10% ethylene glycol for
      10 h, then placed in nylon loop at data collection time
    ;
    _exptl_crystal.size_max            0.30
    _exptl_crystal.size_mid            0.20
    _exptl_crystal.size_min            0.05
    _exptl_crystal.size_rad            0.025
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - using separate items to define upper and lower
                limits for a value.
;
;   _exptl_crystal.density_meas_gt       2.5
    _exptl_crystal.density_meas_lt       5.0
;

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 3 - here the density was measured at some
                    unspecified temperature below room temperature.
;
;   _exptl_crystal.density_meas_temp_lt 300
;

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__exptl_crystal.colour
    _item_description.description
;              The colour of the crystal.
;
    _item.name                  '_exptl_crystal.colour'
    _item.category_id             exptl_crystal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystal_colour'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    _item_examples.case          'dark green'
     save_

save__exptl_crystal.density_diffrn
    _item_description.description
;              Density values calculated from the crystal cell and contents. The
               units are megagrams per cubic metre (grams per cubic centimetre).
;
    _item.name                  '_exptl_crystal.density_diffrn'
    _item.category_id             exptl_crystal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystal_density_diffrn'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__exptl_crystal.density_Matthews
    _item_description.description
;              The density of the crystal, expressed as the ratio of the
               volume of the asymmetric unit to the molecular mass of a
               monomer of the structure, in units of angstroms^3^ per dalton.

               Ref: Matthews, B. W. (1968). J. Mol. Biol. 33, 491-497.
;
    _item.name                  '_exptl_crystal.density_Matthews'
    _item.category_id             exptl_crystal
    _item.mandatory_code          no
    _item_type.code               float
     save_

#save__exptl_crystal.density_meas
#    _item_description.description
#;              Density values measured using standard chemical and physical
#               methods. The units are megagrams per cubic metre (grams per
#               cubic centimetre).
#;
#    _item.name                  '_exptl_crystal.density_meas'
#    _item.category_id             exptl_crystal
#    _item.mandatory_code          no
#    _item_aliases.alias_name    '_exptl_crystal_density_meas'
#    _item_aliases.dictionary      cif_core.dic
#    _item_aliases.version         2.0.1
#    loop_
#    _item_range.maximum
#    _item_range.minimum            .    0.0
#                                  0.0   0.0
#    _item_type.code               float
#     save_
#
#save__exptl_crystal.density_meas_temp
#    _item_description.description
#;              The temperature in kelvins at which _exptl_crystal.density_meas
#               was determined.
#;
#    _item.name                  '_exptl_crystal.density_meas_temp'
#    _item.category_id             exptl_crystal
#    _item.mandatory_code          no
#    _item_aliases.alias_name    '_exptl_crystal_density_meas_temp'
#    _item_aliases.dictionary      cif_core.dic
#    _item_aliases.version         2.0.1
#    loop_
#    _item_range.maximum
#    _item_range.minimum            .    0.0
#                                  0.0   0.0
#    _item_type.code               float
#    _item_units.code              kelvins
#     save_

save__exptl_crystal.density_method
    _item_description.description
;              The method used to measure _exptl_crystal.density_meas.
;
    _item.name                  '_exptl_crystal.density_method'
    _item.category_id             exptl_crystal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystal_density_method'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__exptl_crystal.density_percent_sol
    _item_description.description
;              Density value P calculated from the crystal cell and contents,
               expressed as per cent solvent.

               P = 1 - (1.23 N MMass) / V

               N     = the number of molecules in the unit cell
               MMass = the molecular mass of each molecule (gm/mole)
               V     = the volume of the unit cell (A^3^)
               1.23  = a conversion factor evaluated as:

                       (0.74 cm^3^/g) (10^24^ A^3^/cm^3^)
                       --------------------------------------
                            (6.02*10^23^) molecules/mole

                       where 0.74 is an assumed value for the partial specific
                       volume of the molecule
;
    _item.name                  '_exptl_crystal.density_percent_sol'
    _item.category_id             exptl_crystal
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__exptl_crystal.description
    _item_description.description
;              A description of the quality and habit of the crystal.
               The crystal dimensions should not normally be reported here;
               use instead the specific items in the EXPTL_CRYSTAL category
               relating to size for the gross dimensions of the crystal and
               data items in the EXPTL_CRYSTAL_FACE category to describe the
               relationship between individual faces.
;
    _item.name                  '_exptl_crystal.description'
    _item.category_id             exptl_crystal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystal_description'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__exptl_crystal.F_000
    _item_description.description
;              The effective number of electrons in the crystal unit cell
               contributing to F(000). This may contain dispersion contributions
               and is calculated as

               F(000) = [ sum (f~r~^2^ + f~i~^2^) ]^1/2^

               f~r~ = real part of the scattering factors at theta = 0 degree
               f~i~ = imaginary part of the scattering factors at
               theta = 0 degree

                      the sum is taken over each atom in the unit cell
;
    _item.name                  '_exptl_crystal.F_000'
    _item.category_id             exptl_crystal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystal_F_000'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   1
                                  1   1
    _item_type.code               int
     save_

save__exptl_crystal.id
    _item_description.description
;              The value of _exptl_crystal.id must uniquely identify a record in
               the EXPTL_CRYSTAL list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
          '_exptl_crystal.id'                    exptl_crystal            yes
          '_exptl_crystal_face.crystal_id'       exptl_crystal_face       yes
          '_exptl_crystal_grow.crystal_id'       exptl_crystal_grow       yes
          '_exptl_crystal_grow_comp.crystal_id'  exptl_crystal_grow_comp  yes
          '_diffrn.crystal_id'                   diffrn                   yes
          '_refln.crystal_id'                    refln                    yes
    _item_aliases.alias_name    '_exptl_crystal_id'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_linked.child_name
    _item_linked.parent_name
          '_diffrn.crystal_id'                   '_exptl_crystal.id'
          '_exptl_crystal_grow.crystal_id'       '_exptl_crystal.id'
          '_exptl_crystal_face.crystal_id'       '_exptl_crystal.id'
          '_exptl_crystal_grow_comp.crystal_id'  '_exptl_crystal.id'
          '_refln.crystal_id'                    '_exptl_crystal.id'
    _item_type.code               code
     save_

save__exptl_crystal.preparation
    _item_description.description
;              Details of crystal growth and preparation of the crystal (e.g.
               mounting) prior to the intensity measurements.
;
    _item.name                  '_exptl_crystal.preparation'
    _item.category_id             exptl_crystal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystal_preparation'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'mounted in an argon-filled quartz capillary'
     save_

save__exptl_crystal.size_max
    _item_description.description
;              The maximum dimension of the crystal. This item may appear in a
               list with _exptl_crystal.id if multiple crystals are used in the
               experiment.
;
    _item.name                  '_exptl_crystal.size_max'
    _item.category_id             exptl_crystal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystal_size_max'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              millimetres
     save_

save__exptl_crystal.size_mid
    _item_description.description
;              The medial dimension of the crystal. This item may appear in a
               list with _exptl_crystal.id if multiple crystals are used in the
               experiment.
;
    _item.name                  '_exptl_crystal.size_mid'
    _item.category_id             exptl_crystal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystal_size_mid'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              millimetres
     save_

save__exptl_crystal.size_min
    _item_description.description
;              The minimum dimension of the crystal. This item may appear in a
               list with _exptl_crystal.id if multiple crystals are used in the
               experiment.
;
    _item.name                  '_exptl_crystal.size_min'
    _item.category_id             exptl_crystal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystal_size_min'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              millimetres
     save_

save__exptl_crystal.size_rad
    _item_description.description
;              The radius of the crystal, if the crystal is a sphere or a
               cylinder. This item may appear in a list with _exptl_crystal.id
               if multiple crystals are used in the experiment.
;
    _item.name                  '_exptl_crystal.size_rad'
    _item.category_id             exptl_crystal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystal_size_rad'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              millimetres
     save_

########################
## EXPTL_CRYSTAL_FACE ##
########################

save_exptl_crystal_face
    _category.description
;              Data items in the EXPTL_CRYSTAL_FACE category record details
               of the crystal faces.
;
    _category.id                  exptl_crystal_face
    _category.mandatory_code      no
    loop_
    _category_key.name          '_exptl_crystal_face.crystal_id'
                                '_exptl_crystal_face.index_h'
                                '_exptl_crystal_face.index_k'
                                '_exptl_crystal_face.index_l'
    loop_
    _category_group.id           'inclusive_group'
                                 'exptl_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for Yb(S-C5H4N)2(THF)4
                for the 100 face of crystal xstl1.
;
;
    _exptl_crystal_face.crystal_id     xstl1
    _exptl_crystal_face.index_h        1
    _exptl_crystal_face.index_k        0
    _exptl_crystal_face.index_l        0
    _exptl_crystal_face.diffr_chi      42.56
    _exptl_crystal_face.diffr_kappa    30.23
    _exptl_crystal_face.diffr_phi      -125.56
    _exptl_crystal_face.diffr_psi      -0.34
    _exptl_crystal_face.perp_dist      0.025
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__exptl_crystal_face.crystal_id
    _item_description.description
;              This data item is a pointer to _exptl_crystal.id in the
               EXPTL_CRYSTAL category.
;
    _item.name                  '_exptl_crystal_face.crystal_id'
    _item.mandatory_code          yes
     save_

save__exptl_crystal_face.diffr_chi
    _item_description.description
;              The chi diffractometer setting angle in degrees for a specific
               crystal face associated with _exptl_crystal_face.perp_dist.
;
    _item.name                  '_exptl_crystal_face.diffr_chi'
    _item.category_id             exptl_crystal_face
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystal_face_diffr_chi'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              degrees
     save_

save__exptl_crystal_face.diffr_kappa
    _item_description.description
;              The kappa diffractometer setting angle in degrees for a specific
               crystal face associated with _exptl_crystal_face.perp_dist.
;
    _item.name                  '_exptl_crystal_face.diffr_kappa'
    _item.category_id             exptl_crystal_face
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystal_face_diffr_kappa'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              degrees
     save_

save__exptl_crystal_face.diffr_phi
    _item_description.description
;              The phi diffractometer setting angle in degrees for a specific
               crystal face associated with _exptl_crystal_face.perp_dist.
;
    _item.name                  '_exptl_crystal_face.diffr_phi'
    _item.category_id             exptl_crystal_face
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystal_face_diffr_phi'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              degrees
     save_

save__exptl_crystal_face.diffr_psi
    _item_description.description
;              The psi diffractometer setting angle in degrees for a specific
               crystal face associated with _exptl_crystal_face.perp_dist.
;
    _item.name                  '_exptl_crystal_face.diffr_psi'
    _item.category_id             exptl_crystal_face
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystal_face_diffr_psi'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              degrees
     save_

save__exptl_crystal_face.index_h
    _item_description.description
;              Miller index h of the crystal face associated with the value
               _exptl_crystal_face.perp_dist.
;
    _item.name                  '_exptl_crystal_face.index_h'
    _item.category_id             exptl_crystal_face
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_exptl_crystal_face_index_h'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_exptl_crystal_face.index_k'
                                '_exptl_crystal_face.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__exptl_crystal_face.index_k
    _item_description.description
;              Miller index k of the crystal face associated with the value
               _exptl_crystal_face.perp_dist.
;
    _item.name                  '_exptl_crystal_face.index_k'
    _item.category_id             exptl_crystal_face
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_exptl_crystal_face_index_k'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_exptl_crystal_face.index_h'
                                '_exptl_crystal_face.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__exptl_crystal_face.index_l
    _item_description.description
;              Miller index l of the crystal face associated with the value
               _exptl_crystal_face.perp_dist.
;
    _item.name                  '_exptl_crystal_face.index_l'
    _item.category_id             exptl_crystal_face
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_exptl_crystal_face_index_l'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_exptl_crystal_face.index_h'
                                '_exptl_crystal_face.index_k'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__exptl_crystal_face.perp_dist
    _item_description.description
;              The perpendicular distance in millimetres from the face to the
               centre of rotation of the crystal.
;
    _item.name                  '_exptl_crystal_face.perp_dist'
    _item.category_id             exptl_crystal_face
    _item.mandatory_code          no
    _item_aliases.alias_name    '_exptl_crystal_face_perp_dist'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              millimetres
     save_

########################
## EXPTL_CRYSTAL_GROW ##
########################

save_exptl_crystal_grow
    _category.description
;              Data items in the EXPTL_CRYSTAL_GROW category record details
               about the conditions and methods used to grow the crystal.
;
    _category.id                  exptl_crystal_grow
    _category.mandatory_code      no
    _category_key.name          '_exptl_crystal_grow.crystal_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'exptl_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _exptl_crystal_grow.crystal_id      1
    _exptl_crystal_grow.method          'hanging drop'
    _exptl_crystal_grow.apparatus       'Linbro plates'
    _exptl_crystal_grow.atmosphere      'room air'
    _exptl_crystal_grow.pH              4.7
    _exptl_crystal_grow.temp            18(3)
    _exptl_crystal_grow.time            'approximately 2 days'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__exptl_crystal_grow.apparatus
    _item_description.description
;              The physical apparatus in which the crystal was grown.
;
    _item.name                  '_exptl_crystal_grow.apparatus'
    _item.category_id             exptl_crystal_grow
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'Linbro plate'
                                 'sandwich box'
                                 'ACA plates'
     save_

save__exptl_crystal_grow.atmosphere
    _item_description.description
;              The nature of the gas or gas mixture in which the crystal was
               grown.
;
    _item.name                  '_exptl_crystal_grow.atmosphere'
    _item.category_id             exptl_crystal_grow
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'room air'
                                 'nitrogen'
                                 'argon'
     save_

save__exptl_crystal_grow.crystal_id
    _item_description.description
;              This data item is a pointer to _exptl_crystal.id in the
               EXPTL_CRYSTAL category.
;
    _item.name                  '_exptl_crystal_grow.crystal_id'
    _item.mandatory_code          yes
     save_

save__exptl_crystal_grow.details
    _item_description.description
;              A description of special aspects of the crystal growth.
;
    _item.name                  '_exptl_crystal_grow.details'
    _item.category_id             exptl_crystal_grow
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case
;                                 Solution 2 was prepared as a well solution and
                                  mixed. A droplet containing 2 \ml of solution
                                  1 was delivered onto a cover slip; 2 \ml of
                                  solution 2 was added to the droplet without
                                  mixing.
;
;                                 Crystal plates were originally stored at room
                                  temperature for 1 week but no nucleation
                                  occurred. They were then transferred to 4
                                  degrees C, at which temperature well formed
                                  single crystals grew in 2 days.
;
;                                 The dependence on pH for successful crystal
                                  growth is very sharp. At pH 7.4 only showers
                                  of tiny crystals grew, at pH 7.5 well formed
                                  single crystals grew, at pH 7.6 no
                                  crystallization occurred at all.
;
     save_

save__exptl_crystal_grow.method
    _item_description.description
;              The method used to grow the crystals.
;
    _item.name                  '_exptl_crystal_grow.method'
    _item.category_id             exptl_crystal_grow
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'batch precipitation'
                                 'batch dialysis'
                                 'hanging drop vapor diffusion'
                                 'sitting drop vapor diffusion'
     save_

save__exptl_crystal_grow.method_ref
    _item_description.description
;              A literature reference that describes the method used to grow
               the crystals.
;
    _item.name                  '_exptl_crystal_grow.method_ref'
    _item.category_id             exptl_crystal_grow
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'McPherson et al., 1988'
     save_

save__exptl_crystal_grow.pH
    _item_description.description
;              The pH at which the crystal was grown. If more than one pH was
               employed during the crystallization process, the final pH should
               be noted here and the protocol involving multiple pH values
               should be described in _exptl_crystal_grow.details.
;
    _item.name                  '_exptl_crystal_grow.pH'
    _item.category_id             exptl_crystal_grow
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    loop_
    _item_examples.case           7.4
                                  7.6
                                  4.3
     save_

save__exptl_crystal_grow.pressure
    _item_description.description
;              The ambient pressure in kilopascals at which the crystal was
               grown.
;
    _item.name                  '_exptl_crystal_grow.pressure'
    _item.category_id             exptl_crystal_grow
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_exptl_crystal_grow.pressure_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              kilopascals
     save_

save__exptl_crystal_grow.pressure_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _exptl_crystal_grow.pressure.
;
    _item.name                  '_exptl_crystal_grow.pressure_esd'
    _item.category_id             exptl_crystal_grow
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_exptl_crystal_grow.pressure'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              kilopascals
     save_

save__exptl_crystal_grow.seeding
    _item_description.description
;              A description of the protocol used for seeding the crystal
               growth.
;
    _item.name                  '_exptl_crystal_grow.seeding'
    _item.category_id             exptl_crystal_grow
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'macroseeding'
;                                 Microcrystals were introduced from a previous
                                  crystal growth experiment by transfer with a
                                  human hair.
;
     save_

save__exptl_crystal_grow.seeding_ref
    _item_description.description
;              A literature reference that describes the protocol used to seed
               the crystal.
;
    _item.name                  '_exptl_crystal_grow.seeding_ref'
    _item.category_id             exptl_crystal_grow
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case          'Stura et al., 1989'
     save_

save__exptl_crystal_grow.temp
    _item_description.description
;              The temperature in kelvins at which the crystal was grown.
               If more than one temperature was employed during the
               crystallization process, the final temperature should be noted
               here and the protocol  involving multiple temperatures should be
               described in _exptl_crystal_grow.details.
;
    _item.name                  '_exptl_crystal_grow.temp'
    _item.category_id             exptl_crystal_grow
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_exptl_crystal_grow.temp_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              kelvins
     save_

save__exptl_crystal_grow.temp_details
    _item_description.description
;              A description of special aspects of temperature control during
               crystal growth.
;
    _item.name                  '_exptl_crystal_grow.temp_details'
    _item.category_id             exptl_crystal_grow
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__exptl_crystal_grow.temp_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _exptl_crystal_grow.temp.
;
    _item.name                  '_exptl_crystal_grow.temp_esd'
    _item.category_id             exptl_crystal_grow
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_exptl_crystal_grow.temp'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              kelvins
     save_

save__exptl_crystal_grow.time
    _item_description.description
;              The approximate time that the crystal took to grow to the size
               used for data collection.
;
    _item.name                  '_exptl_crystal_grow.time'
    _item.category_id             exptl_crystal_grow
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'overnight'
                                 '2-4 days'
                                 '6 months'
     save_

#############################
## EXPTL_CRYSTAL_GROW_COMP ##
#############################

save_exptl_crystal_grow_comp
    _category.description
;              Data items in the EXPTL_CRYSTAL_GROW_COMP category record
               details about the components of the solutions that were 'mixed'
               (by whatever means) to produce the crystal.

               In general, solution 1 is the solution that contains the
               molecule to be crystallized and solution 2 is the solution
               that contains the precipitant. However, the number of solutions
               required to describe the crystallization protocol is not limited
               to 2.

               Details of the crystallization protocol should be given in
               _exptl_crystal_grow_comp.details using the solutions
               described in EXPTL_CRYSTAL_GROW_COMP.
;
    _category.id                  exptl_crystal_grow_comp
    _category.mandatory_code      no
    loop_
    _category_key.name          '_exptl_crystal_grow_comp.id'
                                '_exptl_crystal_grow_comp.crystal_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'exptl_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _exptl_crystal_grow_comp.crystal_id
    _exptl_crystal_grow_comp.id
    _exptl_crystal_grow_comp.sol_id
    _exptl_crystal_grow_comp.name
    _exptl_crystal_grow_comp.volume
    _exptl_crystal_grow_comp.conc
    _exptl_crystal_grow_comp.details
     1 1  1  'HIV-1 protease'  '0.002 ml'  '6 mg/ml'
    ; The protein solution was in a buffer containing 25 mM NaCl,
      100 mM NaMES/ MES buffer, pH 7.5, 3 mM NaAzide
    ;
     1 2 2 'NaCl'         '0.200 ml'  '4    M' 'in 3 mM NaAzide'
     1 3 2 'Acetic Acid'  '0.047 ml'  '100 mM' 'in 3 mM NaAzide'
     1 4 2 'Na Acetate'   '0.053 ml'  '100 mM'
    ; in 3 mM NaAzide. Buffer components were mixed to produce a
      pH of 4.7 according to a ratio calculated from the pKa. The
      actual pH of solution 2 was not measured.
    ;
     1 5 2 'water'        '0.700 ml'   'neat'  'in 3 mM NaAzide'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__exptl_crystal_grow_comp.conc
    _item_description.description
;              The concentration of the solution component.
;
    _item.name                  '_exptl_crystal_grow_comp.conc'
    _item.category_id             exptl_crystal_grow_comp
    _item.mandatory_code          no
    _item_type.code               line
    loop_
    _item_examples.case          '200 \ml'
                                 '0.1 ml'
     save_

save__exptl_crystal_grow_comp.details
    _item_description.description
;              A description of any special aspects of the solution component.
               When the solution component is the one that contains the
               macromolecule, this could be the specification of the buffer in
               which the macromolecule was stored. When the solution component
               is a buffer component, this could be the methods (or formula)
               used to achieve a desired pH.
;
    _item.name                  '_exptl_crystal_grow_comp.details'
    _item.category_id             exptl_crystal_grow_comp
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'in 3 mM NaAzide'
;                                 The protein solution was in a buffer
                                  containing 25 mM NaCl, 100 mM NaMES/MES
                                  buffer, pH 7.5, 3 mM NaAzide
;
;                                 in 3 mM NaAzide. Buffer components were mixed
                                  to produce a pH of 4.7 according to a ratio
                                  calculated from the pKa. The actual pH of
                                  solution 2 was not measured.
;
     save_

save__exptl_crystal_grow_comp.crystal_id
    _item_description.description
;              This data item is a pointer to _exptl_crystal.id in the
               EXPTL_CRYSTAL category.
;
    _item.name                  '_exptl_crystal_grow_comp.crystal_id'
    _item.mandatory_code          yes
     save_

save__exptl_crystal_grow_comp.id
    _item_description.description
;              The value of _exptl_crystal_grow_comp.id must uniquely identify
               each item in the EXPTL_CRYSTAL_GROW_COMP list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    _item.name                  '_exptl_crystal_grow_comp.id'
    _item.category_id             exptl_crystal_grow_comp
    _item.mandatory_code          yes
    _item_type.code               line
    loop_
    _item_examples.case          '1'
                                 'A'
                                 'protein in buffer'
     save_

save__exptl_crystal_grow_comp.name
    _item_description.description
;              A common name for the component of the solution.
;
    _item.name                  '_exptl_crystal_grow_comp.name'
    _item.category_id             exptl_crystal_grow_comp
    _item.mandatory_code          no
    _item_type.code               line
    loop_
    _item_examples.case          'protein in buffer'
                                 'acetic acid'
     save_

save__exptl_crystal_grow_comp.sol_id
    _item_description.description
;              An identifier for the solution to which the given solution
               component belongs.
;
    _item.name                  '_exptl_crystal_grow_comp.sol_id'
    _item.category_id             exptl_crystal_grow_comp
    _item.mandatory_code          no
    _item_type.code               line
    loop_
    _item_examples.case          '1'
                                 'well solution'
                                 'solution A'
     save_

save__exptl_crystal_grow_comp.volume
    _item_description.description
;              The volume of the solution component.
;
    _item.name                  '_exptl_crystal_grow_comp.volume'
    _item.category_id             exptl_crystal_grow_comp
    _item.mandatory_code          no
    _item_type.code               line
    loop_
    _item_examples.case          '200 \ml'
                                 '0.1 ml'
     save_

##########
## GEOM ##
##########

save_geom
    _category.description
;              Data items in the GEOM and related (GEOM_ANGLE,
               GEOM_BOND, GEOM_CONTACT, GEOM_HBOND and GEOM_TORSION)
               categories record details about the molecular
               geometry as calculated from the contents of the ATOM, CELL
               and SYMMETRY data.

               Geometry data are therefore redundant, in that they can be
               calculated from other more fundamental quantities in the data
               block. However, they provide a check on the correctness of
               both sets of data and enable the most important geometric data
               to be identified for publication by setting the appropriate
               publication flag.
;
    _category.id                  geom
    _category.mandatory_code      no
    _category_key.name          '_geom.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'geom_group'
     save_

save__geom.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_geom.entry_id'
    _item.mandatory_code          yes
     save_

save__geom.details
    _item_description.description
;              A description of geometry not covered by the
               existing data names in the GEOM categories, such as
               least-squares planes.
;
    _item.name                  '_geom.details'
    _item.category_id             geom
    _item.mandatory_code          no
    _item_aliases.alias_name    '_geom_special_details'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

################
## GEOM_ANGLE ##
################

save_geom_angle
    _category.description
;              Data items in the GEOM_ANGLE category record details about the
               bond angles as calculated from the contents
               of the ATOM, CELL and SYMMETRY data.
;
    _category.id                  geom_angle
    _category.mandatory_code      no
    loop_
    _category_key.name          '_geom_angle.atom_site_id_1'
                                '_geom_angle.atom_site_id_2'
                                '_geom_angle.atom_site_id_3'
                                '_geom_angle.site_symmetry_1'
                                '_geom_angle.site_symmetry_2'
                                '_geom_angle.site_symmetry_3'
    loop_
    _category_group.id           'inclusive_group'
                                 'geom_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on data set TOZ of Willis, Beckwith & Tozer
                [Acta Cryst. (1991), C47, 2276-2277].
;
;
    loop_
    _geom_angle.atom_site_id_1
    _geom_angle.atom_site_id_2
    _geom_angle.atom_site_id_3
    _geom_angle.value
    _geom_angle.value_esd
    _geom_angle.site_symmetry_1
    _geom_angle.site_symmetry_2
    _geom_angle.site_symmetry_3
    _geom_angle.publ_flag
     C2  O1  C5   111.6  0.2  1_555  1_555  1_555  yes
     O1  C2  C3   110.9  0.2  1_555  1_555  1_555  yes
     O1  C2  O21  122.2  0.3  1_555  1_555  1_555  yes
     C3  C2  O21  127.0  0.3  1_555  1_555  1_555  yes
     C2  C3  N4   101.3  0.2  1_555  1_555  1_555  yes
     C2  C3  C31  111.3  0.2  1_555  1_555  1_555  yes
     C2  C3  H3   107    1    1_555  1_555  1_555  no
     N4  C3  C31  116.7  0.2  1_555  1_555  1_555  yes
    # - - - - data truncated for brevity - - - -
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__geom_angle.atom_site_id_1
    _item_description.description
;              The identifier of the first of the three atom sites that define
               the angle.

               This data item is a pointer to _atom_site.id in the ATOM_SITE
               category.
;
    _item.name                  '_geom_angle.atom_site_id_1'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_angle_atom_site_label_1'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_geom_angle.atom_site_id_2'
                                '_geom_angle.atom_site_id_3'
     save_

save__geom_angle.atom_site_label_alt_id_1
    _item_description.description
;              An optional identifier of the first of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.label_alt_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_label_alt_id_1'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_label_atom_id_1
    _item_description.description
;              An optional identifier of the first of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_label_atom_id_1'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_label_comp_id_1
    _item_description.description
;              An optional identifier of the first of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_label_comp_id_1'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_label_seq_id_1
    _item_description.description
;              An optional identifier of the first of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_label_seq_id_1'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_label_asym_id_1
    _item_description.description
;              An optional identifier of the first of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_label_asym_id_1'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_id_2
    _item_description.description
;              The identifier of the second of the three atom sites that define
               the angle. The second atom is taken to be the apex of the angle.

               This data item is a pointer to _atom_site.id in the ATOM_SITE
               category.
;
    _item.name                  '_geom_angle.atom_site_id_2'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_angle_atom_site_label_2'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_geom_angle.atom_site_id_1'
                                '_geom_angle.atom_site_id_3'
     save_

save__geom_angle.atom_site_label_alt_id_2
    _item_description.description
;              An optional identifier of the second of the three atom sites
               that define the angle.

               This data item is a pointer to _atom_site.label_alt_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_label_alt_id_2'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_label_atom_id_2
    _item_description.description
;              An optional identifier of the second of the three atom sites
               that define the angle.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_label_atom_id_2'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_label_comp_id_2
    _item_description.description
;              An optional identifier of the second of the three atom sites
               that define the angle.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_label_comp_id_2'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_label_seq_id_2
    _item_description.description
;              An optional identifier of the second of the three atom sites
               that define the angle.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_label_seq_id_2'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_label_asym_id_2
    _item_description.description
;              An optional identifier of the second of the three atom sites
               that define the angle.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_label_asym_id_2'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_id_3
    _item_description.description
;              The identifier of the third of the three atom sites that define
               the angle.

               This data item is a pointer to _atom_site.id in the ATOM_SITE
               category.
;
    _item.name                  '_geom_angle.atom_site_id_3'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_angle_atom_site_label_3'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_geom_angle.atom_site_id_1'
                                '_geom_angle.atom_site_id_2'
     save_

save__geom_angle.atom_site_label_alt_id_3
    _item_description.description
;              An optional identifier of the third of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.label_alt_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_label_alt_id_3'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_label_atom_id_3
    _item_description.description
;              An optional identifier of the third of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_label_atom_id_3'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_label_comp_id_3
    _item_description.description
;              An optional identifier of the third of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_label_comp_id_3'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_label_seq_id_3
    _item_description.description
;              An optional identifier of the third of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_label_seq_id_3'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_label_asym_id_3
    _item_description.description
;              An optional identifier of the third of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_label_asym_id_3'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_auth_asym_id_1
    _item_description.description
;              An optional identifier of the first of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_auth_asym_id_1'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_auth_atom_id_1
    _item_description.description
;              An optional identifier of the first of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_auth_atom_id_1'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_auth_comp_id_1
    _item_description.description
;              An optional identifier of the first of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_auth_comp_id_1'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_auth_seq_id_1
    _item_description.description
;              An optional identifier of the first of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_auth_seq_id_1'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_auth_atom_id_2
    _item_description.description
;              An optional identifier of the second of the three atom sites
               that define the angle.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_auth_atom_id_2'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_auth_asym_id_2
    _item_description.description
;              An optional identifier of the second of the three atom sites
               that define the angle.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_auth_asym_id_2'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_auth_comp_id_2
    _item_description.description
;              An optional identifier of the second of the three atom sites
               that define the angle.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_auth_comp_id_2'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_auth_seq_id_2
    _item_description.description
;              An optional identifier of the second of the three atom sites
               that define the angle.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_auth_seq_id_2'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_auth_atom_id_3
    _item_description.description
;              An optional identifier of the third of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_auth_atom_id_3'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_auth_asym_id_3
    _item_description.description
;              An optional identifier of the third of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_auth_asym_id_3'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_auth_comp_id_3
    _item_description.description
;              An optional identifier of the third of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_auth_comp_id_3'
    _item.mandatory_code          no
     save_

save__geom_angle.atom_site_auth_seq_id_3
    _item_description.description
;              An optional identifier of the third of the three atom sites that
               define the angle.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_angle.atom_site_auth_seq_id_3'
    _item.mandatory_code          no
     save_

save__geom_angle.publ_flag
    _item_description.description
;              This code signals whether the angle is referred to in a
               publication or should be placed in a table of significant angles.
;
    _item.name                  '_geom_angle.publ_flag'
    _item.category_id             geom_angle
    _item.mandatory_code          no
    _item_aliases.alias_name    '_geom_angle_publ_flag'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      no   'do not include angle in special list'
                                  n    'abbreviation for "no"'
                                  yes  'do include angle in special list'
                                  y    'abbreviation for "yes"'
     save_

save__geom_angle.site_symmetry_1
    _item_description.description
;              The symmetry code of the first of the three atom sites that
               define the angle.
;
    _item.name                  '_geom_angle.site_symmetry_1'
    _item.category_id             geom_angle
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_angle_site_symmetry_1'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

save__geom_angle.site_symmetry_2
    _item_description.description
;              The symmetry code of the second of the three atom sites that
               define the angle.
;
    _item.name                  '_geom_angle.site_symmetry_2'
    _item.category_id             geom_angle
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_angle_site_symmetry_2'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

save__geom_angle.site_symmetry_3
    _item_description.description
;              The symmetry code of the third of the three atom sites that
               define the angle.
;
    _item.name                  '_geom_angle.site_symmetry_3'
    _item.category_id             geom_angle
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_angle_site_symmetry_3'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

save__geom_angle.value
    _item_description.description
;              Angle in degrees defined by the three sites
               _geom_angle.atom_site_id_1, _geom_angle.atom_site_id_2 and
               _geom_angle.atom_site_id_3.
;
    _item.name                  '_geom_angle.value'
    _item.category_id             geom_angle
    _item.mandatory_code          no
    _item_aliases.alias_name    '_geom_angle'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_related.related_name  '_geom_angle.value_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              degrees
     save_

save__geom_angle.value_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _geom_angle.value.
;
    _item.name                  '_geom_angle.value_esd'
    _item.category_id             geom_angle
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_geom_angle.value'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              degrees
     save_

###############
## GEOM_BOND ##
###############

save_geom_bond
    _category.description
;              Data items in the GEOM_BOND category record details about
               the bond lengths as calculated from the contents
               of the ATOM, CELL and SYMMETRY data.
;
    _category.id                  geom_bond
    _category.mandatory_code      no
    loop_
    _category_key.name          '_geom_bond.atom_site_id_1'
                                '_geom_bond.atom_site_id_2'
                                '_geom_bond.site_symmetry_1'
                                '_geom_bond.site_symmetry_2'
    loop_
    _category_group.id           'inclusive_group'
                                 'geom_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on data set TOZ of Willis, Beckwith & Tozer
                [Acta Cryst. (1991), C47, 2276-2277].
;
;
    loop_
    _geom_bond.atom_site_id_1
    _geom_bond.atom_site_id_2
    _geom_bond.dist
    _geom_bond.dist_esd
    _geom_bond.site_symmetry_1
    _geom_bond.site_symmetry_2
    _geom_bond.publ_flag
      O1  C2   1.342  0.004  1_555  1_555  yes
      O1  C5   1.439  0.003  1_555  1_555  yes
      C2  C3   1.512  0.004  1_555  1_555  yes
      C2  O21  1.199  0.004  1_555  1_555  yes
      C3  N4   1.465  0.003  1_555  1_555  yes
      C3  C31  1.537  0.004  1_555  1_555  yes
      C3  H3   1.00   0.03   1_555  1_555  no
      N4  C5   1.472  0.003  1_555  1_555  yes
    # - - - - data truncated for brevity - - - -
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__geom_bond.atom_site_id_1
    _item_description.description
;              The identifier of the first of the two atom sites that define the
               bond.

               This data item is a pointer to _atom_site.id in the ATOM_SITE
               category.
;
    _item.name                  '_geom_bond.atom_site_id_1'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_bond_atom_site_label_1'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_dependent.dependent_name
                                '_geom_bond.atom_site_id_2'
     save_

save__geom_bond.atom_site_label_alt_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.label_alt_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_label_alt_id_1'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_label_atom_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_label_atom_id_1'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_label_comp_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_label_comp_id_1'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_label_seq_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_label_seq_id_1'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_label_asym_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_label_asym_id_1'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_id_2
    _item_description.description
;              The identifier of the second of the two atom sites that define
               the bond.

               This data item is a pointer to _atom_site.id in the ATOM_SITE
               category.
;
    _item.name                  '_geom_bond.atom_site_id_2'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_bond_atom_site_label_2'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_dependent.dependent_name
                                '_geom_bond.atom_site_id_1'
     save_

save__geom_bond.atom_site_label_alt_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.label_alt_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_label_alt_id_2'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_label_atom_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_label_atom_id_2'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_label_comp_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_label_comp_id_2'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_label_seq_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_label_seq_id_2'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_label_asym_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_label_asym_id_2'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_auth_atom_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_auth_atom_id_1'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_auth_asym_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_auth_asym_id_1'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_auth_comp_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_auth_comp_id_1'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_auth_seq_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_auth_seq_id_1'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_auth_atom_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_auth_atom_id_2'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_auth_asym_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_auth_asym_id_2'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_auth_comp_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_auth_comp_id_2'
    _item.mandatory_code          no
     save_

save__geom_bond.atom_site_auth_seq_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the bond.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_bond.atom_site_auth_seq_id_2'
    _item.mandatory_code          no
     save_

save__geom_bond.dist
    _item_description.description
;              The intramolecular bond distance in angstroms.
;
    _item.name                  '_geom_bond.dist'
    _item.category_id             geom_bond
    _item.mandatory_code          no
    _item_aliases.alias_name    '_geom_bond_distance'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_geom_bond.dist_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__geom_bond.dist_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _geom_bond.dist.
;
    _item.name                  '_geom_bond.dist_esd'
    _item.category_id             geom_bond
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_geom_bond.dist'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__geom_bond.publ_flag
    _item_description.description
;              This code signals whether the bond distance is referred to in a
               publication or should be placed in a list of significant bond
               distances.
;
    _item.name                  '_geom_bond.publ_flag'
    _item.category_id             geom_bond
    _item.mandatory_code          no
    _item_aliases.alias_name    '_geom_bond_publ_flag'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      no   'do not include bond in special list'
                                  n    'abbreviation for "no"'
                                  yes  'do include bond in special list'
                                  y    'abbreviation for "yes"'
     save_

save__geom_bond.site_symmetry_1
    _item_description.description
;              The symmetry code of the first of the two atom sites that
               define the bond.
;
    _item.name                  '_geom_bond.site_symmetry_1'
    _item.category_id             geom_bond
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_bond_site_symmetry_1'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

save__geom_bond.site_symmetry_2
    _item_description.description
;              The symmetry code of the second of the two atom sites that
               define the bond.
;
    _item.name                  '_geom_bond.site_symmetry_2'
    _item.category_id             geom_bond
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_bond_site_symmetry_2'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

##################
## GEOM_CONTACT ##
##################

save_geom_contact
    _category.description
;              Data items in the GEOM_CONTACT category record details about
               interatomic contacts as calculated from the contents
               of the ATOM, CELL and SYMMETRY data.
;
    _category.id                  geom_contact
    _category.mandatory_code      no
    loop_
    _category_key.name          '_geom_contact.atom_site_id_1'
                                '_geom_contact.atom_site_id_2'
                                '_geom_contact.site_symmetry_1'
                                '_geom_contact.site_symmetry_2'
    loop_
    _category_group.id           'inclusive_group'
                                 'geom_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on data set CLPHO6 of Ferguson, Ruhl, McKervey & Browne
                 [Acta Cryst. (1992), C48, 2262-2264].
;
;
    loop_
    _geom_contact.atom_site_id_1
    _geom_contact.atom_site_id_2
    _geom_contact.dist
    _geom_contact.dist_esd
    _geom_contact.site_symmetry_1
    _geom_contact.site_symmetry_2
    _geom_contact.publ_flag
     O(1)  O(2)     2.735  0.003  .  .  yes
     H(O1) O(2)     1.82      .   .  .  no
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__geom_contact.atom_site_id_1
    _item_description.description
;              The identifier of the first of the two atom sites that define the
               contact.

               This data item is a pointer to _atom_site.id in the ATOM_SITE
               category.
;
    _item.name                  '_geom_contact.atom_site_id_1'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_contact_atom_site_label_1'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_dependent.dependent_name
                                '_geom_contact.atom_site_id_2'
     save_

save__geom_contact.atom_site_label_alt_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.label_alt_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_label_alt_id_1'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_label_atom_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_label_atom_id_1'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_label_comp_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_label_comp_id_1'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_label_seq_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_label_seq_id_1'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_label_asym_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_label_asym_id_1'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_id_2
    _item_description.description
;              The identifier of the second of the two atom sites that define
               the contact.

               This data item is a pointer to _atom_site.id in the ATOM_SITE
               category.
;
    _item.name                  '_geom_contact.atom_site_id_2'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_contact_atom_site_label_2'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_dependent.dependent_name
                                '_geom_contact.atom_site_id_1'
     save_

save__geom_contact.atom_site_label_alt_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.label_alt_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_label_alt_id_2'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_label_atom_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_label_atom_id_2'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_label_comp_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_label_comp_id_2'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_label_seq_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_label_seq_id_2'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_label_asym_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_label_asym_id_2'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_auth_atom_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_auth_atom_id_1'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_auth_asym_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_auth_asym_id_1'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_auth_comp_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_auth_comp_id_1'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_auth_seq_id_1
    _item_description.description
;              An optional identifier of the first of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_auth_seq_id_1'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_auth_atom_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_auth_atom_id_2'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_auth_asym_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_auth_asym_id_2'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_auth_comp_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_auth_comp_id_2'
    _item.mandatory_code          no
     save_

save__geom_contact.atom_site_auth_seq_id_2
    _item_description.description
;              An optional identifier of the second of the two atom sites that
               define the contact.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_contact.atom_site_auth_seq_id_2'
    _item.mandatory_code          no
     save_

save__geom_contact.dist
    _item_description.description
;              The interatomic contact distance in angstroms.
;
    _item.name                  '_geom_contact.dist'
    _item.category_id             geom_contact
    _item.mandatory_code          no
    _item_aliases.alias_name    '_geom_contact_distance'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_geom_contact.dist_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__geom_contact.dist_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _geom_contact.dist.
;
    _item.name                  '_geom_contact.dist_esd'
    _item.category_id             geom_contact
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_geom_contact.dist'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__geom_contact.publ_flag
    _item_description.description
;              This code signals whether the contact distance is referred to
               in a publication or should be placed in a list of significant
               contact distances.
;
    _item.name                  '_geom_contact.publ_flag'
    _item.category_id             geom_contact
    _item.mandatory_code          no
    _item_aliases.alias_name    '_geom_contact_publ_flag'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      no   'do not include distance in special list'
                                  n    'abbreviation for "no"'
                                  yes  'do include distance in special list'
                                  y    'abbreviation for "yes"'
     save_

save__geom_contact.site_symmetry_1
    _item_description.description
;              The symmetry code of the first of the two atom sites that
               define the contact.
;
    _item.name                  '_geom_contact.site_symmetry_1'
    _item.category_id             geom_contact
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_contact_site_symmetry_1'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

save__geom_contact.site_symmetry_2
    _item_description.description
;              The symmetry code of the second of the two atom sites that
               define the contact.
;
    _item.name                  '_geom_contact.site_symmetry_2'
    _item.category_id             geom_contact
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_contact_site_symmetry_2'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_
################
## GEOM_HBOND ##
################

save_geom_hbond
    _category.description
;              Data items in the GEOM_HBOND category record details about
               hydrogen bonds as calculated from the contents of the ATOM,
               CELL and SYMMETRY data.
;
    _category.id                  geom_hbond
    _category.mandatory_code      no
    loop_
    _category_key.name          '_geom_hbond.atom_site_id_A'
                                '_geom_hbond.atom_site_id_D'
                                '_geom_hbond.atom_site_id_H'
                                '_geom_hbond.site_symmetry_A'
                                '_geom_hbond.site_symmetry_D'
                                '_geom_hbond.site_symmetry_H'
    loop_
    _category_group.id           'inclusive_group'
                                 'geom_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on C~14~H~13~ClN~2~O.H~2~O, reported by Palmer,
                Puddle & Lisgarten [Acta Cryst. (1993), C49, 1777-1779].
;
;
    loop_
    _geom_hbond.atom_site_id_D
    _geom_hbond.atom_site_id_H
    _geom_hbond.atom_site_id_A
    _geom_hbond.dist_DH
    _geom_hbond.dist_HA
    _geom_hbond.dist_DA
    _geom_hbond.angle_DHA
    _geom_hbond.publ_flag

    N6   HN6  OW   0.888  1.921  2.801  169.6  yes
    OW   HO2  O7   0.917  1.923  2.793  153.5  yes
    OW   HO1  N10  0.894  1.886  2.842  179.7  yes
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__geom_hbond.angle_DHA
    _item_description.description
;              The angle in degrees defined by the donor-, hydrogen- and
               acceptor-atom sites in a hydrogen bond.
;
    _item.name                  '_geom_hbond.angle_DHA'
    _item.category_id             geom_hbond
    _item.mandatory_code          no
    _item_aliases.alias_name    '_geom_hbond_angle_DHA'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_geom_hbond.angle_DHA_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__geom_hbond.angle_DHA_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _geom_hbond.angle_DHA.
;
    _item.name                  '_geom_hbond.angle_DHA_esd'
    _item.category_id             geom_hbond
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_geom_hbond.angle_DHA'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__geom_hbond.atom_site_id_A
    _item_description.description
;              The identifier of the acceptor-atom site that defines the
               hydrogen bond.

               This data item is a pointer to _atom_site.id in the ATOM_SITE
               category.
;
    _item.name                  '_geom_hbond.atom_site_id_A'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_hbond_atom_site_label_A'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_geom_hbond.atom_site_id_D'
                                '_geom_hbond.atom_site_id_H'
     save_

save__geom_hbond.atom_site_label_alt_id_A
    _item_description.description
;              An optional identifier of the acceptor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.label_alt_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_label_alt_id_A'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_label_asym_id_A
    _item_description.description
;              An optional identifier of the acceptor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_label_asym_id_A'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_label_atom_id_A
    _item_description.description
;              An optional identifier of the acceptor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_label_atom_id_A'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_label_comp_id_A
    _item_description.description
;              An optional identifier of the acceptor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_label_comp_id_A'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_label_seq_id_A
    _item_description.description
;              An optional identifier of the acceptor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_label_seq_id_A'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_id_D
    _item_description.description
;              The identifier of the donor-atom site that defines the hydrogen
               bond.

               This data item is a pointer to _atom_site.id in the ATOM_SITE
               category.
;
    _item.name                  '_geom_hbond.atom_site_id_D'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_hbond_atom_site_label_D'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_geom_hbond.atom_site_id_A'
                                '_geom_hbond.atom_site_id_H'
     save_

save__geom_hbond.atom_site_label_alt_id_D
    _item_description.description
;              An optional identifier of the donor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.label_alt_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_label_alt_id_D'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_label_asym_id_D
    _item_description.description
;              An optional identifier of the donor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_label_asym_id_D'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_label_atom_id_D
    _item_description.description
;              An optional identifier of the donor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_label_atom_id_D'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_label_comp_id_D
    _item_description.description
;              An optional identifier of the donor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_label_comp_id_D'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_label_seq_id_D
    _item_description.description
;              An optional identifier of the donor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_label_seq_id_D'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_id_H
    _item_description.description
;              The identifier of the hydrogen-atom site that defines the
               hydrogen bond.

               This data item is a pointer to _atom_site.id in the ATOM_SITE
               category.
;
    _item.name                  '_geom_hbond.atom_site_id_H'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_hbond_atom_site_label_H'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_geom_hbond.atom_site_id_A'
                                '_geom_hbond.atom_site_id_D'
     save_

save__geom_hbond.atom_site_label_alt_id_H
    _item_description.description
;              An optional identifier of the hydrogen-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.label_alt_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_label_alt_id_H'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_label_asym_id_H
    _item_description.description
;              An optional identifier of the hydrogen-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_label_asym_id_H'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_label_atom_id_H
    _item_description.description
;              An optional identifier of the hydrogen-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_label_atom_id_H'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_label_comp_id_H
    _item_description.description
;              An optional identifier of the hydrogen-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_label_comp_id_H'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_label_seq_id_H
    _item_description.description
;              An optional identifier of the hydrogen-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_label_seq_id_H'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_auth_asym_id_A
    _item_description.description
;              An optional identifier of the acceptor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_auth_asym_id_A'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_auth_atom_id_A
    _item_description.description
;              An optional identifier of the acceptor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_auth_atom_id_A'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_auth_comp_id_A
    _item_description.description
;              An optional identifier of the acceptor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_auth_comp_id_A'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_auth_seq_id_A
    _item_description.description
;              An optional identifier of the acceptor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_auth_seq_id_A'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_auth_asym_id_D
    _item_description.description
;              An optional identifier of the donor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_auth_asym_id_D'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_auth_atom_id_D
    _item_description.description
;              An optional identifier of the donor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_auth_atom_id_D'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_auth_comp_id_D
    _item_description.description
;              An optional identifier of the donor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_auth_comp_id_D'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_auth_seq_id_D
    _item_description.description
;              An optional identifier of the donor-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_auth_seq_id_D'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_auth_asym_id_H
    _item_description.description
;              An optional identifier of the hydrogen-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_auth_asym_id_H'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_auth_atom_id_H
    _item_description.description
;              An optional identifier of the hydrogen-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_auth_atom_id_H'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_auth_comp_id_H
    _item_description.description
;              An optional identifier of the hydrogen-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_auth_comp_id_H'
    _item.mandatory_code          no
     save_

save__geom_hbond.atom_site_auth_seq_id_H
    _item_description.description
;              An optional identifier of the hydrogen-atom site that defines
               the hydrogen bond.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_hbond.atom_site_auth_seq_id_H'
    _item.mandatory_code          no
     save_

save__geom_hbond.dist_DA
    _item_description.description
;              The distance in angstroms between the donor- and acceptor-atom
               sites in a hydrogen bond.
;
    _item.name                  '_geom_hbond.dist_DA'
    _item.category_id             geom_hbond
    _item.mandatory_code          no
    _item_aliases.alias_name    '_geom_hbond_distance_DA'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_geom_hbond.dist_DA_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__geom_hbond.dist_DA_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               in angstroms of _geom_hbond.dist_DA.
;
    _item.name                  '_geom_hbond.dist_DA_esd'
    _item.category_id             geom_hbond
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_geom_hbond.dist_DH'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__geom_hbond.dist_DH
    _item_description.description
;              The distance in angstroms between the donor- and hydrogen-atom
               sites in a hydrogen bond.
;
    _item.name                  '_geom_hbond.dist_DH'
    _item.category_id             geom_hbond
    _item.mandatory_code          no
    _item_aliases.alias_name    '_geom_hbond_distance_DH'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_geom_hbond.dist_DH_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__geom_hbond.dist_DH_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               in angstroms of _geom_hbond.dist_DH.
;
    _item.name                  '_geom_hbond.dist_DH_esd'
    _item.category_id             geom_hbond
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_geom_hbond.dist_DH'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__geom_hbond.dist_HA
    _item_description.description
;              The distance in angstroms between the hydrogen- and acceptor-
               atom sites in a hydrogen bond.
;
    _item.name                  '_geom_hbond.dist_HA'
    _item.category_id             geom_hbond
    _item.mandatory_code          no
    _item_aliases.alias_name    '_geom_hbond_distance_HA'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_geom_hbond.dist_HA_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__geom_hbond.dist_HA_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               in angstroms of _geom_hbond.dist_HA.
;
    _item.name                  '_geom_hbond.dist_HA_esd'
    _item.category_id             geom_hbond
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_geom_hbond.dist_HA'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__geom_hbond.publ_flag
    _item_description.description
;              This code signals whether the hydrogen-bond information is
               referred to in a publication or should be placed in a table of
               significant hydrogen-bond geometry.
;
    _item.name                  '_geom_hbond.publ_flag'
    _item.category_id             geom_hbond
    _item.mandatory_code          no
    _item_aliases.alias_name    '_geom_hbond_publ_flag'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      no   'do not include bond in special list'
                                  n    'abbreviation for "no"'
                                  yes  'do include bond in special list'
                                  y    'abbreviation for "yes"'
     save_

save__geom_hbond.site_symmetry_A
    _item_description.description
;              The symmetry code of the acceptor-atom site that defines the
               hydrogen bond.
;
    _item.name                  '_geom_hbond.site_symmetry_A'
    _item.category_id             geom_hbond
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_hbond_site_symmetry_A'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

save__geom_hbond.site_symmetry_D
    _item_description.description
;              The symmetry code of the donor-atom site that defines the
               hydrogen bond.
;
    _item.name                  '_geom_hbond.site_symmetry_D'
    _item.category_id             geom_hbond
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_hbond_site_symmetry_D'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

save__geom_hbond.site_symmetry_H
    _item_description.description
;              The symmetry code of the hydrogen-atom site that defines the
               hydrogen bond.
;
    _item.name                  '_geom_hbond.site_symmetry_H'
    _item.category_id             geom_hbond
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_hbond_site_symmetry_H'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

##################
## GEOM_TORSION ##
##################

save_geom_torsion
    _category.description
;              Data items in the GEOM_TORSION category record details about
               torsion angles as calculated from the
               contents of the ATOM, CELL and SYMMETRY data.

               The vector direction _geom_torsion.atom_site_id_2 to
               _geom_torsion.atom_site_id_3 is the viewing direction, and the
               torsion angle is the angle of twist required to superimpose the
               projection of the vector between site 2 and site 1 onto the
               projection of the vector between site 3 and site 4. Clockwise
               torsions are positive, anticlockwise torsions are negative.

               Ref: Klyne, W. & Prelog, V. (1960). Experientia, 16, 521-523.
;
    _category.id                  geom_torsion
    _category.mandatory_code      no
    loop_
    _category_key.name          '_geom_torsion.atom_site_id_1'
                                '_geom_torsion.atom_site_id_2'
                                '_geom_torsion.atom_site_id_3'
                                '_geom_torsion.atom_site_id_4'
                                '_geom_torsion.site_symmetry_1'
                                '_geom_torsion.site_symmetry_2'
                                '_geom_torsion.site_symmetry_3'
                                '_geom_torsion.site_symmetry_4'
    loop_
    _category_group.id           'inclusive_group'
                                 'geom_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on data set CLPHO6 of Ferguson, Ruhl, McKervey & Browne
                [Acta Cryst. (1992), C48, 2262-2264].
;
;
    loop_
    _geom_torsion.atom_site_id_1
    _geom_torsion.atom_site_id_2
    _geom_torsion.atom_site_id_3
    _geom_torsion.atom_site_id_4
    _geom_torsion.value
    _geom_torsion.site_symmetry_1
    _geom_torsion.site_symmetry_2
    _geom_torsion.site_symmetry_3
    _geom_torsion.site_symmetry_4
    _geom_torsion.publ_flag
     C(9)   O(2)    C(7)    C(2)     71.8  .  .  .  .      yes
     C(7)   O(2)    C(9)    C(10)  -168.0  .  .  .  2_666  yes
     C(10)  O(3)    C(8)    C(6)   -167.7  .  .  .  .      yes
     C(8)   O(3)    C(10)   C(9)    -69.7  .  .  .  2_666  yes
     O(1)   C(1)    C(2)    C(3)   -179.5  .  .  .  .      no
     O(1)   C(1)    C(2)    C(7)     -0.6  .  .  .  .      no
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__geom_torsion.atom_site_id_1
    _item_description.description
;              The identifier of the first of the four atom sites that define
               the torsion angle.

               This data item is a pointer to _atom_site.id in the ATOM_SITE
               category.
;
    _item.name                  '_geom_torsion.atom_site_id_1'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_torsion_atom_site_label_1'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_geom_torsion.atom_site_id_2'
                                '_geom_torsion.atom_site_id_3'
                                '_geom_torsion.atom_site_id_4'
     save_

save__geom_torsion.atom_site_label_alt_id_1
    _item_description.description
;              An optional identifier of the first of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_alt_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_alt_id_1'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_atom_id_1
    _item_description.description
;              An optional identifier of the first of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_atom_id_1'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_comp_id_1
    _item_description.description
;              An optional identifier of the first of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_comp_id_1'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_seq_id_1
    _item_description.description
;              An optional identifier of the first of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_seq_id_1'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_asym_id_1
    _item_description.description
;              An optional identifier of the first of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_asym_id_1'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_id_2
    _item_description.description
;              The identifier of the second of the four atom sites that define
               the torsion angle.

               This data item is a pointer to _atom_site.id in the ATOM_SITE
               category.
;
    _item.name                  '_geom_torsion.atom_site_id_2'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_torsion_atom_site_label_2'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_geom_torsion.atom_site_id_1'
                                '_geom_torsion.atom_site_id_3'
                                '_geom_torsion.atom_site_id_4'
     save_

save__geom_torsion.atom_site_label_alt_id_2
    _item_description.description
;              An optional identifier of the second of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_alt_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_alt_id_2'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_atom_id_2
    _item_description.description
;              An optional identifier of the second of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_atom_id_2'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_comp_id_2
    _item_description.description
;              An optional identifier of the second of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_comp_id_2'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_seq_id_2
    _item_description.description
;              An optional identifier of the second of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_seq_id_2'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_asym_id_2
    _item_description.description
;              An optional identifier of the second of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_asym_id_2'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_id_3
    _item_description.description
;              The identifier of the third of the four atom sites that define
               the torsion angle.

               This data item is a pointer to _atom_site.id in the ATOM_SITE
               category.
;
    _item.name                  '_geom_torsion.atom_site_id_3'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_torsion_atom_site_label_3'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_geom_torsion.atom_site_id_1'
                                '_geom_torsion.atom_site_id_2'
                                '_geom_torsion.atom_site_id_4'
     save_

save__geom_torsion.atom_site_label_alt_id_3
    _item_description.description
;              An optional identifier of the third of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_alt_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_alt_id_3'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_atom_id_3
    _item_description.description
;              An optional identifier of the third of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_atom_id_3'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_comp_id_3
    _item_description.description
;              An optional identifier of the third of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_comp_id_3'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_seq_id_3
    _item_description.description
;              An optional identifier of the third of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_seq_id_3'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_asym_id_3
    _item_description.description
;              An optional identifier of the third of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_asym_id_3'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_id_4
    _item_description.description
;              The identifier of the fourth of the four atom sites that define
               the torsion angle.

               This data item is a pointer to _atom_site.id in the ATOM_SITE
               category.
;
    _item.name                  '_geom_torsion.atom_site_id_4'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_torsion_atom_site_label_4'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_geom_torsion.atom_site_id_1'
                                '_geom_torsion.atom_site_id_2'
                                '_geom_torsion.atom_site_id_3'
     save_

save__geom_torsion.atom_site_label_alt_id_4
    _item_description.description
;              An optional identifier of the fourth of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_alt_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_alt_id_4'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_atom_id_4
    _item_description.description
;              An optional identifier of the fourth of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_atom_id_4'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_comp_id_4
    _item_description.description
;              An optional identifier of the fourth of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_comp_id_4'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_seq_id_4
    _item_description.description
;              An optional identifier of the fourth of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_seq_id_4'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_label_asym_id_4
    _item_description.description
;              An optional identifier of the fourth of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_label_asym_id_4'
    _item.mandatory_code          no
     save_
save__geom_torsion.atom_site_auth_atom_id_1
    _item_description.description
;              An optional identifier of the first of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_atom_id_1'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_auth_asym_id_1
    _item_description.description
;              An optional identifier of the first of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_asym_id_1'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_auth_comp_id_1
    _item_description.description
;              An optional identifier of the first of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_comp_id_1'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_auth_seq_id_1
    _item_description.description
;              An optional identifier of the first of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_seq_id_1'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_auth_atom_id_2
    _item_description.description
;              An optional identifier of the second of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_atom_id_2'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_auth_asym_id_2
    _item_description.description
;              An optional identifier of the second of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_asym_id_2'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_auth_comp_id_2
    _item_description.description
;              An optional identifier of the second of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_comp_id_2'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_auth_seq_id_2
    _item_description.description
;              An optional identifier of the second of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_seq_id_2'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_auth_atom_id_3
    _item_description.description
;              An optional identifier of the third of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_atom_id_3'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_auth_asym_id_3
    _item_description.description
;              An optional identifier of the third of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_asym_id_3'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_auth_comp_id_3
    _item_description.description
;              An optional identifier of the third of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_comp_id_3'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_auth_seq_id_3
    _item_description.description
;              An optional identifier of the third of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_seq_id_3'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_auth_atom_id_4
    _item_description.description
;              An optional identifier of the fourth of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_atom_id_4'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_auth_asym_id_4
    _item_description.description
;              An optional identifier of the fourth of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_asym_id_4'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_auth_comp_id_4
    _item_description.description
;              An optional identifier of the fourth of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_comp_id_4'
    _item.mandatory_code          no
     save_

save__geom_torsion.atom_site_auth_seq_id_4
    _item_description.description
;              An optional identifier of the fourth of the four atom sites that
               define the torsion angle.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_geom_torsion.atom_site_auth_seq_id_4'
    _item.mandatory_code          no
     save_

save__geom_torsion.publ_flag
    _item_description.description
;              This code signals whether the torsion angle is referred to in a
               publication or should be placed in a table of significant
               torsion angles.
;
    _item.name                  '_geom_torsion.publ_flag'
    _item.category_id             geom_torsion
    _item.mandatory_code          no
    _item_aliases.alias_name    '_geom_torsion_publ_flag'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      no   'do not include angle in special list'
                                  n    'abbreviation for "no"'
                                  yes  'do include angle in special list'
                                  y    'abbreviation for "yes"'
     save_

save__geom_torsion.site_symmetry_1
    _item_description.description
;              The symmetry code of the first of the four atom sites that
               define the torsion angle.
;
    _item.name                  '_geom_torsion.site_symmetry_1'
    _item.category_id             geom_torsion
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_torsion_site_symmetry_1'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

save__geom_torsion.site_symmetry_2
    _item_description.description
;              The symmetry code of the second of the four atom sites that
               define the torsion angle.
;
    _item.name                  '_geom_torsion.site_symmetry_2'
    _item.category_id             geom_torsion
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_torsion_site_symmetry_2'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

save__geom_torsion.site_symmetry_3
    _item_description.description
;              The symmetry code of the third of the four atom sites that
               define the torsion angle.
;
    _item.name                  '_geom_torsion.site_symmetry_3'
    _item.category_id             geom_torsion
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_torsion_site_symmetry_3'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

save__geom_torsion.site_symmetry_4
    _item_description.description
;              The symmetry code of the fourth of the four atom sites that
               define the torsion angle.
;
    _item.name                  '_geom_torsion.site_symmetry_4'
    _item.category_id             geom_torsion
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_geom_torsion_site_symmetry_4'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

save__geom_torsion.value
    _item_description.description
;              The value of the torsion angle in degrees.
;
    _item.name                  '_geom_torsion.value'
    _item.category_id             geom_torsion
    _item.mandatory_code          no
    _item_aliases.alias_name    '_geom_torsion'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_related.related_name  '_geom_torsion.value_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              degrees
     save_

save__geom_torsion.value_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _geom_torsion.value.
;
    _item.name                  '_geom_torsion.value_esd'
    _item.category_id             geom_torsion
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_geom_torsion.value'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              degrees
     save_

#############
## JOURNAL ##
#############

save_journal
    _category.description
;              Data items in the JOURNAL category record details about the
               book-keeping by the journal staff when processing
               a data block submitted for publication.

               The creator of a data block will not normally specify these data.
               The data names are not defined in the dictionary because they are
               for journal use only.
;
    _category.id                  journal
    _category.mandatory_code      no
    _category_key.name          '_journal.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'iucr_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on Acta Cryst. file for entry HL0007 [Willis, Beckwith
                & Tozer (1991). Acta Cryst. C47, 2276-2277].
;
;
    _journal.entry_id                 'TOZ'
    _journal.date_recd_electronic     1991-04-15
    _journal.date_from_coeditor       1991-04-18
    _journal.date_accepted            1991-04-18
    _journal.date_printers_first      1991-08-07
    _journal.date_proofs_out          1991-08-07
    _journal.coeditor_code            HL0007
    _journal.techeditor_code          C910963
    _journal.coden_ASTM               ACSCEE
    _journal.name_full      'Acta Crystallographica Section C'
    _journal.year                     1991
    _journal.volume                   47
    _journal.issue                    NOV91
    _journal.page_first               2276
    _journal.page_last                2277
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__journal.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_journal.entry_id'
    _item.mandatory_code          yes
     save_

save__journal.coden_ASTM
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.coden_ASTM'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_coden_ASTM'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.coden_Cambridge
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.coden_Cambridge'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_coden_Cambridge'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.coeditor_address
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.coeditor_address'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_coeditor_address'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__journal.coeditor_code
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.coeditor_code'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_coeditor_code'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.coeditor_email
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.coeditor_email'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_coeditor_email'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.coeditor_fax
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.coeditor_fax'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_coeditor_fax'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.coeditor_name
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.coeditor_name'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_coeditor_name'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.coeditor_notes
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.coeditor_notes'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_coeditor_notes'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__journal.coeditor_phone
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.coeditor_phone'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_coeditor_phone'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.data_validation_number
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.data_validation_number'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_data_validation_number'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               code
     save_

save__journal.date_accepted
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.date_accepted'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_date_accepted'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               yyyy-mm-dd
     save_

save__journal.date_from_coeditor
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.date_from_coeditor'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_date_from_coeditor'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               yyyy-mm-dd
     save_

save__journal.date_to_coeditor
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.date_to_coeditor'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_date_to_coeditor'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               yyyy-mm-dd
     save_

save__journal.date_printers_final
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.date_printers_final'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_date_printers_final'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               yyyy-mm-dd
     save_

save__journal.date_printers_first
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.date_printers_first'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_date_printers_first'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               yyyy-mm-dd
     save_

save__journal.date_proofs_in
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.date_proofs_in'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_date_proofs_in'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               yyyy-mm-dd
     save_

save__journal.date_proofs_out
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.date_proofs_out'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_date_proofs_out'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               yyyy-mm-dd
     save_

save__journal.date_recd_copyright
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.date_recd_copyright'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_date_recd_copyright'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               yyyy-mm-dd
     save_

save__journal.date_recd_electronic
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.date_recd_electronic'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_date_recd_electronic'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               yyyy-mm-dd
     save_

save__journal.date_recd_hard_copy
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.date_recd_hard_copy'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_date_recd_hard_copy'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               yyyy-mm-dd
     save_

save__journal.issue
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.issue'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_issue'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.language
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.language'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_language'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.name_full
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.name_full'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_name_full'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.page_first
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.page_first'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_page_first'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.page_last
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.page_last'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_page_last'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.paper_category
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.paper_category'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_paper_category'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.suppl_publ_number
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.suppl_publ_number'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_suppl_publ_number'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.suppl_publ_pages
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.suppl_publ_pages'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_suppl_publ_pages'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.techeditor_address
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.techeditor_address'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_techeditor_address'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__journal.techeditor_code
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.techeditor_code'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_techeditor_code'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.techeditor_email
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.techeditor_email'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_techeditor_email'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.techeditor_fax
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.techeditor_fax'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_techeditor_fax'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.techeditor_name
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.techeditor_name'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_techeditor_name'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.techeditor_notes
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.techeditor_notes'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_techeditor_notes'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__journal.techeditor_phone
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.techeditor_phone'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_techeditor_phone'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.volume
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.volume'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_volume'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal.year
     _item_description.description
;              Journal data items are defined by the journal staff.
;
    _item.name                  '_journal.year'
    _item.category_id             journal
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_year'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

###################
## JOURNAL_INDEX ##
###################

save_journal_index
    _category.description
;              Data items in the JOURNAL_INDEX category are used to list terms
               used to generate the journal indexes.

               The creator of a data block will not normally specify these data
               items.
;
    _category.id                  journal_index
    _category.mandatory_code      no
    loop_
    _category_key.name          '_journal_index.type'
                                '_journal_index.term'
    loop_
    _category_group.id           'inclusive_group'
                                 'iucr_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on a paper by Zhu, Reynolds, Klein & Trudell
                [Acta Cryst. (1994), C50, 2067-2069].
;
;
    loop_
    _journal_index.type
    _journal_index.term
    _journal_index.subterm
      O   C16H19NO4            .
      S   alkaloids           (-)-norcocaine
      S   (-)-norcocaine       .
      S
    ;  [2R,3S-(2\b,3\b)]-methyl
       3-(benzoyloxy)-8-azabicyclo[3.2.1]octane-2-carboxylate
    ;
        .
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__journal_index.subterm
     _item_description.description
;              Journal index data items are defined by the journal staff.
;
    _item.name                  '_journal_index.subterm'
    _item.category_id             journal_index
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_index_subterm'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal_index.term
     _item_description.description
;              Journal index data items are defined by the journal staff.
;
    _item.name                  '_journal_index.term'
    _item.category_id             journal_index
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_index_term'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__journal_index.type
     _item_description.description
;              Journal index data items are defined by the journal staff.
;
    _item.name                  '_journal_index.type'
    _item.category_id             journal_index
    _item.mandatory_code          no
    _item_aliases.alias_name    '_journal_index_type'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

#############
## PHASING ##
#############

save_phasing
    _category.description
;              Data items in the PHASING category record details about the
               phasing of the structure, listing the various methods used in
               the phasing process. Details about the application of each
               method are listed in the appropriate subcategories.
;
    _category.id                  phasing
    _category.mandatory_code      no
    _category_key.name          '_phasing.method'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - hypothetical example.
;
;
    loop_
    _phasing.method
    'mir'
    'averaging'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__phasing.method
    _item_description.description
;              A listing of the method or methods used to phase this
               structure.
;
    _item.name                  '_phasing.method'
    _item.category_id             phasing
    _item.mandatory_code          yes
    _item_type.code               ucode
    loop_
    _item_examples.case
    _item_examples.detail         abinitio
;                                 phasing by ab initio methods
;
                                  averaging
;                                 phase improvement by averaging over multiple
                                  images of the structure
;
                                  dm
;                                 phasing by direct methods
;
                                  isas
;                                 phasing by iterative single-wavelength
                                  anomalous scattering
;
                                  isir
;                                 phasing by iterative single-wavelength
                                  isomorphous replacement
;
                                  isomorphous
;                                 phasing beginning with phases calculated from
                                  an isomorphous structure
;
                                  mad
;                                 phasing by multiple-wavelength anomalous
                                  dispersion
;
                                  mir
;                                 phasing by multiple isomorphous replacement
;
                                  miras
;                                 phasing by multiple isomorphous replacement
                                  with anomalous scattering
;
                                  mr
;                                 phasing by molecular replacement
;
                                  sir
;                                 phasing by single isomorphous replacement
;
                                  siras
;                                 phasing by single isomorphous replacement
                                  with anomalous scattering
;
     save_

#######################
## PHASING_AVERAGING ##
#######################

save_phasing_averaging
    _category.description
;              Data items in the PHASING_AVERAGING category record details
               about the phasing of the structure where methods involving
               averaging of multiple observations of the molecule in the
               asymmetric unit are involved.
;
    _category.id                  phasing_averaging
    _category.mandatory_code      no
    _category_key.name          '_phasing_averaging.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - hypothetical example.
;
;
    _phasing_averaging.entry_id     'EXAMHYPO'
    _phasing_averaging.method
    ; Iterative threefold averaging alternating with phase
      extensions by 0.5 reciprocal lattice units per cycle.
    ;
    _phasing_averaging.details
    ; The position of the threefold axis was redetermined every
      five cycles.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   save_

save__phasing_averaging.details
    _item_description.description
;              A description of special aspects of the averaging process.
;
    _item.name                  '_phasing_averaging.details'
    _item.category_id             phasing_averaging
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__phasing_averaging.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_phasing_averaging.entry_id'
    _item.mandatory_code          yes
     save_

save__phasing_averaging.method
    _item_description.description
;              A description of the phase-averaging phasing method used to
               phase this structure.

               Note that this is not the computer program used, which is
               described in the SOFTWARE category, but rather the method
               itself.

               This data item should be used to describe significant
               methodological options used within the phase-averaging program.
;
    _item.name                  '_phasing_averaging.method'
    _item.category_id             phasing_averaging
    _item.mandatory_code          no
    _item_type.code               text
     save_

#########################
## PHASING_ISOMORPHOUS ##
#########################

save_phasing_isomorphous
    _category.description
;              Data items in the PHASING_ISOMORPHOUS category record details
               about the phasing of the structure where a model isomorphous
               to the structure being phased was used to generate the initial
               phases.
;
    _category.id                  phasing_isomorphous
    _category.mandatory_code      no
    _category_key.name          '_phasing_isomorphous.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 4PHV and laboratory records for the
                structure corresponding to PDB entry 4PHV.
;
;
    _phasing_isomorphous.parent            'PDB entry 5HVP'
    _phasing_isomorphous.details
    ; The inhibitor and all solvent atoms were removed from the
      parent structure before beginning refinement. All static
      disorder present in the parent structure was also removed.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__phasing_isomorphous.details
    _item_description.description
;              A description of special aspects of the isomorphous phasing.
;
    _item.name                  '_phasing_isomorphous.details'
    _item.category_id             phasing_isomorphous
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 Residues 13-18 were eliminated from the
                                  starting model as it was anticipated that
                                  binding of the inhibitor would cause a
                                  structural rearrangement in this part of the
                                  structure.
;
     save_

save__phasing_isomorphous.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_phasing_isomorphous.entry_id'
    _item.mandatory_code          yes
     save_

save__phasing_isomorphous.method
    _item_description.description
;              A description of the isomorphous-phasing method used to
               phase this structure.

               Note that this is not the computer program used, which is
               described in the SOFTWARE category, but rather the method
               itself.

               This data item should be used to describe significant
               methodological options used within the isomorphous phasing
               program.
;
    _item.name                  '_phasing_isomorphous.method'
    _item.category_id             phasing_isomorphous
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 Iterative threefold averaging alternating with
                                  phase extension by 0.5 reciprocal lattice
                                  units per cycle.
;
     save_

save__phasing_isomorphous.parent
    _item_description.description
;              Reference to the structure used to generate starting phases
               if the structure referenced in this data block was phased
               by virtue of being isomorphous to a known structure (e.g.
               a mutant that crystallizes in the same space group as the
               wild-type protein.)
;
    _item.name                  '_phasing_isomorphous.parent'
    _item.category_id             phasing_isomorphous
    _item.mandatory_code          no
    _item_type.code               text
     save_

#################
## PHASING_MAD ##
#################

save_phasing_MAD
    _category.description
;              Data items in the PHASING_MAD category record details about
               the phasing of the structure where methods involving
               multiple-wavelength anomalous-dispersion techniques are involved.
;
    _category.id                  phasing_MAD
    _category.mandatory_code      no
    _category_key.name          '_phasing_MAD.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on a paper by Shapiro et al. [Nature (London)
                (1995), 374, 327-337].
;
;
    _phasing_MAD.entry_id        'NCAD'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__phasing_MAD.details
    _item_description.description
;              A description of special aspects of the MAD phasing.
;
    _item.name                  '_phasing_MAD.details'
    _item.category_id             phasing_MAD
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__phasing_MAD.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_phasing_MAD.entry_id'
    _item.mandatory_code          yes
     save_

save__phasing_MAD.method
    _item_description.description
;              A description of the MAD phasing method used to phase
               this structure.

               Note that this is not the computer program used, which is
               described in the SOFTWARE category, but rather the method
               itself.

               This data item should be used to describe significant
               methodological options used within the MAD phasing program.
;
    _item.name                  '_phasing_MAD.method'
    _item.category_id             phasing_MAD
    _item.mandatory_code          no
    _item_type.code               text
     save_

#######################
## PHASING_MAD_CLUST ##
#######################

save_phasing_MAD_clust
    _category.description
;              Data items in the PHASING_MAD_CLUST category record details
               about a cluster of experiments that contributed to the
               generation of a set of phases.
;
    _category.id                  phasing_MAD_clust
    _category.mandatory_code      no
    loop_
    _category_key.name          '_phasing_MAD_clust.expt_id'
                                '_phasing_MAD_clust.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on a paper by Shapiro et al. [Nature (London)
                (1995), 374, 327-337].
;
;
    loop_
    _phasing_MAD_clust.id
    _phasing_MAD_clust.expt_id
    _phasing_MAD_clust.number_set
      '4 wavelength'  1  4
      '5 wavelength'  1  5
      '5 wavelength'  2  5
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__phasing_MAD_clust.expt_id
    _item_description.description
;              This data item is a pointer to _phasing_MAD_expt.id in the
               PHASING_MAD_EXPT category.
;
    _item.name                  '_phasing_MAD_clust.expt_id'
    _item.mandatory_code          yes
     save_

save__phasing_MAD_clust.id
    _item_description.description
;              The value of _phasing_MAD_clust.id must, together with
               _phasing_MAD_clust.expt_id, uniquely identify a record in the
               PHASING_MAD_CLUST list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_phasing_MAD_clust.id'        phasing_MAD_clust  yes
               '_phasing_MAD_set.clust_id'    phasing_MAD_set    yes
               '_phasing_MAD_ratio.clust_id'  phasing_MAD_ratio  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_phasing_MAD_set.clust_id'    '_phasing_MAD_clust.id'
               '_phasing_MAD_ratio.clust_id'  '_phasing_MAD_clust.id'
    _item_type.code               code
     save_

save__phasing_MAD_clust.number_set
    _item_description.description
;              The number of data sets in this cluster of data sets.
;
    _item.name                  '_phasing_MAD_clust.number_set'
    _item.category_id             phasing_MAD_clust
    _item.mandatory_code          no
    _item_type.code               int
     save_

######################
## PHASING_MAD_EXPT ##
######################

save_phasing_MAD_expt
    _category.description
;              Data items in the PHASING_MAD_EXPT category record details about
               a MAD phasing experiment, such as the number of experiments that
               were clustered together to produce a set of phases or the
               statistics for those phases.
;
    _category.id                  phasing_MAD_expt
    _category.mandatory_code      no
    _category_key.name          '_phasing_MAD_expt.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on a paper by Shapiro et al. [Nature (London)
                (1995), 374, 327-337].
;
;
    loop_
    _phasing_MAD_expt.id
    _phasing_MAD_expt.number_clust
    _phasing_MAD_expt.R_normal_all
    _phasing_MAD_expt.R_normal_anom_scat
    _phasing_MAD_expt.delta_delta_phi
    _phasing_MAD_expt.delta_phi_sigma
    _phasing_MAD_expt.mean_fom
      1  2  0.063  0.451  58.5  20.3  0.88
      2  1  0.051  0.419  36.8  18.2  0.93
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__phasing_MAD_expt.delta_delta_phi
    _item_description.description
;              The difference between two independent determinations of
               _phasing_MAD_expt.delta_phi.
;
    _item.name                  '_phasing_MAD_expt.delta_delta_phi'
    _item.category_id             phasing_MAD_expt
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MAD_expt.delta_phi
    _item_description.description
;              The phase difference between F~t~(h), the structure factor due
               to normal scattering from all atoms, and F~a~(h), the structure
               factor due to normal scattering from only the anomalous
               scatterers.
;
    _item.name                  '_phasing_MAD_expt.delta_phi'
    _item.category_id             phasing_MAD_expt
    _item.mandatory_code          no
    _item_type.code               float
    _item_related.related_name  '_phasing_MAD_expt.delta_phi_sigma'
    _item_related.function_code   associated_esd
     save_

save__phasing_MAD_expt.delta_phi_sigma
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _phasing_MAD_expt.delta_phi.
;
    _item.name                  '_phasing_MAD_expt.delta_phi_sigma'
    _item.category_id             phasing_MAD_expt
    _item.mandatory_code          no
    _item_related.related_name  '_phasing_MAD_expt.delta_phi'
    _item_related.function_code   associated_value
    _item_type.code               float
     save_

save__phasing_MAD_expt.id
    _item_description.description
;              The value of _phasing_MAD_expt.id must uniquely identify each
               record in the PHASING_MAD_EXPT list.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_phasing_MAD_expt.id'        phasing_MAD_expt   yes
               '_phasing_MAD_clust.expt_id'  phasing_MAD_clust  yes
               '_phasing_MAD_set.expt_id'    phasing_MAD_set    yes
               '_phasing_MAD_ratio.expt_id'  phasing_MAD_ratio  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_phasing_MAD_clust.expt_id'  '_phasing_MAD_expt.id'
               '_phasing_MAD_set.expt_id'    '_phasing_MAD_expt.id'
               '_phasing_MAD_ratio.expt_id'  '_phasing_MAD_expt.id'
    _item_type.code               code
     save_

save__phasing_MAD_expt.mean_fom
    _item_description.description
;              The mean figure of merit.
;
    _item.name                  '_phasing_MAD_expt.mean_fom'
    _item.category_id             phasing_MAD_expt
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MAD_expt.number_clust
    _item_description.description
;              The number of clusters of data sets in this phasing experiment.
;
    _item.name                  '_phasing_MAD_expt.number_clust'
    _item.category_id             phasing_MAD_expt
    _item.mandatory_code          no
    _item_type.code               int
     save_

save__phasing_MAD_expt.R_normal_all
    _item_description.description
;              Definition...
;
    _item.name                  '_phasing_MAD_expt.R_normal_all'
    _item.category_id             phasing_MAD_expt
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MAD_expt.R_normal_anom_scat
    _item_description.description
;              Definition...
;
    _item.name                  '_phasing_MAD_expt.R_normal_anom_scat'
    _item.category_id             phasing_MAD_expt
    _item.mandatory_code          no
    _item_type.code               float
     save_

#######################
## PHASING_MAD_RATIO ##
#######################

save_phasing_MAD_ratio
    _category.description
;              Data items in the PHASING_MAD_RATIO category record
               the ratios of phasing statistics between pairs of data sets
               in a MAD phasing experiment, in given shells of resolution.
;
    _category.id                  phasing_MAD_ratio
    _category.mandatory_code      no
    loop_
    _category_key.name          '_phasing_MAD_ratio.clust_id'
                                '_phasing_MAD_ratio.expt_id'
                                '_phasing_MAD_ratio.wavelength_1'
                                '_phasing_MAD_ratio.wavelength_2'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on a paper by Shapiro et al. [Nature (London)
                (1995), 374, 327-337].
;
;
    loop_
    _phasing_MAD_ratio.expt_id
    _phasing_MAD_ratio.clust_id
    _phasing_MAD_ratio.wavelength_1
    _phasing_MAD_ratio.wavelength_2
    _phasing_MAD_ratio.d_res_low
    _phasing_MAD_ratio.d_res_high
    _phasing_MAD_ratio.ratio_two_wl
    _phasing_MAD_ratio.ratio_one_wl
    _phasing_MAD_ratio.ratio_one_wl_centric
     1 '4 wavelength' 1.4013 1.4013 20.00 4.00     . 0.084 0.076
     1 '4 wavelength' 1.4013 1.3857 20.00 4.00 0.067     .     .
     1 '4 wavelength' 1.4013 1.3852 20.00 4.00 0.051     .     .
     1 '4 wavelength' 1.4013 1.3847 20.00 4.00 0.044     .     .
     1 '4 wavelength' 1.3857 1.3857 20.00 4.00     . 0.110 0.049
     1 '4 wavelength' 1.3857 1.3852 20.00 4.00 0.049     .     .
     1 '4 wavelength' 1.3857 1.3847 20.00 4.00 0.067     .     .
     1 '4 wavelength' 1.3852 1.3852 20.00 4.00     . 0.149 0.072
     1 '4 wavelength' 1.3852 1.3847 20.00 4.00 0.039     .     .
     1 '4 wavelength' 1.3847 1.3847 20.00 4.00     . 0.102 0.071

     1 '4 wavelength' 1.4013 1.4013  4.00 3.00     . 0.114 0.111
     1 '4 wavelength' 1.4013 1.3857  4.00 3.00 0.089     .     .
     1 '4 wavelength' 1.4013 1.3852  4.00 3.00 0.086     .     .
     1 '4 wavelength' 1.4013 1.3847  4.00 3.00 0.077     .     .
     1 '4 wavelength' 1.3857 1.3857  4.00 3.00     . 0.140 0.127
     1 '4 wavelength' 1.3857 1.3852  4.00 3.00 0.085     .     .
     1 '4 wavelength' 1.3857 1.3847  4.00 3.00 0.089     .     .
     1 '4 wavelength' 1.3852 1.3852  4.00 3.00     . 0.155 0.119
     1 '4 wavelength' 1.3852 1.3847  4.00 3.00 0.082     .     .
     1 '4 wavelength' 1.3847 1.3847  4.00 3.00     . 0.124 0.120

     1 '5 wavelength' 1.3857 1.3857 20.00 4.00     . 0.075 0.027
     1 '5 wavelength' 1.3857 1.3852 20.00 4.00 0.041     .     .
     1 '5 wavelength' 1.3857 1.3847 20.00 4.00 0.060     .     .
     1 '5 wavelength' 1.3857 1.3784 20.00 4.00 0.057     .     .
     1 '5 wavelength' 1.3857 1.2862 20.00 4.00 0.072     .     .
     1 '5 wavelength' 1.3852 1.3852 20.00 4.00     . 0.105 0.032
     1 '5 wavelength' 1.3852 1.3847 20.00 4.00 0.036     .     .
     1 '5 wavelength' 1.3852 1.3784 20.00 4.00 0.044     .     .
     1 '5 wavelength' 1.3852 1.2862 20.00 4.00 0.065     .     .
     1 '5 wavelength' 1.3847 1.3847 20.00 4.00     . 0.072 0.031
     1 '5 wavelength' 1.3847 1.3784 20.00 4.00 0.040     .     .
     1 '5 wavelength' 1.3847 1.2862 20.00 4.00 0.059     .     .
     1 '5 wavelength' 1.3784 1.3784 20.00 4.00     . 0.059 0.032
     1 '5 wavelength' 1.3784 1.2862 20.00 4.00 0.059     .     .
     1 '5 wavelength' 1.2862 1.3847 20.00 4.00     . 0.058 0.028

     1 '5 wavelength' 1.3857 1.3857  4.00 3.00     . 0.078 0.075
     1 '5 wavelength' 1.3857 1.3852  4.00 3.00 0.059     .     .
     1 '5 wavelength' 1.3857 1.3847  4.00 3.00 0.067     .     .
     1 '5 wavelength' 1.3857 1.3784  4.00 3.00 0.084     .     .
     1 '5 wavelength' 1.3857 1.2862  4.00 3.00 0.073     .     .
     1 '5 wavelength' 1.3852 1.3852  4.00 3.00     . 0.101 0.088
     1 '5 wavelength' 1.3852 1.3847  4.00 3.00 0.066     .     .
     1 '5 wavelength' 1.3852 1.3784  4.00 3.00 0.082     .     .
     1 '5 wavelength' 1.3852 1.2862  4.00 3.00 0.085     .     .
     1 '5 wavelength' 1.3847 1.3847  4.00 3.00     . 0.097 0.074
     1 '5 wavelength' 1.3847 1.3784  4.00 3.00 0.081     .     .
     1 '5 wavelength' 1.3847 1.2862  4.00 3.00 0.085     .     .
     1 '5 wavelength' 1.3784 1.3784  4.00 3.00     . 0.114 0.089
     1 '5 wavelength' 1.3784 1.2862  4.00 3.00 0.103     .     .
     1 '5 wavelength' 1.2862 1.2862  4.00 3.00     . 0.062 0.060

     2 '5 wavelength' 0.7263 0.7263 15.00 3.00     . 0.035 0.026
     2 '5 wavelength' 0.7263 0.7251 15.00 3.00 0.028     .     .
     2 '5 wavelength' 0.7263 0.7284 15.00 3.00 0.023     .     .
     2 '5 wavelength' 0.7263 0.7246 15.00 3.00 0.025     .     .
     2 '5 wavelength' 0.7263 0.7217 15.00 3.00 0.026     .     .
     2 '5 wavelength' 0.7251 0.7251 15.00 3.00     . 0.060 0.026
     2 '5 wavelength' 0.7251 0.7284 15.00 3.00 0.029     .     .
     2 '5 wavelength' 0.7251 0.7246 15.00 3.00 0.031     .     .
     2 '5 wavelength' 0.7251 0.7217 15.00 3.00 0.035     .     .
     2 '5 wavelength' 0.7284 0.7284 15.00 3.00     . 0.075 0.030
     2 '5 wavelength' 0.7284 0.7246 15.00 3.00 0.023     .     .
     2 '5 wavelength' 0.7284 0.7217 15.00 3.00 0.027     .     .
     2 '5 wavelength' 0.7246 0.7246 15.00 3.00     . 0.069 0.026
     2 '5 wavelength' 0.7246 0.7217 15.00 3.00 0.024     .     .
     2 '5 wavelength' 0.7217 0.7284 15.00 3.00     . 0.060 0.028

     2 '5 wavelength' 0.7263 0.7263  3.00 1.90     . 0.060 0.050
     2 '5 wavelength' 0.7263 0.7251  3.00 1.90 0.056     .     .
     2 '5 wavelength' 0.7263 0.7284  3.00 1.90 0.055     .     .
     2 '5 wavelength' 0.7263 0.7246  3.00 1.90 0.053     .     .
     2 '5 wavelength' 0.7263 0.7217  3.00 1.90 0.056     .     .
     2 '5 wavelength' 0.7251 0.7251  3.00 1.90     . 0.089 0.050
     2 '5 wavelength' 0.7251 0.7284  3.00 1.90 0.054     .     .
     2 '5 wavelength' 0.7251 0.7246  3.00 1.90 0.058     .     .
     2 '5 wavelength' 0.7251 0.7217  3.00 1.90 0.063     .     .
     2 '5 wavelength' 0.7284 0.7284  3.00 1.90     . 0.104 0.057
     2 '5 wavelength' 0.7284 0.7246  3.00 1.90 0.052     .     .
     2 '5 wavelength' 0.7284 0.7217  3.00 1.90 0.057     .     .
     2 '5 wavelength' 0.7246 0.7246  3.00 1.90     . 0.098 0.052
     2 '5 wavelength' 0.7246 0.7217  3.00 1.90 0.054     .     .
     2 '5 wavelength' 0.7217 0.7284  3.00 1.90     . 0.089 0.060
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__phasing_MAD_ratio.d_res_high
    _item_description.description
;              The lowest value for the interplanar spacings for the
               reflection data used for the comparison of Bijvoet differences.
               This is called the highest resolution.
;
    _item.name                  '_phasing_MAD_ratio.d_res_high'
    _item.category_id             phasing_MAD_ratio
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MAD_ratio.d_res_low
    _item_description.description
;              The highest value for the interplanar spacings for the
               reflection data used for the comparison of Bijvoet differences.
               This is called the lowest resolution.
;
    _item.name                  '_phasing_MAD_ratio.d_res_low'
    _item.category_id             phasing_MAD_ratio
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MAD_ratio.expt_id
    _item_description.description
;              This data item is a pointer to _phasing_MAD_expt.id in the
               PHASING_MAD_EXPT category.
;
    _item.name                  '_phasing_MAD_ratio.expt_id'
    _item.mandatory_code          yes
     save_

save__phasing_MAD_ratio.clust_id
    _item_description.description
;              This data item is a pointer to _phasing_MAD_clust.id in
               the PHASING_MAD_CLUST category.
;
    _item.name                  '_phasing_MAD_ratio.clust_id'
    _item.mandatory_code          yes
     save_

save__phasing_MAD_ratio.ratio_one_wl
    _item_description.description
;              The root-mean-square Bijvoet difference at one wavelength for
               all reflections.
;
    _item.name                  '_phasing_MAD_ratio.ratio_one_wl'
    _item.category_id             phasing_MAD_ratio
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MAD_ratio.ratio_one_wl_centric
    _item_description.description
;              The root-mean-square Bijvoet difference at one wavelength for
               centric reflections. This would be equal to zero for perfect
               data and thus serves as an estimate of the noise in the
               anomalous signals.
;
    _item.name                  '_phasing_MAD_ratio.ratio_one_wl_centric'
    _item.category_id             phasing_MAD_ratio
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MAD_ratio.ratio_two_wl
    _item_description.description
;              The root-mean-square dispersive Bijvoet difference between
               two wavelengths for all reflections.
;
    _item.name                  '_phasing_MAD_ratio.ratio_two_wl'
    _item.category_id             phasing_MAD_ratio
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MAD_ratio.wavelength_1
    _item_description.description
;              This data item is a pointer to _phasing_MAD_set.wavelength in
               the PHASING_MAD_SET category.
;
    _item.name                  '_phasing_MAD_ratio.wavelength_1'
    _item.mandatory_code          yes
     save_

save__phasing_MAD_ratio.wavelength_2
    _item_description.description
;              This data item is a pointer to _phasing_MAD_set.wavelength in
               the PHASING_MAD_SET category.
;
    _item.name                  '_phasing_MAD_ratio.wavelength_2'
    _item.mandatory_code          yes
     save_

#####################
## PHASING_MAD_SET ##
#####################

save_phasing_MAD_set
    _category.description
;              Data items in the PHASING_MAD_SET category record
               details about the individual data sets used in a MAD phasing
               experiment.
;
    _category.id                  phasing_MAD_set
    _category.mandatory_code      no
    loop_
    _category_key.name          '_phasing_MAD_set.expt_id'
                                '_phasing_MAD_set.clust_id'
                                '_phasing_MAD_set.set_id'
                                '_phasing_MAD_set.wavelength'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on a paper by Shapiro et al. [Nature (London)
                (1995), 374, 327-337].
;
;
    loop_
    _phasing_MAD_set.expt_id
    _phasing_MAD_set.clust_id
    _phasing_MAD_set.set_id
    _phasing_MAD_set.wavelength
    _phasing_MAD_set.wavelength_details
    _phasing_MAD_set.d_res_low
    _phasing_MAD_set.d_res_high
    _phasing_MAD_set.f_prime
    _phasing_MAD_set.f_double_prime
      1 '4 wavelength' aa 1.4013 'pre-edge'        20.00   3.00
                                                  -12.48   3.80
      1 '4 wavelength' bb 1.3857 'peak'           20.00   3.00
                                                  -31.22  17.20
      1 '4 wavelength' cc 1.3852 'edge'            20.00   3.00
                                                  -13.97  29.17
      1 '4 wavelength' dd 1.3847 'remote'          20.00   3.00
                                                   -6.67  17.34
      1 '5 wavelength' ee 1.3857 'ascending edge'  20.00   3.00
                                                  -28.33  14.84
      1 '5 wavelength' ff 1.3852 'peak'            20.00   3.00
                                                  -21.50  30.23
      1 '5 wavelength' gg 1.3847 'descending edge' 20.00   3.00
                                                  -10.71  20.35
      1 '5 wavelength' hh 1.3784 'remote 1'        20.00   3.00
                                                  -14.45  11.84
      1 '5 wavelength' ii 1.2862 'remote 2'        20.00   3.00
                                                   -9.03   9.01
      2 '5 wavelength' jj 0.7263 'pre-edge'        15.00   1.90
                                                  -21.10   4.08
      2 '5 wavelength' kk 0.7251 'edge'            15.00   1.90
                                                  -34.72   7.92
      2 '5 wavelength' ll 0.7248 'peak'            15.00   1.90
                                                  -24.87  10.30
      2 '5 wavelength' mm 0.7246 'descending edge' 15.00   1.90
                                                  -17.43   9.62
      2 '5 wavelength' nn 0.7217 'remote'          15.00   1.90
                                                  -13.26   8.40
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__phasing_MAD_set.clust_id
    _item_description.description
;              This data item is a pointer to _phasing_MAD_clust.id in
               the PHASING_MAD_CLUST category.
;
    _item.name                  '_phasing_MAD_set.clust_id'
    _item.mandatory_code          yes
     save_

save__phasing_MAD_set.d_res_high
    _item_description.description
;              The lowest value for the interplanar spacings for the
               reflection data used for this set of data. This is called
               the highest resolution.
;
    _item.name                  '_phasing_MAD_set.d_res_high'
    _item.category_id             phasing_MAD_set
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MAD_set.d_res_low
    _item_description.description
;              The highest value for the interplanar spacings for the
               reflection data used for this set of data. This is called
               the lowest resolution.
;
    _item.name                  '_phasing_MAD_set.d_res_low'
    _item.category_id             phasing_MAD_set
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MAD_set.expt_id
    _item_description.description
;              This data item is a pointer to _phasing_MAD_expt.id in the
               PHASING_MAD_EXPT category.
;
    _item.name                  '_phasing_MAD_set.expt_id'
    _item.mandatory_code          yes
     save_

save__phasing_MAD_set.f_double_prime
    _item_description.description
;              The f'' component of the anomalous scattering factor for this
               wavelength.
;
    _item.name                  '_phasing_MAD_set.f_double_prime'
    _item.category_id             phasing_MAD_set
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MAD_set.f_prime
    _item_description.description
;              The f' component of the anomalous scattering factor for this
               wavelength.
;
    _item.name                  '_phasing_MAD_set.f_prime'
    _item.category_id             phasing_MAD_set
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MAD_set.set_id
    _item_description.description
;              This data item is a pointer to _phasing_set.id in the
               PHASING_SET category.
;
    _item.name                  '_phasing_MAD_set.set_id'
    _item.mandatory_code          yes
     save_

save__phasing_MAD_set.wavelength
    _item_description.description
;              The wavelength at which this data set was measured.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_phasing_MAD_set.wavelength'      phasing_MAD_set    yes
               '_phasing_MAD_ratio.wavelength_1'  phasing_MAD_ratio  yes
               '_phasing_MAD_ratio.wavelength_2'  phasing_MAD_ratio  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_phasing_MAD_ratio.wavelength_1'  '_phasing_MAD_set.wavelength'
               '_phasing_MAD_ratio.wavelength_2'  '_phasing_MAD_set.wavelength'
    _item_type.code               float
     save_

save__phasing_MAD_set.wavelength_details
    _item_description.description
;              A descriptor for this wavelength in this cluster of data sets.
;
    _item.name                  '_phasing_MAD_set.wavelength_details'
    _item.category_id             phasing_MAD_set
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'peak'
                                 'remote'
                                 'ascending edge'
     save_

#################
## PHASING_MIR ##
#################

save_phasing_MIR
    _category.description
;              Data items in the PHASING_MIR category record details about
               the phasing of the structure where methods involving isomorphous
               replacement are involved.

               All isomorphous-replacement-based techniques are covered
               by this category, including single isomorphous replacement (SIR),
               multiple isomorphous replacement (MIR) and single or multiple
               isomorphous replacement plus anomalous scattering (SIRAS, MIRAS).
;
    _category.id                  phasing_MIR
    _category.mandatory_code      no
    _category_key.name          '_phasing_MIR.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on a paper by Zanotti et al. [J. Biol. Chem.
                (1993), 268, 10728-10738].
;
;
    _phasing_MIR.method
    ; Standard phase refinement (Blow & Crick, 1959)
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__phasing_MIR.details
    _item_description.description
;              A description of special aspects of the isomorphous-replacement
               phasing.
;
    _item.name                  '_phasing_MIR.details'
    _item.category_id             phasing_MIR
    _item.mandatory_code          no
    _item_type.code               text
     save_


save__phasing_MIR.d_res_high
    _item_description.description
;              The lowest value in angstroms for the interplanar spacings
               for the reflection data used for the native data set. This is
               called the highest resolution.
;
    _item.name                  '_phasing_MIR.d_res_high'
    _item.category_id             phasing_MIR
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_phasing_MIR.ebi_d_res_high'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_MIR.d_res_low
    _item_description.description
;              The highest value in angstroms for the interplanar spacings
               for the reflection data used for the native data set. This is
               called the lowest resolution.
;
    _item.name                  '_phasing_MIR.d_res_low'
    _item.category_id             phasing_MIR
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_phasing_MIR.ebi_d_res_low'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_MIR.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_phasing_MIR.entry_id'
    _item.mandatory_code          yes
     save_


save__phasing_MIR.FOM
    _item_description.description
;              The mean value of the figure of merit m for all reflections
               phased in the native data set.

                   int P~alpha~ exp(i*alpha) dalpha
               m = --------------------------------
                         int P~alpha~ dalpha

               P~a~ = the probability that the phase angle a is correct

               the integral is taken over the range alpha = 0 to 2 pi.
;
    _item.name                  '_phasing_MIR.FOM'
    _item.category_id             phasing_MIR
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR.ebi_fom'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR.FOM_acentric
    _item_description.description
;              The mean value of the figure of merit m for the acentric
               reflections phased in the native data set.

                   int P~alpha~ exp(i*alpha) dalpha
               m = --------------------------------
                         int P~alpha~ dalpha

               P~a~ = the probability that the phase angle a is correct

               the integral is taken over the range alpha = 0 to 2 pi.
;
    _item.name                  '_phasing_MIR.FOM_acentric'
    _item.category_id             phasing_MIR
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR.ebi_fom_acentric'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR.FOM_centric
    _item_description.description
;              The mean value of the figure of merit m for the centric
               reflections phased in the native data set.

                   int P~alpha~ exp(i*alpha) dalpha
               m = --------------------------------
                         int P~alpha~ dalpha

               P~a~ = the probability that the phase angle a is correct

               the integral is taken over the range alpha = 0 to 2 pi.
;
    _item.name                  '_phasing_MIR.FOM_centric'
    _item.category_id             phasing_MIR
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR.ebi_fom_centric'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR.method
    _item_description.description
;              A description of the MIR phasing method applied to phase this
               structure.

               Note that this is not the computer program used, which is
               described in the SOFTWARE category, but rather the method
               itself.

               This data item should be used to describe significant
               methodological options used within the MIR phasing program.
;
    _item.name                  '_phasing_MIR.method'
    _item.category_id             phasing_MIR
    _item.mandatory_code          no
    _item_type.code               text
     save_


save__phasing_MIR.reflns
    _item_description.description
;              The total number of reflections phased in the native data set.
;
    _item.name                  '_phasing_MIR.reflns'
    _item.category_id             phasing_MIR
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR.ebi_reflns'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__phasing_MIR.reflns_acentric
    _item_description.description
;              The number of acentric reflections phased in the native data
               set.
;
    _item.name                  '_phasing_MIR.reflns_acentric'
    _item.category_id             phasing_MIR
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR.ebi_reflns_acentric'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__phasing_MIR.reflns_centric
    _item_description.description
;              The number of centric reflections phased in the native data
               set.
;
    _item.name                  '_phasing_MIR.reflns_centric'
    _item.category_id             phasing_MIR
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR.ebi_reflns_centric'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__phasing_MIR.reflns_criterion
    _item_description.description
;              Criterion used to limit the reflections used in the phasing
               calculations.
;
    _item.name                  '_phasing_MIR.reflns_criterion'
    _item.category_id             phasing_MIR
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR.ebi_reflns_criteria'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    _item_type.code               text
    _item_examples.case          '> 4 \s(I)'
     save_



#####################
## PHASING_MIR_DER ##
#####################

save_phasing_MIR_der
    _category.description
;              Data items in the PHASING_MIR_DER category record details
               about individual derivatives used in the phasing of the
               structure when methods involving isomorphous replacement are
               involved.

               A derivative in this context does not necessarily equate with
               a data set; for instance, the same data set could be used to
               one resolution limit as an isomorphous scatterer and to a
               different resolution (and with a different sigma cutoff) as an
               anomalous scatterer. These would be treated as two distinct
               derivatives, although both derivatives would point to the same
               data sets via _phasing_MIR_der.der_set_id and
               _phasing_MIR_der.native_set_id.
;
    _category.id                  phasing_MIR_der
    _category.mandatory_code      no
    _category_key.name          '_phasing_MIR_der.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on a paper by Zanotti et al. [J. Biol. Chem.
                (1993), 268, 10728-10738].
;
;
    loop_
    _phasing_MIR_der.id
    _phasing_MIR_der.number_of_sites
    _phasing_MIR_der.details
     KAu(CN)2  3
           'major site interpreted in difference Patterson'
     K2HgI4    6  'sites found in cross-difference Fourier'
     K3IrCl6   2  'sites found in cross-difference Fourier'
     All      11  'data for all three derivatives combined'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__phasing_MIR_der.d_res_high
    _item_description.description
;              The lowest value for the interplanar spacings for the
               reflection data used for this derivative. This is called the
               highest resolution.
;
    _item.name                  '_phasing_MIR_der.d_res_high'
    _item.category_id             phasing_MIR_der
    _item.mandatory_code          yes
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_MIR_der.d_res_low
    _item_description.description
;              The highest value for  the interplanar spacings for the
               reflection data used for this derivative. This is called the
               lowest resolution.
;
    _item.name                  '_phasing_MIR_der.d_res_low'
    _item.category_id             phasing_MIR_der
    _item.mandatory_code          yes
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_MIR_der.der_set_id
    _item_description.description
;              The data set that was treated as the derivative in this
               experiment.

               This data item is a pointer to _phasing_set.id in the
               PHASING_SET category.
;
    _item.name                  '_phasing_MIR_der.der_set_id'
    _item.mandatory_code          yes
     save_

save__phasing_MIR_der.details
    _item_description.description
;              A description of special aspects of this derivative, its data,
               its solution or its use in phasing.
;
    _item.name                  '_phasing_MIR_der.details'
    _item.category_id             phasing_MIR_der
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__phasing_MIR_der.id
    _item_description.description
;              The value of _phasing_MIR_der.id must uniquely identify
               a record in the PHASING_MIR_DER list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_phasing_MIR_der.id'            phasing_MIR_der        yes
               '_phasing_MIR_der_refln.der_id'  phasing_MIR_der_refln  yes
               '_phasing_MIR_der_shell.der_id'  phasing_MIR_der_shell  yes
               '_phasing_MIR_der_site.der_id'   phasing_MIR_der_site   yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_phasing_MIR_der_refln.der_id'  '_phasing_MIR_der.id'
               '_phasing_MIR_der_shell.der_id'  '_phasing_MIR_der.id'
               '_phasing_MIR_der_site.der_id'   '_phasing_MIR_der.id'
    _item_type.code               line
    loop_
    _item_examples.case          'KAu(CN)2'
                                 'K2HgI4_anom'
                                 'K2HgI4_iso'
     save_

save__phasing_MIR_der.native_set_id
    _item_description.description
;              The data set that was treated as the native in this
               experiment.

               This data item is a pointer to _phasing_set.id in the
               PHASING_SET category.
;
    _item.name                  '_phasing_MIR_der.native_set_id'
    _item.mandatory_code          yes
     save_

save__phasing_MIR_der.number_of_sites
    _item_description.description
;              The number of heavy-atom sites in this derivative.
;
    _item.name                  '_phasing_MIR_der.number_of_sites'
    _item.category_id             phasing_MIR_der
    _item.mandatory_code          no
    _item_type.code               int
     save_


save__phasing_MIR_der.power_acentric
    _item_description.description
;              The mean phasing power P for acentric reflections for this
               derivative.

                          sum|Fh~calc~^2^|
               P = (----------------------------)^1/2^
                    sum|Fph~obs~ - Fph~calc~|^2^

               Fph~obs~  = the observed structure-factor amplitude of this
                           derivative
               Fph~calc~ = the calculated structure-factor amplitude of this
                           derivative
               Fh~calc~  = the calculated structure-factor amplitude from the
                           heavy-atom model

               sum is taken over the specified reflections
;
    _item.name                  '_phasing_MIR_der.power_acentric'
    _item.category_id             phasing_MIR_der
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_der.ebi_power_acentric'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_der.power_centric
    _item_description.description
;              The mean phasing power P for centric reflections for this
               derivative.

                          sum|Fh~calc~^2^|
               P = (----------------------------)^1/2^
                    sum|Fph~obs~ - Fph~calc~|^2^

               Fph~obs~  = the observed structure-factor amplitude of the
                           derivative
               Fph~calc~ = the calculated structure-factor amplitude of the
                           derivative
               Fh~calc~  = the calculated structure-factor amplitude from the
                           heavy-atom model

               sum is taken over the specified reflections
;
    _item.name                  '_phasing_MIR_der.power_centric'
    _item.category_id             phasing_MIR_der
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_der.ebi_power_centric'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_der.R_cullis_acentric
    _item_description.description
;              Residual factor R~cullis,acen~ for acentric reflections for this
               derivative.

               The Cullis R factor was originally defined only for centric
               reflections.  It is, however, also a useful statistical
               measure for acentric reflections, which is how it is used in
               this data item.

                           sum| |Fph~obs~ +/- Fp~obs~| - Fh~calc~ |
          R~cullis,acen~ = ----------------------------------------
                                   sum|Fph~obs~ - Fp~obs~|

               Fp~obs~  = the observed structure-factor amplitude of the native
               Fph~obs~ = the observed structure-factor amplitude of the
                          derivative
               Fh~calc~ = the calculated structure-factor amplitude from the
                          heavy-atom model

               sum is taken over the specified reflections

               Ref: Cullis, A. F., Muirhead, H., Perutz, M. F., Rossmann, M. G.
                    & North, A. C. T. (1961). Proc. R. Soc. London Ser. A,
                    265, 15-38.
;
    _item.name                  '_phasing_MIR_der.R_cullis_acentric'
    _item.category_id             phasing_MIR_der
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_der.ebi_Rcullis_acentric'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_der.R_cullis_anomalous
    _item_description.description
;              Residual factor R~cullis,ano~ for anomalous reflections for this
               derivative.

               The Cullis R factor was originally defined only for centric
               reflections.  It is, however, also a useful statistical
               measure for anomalous  reflections, which is how it is used in
               this data item.

               This is tabulated for acentric terms.  A value less than 1.0
               means there is some contribution to the phasing from the
               anomalous data.

                            sum |Fph+~obs~Fph-~obs~ - Fh+~calc~ - Fh-~calc~|
            R~cullis,ano~ = ------------------------------------------------
                                   sum|Fph+~obs~ - Fph-~obs~|

               Fph+~obs~  = the observed positive Friedel structure-factor
                            amplitude for the derivative
               Fph-~obs~  = the observed negative Friedel structure-factor
                            amplitude for the derivative

               Fh+~calc~  = the calculated positive Friedel structure-factor
                            amplitude from the heavy-atom model
               Fh-~calc~  = the calculated negative Friedel structure-factor
                            amplitude from the heavy-atom model

               sum is taken over the specified reflections

               Ref: Cullis, A. F., Muirhead, H., Perutz, M. F., Rossmann, M. G.
                    & North, A. C. T. (1961). Proc. R. Soc.  London Ser. A,
                    265, 15-38.

;
    _item.name                  '_phasing_MIR_der.R_cullis_anomalous'
    _item.category_id             phasing_MIR_der
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_der.ebi_Rcullis_anomalous'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_der.R_cullis_centric
    _item_description.description
;              Residual factor R~cullis~ for centric reflections for this
               derivative.

                           sum| |Fph~obs~ +/- Fp~obs~| - Fh~calc~ |
               R~cullis~ = ----------------------------------------
                                   sum|Fph~obs~ - Fp~obs~|

               Fp~obs~  = the observed structure-factor amplitude of the native
               Fph~obs~ = the observed structure-factor amplitude of the
                          derivative
               Fh~calc~ = the calculated structure-factor amplitude from the
                          heavy-atom model

               sum is taken over the specified reflections

               Ref: Cullis, A. F., Muirhead, H., Perutz, M. F., Rossmann, M. G.
                    & North, A. C. T. (1961). Proc. R. Soc. London Ser. A,
                    265, 15-38.
;
    _item.name                  '_phasing_MIR_der.R_cullis_centric'
    _item.category_id             phasing_MIR_der
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_der.ebi_Rcullis_centric'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_der.reflns_acentric
    _item_description.description
;              The number of acentric reflections used in phasing for this
               derivative.
;
    _item.name                  '_phasing_MIR_der.reflns_acentric'
    _item.category_id             phasing_MIR_der
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_der.ebi_reflns_acentric'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__phasing_MIR_der.reflns_anomalous
    _item_description.description
;              The number of anomalous reflections used in phasing for this
               derivative.
;
    _item.name                  '_phasing_MIR_der.reflns_anomalous'
    _item.category_id             phasing_MIR_der
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_der.ebi_reflns_anomalous'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__phasing_MIR_der.reflns_centric
    _item_description.description
;              The number of centric reflections used in phasing for this
               derivative.
;
    _item.name                  '_phasing_MIR_der.reflns_centric'
    _item.category_id             phasing_MIR_der
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_der.ebi_reflns_centric'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__phasing_MIR_der.reflns_criteria
    _item_description.description
;              Criteria used to limit the reflections used in the phasing
               calculations.
;
    _item.name                  '_phasing_MIR_der.reflns_criteria'
    _item.category_id             phasing_MIR_der
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case          '> 4 \s(I)'
     save_

###########################
## PHASING_MIR_DER_REFLN ##
###########################

save_phasing_MIR_der_refln
    _category.description
;              Data items in the PHASING_MIR_DER_REFLN category record details
               about the calculated structure factors obtained in an MIR
               phasing experiment.

               This list may contain information from a number of different
               derivatives; _phasing_MIR_der_refln.der_id indicates to which
               derivative a given record corresponds. (A derivative in this
               context does not necessarily equate with a data set; see the
               definition of the PHASING_MIR_DER category for a
               discussion of the meaning of derivative.)

               It is not necessary for the data items describing the measured
               value of F to appear in this list, as they will be
               given in the PHASING_SET_REFLN category. However, these
               items can also be listed here for completeness.
;
    _category.id                  phasing_MIR_der_refln
    _category.mandatory_code      no
    loop_
    _category_key.name          '_phasing_MIR_der_refln.index_h'
                                '_phasing_MIR_der_refln.index_k'
                                '_phasing_MIR_der_refln.index_l'
                                '_phasing_MIR_der_refln.der_id'
                                '_phasing_MIR_der_refln.set_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for the 6,1,25 reflection
                of an Hg/Pt derivative of protein NS1.
;
;
    _phasing_MIR_der_refln.index_h         6
    _phasing_MIR_der_refln.index_k         1
    _phasing_MIR_der_refln.index_l        25
    _phasing_MIR_der_refln.der_id         HGPT1
    _phasing_MIR_der_refln.set_id       'NS1-96'
    _phasing_MIR_der_refln.F_calc_au     106.66
    _phasing_MIR_der_refln.F_meas_au     204.67
    _phasing_MIR_der_refln.F_meas_sigma    6.21
    _phasing_MIR_der_refln.HL_A_iso       -3.15
    _phasing_MIR_der_refln.HL_B_iso       -0.76
    _phasing_MIR_der_refln.HL_C_iso        0.65
    _phasing_MIR_der_refln.HL_D_iso        0.23
    _phasing_MIR_der_refln.phase_calc    194.48
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__phasing_MIR_der_refln.der_id
    _item_description.description
;              This data item is a pointer to _phasing_MIR_der.id in the
               PHASING_MIR_DER category.
;
    _item.name                  '_phasing_MIR_der_refln.der_id'
    _item.mandatory_code          yes
     save_

save__phasing_MIR_der_refln.F_calc
    _item_description.description
;              The calculated value of the structure factor for this derivative,
               in electrons.
;
    _item.name                  '_phasing_MIR_der_refln.F_calc'
    _item.category_id             phasing_MIR_der_refln
    _item.mandatory_code          no
    _item_related.related_name  '_phasing_MIR_der_refln.F_calc_au'
    _item_related.function_code   conversion_arbitrary
    _item_type.code               float
    _item_units.code              electrons
     save_

save__phasing_MIR_der_refln.F_calc_au
    _item_description.description
;              The calculated value of the structure factor for this derivative,
               in arbitrary units.
;
    _item.name                  '_phasing_MIR_der_refln.F_calc_au'
    _item.category_id             phasing_MIR_der_refln
    _item.mandatory_code          no
    _item_related.related_name  '_phasing_MIR_der_refln.F_calc'
    _item_related.function_code   conversion_arbitrary
    _item_type.code               float
    _item_units.code              arbitrary
     save_

save__phasing_MIR_der_refln.F_meas
    _item_description.description
;              The measured value of the structure factor for this derivative,
               in electrons.
;
    _item.name                  '_phasing_MIR_der_refln.F_meas'
    _item.category_id             phasing_MIR_der_refln
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_phasing_MIR_der_refln.F_meas_sigma'
                                  associated_esd
                                '_phasing_MIR_der_refln.F_meas_au'
                                  conversion_arbitrary
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              electrons
     save_

save__phasing_MIR_der_refln.F_meas_au
    _item_description.description
;              The measured value of the structure factor for this derivative,
               in arbitrary units.
;
    _item.name                  '_phasing_MIR_der_refln.F_meas_au'
    _item.category_id             phasing_MIR_der_refln
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_phasing_MIR_der_refln.F_meas_sigma_au'
                                  associated_esd
                                '_phasing_MIR_der_refln.F_meas'
                                  conversion_arbitrary
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              arbitrary
     save_

save__phasing_MIR_der_refln.F_meas_sigma
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _phasing_MIR_der_refln.F_meas, in electrons.
;
    _item.name                  '_phasing_MIR_der_refln.F_meas_sigma'
    _item.category_id             phasing_MIR_der_refln
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_phasing_MIR_der_refln.F_meas'
                                  associated_value
                                '_phasing_MIR_der_refln.F_meas_sigma_au'
                                  conversion_arbitrary
    _item_type.code               float
    _item_units.code              electrons
     save_

save__phasing_MIR_der_refln.F_meas_sigma_au
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _phasing_MIR_der_refln.F_meas_au, in arbitrary units.
;
    _item.name                  '_phasing_MIR_der_refln.F_meas_sigma_au'
    _item.category_id             phasing_MIR_der_refln
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_phasing_MIR_der_refln.F_meas_au'
                                  associated_value
                                '_phasing_MIR_der_refln.F_meas_sigma'
                                  conversion_arbitrary
    _item_type.code               float
    _item_units.code              arbitrary
     save_

save__phasing_MIR_der_refln.HL_A_iso
    _item_description.description
;              The isomorphous Hendrickson-Lattman coefficient A~iso~ for this
               reflection for this derivative.

                         -2.0 * (Fp~obs~^2^ + Fh~calc~^2^ - Fph~obs~^2^)
                              *  Fp~obs~ * cos(alphah~calc~)
               A~iso~ =  -----------------------------------------------
                                              E^2^

               E            = (Fph~obs~ - Fp~obs~ - Fh~calc~)^2^
                              for centric reflections
                            = [(Fph~obs~ - Fp~obs~) * 2^1/2^ - Fh~calc~]^2^
                              for acentric reflections

               Fp~obs~      = the observed structure-factor amplitude of the
                              native
               Fph~obs~     = the observed structure-factor amplitude of the
                              derivative
               Fh~calc~     = the calculated structure-factor amplitude
                              from the heavy-atom model
               alphah~calc~ = the calculated phase from the heavy-atom model

               This coefficient appears in the expression for the phase
               probability of each isomorphous derivative:

               P~i~(alpha) = exp[k + A * cos(alpha) + B * sin(alpha)
                                   + C * cos(2 * alpha) + D * sin(2 * alpha)]

               Ref: Hendrickson, W. A. & Lattman, E. E. (1970). Acta
                    Cryst. B26, 136-143.
;
    _item.name                  '_phasing_MIR_der_refln.HL_A_iso'
    _item.category_id             phasing_MIR_der_refln
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MIR_der_refln.HL_B_iso
    _item_description.description
;              The isomorphous Hendrickson-Lattman coefficient B~iso~ for this
               reflection for this derivative.

                         -2.0 * (Fp~obs~^2^ + Fh~calc~^2^ - Fph~obs~^2^)
                              *  Fp~obs~ * sin(alphah~calc~)
               B~iso~ =  -----------------------------------------------
                                              E^2^

               E            = (Fph~obs~ - Fp~obs~ - Fh~calc~)^2^
                              for centric reflections
                            = [(Fph~obs~ - Fp~obs~) * 2^1/2^ - Fh~calc~]^2^
                              for acentric reflections

               Fp~obs~      = the observed structure-factor amplitude of the
                              native
               Fph~obs~     = the observed structure-factor amplitude of the
                              derivative
               Fh~calc~     = the calculated structure-factor amplitude
                              from the heavy-atom model
               alphah~calc~ = the phase calculated from the heavy-atom model

               This coefficient appears in the expression for the phase
               probability of each isomorphous derivative:

               P~i~(alpha) = exp[k + A * cos(alpha) + B * sin(alpha)
                                   + C * cos(2 * alpha) + D * sin(2 * alpha)]

               Ref: Hendrickson, W. A. & Lattman, E. E. (1970). Acta
                    Cryst. B26, 136-143.
;
    _item.name                  '_phasing_MIR_der_refln.HL_B_iso'
    _item.category_id             phasing_MIR_der_refln
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MIR_der_refln.HL_C_iso
    _item_description.description
;              The isomorphous Hendrickson-Lattman coefficient C~iso~ for this
               reflection for this derivative.

                         -Fp~obs~^2^ * [sin(alphah~calc~)^2^
                                     -  cos(alphah~calc~)^2^]
               C~iso~ =  ------------------------------------
                                        E^2^

               E            = (Fph~obs~ - Fp~obs~ - Fh~calc~)^2^
                              for centric reflections
                            = [(Fph~obs~ - Fp~obs~) * 2^1/2^ - Fh~calc~]^2^
                              for acentric reflections

               Fp~obs~      = the observed structure-factor amplitude of the
                              native
               Fph~obs~     = the observed structure-factor amplitude of the
                              derivative
               Fh~calc~     = the calculated structure-factor amplitude
                              from the heavy-atom model
               alphah~calc~ = the phase calculated from the heavy-atom model

               This coefficient appears in the expression for the phase
               probability of each isomorphous derivative:

               P~i~(alpha) = exp[k + A * cos(alpha) + B * sin(alpha)
                                   + C * cos(2 * alpha) + D * sin(2 * alpha)]

               Ref: Hendrickson, W. A. & Lattman, E. E. (1970). Acta
                    Cryst. B26, 136-143.
;
    _item.name                  '_phasing_MIR_der_refln.HL_C_iso'
    _item.category_id             phasing_MIR_der_refln
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MIR_der_refln.HL_D_iso
    _item_description.description
;              The isomorphous Hendrickson-Lattman coefficient D~iso~ for this
               reflection for this derivative.

                         -2.0 * Fp~obs~^2^ * sin(alphah~calc~)^2^
                                           * cos(alphah~calc~)^2^
               D~iso~ =  ----------------------------------------
                                          E^2^

               E            = (Fph~obs~ - Fp~obs~ - Fh~calc~)^2^
                              for centric reflections
                            = [(Fph~obs~ - Fp~obs~) * 2^1/2^ - Fh~calc~]^2^
                              for acentric reflections

               Fp~obs~      = the observed structure-factor amplitude of the
                              native
               Fph~obs~     = the observed structure-factor amplitude of the
                              derivative
               Fh~calc~     = the calculated structure-factor amplitude
                              from the heavy-atom model
               alphah~calc~ = the phase calculated from the heavy-atom model

               This coefficient appears in the expression for the phase
               probability of each isomorphous derivative:

               P~i~(alpha) = exp[k + A * cos(alpha) + B * sin(alpha)
                                   + C * cos(2 * alpha) + D * sin(2 * alpha)]

               Ref: Hendrickson, W. A. & Lattman, E. E. (1970). Acta
                    Cryst. B26, 136-143.
;
    _item.name                  '_phasing_MIR_der_refln.HL_D_iso'
    _item.category_id             phasing_MIR_der_refln
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MIR_der_refln.index_h
    _item_description.description
;              Miller index h for this reflection for this derivative.
;
    _item.name                  '_phasing_MIR_der_refln.index_h'
    _item.category_id             phasing_MIR_der_refln
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_phasing_MIR_der_refln.index_k'
                                '_phasing_MIR_der_refln.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__phasing_MIR_der_refln.index_k
    _item_description.description
;              Miller index k for this reflection for this derivative.
;
    _item.name                  '_phasing_MIR_der_refln.index_k'
    _item.category_id             phasing_MIR_der_refln
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_phasing_MIR_der_refln.index_h'
                                '_phasing_MIR_der_refln.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__phasing_MIR_der_refln.index_l
    _item_description.description
;              Miller index l for this reflection for this derivative.
;
    _item.name                  '_phasing_MIR_der_refln.index_l'
    _item.category_id             phasing_MIR_der_refln
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_phasing_MIR_der_refln.index_h'
                                '_phasing_MIR_der_refln.index_k'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__phasing_MIR_der_refln.phase_calc
    _item_description.description
;              The calculated value of the structure-factor phase based on the
               heavy-atom model for this derivative in degrees.
;
    _item.name                  '_phasing_MIR_der_refln.phase_calc'
    _item.category_id             phasing_MIR_der_refln
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__phasing_MIR_der_refln.set_id
    _item_description.description
;              This data item is a pointer to _phasing_set.id in the
               PHASING_SET category.
;
    _item.name                  '_phasing_MIR_der_refln.set_id'
    _item.mandatory_code          yes
     save_

###########################
## PHASING_MIR_DER_SHELL ##
###########################

save_phasing_MIR_der_shell
    _category.description
;              Data items in the PHASING_MIR_DER_SHELL category record
               statistics, broken down into shells of resolution, for an MIR
               phasing experiment.

               This list may contain information from a number of different
               derivatives; _phasing_MIR_der_shell.der_id indicates to which
               derivative a given record corresponds. (A derivative in this
               context does not necessarily equate with a data set; see the
               definition of the PHASING_MIR_DER category for a
               discussion of the meaning of derivative.)
;
    _category.id                  phasing_MIR_der_shell
    _category.mandatory_code      no
    loop_
    _category_key.name          '_phasing_MIR_der_shell.der_id'
                                '_phasing_MIR_der_shell.d_res_low'
                                '_phasing_MIR_der_shell.d_res_high'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on a paper by Zanotti et al. [J. Biol. Chem.
                (1993), 268, 10728-10738]
                with addition of an arbitrary low-resolution limit.
;
;
    loop_
    _phasing_MIR_der_shell.der_id
    _phasing_MIR_der_shell.d_res_low
    _phasing_MIR_der_shell.d_res_high
    _phasing_MIR_der_shell.ha_ampl
    _phasing_MIR_der_shell.loc
     KAu(CN)2  15.0  8.3   54   26
     KAu(CN)2   8.3  6.4   54   20
     KAu(CN)2   6.4  5.2   50   20
     KAu(CN)2   5.2  4.4   44   23
     KAu(CN)2   4.4  3.8   39   23
     KAu(CN)2   3.8  3.4   33   21
     KAu(CN)2   3.4  3.0   28   17
     KAu(CN)2  15.0  3.0   38   21
     K2HgI4    15.0  8.3  149   87
     K2HgI4     8.3  6.4  121   73
     K2HgI4     6.4  5.2   95   61
     K2HgI4     5.2  4.4   80   60
     K2HgI4     4.4  3.8   73   63
     K2HgI4     3.8  3.4   68   57
     K2HgI4     3.4  3.0   63   46
     K2HgI4    15.0  3.0   79   58
     K3IrCl6   15.0  8.3   33   27
     K3IrCl6    8.3  6.4   40   23
     K3IrCl6    6.4  5.2   31   22
     K3IrCl6    5.2  4.4   27   23
     K3IrCl6    4.4  3.8   22   23
     K3IrCl6    3.8  3.4   19   20
     K3IrCl6    3.4  3.0   16   20
     K3IrCl6   15.0  3.0   23   21
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__phasing_MIR_der_shell.d_res_high
    _item_description.description
;              The lowest value  for the interplanar spacings for the
               reflection data for this derivative in this shell. This is called
               the highest resolution.
;
    _item.name                  '_phasing_MIR_der_shell.d_res_high'
    _item.category_id             phasing_MIR_der_shell
    _item.mandatory_code          yes
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_MIR_der_shell.d_res_low
    _item_description.description
;              The highest value for the interplanar spacings for the
               reflection data for this derivative in this shell. This is called
               the lowest resolution.
;
    _item.name                  '_phasing_MIR_der_shell.d_res_low'
    _item.category_id             phasing_MIR_der_shell
    _item.mandatory_code          yes
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_MIR_der_shell.der_id
    _item_description.description
;              This data item is a pointer to _phasing_MIR_der.id in the
               PHASING_MIR_DER category.
;
    _item.name                  '_phasing_MIR_der_shell.der_id'
    _item.mandatory_code          yes
     save_

save__phasing_MIR_der_shell.fom
    _item_description.description
;              The mean value of the figure of merit m for reflections for this
               derivative in this shell.

                   int P~alpha~ exp(i*alpha) dalpha
               m = --------------------------------
                         int P~alpha~ dalpha

               P~alpha~ = the probability that the phase angle alpha is correct

               int is taken over the range alpha = 0 to 2 pi.
;
    _item.name                  '_phasing_MIR_der_shell.fom'
    _item.category_id             phasing_MIR_der_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_der_shell.ha_ampl
    _item_description.description
;              The mean heavy-atom amplitude for reflections for this
               derivative in this shell.
;
    _item.name                  '_phasing_MIR_der_shell.ha_ampl'
    _item.category_id             phasing_MIR_der_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_der_shell.loc
    _item_description.description
;              The mean lack-of-closure error loc for reflections for this
               derivative in this shell.

               loc = sum|Fph~obs~ - Fph~calc~|

               Fph~obs~  = the observed structure-factor amplitude of the
                           derivative
               Fph~calc~ = the calculated structure-factor amplitude of the
                           derivative

               sum is taken over the specified reflections
;
    _item.name                  '_phasing_MIR_der_shell.loc'
    _item.category_id             phasing_MIR_der_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_der_shell.phase
    _item_description.description
;              The mean of the phase values for reflections for this
               derivative in this shell.
;
    _item.name                  '_phasing_MIR_der_shell.phase'
    _item.category_id             phasing_MIR_der_shell
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MIR_der_shell.power
    _item_description.description
;              The mean phasing power P for reflections for this derivative
               in this shell.

                          sum|Fh~calc~^2^|
               P = (----------------------------)^1/2^
                    sum|Fph~obs~ - Fph~calc~|^2^

               Fph~obs~  = the observed structure-factor amplitude of the
                           derivative
               Fph~calc~ = the calculated structure-factor amplitude of the
                           derivative
               Fh~calc~  = the calculated structure-factor amplitude from the
                           heavy-atom model

               sum is taken over the specified reflections
;
    _item.name                  '_phasing_MIR_der_shell.power'
    _item.category_id             phasing_MIR_der_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_der_shell.R_cullis
    _item_description.description
;              Residual factor R~cullis~ for centric reflections for this
               derivative in this shell.

                           sum| |Fph~obs~ +/- Fp~obs~| - Fh~calc~ |
               R~cullis~ = ----------------------------------------
                                   sum|Fph~obs~ - Fp~obs~|

               Fp~obs~  = the observed structure-factor amplitude of the native
               Fph~obs~ = the observed structure-factor amplitude of the
                          derivative
               Fh~calc~ = the calculated structure-factor amplitude from the
                          heavy-atom model

               sum is taken over the specified reflections

               Ref: Cullis, A. F., Muirhead, H., Perutz, M. F., Rossmann, M. G.
                    & North, A. C. T. (1961). Proc. R. Soc. London Ser. A,
                    265, 15-38.
;
    _item.name                  '_phasing_MIR_der_shell.R_cullis'
    _item.category_id             phasing_MIR_der_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_der_shell.R_kraut
    _item_description.description
;              Residual factor R~kraut~ for general reflections for this
               derivative in this shell.

                          sum|Fph~obs~ - Fph~calc~|
               R~kraut~ = -------------------------
                                sum|Fph~obs~|

               Fph~obs~  = the observed structure-factor amplitude of the
                           derivative
               Fph~calc~ = the calculated structure-factor amplitude of the
                           derivative

               sum is taken over the specified reflections

               Ref: Kraut, J., Sieker, L. C., High, D. F. & Freer, S. T.
                    (1962). Proc. Natl Acad. Sci. USA, 48, 1417-1424.
;
    _item.name                  '_phasing_MIR_der_shell.R_kraut'
    _item.category_id             phasing_MIR_der_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_der_shell.reflns
    _item_description.description
;              The number of reflections in this shell.
;
    _item.name                  '_phasing_MIR_der_shell.reflns'
    _item.category_id             phasing_MIR_der_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

##########################
## PHASING_MIR_DER_SITE ##
##########################

save_phasing_MIR_der_site
    _category.description
;              Data items in the PHASING_MIR_DER_SITE category record details
               about the heavy-atom sites in an MIR phasing experiment.

               This list may contain information from a number of different
               derivatives; _phasing_MIR_der_site.der_id indicates to which
               derivative a given record corresponds. (A derivative in this
               context does not necessarily equate with a data set; see the
               definition of the PHASING_MIR_DER category for a
               discussion of the meaning of derivative.)
;
    _category.id                  phasing_MIR_der_site
    _category.mandatory_code      no
    loop_
    _category_key.name          '_phasing_MIR_der_site.der_id'
                                '_phasing_MIR_der_site.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on a paper by Zanotti et al. [J. Biol. Chem.
                (1993), 268, 10728-10738]
                with occupancies converted from electrons to fractional.
;
;
    loop_
    _phasing_MIR_der_site.der_id
    _phasing_MIR_der_site.id
    _phasing_MIR_der_site.atom_type_symbol
    _phasing_MIR_der_site.occupancy
    _phasing_MIR_der_site.fract_x
    _phasing_MIR_der_site.fract_y
    _phasing_MIR_der_site.fract_z
    _phasing_MIR_der_site.B_iso
     KAu(CN)2  1  Au  0.40  0.082  0.266  0.615  33.0
     KAu(CN)2  2  Au  0.03  0.607  0.217  0.816  25.9
     KAu(CN)2  3  Au  0.02  0.263  0.782  0.906  15.7
     K2HgI4    1  Hg  0.63  0.048  0.286  0.636  33.7
     K2HgI4    2  Hg  0.34  0.913  0.768  0.889  36.7
     K2HgI4    3  Hg  0.23  0.974  0.455  0.974  24.2
     K2HgI4    4  Hg  0.28  0.903  0.836  0.859  14.7
     K2HgI4    5  Hg  0.07  0.489  0.200  0.885   6.4
     K2HgI4    6  Hg  0.07  0.162  0.799  0.889  32.9
     K3IrCl6   1  Ir  0.26  0.209  0.739  0.758  40.8
     K3IrCl6   2  Ir  0.05  0.279  0.613  0.752  24.9
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__phasing_MIR_der_site.atom_type_symbol
    _item_description.description
;              This data item is a pointer to _atom_type.symbol in the
               ATOM_TYPE category.

               The scattering factors referenced via this data item should be
               those used in the refinement of the heavy-atom data; in some
               cases this is the scattering factor for the single heavy
               atom, in other cases these are the scattering factors for an
               atomic cluster.
;
    _item.name                  '_phasing_MIR_der_site.atom_type_symbol'
    _item.mandatory_code          yes
     save_

save__phasing_MIR_der_site.B_iso
    _item_description.description
;              Isotropic displacement parameter for this heavy-atom site in this
               derivative.
;
    _item.name                  '_phasing_MIR_der_site.B_iso'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
    _item_related.related_name  '_phasing_MIR_der_site.B_iso_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__phasing_MIR_der_site.B_iso_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _phasing_MIR_der_site.B_iso.
;
    _item.name                  '_phasing_MIR_der_site.B_iso_esd'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_phasing_MIR_der_site.B_iso'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_MIR_der_site.Cartn_x
    _item_description.description
;              The x coordinate of this heavy-atom position in this derivative
               specified as orthogonal angstroms. The orthogonal Cartesian axes
               are related to the cell axes as specified by the description
               given in _atom_sites.Cartn_transform_axes.
;
    _item.name                  '_phasing_MIR_der_site.Cartn_x'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_phasing_MIR_der_site.Cartn_y'
                                '_phasing_MIR_der_site.Cartn_z'
    _item_related.related_name  '_phasing_MIR_der_site.Cartn_x_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         cartesian_coordinate
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__phasing_MIR_der_site.Cartn_x_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _phasing_MIR_der_site.Cartn_x.
;
    _item.name                  '_phasing_MIR_der_site.Cartn_x_esd'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_phasing_MIR_der_site.Cartn_y_esd'
                                '_phasing_MIR_der_site.Cartn_z_esd'
    _item_related.related_name  '_phasing_MIR_der_site.Cartn_x'
    _item_related.function_code   associated_value
    _item_sub_category.id         cartesian_coordinate_esd
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_MIR_der_site.Cartn_y
    _item_description.description
;              The y coordinate of this heavy-atom position in this derivative
               specified as orthogonal angstroms. The orthogonal Cartesian axes
               are related to the cell axes as specified by the description
               given in _atom_sites.Cartn_transform_axes.
;
    _item.name                  '_phasing_MIR_der_site.Cartn_y'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_phasing_MIR_der_site.Cartn_x'
                                '_phasing_MIR_der_site.Cartn_z'
    _item_related.related_name  '_phasing_MIR_der_site.Cartn_y_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         cartesian_coordinate
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__phasing_MIR_der_site.Cartn_y_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _phasing_MIR_der_site.Cartn_y.
;
    _item.name                  '_phasing_MIR_der_site.Cartn_y_esd'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_phasing_MIR_der_site.Cartn_x_esd'
                                '_phasing_MIR_der_site.Cartn_z_esd'
    _item_related.related_name  '_phasing_MIR_der_site.Cartn_y'
    _item_related.function_code   associated_value
    _item_sub_category.id         cartesian_coordinate_esd
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_MIR_der_site.Cartn_z
    _item_description.description
;              The z coordinate of this heavy-atom position in this derivative
               specified as orthogonal angstroms. The orthogonal Cartesian axes
               are related to the cell axes as specified by the description
               given in _atom_sites.Cartn_transform_axes.
;
    _item.name                  '_phasing_MIR_der_site.Cartn_z'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_phasing_MIR_der_site.Cartn_x'
                                '_phasing_MIR_der_site.Cartn_y'
    _item_related.related_name  '_phasing_MIR_der_site.Cartn_z_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         cartesian_coordinate
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              angstroms
     save_

save__phasing_MIR_der_site.Cartn_z_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _phasing_MIR_der_site.Cartn_z.
;
    _item.name                  '_phasing_MIR_der_site.Cartn_z_esd'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_phasing_MIR_der_site.Cartn_x_esd'
                                '_phasing_MIR_der_site.Cartn_y_esd'
    _item_related.related_name  '_phasing_MIR_der_site.Cartn_z'
    _item_related.function_code   associated_value
    _item_sub_category.id         cartesian_coordinate_esd
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_MIR_der_site.der_id
    _item_description.description
;              This data item is a pointer to _phasing_MIR_der.id in the
               PHASING_MIR_DER category.
;
    _item.name                  '_phasing_MIR_der_site.der_id'
    _item.mandatory_code          yes
     save_

save__phasing_MIR_der_site.details
    _item_description.description
;              A description of special aspects of the derivative site.
;
    _item.name                  '_phasing_MIR_der_site.details'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'binds to His 117'
                                 'minor site obtained from difference Fourier'
                                 'same as site 2 in the K2HgI4 derivative'
     save_

save__phasing_MIR_der_site.fract_x
    _item_description.description
;              The x coordinate of this heavy-atom position in this derivative
               specified as a fraction of _cell.length_a.
;
    _item.name                  '_phasing_MIR_der_site.fract_x'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_phasing_MIR_der_site.fract_y'
                                '_phasing_MIR_der_site.fract_z'
    _item_related.related_name  '_phasing_MIR_der_site.fract_x_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         fractional_coordinate
    _item_type.code               float
    _item_type_conditions.code    esd
     save_

save__phasing_MIR_der_site.fract_x_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _phasing_MIR_der_site.fract_x.
;
    _item.name                  '_phasing_MIR_der_site.fract_x_esd'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_phasing_MIR_der_site.fract_y_esd'
                                '_phasing_MIR_der_site.fract_z_esd'
    _item_related.related_name  '_phasing_MIR_der_site.fract_x'
    _item_related.function_code   associated_value
    _item_sub_category.id         fractional_coordinate_esd
    _item_type.code               float
     save_

save__phasing_MIR_der_site.fract_y
    _item_description.description
;              The y coordinate of this heavy-atom position in this derivative
               specified as a fraction of _cell.length_b.
;
    _item.name                  '_phasing_MIR_der_site.fract_y'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_phasing_MIR_der_site.fract_x'
                                '_phasing_MIR_der_site.fract_z'
    _item_related.related_name  '_phasing_MIR_der_site.fract_y_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         fractional_coordinate
    _item_type.code               float
    _item_type_conditions.code    esd
     save_

save__phasing_MIR_der_site.fract_y_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _phasing_MIR_der_site.fract_y.
;
    _item.name                  '_phasing_MIR_der_site.fract_y_esd'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_phasing_MIR_der_site.fract_x_esd'
                                '_phasing_MIR_der_site.fract_z_esd'
    _item_related.related_name  '_phasing_MIR_der_site.fract_y'
    _item_related.function_code   associated_value
    _item_sub_category.id         fractional_coordinate_esd
    _item_type.code               float
     save_

save__phasing_MIR_der_site.fract_z
    _item_description.description
;              The z coordinate of this heavy-atom position in this derivative
               specified as a fraction of _cell.length_c.
;
    _item.name                  '_phasing_MIR_der_site.fract_z'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_phasing_MIR_der_site.fract_x'
                                '_phasing_MIR_der_site.fract_y'
    _item_related.related_name  '_phasing_MIR_der_site.fract_z_esd'
    _item_related.function_code   associated_esd
    _item_sub_category.id         fractional_coordinate
    _item_type.code               float
    _item_type_conditions.code    esd
     save_

save__phasing_MIR_der_site.fract_z_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _phasing_MIR_der_site.fract_z.
;
    _item.name                  '_phasing_MIR_der_site.fract_z_esd'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
#    _item_default.value           0.0
    loop_
    _item_dependent.dependent_name
                                '_phasing_MIR_der_site.fract_x_esd'
                                '_phasing_MIR_der_site.fract_y_esd'
    _item_related.related_name  '_phasing_MIR_der_site.fract_z'
    _item_related.function_code   associated_value
    _item_sub_category.id         fractional_coordinate_esd
    _item_type.code               float
     save_

save__phasing_MIR_der_site.id
    _item_description.description
;              The value of _phasing_MIR_der_site.id must uniquely identify each
               site in each derivative in the PHASING_MIR_DER_SITE list.

               The atom identifiers need not be unique over all sites in all
               derivatives; they need only be unique for each site in each
               derivative.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    _item.name                  '_phasing_MIR_der_site.id'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          yes
    _item_type.code               code
     save_

save__phasing_MIR_der_site.occupancy
    _item_description.description
;              The fraction of the atom type present at this heavy-atom site
               in a given derivative. The sum of the occupancies of all the
               atom types at this site may not significantly exceed 1.0 unless
               it is a dummy site.
;
    _item.name                  '_phasing_MIR_der_site.occupancy'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
    _item_default.value           1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_


save__phasing_MIR_der_site.occupancy_anom
    _item_description.description
;              The relative anomalous occupancy of the atom type
               present at this heavy-atom site in a given derivative.
               This atom occupancy will probably be on an arbitrary scale.
;
    _item.name                  '_phasing_MIR_der_site.occupancy_anom'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_der_site.ebi_occupancy_anom'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    _item_related.related_name  '_phasing_MIR_der_site.occupancy_anom_su'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
     save_

save__phasing_MIR_der_site.occupancy_anom_su
    _item_description.description
;              The standard uncertainty (estimated standard deviation) of
               _phasing_MIR_der_site.occupancy_anom.
;
    _item.name                  '_phasing_MIR_der_site.occupancy_anom_su'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_der_site.ebi_occupancy_anom_esd'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
#    _item_default.value           0.0
    _item_related.related_name  '_phasing_MIR_der_site.occupancy_anom'
    _item_related.function_code   associated_value
    _item_type.code               float
     save_

save__phasing_MIR_der_site.occupancy_iso
    _item_description.description
;              The relative real isotropic occupancy of the atom type
               present at this heavy-atom site in a given derivative.
               This atom occupancy will probably be on an arbitrary scale.
;
    _item.name                  '_phasing_MIR_der_site.occupancy_iso'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_der_site.ebi_occupancy_iso'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    _item_related.related_name  '_phasing_MIR_der_site.occupancy_iso_su'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
     save_

save__phasing_MIR_der_site.occupancy_iso_su
    _item_description.description
;              The standard uncertainty (estimated standard deviation) of
               _phasing_MIR_der_site.occupancy_iso.
;
    _item.name                  '_phasing_MIR_der_site.occupancy_iso_su'
    _item.category_id             phasing_MIR_der_site
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_der_site.ebi_occupancy_iso_esd'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
#    _item_default.value           0.0
    _item_related.related_name  '_phasing_MIR_der_site.occupancy_iso'
    _item_related.function_code   associated_value
    _item_type.code               float
     save_


#######################
## PHASING_MIR_SHELL ##
#######################

save_phasing_MIR_shell
    _category.description
;              Data items in the PHASING_MIR_SHELL category record statistics
               for an isomorphous replacement phasing experiment.broken
               down into shells of resolution.
;
    _category.id                  phasing_MIR_shell
    _category.mandatory_code      no
    loop_
    _category_key.name          '_phasing_MIR_shell.d_res_low'
                                '_phasing_MIR_shell.d_res_high'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on a paper by Zanotti et al. [J. Biol. Chem.
                (1993), 268, 10728-10738]
                with addition of an arbitrary low-resolution limit.
;
;
    loop_
    _phasing_MIR_shell.d_res_low
    _phasing_MIR_shell.d_res_high
    _phasing_MIR_shell.reflns
    _phasing_MIR_shell.FOM
     15.0  8.3   80  0.69
      8.3  6.4  184  0.73
      6.4  5.2  288  0.72
      5.2  4.4  406  0.65
      4.4  3.8  554  0.54
      3.8  3.4  730  0.53
      3.4  3.0  939  0.50
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__phasing_MIR_shell.d_res_high
    _item_description.description
;              The lowest value for the interplanar spacings for the
               reflection data in this shell. This is called the highest
               resolution. Note that the resolution limits of shells in
               the items _phasing_MIR_shell.d_res_high and
               _phasing_MIR_shell.d_res_low are independent of the resolution
               limits of shells in the items _reflns_shell.d_res_high and
               _reflns_shell.d_res_low.
;
    _item.name                  '_phasing_MIR_shell.d_res_high'
    _item.category_id             phasing_MIR_shell
    _item.mandatory_code          yes
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_MIR_shell.d_res_low
    _item_description.description
;              The highest value for the interplanar spacings for the
               reflection data in this shell. This is called the lowest
               resolution. Note that the resolution limits of shells in the
               items _phasing_MIR_shell.d_res_high and
               _phasing_MIR_shell.d_res_low are independent of the resolution
               limits of shells in the items _reflns_shell.d_res_high and
               _reflns_shell.d_res_low.
;
    _item.name                  '_phasing_MIR_shell.d_res_low'
    _item.category_id             phasing_MIR_shell
    _item.mandatory_code          yes
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_MIR_shell.FOM
    _item_description.description
;              The mean value of the figure of merit m for reflections in this
               shell.

                   int P~alpha~ exp(i*alpha) dalpha
               m = --------------------------------
                         int P~alpha~ dalpha

               P~alpha~ = the probability that the phase angle alpha is correct

               the integral is taken over the range alpha = 0 to 2 pi.
;
    _item.name                  '_phasing_MIR_shell.FOM'
    _item.category_id             phasing_MIR_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_shell.FOM_acentric
    _item_description.description
;              The mean value of the figure of merit m for acentric reflections
               in this shell.

                   int P~alpha~ exp(i*alpha) dalpha
               m = --------------------------------
                         int P~alpha~ dalpha

               P~a~ = the probability that the phase angle a is correct

               the integral is taken over the range alpha = 0 to 2 pi.
;
    _item.name                  '_phasing_MIR_shell.FOM_acentric'
    _item.category_id             phasing_MIR_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_shell.ebi_fom_acentric'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_shell.FOM_centric
    _item_description.description
;              The mean value of the figure of merit m for centric reflections
               in this shell.

                   int P~alpha~ exp(i*alpha) dalpha
               m = --------------------------------
                         int P~alpha~ dalpha

               P~a~ = the probability that the phase angle a is correct

               the integral is taken over the range alpha = 0 to 2 pi.
;
    _item.name                  '_phasing_MIR_shell.FOM_centric'
    _item.category_id             phasing_MIR_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_shell.ebi_fom_centric'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_shell.loc
    _item_description.description
;              The mean lack-of-closure error loc for reflections in this shell.

               loc = sum|Fph~obs~ - Fph~calc~|

               Fph~obs~  = the observed structure-factor amplitude of the
                           derivative
               Fph~calc~ = the calculated structure-factor amplitude of the
                           derivative

               sum is taken over the specified reflections
;
    _item.name                  '_phasing_MIR_shell.loc'
    _item.category_id             phasing_MIR_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_shell.mean_phase
    _item_description.description
;              The mean of the phase values for all reflections in this shell.
;
    _item.name                  '_phasing_MIR_shell.mean_phase'
    _item.category_id             phasing_MIR_shell
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__phasing_MIR_shell.power
    _item_description.description
;              The mean phasing power P for reflections in this shell.

                          sum|Fh~calc~^2^|
               P = (----------------------------)^1/2^
                    sum|Fph~obs~ - Fph~calc~|^2^

               Fph~obs~  = the observed structure-factor amplitude of the
                           derivative
               Fph~calc~ = the calculated structure-factor amplitude of the
                           derivative
               Fh~calc~  = the calculated structure-factor amplitude from the
                           heavy-atom model

               sum is taken over the specified reflections
;
    _item.name                  '_phasing_MIR_shell.power'
    _item.category_id             phasing_MIR_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_shell.R_cullis
    _item_description.description
;              Residual factor R~cullis~ for centric reflections in this shell.

                           sum| |Fph~obs~ +/- Fp~obs~| - Fh~calc~ |
               R~cullis~ = ----------------------------------------
                                   sum|Fph~obs~ - Fp~obs~|

               Fp~obs~  = the observed structure-factor amplitude of the native
               Fph~obs~ = the observed structure-factor amplitude of the
                          derivative
               Fh~calc~ = the calculated structure-factor amplitude from the
                          heavy-atom model

               sum is taken over the specified reflections

               Ref: Cullis, A. F., Muirhead, H., Perutz, M. F., Rossmann, M. G.
                    & North, A. C. T. (1961). Proc. R. Soc. London Ser. A,
                    265, 15-38.

;
    _item.name                  '_phasing_MIR_shell.R_cullis'
    _item.category_id             phasing_MIR_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_shell.R_kraut
    _item_description.description
;              Residual factor R~kraut~ for general reflections in this shell.

                          sum|Fph~obs~ - Fph~calc~|
               R~kraut~ = -------------------------
                                sum|Fph~obs~|

               Fph~obs~  = the observed structure-factor amplitude of the
                           derivative
               Fph~calc~ = the calculated structure-factor amplitude of the
                           derivative

               sum is taken over the specified reflections

               Ref: Kraut, J., Sieker, L. C., High, D. F. & Freer, S. T.
                    (1962). Proc. Natl Acad. Sci. USA, 48, 1417-1424.

;
    _item.name                  '_phasing_MIR_shell.R_kraut'
    _item.category_id             phasing_MIR_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__phasing_MIR_shell.reflns
    _item_description.description
;              The number of reflections in this shell.
;
    _item.name                  '_phasing_MIR_shell.reflns'
    _item.category_id             phasing_MIR_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_


save__phasing_MIR_shell.reflns_acentric
    _item_description.description
;              The number of acentric reflections in this shell.
;
    _item.name                  '_phasing_MIR_shell.reflns_acentric'
    _item.category_id             phasing_MIR_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_shell.ebi_reflns_acentric'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__phasing_MIR_shell.reflns_anomalous
    _item_description.description
;              The number of anomalous reflections in this shell.
;
    _item.name                  '_phasing_MIR_shell.reflns_anomalous'
    _item.category_id             phasing_MIR_shell
    _item.mandatory_code          no
#   _item_aliases.alias_name    '_phasing_MIR_shell.ebi_reflns_anomalous'
#   _item_aliases.dictionary      ebi_extensions
#   _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__phasing_MIR_shell.reflns_centric
    _item_description.description
;              The number of centric reflections in this shell.
;
    _item.name                  '_phasing_MIR_shell.reflns_centric'
    _item.category_id             phasing_MIR_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_phasing_MIR_shell.ebi_reflns_centric'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_


#################
## PHASING_SET ##
#################

save_phasing_set
    _category.description
;              Data items in the PHASING_SET category record details about
               the data sets used in a phasing experiment. A given data set
               may be used in a number of different ways; for instance, a
               single data set could be used both as an isomorphous derivative
               and as a component of a multiple-wavelength calculation. This
               category establishes identifiers for each data set and permits
               the archiving of a subset of experimental information for each
               data set (cell constants, wavelength, temperature etc.).

               This and related categories of data items are provided so that
               derivative intensity and phase information can be stored in
               the same data block as the information for the refined
               structure.

               If all the possible experimental information for each data
               set (raw data sets, crystal growth conditions etc.) is to be
               archived, these data items should be recorded in a separate
               data block.
;
    _category.id                  phasing_set
    _category.mandatory_code      no
    _category_key.name          '_phasing_set.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for an Hg/Pt derivative of
                protein NS1.
;
;
    _phasing_set.id                    'NS1-96'
    _phasing_set.cell_angle_alpha      90.0
    _phasing_set.cell_angle_beta       90.0
    _phasing_set.cell_angle_gamma      90.0
    _phasing_set.cell_length_a         38.63
    _phasing_set.cell_length_b         38.63
    _phasing_set.cell_length_c         82.88
    _phasing_set.radiation_wavelength  1.5145
    _phasing_set.detector_type         'image plate'
    _phasing_set.detector_specific     'RXII'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__phasing_set.cell_angle_alpha
    _item_description.description
;              Unit-cell angle alpha for this data set in degrees.
;
    _item.name                  '_phasing_set.cell_angle_alpha'
    _item.category_id             phasing_set
    _item.mandatory_code          no
    _item_default.value           90.0
    loop_
    _item_dependent.dependent_name
                                '_phasing_set.cell_angle_beta'
                                '_phasing_set.cell_angle_gamma'
    loop_
    _item_range.maximum
    _item_range.minimum           180.0   180.0
                                  180.0     0.0
                                    0.0     0.0
    _item_sub_category.id         cell_angle
    _item_type.code               float
    _item_units.code              degrees
     save_

save__phasing_set.cell_angle_beta
    _item_description.description
;              Unit-cell angle beta for this data set in degrees.
;
    _item.name                  '_phasing_set.cell_angle_beta'
    _item.category_id             phasing_set
    _item.mandatory_code          no
    _item_default.value           90.0
    loop_
    _item_dependent.dependent_name
                                '_phasing_set.cell_angle_alpha'
                                '_phasing_set.cell_angle_gamma'
    loop_
    _item_range.maximum
    _item_range.minimum           180.0   180.0
                                  180.0     0.0
                                    0.0     0.0
    _item_sub_category.id         cell_angle
    _item_type.code               float
    _item_units.code              degrees
     save_

save__phasing_set.cell_angle_gamma
    _item_description.description
;              Unit-cell angle gamma for this data set in degrees.
;
    _item.name                  '_phasing_set.cell_angle_gamma'
    _item.category_id             phasing_set
    _item.mandatory_code          no
    _item_default.value           90.0
    loop_
    _item_dependent.dependent_name
                                '_phasing_set.cell_angle_alpha'
                                '_phasing_set.cell_angle_beta'
    loop_
    _item_range.maximum
    _item_range.minimum           180.0   180.0
                                  180.0     0.0
                                    0.0     0.0
    _item_sub_category.id         cell_angle
    _item_type.code               float
    _item_units.code              degrees
     save_

save__phasing_set.cell_length_a
    _item_description.description
;              Unit-cell length a for this data set in angstroms.
;
    _item.name                  '_phasing_set.cell_length_a'
    _item.category_id             phasing_set
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_phasing_set.cell_length_b'
                                '_phasing_set.cell_length_c'
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_sub_category.id         cell_length
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_set.cell_length_b
    _item_description.description
;              Unit-cell length b for this data set in angstroms.
;
    _item.name                  '_phasing_set.cell_length_b'
    _item.category_id             phasing_set
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_phasing_set.cell_length_a'
                                '_phasing_set.cell_length_c'
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_sub_category.id         cell_length
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_set.cell_length_c
    _item_description.description
;              Unit-cell length c for this data set in angstroms.
;
    _item.name                  '_phasing_set.cell_length_c'
    _item.category_id             phasing_set
    _item.mandatory_code          no
    loop_
    _item_dependent.dependent_name
                                '_phasing_set.cell_length_a'
                                '_phasing_set.cell_length_b'
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_sub_category.id         cell_length
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_set.detector_specific
    _item_description.description
;              The particular radiation detector. In general, this will be a
               manufacturer, description, model number or some combination of
               these.
;
    _item.name                  '_phasing_set.detector_specific'
    _item.category_id             phasing_set
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'Siemens model x'
                                 'Kodak XG'
                                 'MAR Research model y'
     save_

save__phasing_set.detector_type
    _item_description.description
;              The general class of the radiation detector.
;
    _item.name                  '_phasing_set.detector_type'
    _item.category_id             phasing_set
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'multiwire'
                                 'imaging plate'
                                 'CCD'
                                 'film'
     save_

save__phasing_set.id
    _item_description.description
;              The value of _phasing_set.id must uniquely identify
               a record in the PHASING_SET list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_phasing_set.id'                  phasing_set            yes
               '_phasing_set_refln.set_id'        phasing_set_refln      yes
               '_phasing_MAD_set.set_id'          phasing_MAD_set        yes
               '_phasing_MIR_der.der_set_id'      phasing_MIR_der        yes
               '_phasing_MIR_der.native_set_id'   phasing_MIR_der        yes
               '_phasing_MIR_der_refln.set_id'    phasing_MIR_der_refln  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_phasing_set_refln.set_id'        '_phasing_set.id'
               '_phasing_MAD_set.set_id'          '_phasing_set.id'
               '_phasing_MIR_der.der_set_id'      '_phasing_set.id'
               '_phasing_MIR_der.native_set_id'   '_phasing_set.id'
               '_phasing_MIR_der_refln.set_id'    '_phasing_set.id'
    _item_type.code               line
    loop_
    _item_examples.case          'KAu(CN)2'
                                 'K2HgI4'
     save_

save__phasing_set.radiation_source_specific
    _item_description.description
;              The particular source of radiation. In general, this will be a
               manufacturer, description, or model number (or some combination
               of these) for laboratory sources and an institution name and
               beamline name for synchrotron sources.
;
    _item.name                  '_phasing_set.radiation_source_specific'
    _item.category_id             phasing_set
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'Rigaku RU200'
                                 'Philips fine focus Mo'
                                 'NSLS beamline X8C'
     save_

save__phasing_set.radiation_wavelength
    _item_description.description
;              The mean wavelength of the radiation used to measure this
               data set.
;
    _item.name                  '_phasing_set.radiation_wavelength'
    _item.category_id             phasing_set
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__phasing_set.temp
    _item_description.description
;              The temperature in kelvins at which the data set was
               measured.
;
    _item.name                  '_phasing_set.temp'
    _item.category_id             phasing_set
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              kelvins
     save_

#######################
## PHASING_SET_REFLN ##
#######################

save_phasing_set_refln
    _category.description
;              Data items in the PHASING_SET_REFLN category record the values
               of the measured structure factors used in a phasing experiment.
               This list may contain information from a number of different
               data sets; _phasing_set_refln.set_id indicates the data set
               to which a given record corresponds.
;
    _category.id                  phasing_set_refln
    _category.mandatory_code      no
    loop_
    _category_key.name          '_phasing_set_refln.index_h'
                                '_phasing_set_refln.index_k'
                                '_phasing_set_refln.index_l'
                                '_phasing_set_refln.set_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'phasing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for the 15,15,32
                reflection of an Hg/Pt derivative of protein NS1.
;
;
    _phasing_set_refln.set_id           'NS1-96'
    _phasing_set_refln.index_h           15
    _phasing_set_refln.index_k           15
    _phasing_set_refln.index_l           32
    _phasing_set_refln.F_meas_au        181.79
    _phasing_set_refln.F_meas_sigma_au    3.72
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__phasing_set_refln.set_id
    _item_description.description
;              This data item is a pointer to _phasing_set.id in the
               PHASING_SET category.
;
    _item.name                  '_phasing_set_refln.set_id'
    _item.mandatory_code          yes
     save_

save__phasing_set_refln.F_meas
    _item_description.description
;              The measured value of the structure factor for this reflection
               in this data set in electrons.
;
    _item.name                  '_phasing_set_refln.F_meas'
    _item.category_id             phasing_set_refln
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_phasing_set_refln.F_meas_sigma'
                                  associated_esd
                                '_phasing_set_refln.F_meas_au'
                                  conversion_arbitrary
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              electrons
     save_

save__phasing_set_refln.F_meas_au
    _item_description.description
;              The measured value of the structure factor for this reflection
               in this data set in arbitrary units.
;
    _item.name                  '_phasing_set_refln.F_meas_au'
    _item.category_id             phasing_set_refln
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_phasing_set_refln.F_meas_sigma_au'
                                  associated_esd
                                '_phasing_set_refln.F_meas'
                                  conversion_arbitrary
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              arbitrary
     save_

save__phasing_set_refln.F_meas_sigma
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _phasing_set_refln.F_meas in electrons.
;
    _item.name                  '_phasing_set_refln.F_meas_sigma'
    _item.category_id             phasing_set_refln
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_phasing_set_refln.F_meas'
                                  associated_value
                                '_phasing_set_refln.F_meas_sigma_au'
                                  conversion_arbitrary
    _item_type.code               float
    _item_units.code              electrons
     save_

save__phasing_set_refln.F_meas_sigma_au
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _phasing_set_refln.F_meas_au in arbitrary units.
;
    _item.name                  '_phasing_set_refln.F_meas_sigma_au'
    _item.category_id             phasing_set_refln
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_phasing_set_refln.F_meas_au'
                                  associated_value
                                '_phasing_set_refln.F_meas_sigma'
                                  conversion_arbitrary
    _item_type.code               float
    _item_units.code              arbitrary
     save_

save__phasing_set_refln.index_h
    _item_description.description
;              Miller index h of this reflection in this data set.
;
    _item.name                  '_phasing_set_refln.index_h'
    _item.category_id             phasing_set_refln
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_phasing_set_refln.index_k'
                                '_phasing_set_refln.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__phasing_set_refln.index_k
    _item_description.description
;              Miller index k of this reflection in this data set.
;
    _item.name                  '_phasing_set_refln.index_k'
    _item.category_id             phasing_set_refln
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_phasing_set_refln.index_h'
                                '_phasing_set_refln.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__phasing_set_refln.index_l
    _item_description.description
;              Miller index l of this reflection in this data set.
;
    _item.name                  '_phasing_set_refln.index_l'
    _item.category_id             phasing_set_refln
    _item.mandatory_code          yes
    loop_
    _item_dependent.dependent_name
                                '_phasing_set_refln.index_h'
                                '_phasing_set_refln.index_k'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

##########
## PUBL ##
##########

save_publ
    _category.description
;              Data items in the PUBL category are used when submitting a
               manuscript for publication.
;
    _category.id                  publ
    _category.mandatory_code      no
    _category_key.name          '_publ.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'iucr_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on data set TOZ of Willis, Beckwith & Tozer
                [Acta Cryst. (1991), C47, 2276-2277].
;
;    _publ.section_title
    ;  trans-3-Benzoyl-2-(tert-butyl)-4-(iso-butyl)-
       1,3-oxazolidin-5-one
    ;

    _publ.section_abstract
    ;  The oxazolidinone ring is a shallow envelope
       conformation with the tert-butyl and iso-butyl groups
       occupying trans-positions with respect to the ring.  The
       angles at the N atom sum to 356.2\%, indicating a very
       small degree of pyramidalization at this atom.  This is
       consistent with electron delocalization between the N
       atom and the carbonyl centre [N-C=O = 1.374(3)\%A].
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - based on C~31~H~48~N~4~O~4~, reported by Coleman, Patrick,
                Andersen & Rettig [Acta Cryst. (1996), C52, 1525-1527].
;
;    _publ.section_title
    ;  Hemiasterlin methyl ester
    ;

    _publ.section_title_footnote
    ;  IUPAC name: methyl 2,5-dimethyl-4-{2-[3-methyl-
       2-methylamino-3-(N-methylbenzo[b]pyrrol-
       3-yl)butanamido]-3,3-dimethyl-N-methyl-
       butanamido}-2-hexenoate.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__publ.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_publ.entry_id'
    _item.mandatory_code          yes
     save_

save__publ.contact_author
    _item_description.description
;              The name and address of the author submitting the manuscript and
               data block. This is the person contacted by the journal
               editorial staff. It is preferable to use the separate data items
               _publ.contact_author_name and _publ.contact_author_address.
;
    _item.name                  '_publ.contact_author'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_contact_author'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case
;                                 Professor George Ferguson
                                  Department of Chemistry and Biochemistry
                                  University of Guelph
                                  Ontario
                                  Canada
                                  N1G 2W1
;
     save_

save__publ.contact_author_address
    _item_description.description
;              The address of the author submitting the manuscript and data
               block. This is the person contacted by the journal editorial
               staff.
;
    _item.name                  '_publ.contact_author_address'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_contact_author_address'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case
;                                 Department of Chemistry and Biochemistry
                                  University of Guelph
                                  Ontario
                                  Canada
                                  N1G 2W1
;
     save_

save__publ.contact_author_email
    _item_description.description
;              E-mail address in a form recognizable to international networks.
               The format of e-mail addresses is given in Section 3.4, Address
               Specification, of Internet Message Format, RFC 2822, P. Resnick
               (Editor), Network Standards Group, April 2001.
;
    _item.name                  '_publ.contact_author_email'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_contact_author_email'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          'name@host.domain.country'
                                 'uur5@banjo.bitnet'
     save_

save__publ.contact_author_fax
    _item_description.description
;              Facsimile telephone number of the author submitting the
               manuscript and data block.

               The recommended style starts with the international dialing
               prefix, followed by the area code in parentheses, followed by the
               local number with no spaces. The earlier convention of including
               the international dialing prefix in parentheses is no longer
               recommended.
;
    _item.name                  '_publ.contact_author_fax'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_contact_author_fax'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          '12(34)9477330'
                                 '12()349477330'
     save_

save__publ.contact_author_name
    _item_description.description
;              The name of the author submitting the manuscript and data
               block. This is the person contacted by the journal editorial
               staff.
;
    _item.name                  '_publ.contact_author_name'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_contact_author_name'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case
;                                 Professor George Ferguson
;
     save_

save__publ.contact_author_phone
    _item_description.description
;              Telephone number of the author submitting the manuscript and
               data block.

               The recommended style starts with the international dialing
               prefix, followed by the area code in parentheses, followed by the
               local number and any extension number prefixed by 'x',
               with no spaces. The earlier convention of including
               the international dialing prefix in parentheses is no longer
               recommended.
;
    _item.name                  '_publ.contact_author_phone'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_contact_author_phone'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          '12(34)9477330'
                                 '12()349477330'
                                 '12(34)9477330x5543'
     save_

save__publ.contact_letter
    _item_description.description
;              A letter submitted to the journal editor by the contact author.
;
    _item.name                  '_publ.contact_letter'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_contact_letter'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.manuscript_creation
    _item_description.description
;              A description of the word-processor package and computer used to
               create the word-processed manuscript stored as
               _publ.manuscript_processed.
;
    _item.name                  '_publ.manuscript_creation'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_manuscript_creation'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case          'Tex file created by FrameMaker on a Sun 3/280'
     save_

save__publ.manuscript_processed
    _item_description.description
;              The full manuscript of a paper (excluding possibly the figures
               and the tables) output in ASCII characters from a word processor.
               Information about the generation of this data item must be
               specified in the data item _publ.manuscript_creation.
;
    _item.name                  '_publ.manuscript_processed'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_manuscript_processed'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.manuscript_text
    _item_description.description
;              The full manuscript of a paper (excluding figures and possibly
               the tables) output as standard ASCII text.
;
    _item.name                  '_publ.manuscript_text'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_manuscript_text'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.requested_category
    _item_description.description
;              The category of paper submitted. For submission to
               Acta Crystallographica Section C or
               Acta Crystallographica Section E, ONLY the codes indicated
               for use with these journals should be used.
;
    _item.name                  '_publ.requested_category'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_requested_category'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           FA
    _item_type.code               line
    loop_
    _item_enumeration.value
    _item_enumeration.detail
           FA 'Full article'
           FI 'Full submission - inorganic (Acta C)'
           FO 'Full submission - organic (Acta C)'
           FM 'Full submission - metal-organic (Acta C)'
           CI 'CIF-access paper - inorganic (Acta C) (no longer in use)'
           CO 'CIF-access paper - organic (Acta C) (no longer in use)'
           CM 'CIF-access paper - metal-organic (Acta C) (no longer in use)'
           EI 'Electronic submission - inorganic (Acta E)'
           EO 'Electronic submission - organic (Acta E)'
           EM 'Electronic submission - metal-organic (Acta E)'
           AD 'Addenda and Errata (Acta C, Acta E)'
           SC 'Short communication'
     save_

save__publ.requested_coeditor_name
    _item_description.description
;              The name of the co-editor whom the authors would like to
               handle the submitted manuscript.
;
    _item.name                  '_publ.requested_coeditor_name'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_requested_coeditor_name'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__publ.requested_journal
    _item_description.description
;              The name of the journal to which the manuscript is being
               submitted.
;
    _item.name                  '_publ.requested_journal'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_requested_journal'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
     save_

save__publ.section_abstract
    _item_description.description
;              The abstract section of a manuscript if the manuscript is
               submitted in parts. As an alternative see _publ.manuscript_text
               and _publ.manuscript_processed.
;
    _item.name                  '_publ.section_abstract'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_section_abstract'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.section_acknowledgements
    _item_description.description
;              The acknowledgements section of a manuscript if the manuscript is
               submitted in parts. As an alternative see _publ.manuscript_text
               and _publ.manuscript_processed.
;
    _item.name                  '_publ.section_acknowledgements'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_section_acknowledgements'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.section_comment
    _item_description.description
;              The comment section of a manuscript if the manuscript is
               submitted in parts. As an alternative see _publ.manuscript_text
               and _publ.manuscript_processed.
;
    _item.name                  '_publ.section_comment'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_section_comment'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.section_discussion
    _item_description.description
;              The discussion section of a manuscript if the manuscript is
               submitted in parts. As an alternative see _publ.manuscript_text
               and _publ.manuscript_processed.
;
    _item.name                  '_publ.section_discussion'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_section_discussion'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.section_experimental
    _item_description.description
;              The experimental section of a manuscript if the manuscript is
               submitted in parts. As an alternative see _publ.manuscript_text
               and _publ.manuscript_processed.
               The _publ.section_exptl_prep, _publ.section_exptl_solution and
               _publ.section_exptl_refinement items are preferred for
               separating the chemical preparation, structure solution and
               refinement aspects of the description of the experiment.
;
    _item.name                  '_publ.section_experimental'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_section_experimental'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.section_exptl_prep
    _item_description.description
;              The experimental preparation section of a manuscript if the
               manuscript is submitted in parts. As an alternative see
               _publ.manuscript_text and _publ.manuscript_processed.
;
    _item.name                  '_publ.section_exptl_prep'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_section_exptl_prep'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.section_exptl_refinement
    _item_description.description
;              The experimental refinement section of a manuscript if the
               manuscript is submitted in parts. As an alternative see
               _publ.manuscript_text and _publ.manuscript_processed.
;
    _item.name                  '_publ.section_exptl_refinement'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_section_exptl_refinement'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.section_exptl_solution
    _item_description.description
;              The experimental solution section of a manuscript if the
               manuscript is submitted in parts. As an alternative see
               _publ.manuscript_text and _publ.manuscript_processed.
;
    _item.name                  '_publ.section_exptl_solution'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_section_exptl_solution'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.section_figure_captions
    _item_description.description
;              The figure captions section of a manuscript if the manuscript is
               submitted in parts. As an alternative see _publ.manuscript_text
               and _publ.manuscript_processed.
;
    _item.name                  '_publ.section_figure_captions'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_section_figure_captions'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.section_introduction
    _item_description.description
;              The introduction section of a manuscript if the manuscript is
               submitted in parts. As an alternative see _publ.manuscript_text
               and _publ.manuscript_processed.
;
    _item.name                  '_publ.section_introduction'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_section_introduction'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.section_references
    _item_description.description
;              The references section of a manuscript if the manuscript is
               submitted in parts. As an alternative see _publ.manuscript_text
               and _publ.manuscript_processed.
;
    _item.name                  '_publ.section_references'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_section_references'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.section_synopsis
    _item_description.description
;              The synopsis section of a manuscript if the manuscript is
               submitted in parts. As an alternative see _publ.manuscript_text
               and _publ.manuscript_processed.
;
    _item.name                  '_publ.section_synopsis'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_section_synopsis'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.section_table_legends
    _item_description.description
;              The table legends section of a manuscript if the manuscript
               is submitted in parts. As an alternative see
               _publ.manuscript_text and _publ.manuscript_processed.
;
    _item.name                  '_publ.section_table_legends'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_section_table_legends'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.section_title
    _item_description.description
;              The title of a manuscript if the manuscript is submitted in
               parts. As an alternative see _publ.manuscript_text and
               _publ.manuscript_processed.
;
    _item.name                  '_publ.section_title'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_section_title'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ.section_title_footnote
    _item_description.description
;              The footnote to the title of a manuscript if the manuscript
               is submitted in parts. As an alternative see
               _publ.manuscript_text and _publ.manuscript_processed.
;
    _item.name                  '_publ.section_title_footnote'
    _item.category_id             publ
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_section_title_footnote'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

#################
## PUBL_AUTHOR ##
#################

save_publ_author
    _category.description
;              Data items in the PUBL_AUTHOR category record details of
               the authors of a manuscript submitted for publication.
;
    _category.id                  publ_author
    _category.mandatory_code      no
    _category_key.name          '_publ_author.name'
    loop_
    _category_group.id           'inclusive_group'
                                 'iucr_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on data set TOZ of Willis, Beckwith & Tozer
                [Acta Cryst. (1991), C47, 2276-2277].
;
;
    loop_
    _publ_author.name
    _publ_author.address
         'Willis, Anthony C.'
    ;     Research School of Chemistry
          Australian National University
          GPO Box 4
          Canberra, A.C.T.
          Australia    2601
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__publ_author.address
    _item_description.description
;              The address of a publication author. If there is more than one
               author this is looped with _publ_author.name.
;
    _item.name                  '_publ_author.address'
    _item.category_id             publ_author
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_author_address'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case
;                                 Department
                                  Institute
                                  Street
                                  City and postcode
                                  COUNTRY
;
     save_

save__publ_author.email
    _item_description.description
;              The e-mail address of a publication author. If there is more
               than one author, this will be looped with _publ_author.name.
               The format of e-mail addresses is given in Section 3.4, Address
               Specification, of  Internet Message Format, RFC 2822, P. Resnick
               (Editor), Network Standards Group, April 2001.
;
    _item.name                  '_publ_author.email'
    _item.category_id             publ_author
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_author_email'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.3.1
    _item_type.code               text
    loop_
    _item_examples.case
                                 name@host.domain.country
                                 bm@iucr.org
     save_

save__publ_author.footnote
    _item_description.description
;              A footnote accompanying an author's name in the list of authors
               of a paper. Typically indicates sabbatical address, additional
               affiliations or date of decease.
;
    _item.name                  '_publ_author.footnote'
    _item.category_id             publ_author
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_author_footnote'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          'On leave from U. Western Australia'
                                 'Also at Department of Biophysics'
     save_

save__publ_author.name
    _item_description.description
;              The name of a publication author. If there are multiple authors
               this will be looped with _publ_author.address. The family
               name(s), followed by a comma and including any dynastic
               components, precedes the first names or initials.
;
    _item.name                  '_publ_author.name'
    _item.category_id             publ_author
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_publ_author_name'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          'Bleary, Percival R.'
                                 'O'Neil, F.K.'
                                 'Van den Bossche, G.'
                                 'Yang, D.-L.'
                                 'Simonov, Yu.A.'
     save_

###############
## PUBL_BODY ##
###############

save_publ_body
    _category.description
;              Data items in the PUBL_BODY category permit the labelling of
               different text sections within the body of a paper.
               Note that these should not be used in a paper which has
               a standard format with sections tagged by specific data names
               (such as in Acta Crystallographica Section C). Typically,
               each journal will supply a list of the specific items it
               requires in its Notes for Authors.
;
    _category.id                  publ_body
    _category.mandatory_code      no
    loop_
    _category_key.name          '_publ_body.element'
                                '_publ_body.label'
    loop_
    _category_group.id           'inclusive_group'
                                 'iucr_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on a paper by R. Restori & D. Schwarzenbach
                [Acta Cryst. (1996), A52, 369-378].
;
;
    loop_
    _publ_body.element
    _publ_body.label
    _publ_body.title
    _publ_body.format
    _publ_body.contents

         section   1         Introduction                    cif
    ; X-ray diffraction from a crystalline material provides
      information on the thermally and spatially averaged
      electron density in the crystal...
    ;
         section   2         Theory                          tex
    ; In the rigid-atom approximation, the dynamic electron
      density of an atom is described by the convolution
      product of the static atomic density and a probability
      density function,
      $\rho_{dyn}(\bf r) = \rho_{stat}(\bf r) * P(\bf r). \eqno(1)$
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - based on a paper by R. J. Papoular, Y. Vekhter & P. Coppens
                [Acta Cryst. (1996), A52, 397-407].
;
;
    loop_
    _publ_body.element
    _publ_body.label
    _publ_body.title
    _publ_body.contents

         section     3
    ; The two-channel method for retrieval of the deformation
      electron density
    ;
         .
         subsection  3.1  'The two-channel entropy S[\D\r(r)]'
    ; As the wide dynamic range involved in the total electron
      density...
    ;
         subsection  3.2
    'Uniform vs informative prior model densities'        .
         subsubsection  3.2.1  'Use of uniform models'
    ; Straightforward algebra leads to expressions analogous
      to...
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__publ_body.contents
    _item_description.description
;              A text section of a paper.
;
    _item.name                  '_publ_body.contents'
    _item.category_id             publ_body
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_body_contents'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__publ_body.element
    _item_description.description
;              The functional role of the associated text section.
;
    _item.name                  '_publ_body.element'
    _item.category_id             publ_body
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_body_element'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               code
    loop_
    _item_enumeration.value      'section'
                                 'subsection'
                                 'subsubsection'
                                 'appendix'
                                 'footnote'

     save_

save__publ_body.format
    _item_description.description
;              Code indicating the appropriate typesetting conventions
               for accented characters and special symbols in the text
               section.
;
    _item.name                  '_publ_body.format'
    _item.category_id             publ_body
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_body_format'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               code
    loop_
    _item_enumeration.value
    _item_enumeration.detail      ascii   'no coding for special symbols'
                                  cif     'CIF convention'
                                  latex   'LaTeX'
                                  sgml    'SGML (ISO 8879)'
                                  tex     'TeX'
                                  troff   'troff or nroff'
     save_

save__publ_body.label
    _item_description.description
;              Code identifying the section of text.
;
    _item.name                  '_publ_body.label'
    _item.category_id             publ_body
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_body_label'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               code
    loop_
    _item_examples.case          '1'
                                 '1.1'
                                 '2.1.3'
     save_

save__publ_body.title
    _item_description.description
;              Title of the associated section of text.
;
    _item.name                  '_publ_body.title'
    _item.category_id             publ_body
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_body_title'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

##########################
## PUBL_MANUSCRIPT_INCL ##
##########################

save_publ_manuscript_incl
    _category.description
;              Data items in the PUBL_MANUSCRIPT_INCL category allow
               the authors of a manuscript submitted for publication to list
               data names that should be added to the standard request list
               used by the journal printing software.
;
    _category.id                  publ_manuscript_incl
    _category.mandatory_code      no
    _category_key.name          '_publ_manuscript_incl.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'iucr_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - hypothetical example.
;
;
    _publ_manuscript_incl.entry_id    'EXAMHYPO'
    loop_
    _publ_manuscript_incl.extra_item
    _publ_manuscript_incl.extra_info
    _publ_manuscript_incl.extra_defn
   '_atom_site.symmetry_multiplicity'
                         'to emphasise special sites'      yes
   '_chemical.compound_source'
                         'rare material, unusual source'   yes
   '_reflns.d_resolution_high'
                         'limited data is a problem here'  yes
   '_crystal.magnetic_permeability'
                         'unusual value for this material'  no
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__publ_manuscript_incl.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_publ_manuscript_incl.entry_id'
    _item.mandatory_code          yes
     save_

save__publ_manuscript_incl.extra_defn
    _item_description.description
;              Flags whether the corresponding data item marked for inclusion
               in a journal request list is a standard CIF definition or not.
;
    _item.name                  '_publ_manuscript_incl.extra_defn'
    _item.category_id             publ_manuscript_incl
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_manuscript_incl_extra_defn'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_enumeration.value
    _item_enumeration.detail      no
                                 'not a standard CIF data name'
                                  n
                                 'abbreviation for "no"'
                                  yes
                                 'a standard CIF data name'
                                  y
                                 'abbreviation for "yes"'
     save_

save__publ_manuscript_incl.extra_info
    _item_description.description
;              A short note indicating the reason why the author wishes the
               corresponding data item marked for inclusion in the journal
               request list to be published.
;
    _item.name                  '_publ_manuscript_incl.extra_info'
    _item.category_id             publ_manuscript_incl
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_manuscript_incl_extra_info'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    loop_
    _item_examples.case          'to emphasise very special sites'
                                 'rare material from unusual source'
                                 'the limited data is a problem here'
                                 'a new data quantity needed here'
     save_

save__publ_manuscript_incl.extra_item
    _item_description.description
;              Specifies the inclusion of specific data into a manuscript
               which are not normally requested by the journal. The values
               of this item are the extra data names (which MUST be enclosed
               in single quotes) that will be added to the journal request list.
;
    _item.name                  '_publ_manuscript_incl.extra_item'
    _item.category_id             publ_manuscript_incl
    _item.mandatory_code          no
    _item_aliases.alias_name    '_publ_manuscript_incl_extra_item'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case         '_atom_site.symmetry_multiplicity'
                                '_chemical.compound_source'
                                '_reflns.d_resolution_high'
                                '_crystal.magnetic_permeability'
     save_

############
## REFINE ##
############

save_refine
    _category.description
;              Data items in the REFINE category record details about the
               structure-refinement parameters.
;
    _category.id                  refine
    _category.mandatory_code      no
    _category_key.name          '_refine.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'refine_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _refine.entry_id                       '5HVP'
    _refine.ls_number_reflns_obs           12901
    _refine.ls_number_restraints           6609
    _refine.ls_number_parameters           7032
    _refine.ls_R_Factor_obs                0.176
    _refine.ls_weighting_scheme            calc
    _refine.ls_weighting_details
    ; Sigdel model of Konnert-Hendrickson:
      Sigdel: Afsig +  Bfsig*(sin(theta)/lambda-1/6)
      Afsig = 22.0, Bfsig = -150.0 at beginning of refinement
      Afsig = 15.5, Bfsig =  -50.0 at end of refinement
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - based on data set TOZ of Willis, Beckwith & Tozer
                 [Acta Cryst. (1991), C47, 2276-2277].
;
;
    _refine.details              sfls:_F_calc_weight_full_matrix

    _refine.ls_structure_factor_coef   F
    _refine.ls_matrix_type             full
    _refine.ls_weighting_scheme   calc
    _refine.ls_weighting_details  'w=1/(\s^2^(F)+0.0004F^2^)'
    _refine.ls_hydrogen_treatment     'refxyz except H332B noref'
    _refine.ls_extinction_method       Zachariasen
    _refine.ls_extinction_coef         3514
    _refine.ls_extinction_expression
    ; Larson, A. C. (1970). "Crystallographic Computing", edited
      by F. R. Ahmed. Eq. (22) p. 292. Copenhagen: Munksgaard.

    _refine.ls_abs_structure_details
    ; The absolute configuration was assigned to agree with the
      known chirality at C3 arising from its precursor l-leucine.
    ;
    _refine.ls_abs_structure_Flack     0
    _refine.ls_number_reflns_obs       1408
    _refine.ls_number_parameters       272
    _refine.ls_number_restraints       0
    _refine.ls_number_constraints      0
    _refine.ls_R_factor_all               .038
    _refine.ls_R_factor_obs               .034
    _refine.ls_wR_factor_all              .044
    _refine.ls_wR_factor_obs              .042
    _refine.ls_goodness_of_fit_all       1.462
    _refine.ls_goodness_of_fit_obs       1.515
    _refine.ls_shift_over_esd_max         .535
    _refine.ls_shift_over_esd_mean        .044
    _refine.diff_density_min              -.108
    _refine.diff_density_max              .131
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_



save__refine.aniso_B[1][1]
    _item_description.description
;              The [1][1] element of the matrix that defines the overall
               anisotropic displacement model if one was refined for this
               structure.
;
    _item.name                  '_refine.aniso_B[1][1]'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__refine.aniso_B[1][2]
    _item_description.description
;              The [1][2] element of the matrix that defines the overall
               anisotropic displacement model if one was refined for this
               structure.
;
    _item.name                  '_refine.aniso_B[1][2]'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__refine.aniso_B[1][3]
    _item_description.description
;              The [1][3] element of the matrix that defines the overall
               anisotropic displacement model if one was refined for this
               structure.
;
    _item.name                  '_refine.aniso_B[1][3]'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__refine.aniso_B[2][2]
    _item_description.description
;              The [2][2] element of the matrix that defines the overall
               anisotropic displacement model if one was refined for this
               structure.
;
    _item.name                  '_refine.aniso_B[2][2]'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__refine.aniso_B[2][3]
    _item_description.description
;              The [2][3] element of the matrix that defines the overall
               anisotropic displacement model if one was refined for this
               structure.
;
    _item.name                  '_refine.aniso_B[2][3]'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__refine.aniso_B[3][3]
    _item_description.description
;              The [3][3] element of the matrix that defines the overall
               anisotropic displacement model if one was refined for this
               structure.
;
    _item.name                  '_refine.aniso_B[3][3]'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__refine.B_iso_max
    _item_description.description
;              The maximum isotropic displacement parameter (B value)
               found in the coordinate set.
;
    _item.name                  '_refine.B_iso_max'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__refine.B_iso_mean
    _item_description.description
;              The mean isotropic displacement parameter (B value)
               for the coordinate set.
;
    _item.name                  '_refine.B_iso_mean'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__refine.B_iso_min
    _item_description.description
;              The minimum isotropic displacement parameter (B value)
               found in the coordinate set.
;
    _item.name                  '_refine.B_iso_min'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__refine.correlation_coeff_Fo_to_Fc
    _item_description.description
;              The correlation coefficient between the observed and
               calculated structure factors for reflections included in
               the refinement.

               The correlation coefficient is scale-independent and gives
               an idea of the quality of the refined model.

                            sum~i~(Fo~i~ Fc~i~ - <Fo><Fc>)
  R~corr~ = ------------------------------------------------------------
            SQRT{sum~i~(Fo~i~)^2^-<Fo>^2^} SQRT{sum~i~(Fc~i~)^2^-<Fc>^2^}

               Fo = observed structure factors
               Fc = calculated structure factors
               <>   denotes average value

               summation is over reflections included in the refinement
;
    _item.name                  '_refine.correlation_coeff_Fo_to_Fc'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine.ebi_Correlation_coeff_Fo_to_Fc'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    _item_type.code               float
     save_

save__refine.correlation_coeff_Fo_to_Fc_free
    _item_description.description
;              The correlation coefficient between the observed and
               calculated structure factors for reflections not included
               in the refinement (free reflections).

                The correlation coefficient is scale-independent and gives
                an idea of the quality of the refined model.

                            sum~i~(Fo~i~ Fc~i~ - <Fo><Fc>)
  R~corr~ = ------------------------------------------------------------
            SQRT{sum~i~(Fo~i~)^2^-<Fo>^2^} SQRT{sum~i~(Fc~i~)^2^-<Fc>^2^}

                Fo  = observed structure factors
                Fc  = calculated structure factors
                <>    denotes average value

                summation is over reflections not included
                in the refinement (free reflections)
;
    _item.name                  '_refine.correlation_coeff_Fo_to_Fc_free'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine.ebi_Correlation_coeff_Fo_to_Fc_free'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    _item_type.code               float
     save_


save__refine.details
    _item_description.description
;              Description of special aspects of the refinement process.
;
    _item.name                  '_refine.details'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_special_details'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__refine.diff_density_max
    _item_description.description
;              The maximum value of the electron density in the final difference
               Fourier map.
;
    _item.name                  '_refine.diff_density_max'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_diff_density_max'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_related.related_name  '_refine.diff_density_max_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              electrons_per_angstroms_cubed
     save_

save__refine.diff_density_max_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _refine.diff_density_max.
;
    _item.name                  '_refine.diff_density_max_esd'
    _item.category_id             refine
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_refine.diff_density_max'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              electrons_per_angstroms_cubed
     save_

save__refine.diff_density_min
    _item_description.description
;              The minimum value of the electron density in the final difference
               Fourier map.
;
    _item.name                  '_refine.diff_density_min'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_diff_density_min'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_related.related_name  '_refine.diff_density_min_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              electrons_per_angstroms_cubed
     save_

save__refine.diff_density_min_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _refine.diff_density_min.
;
    _item.name                  '_refine.diff_density_min_esd'
    _item.category_id             refine
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_refine.diff_density_min'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              electrons_per_angstroms_cubed
     save_

save__refine.diff_density_rms
    _item_description.description
;              The root-mean-square-deviation of the electron density in the
               final difference Fourier map. This value is measured with respect
               to the arithmetic mean density and is derived from summations
               over each grid point in the asymmetric unit of the cell. This
               quantity is useful for assessing the significance of the values
               of _refine.diff_density_min and _refine.diff_density_max, and
               also for defining suitable contour levels.
;
    _item.name                  '_refine.diff_density_rms'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_diff_density_rms'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_related.related_name  '_refine.diff_density_rms_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              electrons_per_angstroms_cubed
     save_

save__refine.diff_density_rms_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _refine.diff_density_rms.
;
    _item.name                  '_refine.diff_density_rms_esd'
    _item.category_id             refine
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_refine.diff_density_rms'
    _item_related.function_code   associated_value
    _item_type.code               float
    _item_units.code              electrons_per_angstroms_cubed
     save_

save__refine.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_refine.entry_id'
    _item.mandatory_code          yes
     save_

save__refine.ls_abs_structure_details
    _item_description.description
;              The nature of the absolute structure and how it was determined.
               For example, this may describe the Friedel pairs used.
;
    _item.name                  '_refine.ls_abs_structure_details'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_abs_structure_details'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__refine.ls_abs_structure_Flack
    _item_description.description
;              The measure of absolute structure (enantiomorph or polarity) as
               defined by Flack (1983).

               For centrosymmetric structures, the only permitted value, if the
               data name is present, is 'inapplicable', represented by '.' .

               For noncentrosymmetric structures the value must lie in the
               99.97% Gaussian confidence interval  -3u =< x =< 1 + 3u and a
               standard uncertainty (estimated standard deviation) u must
               be supplied. The item range of [0.0:1.0] is correctly
               interpreted as meaning (0.0 - 3u) =< x =< (1.0 + 3u).

                  Ref: Flack, H. D. (1983). Acta Cryst. A39, 876-881.
;
    _item.name                  '_refine.ls_abs_structure_Flack'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_abs_structure_Flack'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           1.0   1.0
                                  1.0   0.0
                                  0.0   0.0
    _item_related.related_name  '_refine.ls_abs_structure_Flack_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
     save_

save__refine.ls_abs_structure_Flack_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _refine.ls_abs_structure_Flack.
;
    _item.name                  '_refine.ls_abs_structure_Flack_esd'
    _item.category_id             refine
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_refine.ls_abs_structure_Flack'
    _item_related.function_code   associated_value
    _item_type.code               float
     save_

save__refine.ls_abs_structure_Rogers
    _item_description.description
;              The measure of absolute structure (enantiomorph or polarity) as
               defined by Rogers.


               The value must lie in the 99.97% Gaussian confidence interval
               -1 -3u =< \h =< 1 + 3u and a standard uncertainty (estimated
               standard deviation) u must be supplied. The item range of
               [-1.0, 1.0] is correctly interpreted as meaning
               (-1.0 - 3u) =< \h =< (1.0 + 3u).

               Ref: Rogers, D. (1981). Acta Cryst. A37, 734-741.
;
    _item.name                  '_refine.ls_abs_structure_Rogers'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_abs_structure_Rogers'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           1.0   1.0
                                  1.0  -1.0
                                 -1.0  -1.0
    _item_related.related_name  '_refine.ls_abs_structure_Rogers_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
     save_

save__refine.ls_abs_structure_Rogers_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _refine.ls_abs_structure_Rogers.
;
    _item.name                  '_refine.ls_abs_structure_Rogers_esd'
    _item.category_id             refine
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_refine.ls_abs_structure_Rogers'
    _item_related.function_code   associated_value
    _item_type.code               float
     save_

save__refine.ls_d_res_high
    _item_description.description
;              The smallest value for the interplanar spacings for the
               reflection data used in the refinement in angstroms. This is
               called the highest resolution.
;
    _item.name                  '_refine.ls_d_res_high'
    _item.category_id             refine
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_refine_ls_d_res_high'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine.ls_d_res_low
    _item_description.description
;              The largest value for the interplanar spacings for
               the reflection data used in the refinement in angstroms.
               This is called the lowest resolution.
;
    _item.name                  '_refine.ls_d_res_low'
    _item.category_id             refine
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_refine_ls_d_res_low'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine.ls_extinction_coef
    _item_description.description
;              The extinction coefficient used to calculate the correction
               factor applied to the structure-factor data. The nature of the
               extinction coefficient is given in the definitions of
               _refine.ls_extinction_expression and
               _refine.ls_extinction_method.

               For the 'Zachariasen' method it is the r* value; for the
               'Becker-Coppens type 1 isotropic' method it is the 'g' value,
               and for 'Becker-Coppens type 2 isotropic' corrections it is
               the 'rho' value. Note that the magnitude of these values is
               usually of the order of 10000.

               Ref:  Becker, P. J. & Coppens, P. (1974). Acta Cryst. A30,
                     129-47, 148-153.
                     Zachariasen, W. H. (1967). Acta Cryst. 23, 558-564.
                     Larson, A. C. (1967). Acta Cryst. 23, 664-665.
;
    _item.name                  '_refine.ls_extinction_coef'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_extinction_coef'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_related.related_name  '_refine.ls_extinction_coef_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_examples.case           3472
    _item_examples.detail        'Zachariasen coefficient r* = 0.347 E04'
     save_

save__refine.ls_extinction_coef_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _refine.ls_extinction_coef.
;
    _item.name                  '_refine.ls_extinction_coef_esd'
    _item.category_id             refine
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_refine.ls_extinction_coef'
    _item_related.function_code   associated_value
    _item_type.code               float
     save_

save__refine.ls_extinction_expression
    _item_description.description
;              A description of or reference to the extinction-correction
               equation used to apply the data item
               _refine.ls_extinction_coef. This information must be sufficient
               to reproduce the extinction-correction factors applied to the
               structure factors.
;
    _item.name                  '_refine.ls_extinction_expression'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_extinction_expression'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case
;      Larson, A. C. (1970). "Crystallographic Computing", edited by
       F. R. Ahmed. Eq. (22), p.292. Copenhagen: Munksgaard.
;
     save_

save__refine.ls_extinction_method
    _item_description.description
;              A description of the extinction-correction method applied.
               This description should
               include information about the correction method, either
               'Becker-Coppens' or 'Zachariasen'.  The latter is sometimes
               referred to as the 'Larson' method even though it employs
               Zachariasen's formula.

               The Becker-Coppens procedure is referred to as 'type 1' when
               correcting secondary extinction dominated by the mosaic spread;
               as 'type 2' when secondary extinction is dominated by particle
               size and includes a primary extinction component; and as 'mixed'
               when there is a mixture of types 1 and 2.

               For the Becker-Coppens method, it is also necessary to set the
               mosaic distribution as either 'Gaussian' or 'Lorentzian' and the
               nature of the extinction as 'isotropic' or 'anisotropic'. Note
               that if either the 'mixed' or 'anisotropic' corrections are
               applied, the multiple coefficients cannot be contained in
               *_extinction_coef and must be listed in _refine.details.

               Ref: Becker, P. J. & Coppens, P. (1974). Acta Cryst. A30,
                    129-147, 148-153.
                    Zachariasen, W. H. (1967). Acta Cryst. 23, 558- 564.
                    Larson, A. C. (1967). Acta Cryst. 23, 664-665.
;
    _item.name                  '_refine.ls_extinction_method'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_extinction_method'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           Zachariasen
    _item_type.code               text
    _item_examples.case          'B-C type 2 Gaussian isotropic'
     save_

save__refine.ls_goodness_of_fit_all
    _item_description.description
;              The least-squares goodness-of-fit parameter S for all data
               after the final cycle of refinement. Ideally, account should be
               taken of parameters restrained in the least-squares refinement.
               See also the definition of _refine.ls_restrained_S_all.

                   ( sum|w |Y~obs~ - Y~calc~|^2^| )^1/2^
               S = ( ---------------------------- )
                   (       N~ref~ - N~param~      )

               Y~obs~   = the observed coefficients
                          (see _refine.ls_structure_factor_coef)
               Y~calc~  = the calculated coefficients
                          (see _refine.ls_structure_factor_coef)
               w        = the least-squares reflection weight
                          [1/(e.s.d. squared)]

               N~ref~   = the number of reflections used in the refinement
               N~param~ = the number of refined parameters

               sum is taken over the specified reflections
;
    _item.name                  '_refine.ls_goodness_of_fit_all'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_goodness_of_fit_all'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine.ls_goodness_of_fit_all_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
     save_

save__refine.ls_goodness_of_fit_all_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _refine.ls_goodness_of_fit_all.
;
    _item.name                  '_refine.ls_goodness_of_fit_all_esd'
    _item.category_id             refine
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_refine.ls_goodness_of_fit_all'
    _item_related.function_code   associated_value
    _item_type.code               float
     save_

save__refine.ls_goodness_of_fit_obs
    _item_description.description
;              The least-squares goodness-of-fit parameter S for reflection data
               classified as 'observed' (see _reflns.observed_criterion) after
               the final cycle of refinement. Ideally, account should be taken
               of parameters restrained in the least-squares refinement.
               See also the definition of _refine.ls_restrained_S_obs.

                   ( sum|w |Y~obs~ - Y~calc~|^2^| )^1/2^
               S = ( ---------------------------- )
                   (       N~ref~ - N~param~      )

               Y~obs~   = the observed coefficients
                          (see _refine.ls_structure_factor_coef)
               Y~calc~  = the calculated coefficients
                          (see _refine.ls_structure_factor_coef)
               w        = the least-squares reflection weight
                          [1/(e.s.d. squared)]

               N~ref~   = the number of reflections used in the refinement
               N~param~ = the number of refined parameters

               sum is taken over the specified reflections
;
    _item.name                  '_refine.ls_goodness_of_fit_obs'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_goodness_of_fit_obs'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine.ls_goodness_of_fit_obs_esd'
    _item_related.function_code   associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
     save_

save__refine.ls_goodness_of_fit_obs_esd
    _item_description.description
;              The standard uncertainty (estimated standard deviation)
               of _refine.ls_goodness_of_fit_obs.
;
    _item.name                  '_refine.ls_goodness_of_fit_obs_esd'
    _item.category_id             refine
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_related.related_name  '_refine.ls_goodness_of_fit_obs'
    _item_related.function_code   associated_value
    _item_type.code               float
     save_

save__refine.ls_hydrogen_treatment
    _item_description.description
;              Treatment of hydrogen atoms in the least-squares refinement.
;
    _item.name                  '_refine.ls_hydrogen_treatment'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_hydrogen_treatment'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           undef
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      refall  'refined all H-atom parameters'
                                  refxyz  'refined H-atom coordinates only'
                                  refU    'refined H-atom U's only'
                                  noref   'no refinement of H-atom parameters'
                                  constr  'H-atom parameters constrained'
                                  mixed   'some constrained, some independent'
                                  undef   'H-atom parameters not defined'
     save_

save__refine.ls_matrix_type
    _item_description.description
;              Type of matrix used to accumulate the least-squares derivatives.
;
    _item.name                  '_refine.ls_matrix_type'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_matrix_type'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           full
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      full       'full'
                                  fullcycle
                                 'full with fixed elements per cycle'
                                  atomblock  'block diagonal per atom'
                                  userblock  'user-defined blocks'
                                  diagonal   'diagonal elements only'
                                  sparse     'selected elements only'
     save_

save__refine.ls_number_constraints
    _item_description.description
;              The number of constrained (non-refined or dependent) parameters
               in the least-squares process. These may be due to symmetry or any
               other constraint process (e.g. rigid-body refinement). See also
               _atom_site.constraints and _atom_site.refinement_flags. A general
               description of constraints may appear in _refine.details.
;
    _item.name                  '_refine.ls_number_constraints'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_number_constraints'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           0
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine.ls_number_parameters
    _item_description.description
;              The number of parameters refined in the least-squares process.
               If possible, this number should include some contribution from
               the restrained parameters. The restrained parameters are
               distinct from the constrained parameters (where one or more
               parameters are linearly dependent on the refined value of
               another). Least-squares restraints often depend on geometry or
               energy considerations and this makes their direct contribution
               to this number, and to the goodness-of-fit calculation,
               difficult to assess.
;
    _item.name                  '_refine.ls_number_parameters'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_number_parameters'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine.ls_number_reflns_all
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine.ls_d_res_high and _refine.ls_d_res_low.
;
    _item.name                  '_refine.ls_number_reflns_all'
    _item.category_id             refine
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine.ls_number_reflns_obs
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine.ls_d_res_high and _refine.ls_d_res_low
               and the observation limit established by
               _reflns.observed_criterion.
;
    _item.name                  '_refine.ls_number_reflns_obs'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_number_reflns'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine.ls_number_reflns_R_free
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine.ls_d_res_high and _refine.ls_d_res_low
               and the observation limit established by
               _reflns.observed_criterion, and that were used as the test
               reflections (i.e. were excluded from the refinement) when the
               refinement included the calculation of a 'free' R factor.
               Details of how reflections were assigned to the working and
               test sets are given in _reflns.R_free_details.
;
    _item.name                  '_refine.ls_number_reflns_R_free'
    _item.category_id             refine
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine.ls_number_reflns_R_work
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine.ls_d_res_high and _refine.ls_d_res_low
               and the observation limit established by
               _reflns.observed_criterion, and that were used as the working
               reflections (i.e. were included in the refinement) when the
               refinement included the calculation of a 'free' R factor.
               Details of how reflections were assigned to the working and
               test sets are given in _reflns.R_free_details.
;
    _item.name                  '_refine.ls_number_reflns_R_work'
    _item.category_id             refine
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine.ls_number_restraints
    _item_description.description
;              The number of restrained parameters. These are parameters which
               are not directly dependent on another refined parameter.
               Restrained parameters often involve geometry or energy
               dependencies.
               See also _atom_site.constraints and _atom_site.refinement_flags.
               A general description of refinement constraints may appear in
               _refine.details.
;
    _item.name                  '_refine.ls_number_restraints'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_number_restraints'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine.ls_percent_reflns_obs
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine.ls_d_res_high and _refine.ls_d_res_low
               and the observation limit established by
               _reflns.observed_criterion, expressed as a percentage of the
               number of geometrically observable reflections that satisfy
               the resolution limits.
;
    _item.name                  '_refine.ls_percent_reflns_obs'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__refine.ls_percent_reflns_R_free
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine.ls_d_res_high and _refine.ls_d_res_low
               and the observation limit established by
               _reflns.observed_criterion, and that were used as the test
               reflections (i.e. were excluded from the refinement) when the
               refinement included the calculation of a 'free' R factor,
               expressed as a percentage of the number of geometrically
               observable reflections that satisfy the resolution limits.
;
    _item.name                  '_refine.ls_percent_reflns_R_free'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__refine.ls_R_factor_all
    _item_description.description
;              Residual factor R for all reflections that satisfy the resolution
               limits established by _refine.ls_d_res_high and
               _refine.ls_d_res_low.

                   sum|F~obs~ - F~calc~|
               R = ---------------------
                        sum|F~obs~|

               F~obs~  = the observed structure-factor amplitudes
               F~calc~ = the calculated structure-factor amplitudes

               sum is taken over the specified reflections
;
    _item.name                  '_refine.ls_R_factor_all'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_R_factor_all'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine.ls_wR_factor_all'
    _item_related.function_code   alternate
    _item_type.code               float
     save_

save__refine.ls_R_factor_obs
    _item_description.description
;              Residual factor R for reflections that satisfy the resolution
               limits established by _refine.ls_d_res_high and
               _refine.ls_d_res_low and the observation limit established by
               _reflns.observed_criterion.

               _refine.ls_R_factor_obs should not be confused with
               _refine.ls_R_factor_R_work; the former reports the results of a
               refinement in which all observed reflections were used, the
               latter a refinement in which a subset of the observed
               reflections were excluded from refinement for the calculation
               of a 'free' R factor. However, it would be meaningful to quote
               both values if a 'free' R factor were calculated for most of
               the refinement, but all of the observed reflections were used
               in the final rounds of refinement; such a protocol should be
               explained in _refine.details.

                   sum|F~obs~ - F~calc~|
               R = ---------------------
                        sum|F~obs~|

               F~obs~  = the observed structure-factor amplitudes
               F~calc~ = the calculated structure-factor amplitudes

               sum is taken over the specified reflections
;
    _item.name                  '_refine.ls_R_factor_obs'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_R_factor_obs'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine.ls_wR_factor_obs'
    _item_related.function_code   alternate
    _item_type.code               float
     save_

save__refine.ls_R_factor_R_free
    _item_description.description
;              Residual factor R for reflections that satisfy the resolution
               limits established by _refine.ls_d_res_high and
               _refine.ls_d_res_low and the observation limit established by
               _reflns.observed_criterion, and that were used as the test
               reflections (i.e. were excluded from the refinement) when the
               refinement included the calculation of a 'free' R factor.
               Details of how reflections were assigned to the working and
               test sets are given in _reflns.R_free_details.

                   sum|F~obs~ - F~calc~|
               R = ---------------------
                        sum|F~obs~|

               F~obs~  = the observed structure-factor amplitudes
               F~calc~ = the calculated structure-factor amplitudes

               sum is taken over the specified reflections
;
    _item.name                  '_refine.ls_R_factor_R_free'
    _item.category_id             refine
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_refine.ls_wR_factor_R_free'
                                  alternate
                                '_refine.ls_R_factor_R_free_error'
                                  associated_error
    _item_type.code               float
     save_

save__refine.ls_R_factor_R_free_error
    _item_description.description
;              The estimated error in _refine.ls_R_factor_R_free.
               The method used to estimate the error is described in the
               item _refine.ls_R_factor_R_free_error_details.
;
    _item.name                  '_refine.ls_R_factor_R_free_error'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_related.related_name  '_refine.ls_R_factor_R_free'
    _item_related.function_code   associated_value
    _item_type.code               float
     save_

save__refine.ls_R_factor_R_free_error_details
    _item_description.description
;              Special aspects of the method used to estimated the error in
               _refine.ls_R_factor_R_free.
;
    _item.name                  '_refine.ls_R_factor_R_free_error_details'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__refine.ls_R_factor_R_work
    _item_description.description
;              Residual factor R for reflections that satisfy the resolution
               limits established by _refine.ls_d_res_high and
               _refine.ls_d_res_low and the observation limit established by
               _reflns.observed_criterion, and that were used as the working
               reflections (i.e. were included in the refinement)  when the
               refinement included the calculation of a 'free' R factor.
               Details of how reflections were assigned to the working and
               test sets are given in _reflns.R_free_details.

               _refine.ls_R_factor_obs should not be confused with
               _refine.ls_R_factor_R_work; the former reports the results of a
               refinement in which all observed reflections were used, the
               latter a refinement in which a subset of the observed
               reflections were excluded from refinement for the calculation
               of a 'free' R factor. However, it would be meaningful to quote
               both values if a 'free' R factor were calculated for most of
               the refinement, but all of the observed reflections were used
               in the final rounds of refinement; such a protocol should be
               explained in _refine.details.

                   sum|F~obs~ - F~calc~|
               R = ---------------------
                        sum|F~obs~|

               F~obs~  = the observed structure-factor amplitudes
               F~calc~ = the calculated structure-factor amplitudes

               sum is taken over the specified reflections
;
    _item.name                  '_refine.ls_R_factor_R_work'
    _item.category_id             refine
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine.ls_wR_factor_R_work'
    _item_related.function_code   alternate
    _item_type.code               float
     save_

save__refine.ls_R_Fsqd_factor_obs
    _item_description.description
;              Residual factor R(Fsqd) for reflections that satisfy the
               resolution limits established by _refine.ls_d_res_high and
               _refine.ls_d_res_low and the observation limit established by
               _reflns.observed_criterion, calculated on the squares of the
               observed and calculated structure-factor amplitudes.

                         sum|F~obs~^2^ - F~calc~^2^|
               R(Fsqd) = ---------------------------
                                sum|F~obs~^2^|

               F~obs~^2^  = squares of the observed structure-factor amplitudes
               F~calc~^2^ = squares of the calculated structure-factor
                            amplitudes

               sum is taken over the specified reflections
;
    _item.name                  '_refine.ls_R_Fsqd_factor_obs'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_R_Fsqd_factor'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine.ls_R_I_factor_obs
    _item_description.description
;              Residual factor R(I) for reflections that satisfy the
               resolution limits established by _refine.ls_d_res_high and
               _refine.ls_d_res_low and the observation limit established by
               _reflns.observed_criterion, calculated on the estimated
               reflection intensities.

               This is most often calculated in Rietveld refinements against
               powder data, where it is referred to as R~B~ or R~Bragg~.

                      sum|I~obs~ - I~calc~|
               R(I) = ---------------------
                           sum|I~obs~|

               I~obs~  = the net observed intensities
               I~calc~ = the net calculated intensities

               sum is taken over the specified reflections
;
    _item.name                  '_refine.ls_R_I_factor_obs'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_R_I_factor'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine.ls_redundancy_reflns_all
    _item_description.description
;              The ratio of the total number of observations of the
               reflections that satisfy the resolution limits established by
               _refine.ls_d_res_high and _refine.ls_d_res_low to the number
               of crystallographically unique reflections that satisfy the
               same limits.
;
    _item.name                  '_refine.ls_redundancy_reflns_all'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__refine.ls_redundancy_reflns_obs
    _item_description.description
;              The ratio of the total number of observations of the
               reflections that satisfy the resolution limits established by
               _refine.ls_d_res_high and _refine.ls_d_res_low and the
               observation limit established by _reflns.observed_criterion to
               the number of crystallographically unique reflections that
               satisfy the same limits.
;
    _item.name                  '_refine.ls_redundancy_reflns_obs'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__refine.ls_restrained_S_all
    _item_description.description
;              The least-squares goodness-of-fit parameter S' for all
               reflections after the final cycle of least-squares refinement.
               This parameter explicitly includes the restraints applied
               in the least-squares process. See also the definition of
               _refine.ls_goodness_of_fit_all.

                    (   sum   |w    |Y~obs~  - Y~calc~|^2^| )^1/2^
                    ( + sum~r~|w~r~ |P~calc~ - P~targ~|^2^| )
               S' = ( ------------------------------------- )
                    (      N~ref~ + N~restr~ - N~param~     )

               Y~obs~   = the observed coefficients
                          (see _refine.ls_structure_factor_coef)
               Y~calc~  = the calculated coefficients
                          (see _refine.ls_structure_factor_coef)
               w        = the least-squares reflection weight
                          [1/(e.s.d. squared)]

               P~calc~  = the calculated restraint values
               P~targ~  = the target restraint values
               w~r~     = the restraint weight

               N~ref~   = the number of reflections used in the refinement
                          (see _refine.ls_number_reflns_obs)
               N~restr~ = the number of restraints
                          (see _refine.ls_number_restraints)
               N~param~ = the number of refined parameters
                          (see _refine.ls_number_parameters)

               sum  is taken over the specified reflections
               sumr is taken over the restraints
;
    _item.name                  '_refine.ls_restrained_S_all'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_restrained_S_all'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine.ls_restrained_S_obs
    _item_description.description
;              The least-squares goodness-of-fit parameter S' for reflection
               data classified as observed (see _reflns.observed_criterion)
               after the final cycle of least-squares refinement. This
               parameter explicitly includes the restraints applied in
               the least-squares process. See also the definition of
               _refine.ls_goodness_of_fit_obs.

                    (   sum   |w    |Y~obs~  - Y~calc~|^2^| )^1/2^
                    ( + sum~r~|w~r~ |P~calc~ - P~targ~|^2^| )
               S' = ( ------------------------------------- )
                    (      N~ref~ + N~restr~ - N~param~     )

               Y~obs~   = the observed coefficients
                          (see _refine.ls_structure_factor_coef)
               Y~calc~  = the calculated coefficients
                          (see _refine.ls_structure_factor_coef)
               w        = the least-squares reflection weight
                          [1/(e.s.d. squared)]

               P~calc~  = the calculated restraint values
               P~targ~  = the target restraint values
               w~r~     = the restraint weight

               N~ref~   = the number of reflections used in the refinement
                          (see _refine.ls_number_reflns_obs)
               N~restr~ = the number of restraints
                          (see _refine.ls_number_restraints)
               N~param~ = the number of refined parameters
                          (see _refine.ls_number_parameters)

               sum  is taken over the specified reflections
               sumr is taken over the restraints
;
    _item.name                  '_refine.ls_restrained_S_obs'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_restrained_S_obs'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine.ls_shift_over_esd_max
    _item_description.description
;              The largest ratio of the final least-squares parameter shift
               to the final standard uncertainty (estimated standard
               deviation).
;
    _item.name                  '_refine.ls_shift_over_esd_max'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_shift/esd_max'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine.ls_shift_over_esd_mean
    _item_description.description
;              The average ratio of the final least-squares parameter shift
               to the final standard uncertainty (estimated standard
               deviation).
;
    _item.name                  '_refine.ls_shift_over_esd_mean'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_shift/esd_mean'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine.ls_structure_factor_coef
    _item_description.description
;              Structure-factor coefficient |F|, F^2^ or I used in the least-
               squares refinement process.
;
    _item.name                  '_refine.ls_structure_factor_coef'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_structure_factor_coef'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           F
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      F     'structure-factor magnitude'
                                  Fsqd  'structure factor squared'
                                  Inet  'net intensity'
     save_

save__refine.ls_weighting_details
    _item_description.description
;              A description of special aspects of the weighting scheme used
               in least-squares refinement. Used to describe the weighting
               when the value of _refine.ls_weighting_scheme is specified
               as 'calc'.
;
    _item.name                  '_refine.ls_weighting_details'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_weighting_details'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
    _item_examples.case
;                                 Sigdel model of Konnert-Hendrickson:
                                  Sigdel =
                                  Afsig +  Bfsig*(sin(theta)/lambda-1/6)
                                  Afsig = 22.0, Bfsig = 150.0
                                    at the beginning of refinement.
                                  Afsig = 16.0, Bfsig =  60.0
                                    at the end of refinement.
;
     save_

save__refine.ls_weighting_scheme
    _item_description.description
;              The weighting scheme applied in the least-squares process. The
               standard code may be followed by a description of the weight
               (but see _refine.ls_weighting_details for a preferred approach).
;
    _item.name                  '_refine.ls_weighting_scheme'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_weighting_scheme'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           sigma
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      sigma  'based on measured e.s.d.'s'
                                  unit   'unit or no weights applied'
                                  calc   'calculated weights applied'
     save_

save__refine.ls_wR_factor_all
    _item_description.description
;              Weighted residual factor wR for all reflections that satisfy the
               resolution limits established by _refine.ls_d_res_high and
               _refine.ls_d_res_low.

                    ( sum|w |Y~obs~ - Y~calc~|^2^| )^1/2^
               wR = ( ---------------------------- )
                    (        sum|w Y~obs~^2^|      )

               Y~obs~  = the observed amplitude specified by
                         _refine.ls_structure_factor_coef
               Y~calc~ = the calculated amplitude specified by
                         _refine.ls_structure_factor_coef
               w       = the least-squares weight

               sum is taken over the specified reflections
;
    _item.name                  '_refine.ls_wR_factor_all'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_wR_factor_all'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine.ls_R_factor_all'
    _item_related.function_code   alternate
    _item_type.code               float
     save_

save__refine.ls_wR_factor_obs
    _item_description.description
;              Weighted residual factor wR for reflections that satisfy the
               resolution limits established by _refine.ls_d_res_high and
               _refine.ls_d_res_low and the observation limit established by
               _reflns.observed_criterion.

                    ( sum|w |Y~obs~ - Y~calc~|^2^| )^1/2^
               wR = ( ---------------------------- )
                    (        sum|w Y~obs~^2^|      )

               Y~obs~  = the observed amplitude specified by
                         _refine.ls_structure_factor_coef
               Y~calc~ = the calculated amplitude specified by
                         _refine.ls_structure_factor_coef
               w       = the least-squares weight

               sum is taken over the specified reflections
;
    _item.name                  '_refine.ls_wR_factor_obs'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_ls_wR_factor_obs'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine.ls_R_factor_obs'
    _item_related.function_code   alternate
    _item_type.code               float
     save_

save__refine.ls_wR_factor_R_free
    _item_description.description
;              Weighted residual factor wR for reflections that satisfy the
               resolution limits established by _refine.ls_d_res_high and
               _refine.ls_d_res_low and the observation limit established by
               _reflns.observed_criterion, and that were used as the test
               reflections (i.e. were excluded from the refinement) when the
               refinement included the calculation of a 'free' R factor.
               Details of how reflections were assigned to the working and
               test sets are given in _reflns.R_free_details.

                    ( sum|w |Y~obs~ - Y~calc~|^2^| )^1/2^
               wR = ( ---------------------------- )
                    (        sum|w Y~obs~^2^|      )

               Y~obs~  = the observed amplitude specified by
                         _refine.ls_structure_factor_coef
               Y~calc~ = the calculated amplitude specified by
                         _refine.ls_structure_factor_coef
               w       = the least-squares weight

               sum is taken over the specified reflections
;
    _item.name                  '_refine.ls_wR_factor_R_free'
    _item.category_id             refine
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine.ls_R_factor_R_free'
    _item_related.function_code   alternate
    _item_type.code               float
     save_

save__refine.ls_wR_factor_R_work
    _item_description.description
;              Weighted residual factor wR for reflections that satisfy the
               resolution limits established by _refine.ls_d_res_high and
               _refine.ls_d_res_low and the observation limit established by
               _reflns.observed_criterion, and that were used as the working
               reflections (i.e. were included in the refinement) when the
               refinement included the calculation of a 'free' R factor.
               Details of how reflections were assigned to the working and
               test sets are given in _reflns.R_free_details.

                    ( sum|w |Y~obs~ - Y~calc~|^2^| )^1/2^
               wR = ( ---------------------------- )
                    (        sum|w Y~obs~^2^|      )

               Y~obs~  = the observed amplitude specified by
                         _refine.ls_structure_factor_coef
               Y~calc~ = the calculated amplitude specified by
                         _refine.ls_structure_factor_coef
               w       = the least-squares weight

               sum is taken over the specified reflections
;
    _item.name                  '_refine.ls_wR_factor_R_work'
    _item.category_id             refine
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine.ls_R_factor_R_work'
    _item_related.function_code   alternate
    _item_type.code               float
     save_

save__refine.occupancy_max
    _item_description.description
;              The maximum value for occupancy found in the coordinate set.
;
    _item.name                  '_refine.occupancy_max'
    _item.category_id             refine
    _item.mandatory_code          no
#    _item_default.value           1.0
    loop_
    _item_range.maximum
    _item_range.minimum
                                  .     0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine.occupancy_min
    _item_description.description
;              The minimum value for occupancy found in the coordinate set.
;
    _item.name                  '_refine.occupancy_min'
    _item.category_id             refine
    _item.mandatory_code          no
#    _item_default.value           1.0
    loop_
    _item_range.maximum
    _item_range.minimum
                                   .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine.overall_SU_B
    _item_description.description
;              The overall standard uncertainty (estimated standard deviation)
               of the displacement parameters based on a maximum-likelihood
               residual.

               The overall standard uncertainty (sigma~B~)^2 gives an idea
               of the uncertainty in the B values of averagely defined
               atoms (atoms with B values equal to the average B value).

                                             N_a
    (sigma~B~)^2  = 8 ----------------------------------------------
                      sum~i~ {[1/Sigma - (E_o)^2 (1-m^2)](SUM_AS)s^4}

               SUM_AS         = (sigma_A)^2/Sigma^2
               N_a            = number of atoms
               Sigma          = (sigma_{E;exp})^2 + epsilon [1-(sigma_A)^2]
               E_o            = normalized structure factors
               sigma_{E;exp}  = experimental uncertainties of normalized
                                structure factors
               sigma_A        = <cos 2 pi s delta_x> SQRT(Sigma_P/Sigma_N)
                                estimated using maximum likelihood
               Sigma_P        = sum_{atoms in model} f^2
               Sigma_N        = sum_{atoms in crystal} f^2
               f              = form factor of atoms
               delta_x        = expected error
               m              = figure of merit of phases of reflections
                                included in the summation
               s              = reciprocal-space vector
               epsilon        = multiplicity of diffracting plane

               summation is over all reflections included in refinement

               Ref: (sigma_A estimation) "Refinement of macromolecular
                    structures by the maximum-likelihood method",
                    Murshudov, G. N., Vagin, A. A. & Dodson, E. J. (1997).
                    Acta Cryst. D53, 240-255.

                    (SU ML estimation) Murshudov, G. N. & Dodson,
                    E. J. (1997). Simplified error estimation a la
                    Cruickshank in macromolecular crystallography.
                    CCP4 Newsletter on Protein Crystallography, No. 33,
                    January 1997, pp. 31-39.
                   http://www.ccp4.ac.uk/newsletters/newsletter33/murshudov.html
;
    _item.name                  '_refine.overall_SU_B'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine.ebi_Overall_ESU_B'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    _item_type.code               float
     save_

save__refine.overall_SU_ML
    _item_description.description
;              The overall standard uncertainty (estimated standard deviation)
               of the positional parameters based on a maximum likelihood
               residual.

               The overall standard uncertainty (sigma~X~)^2 gives an
               idea of the uncertainty in the position of averagely
               defined atoms (atoms with B values equal to average B value)

                    3                         N_a
    (sigma~X~)^2  = -----------------------------------------------------
                    8 pi^2 sum~i~ {[1/Sigma - (E_o)^2 (1-m^2)](SUM_AS)s^2}

               SUM_AS         = (sigma_A)^2/Sigma^2)
               N_a            = number of atoms
               Sigma          = (sigma_{E;exp})^2 + epsilon [1-{sigma_A)^2]
               E_o            = normalized structure factors

               sigma_{E;exp}  = experimental uncertainties of normalized
                                structure factors
               sigma_A        = <cos 2 pi s delta_x> SQRT(Sigma_P/Sigma_N)
                                estimated using maximum likelihood
               Sigma_P        = sum_{atoms in model} f^2
               Sigma_N        = sum_{atoms in crystal} f^2
               f              = form factor of atoms
               delta_x        = expected error
               m              = figure of merit of phases of reflections
                                included in the summation
               s              = reciprocal-space vector
               epsilon        = multiplicity of the diffracting plane

               summation is over all reflections included in refinement

               Ref: (sigma_A estimation) "Refinement of macromolecular
                    structures by the maximum-likelihood method",
                    Murshudov, G. N., Vagin, A. A. & Dodson, E. J. (1997).
                    Acta Cryst. D53, 240-255.

                    (SU ML estimation) Murshudov, G. N. & Dodson,
                    E. J. (1997). Simplified error estimation a la
                    Cruickshank in macromolecular crystallography.
                    CCP4 Newsletter on Protein Crystallography, No. 33,
                    January 1997, pp. 31-39.
                   http://www.ccp4.ac.uk/newsletters/newsletter33/murshudov.html
;
    _item.name                  '_refine.overall_SU_ML'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine.ebi_Overall_ESU_ML'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    _item_type.code               float
     save_

save__refine.overall_SU_R_Cruickshank_DPI
    _item_description.description
;              The overall standard uncertainty (estimated standard deviation)
               of the displacement parameters based on the crystallographic
               R value, expressed in a formalism known as the dispersion
               precision indicator (DPI).

               The overall standard uncertainty (sigma~B~) gives an idea
               of the uncertainty in the B values of averagely defined
               atoms (atoms with B values equal to the average B value).

                                     N_a
               (sigma_B)^2  = 0.65 --------- (R_value)^2 (D_min)^2 C^(-2/3)
                                   (N_o-N_p)


               N_a      = number of atoms
               N_o      = number of reflections included in refinement
               N_p      = number of refined parameters
               R_value  = conventional crystallographic R value
               D_min    = maximum resolution
               C        = completeness of data

               Ref: Cruickshank, D. W. J. (1999). Acta Cryst. D55, 583-601.

                    Murshudov, G. N. & Dodson,
                    E. J. (1997). Simplified error estimation a la
                    Cruickshank in macromolecular crystallography.
                    CCP4 Newsletter on Protein Crystallography, No. 33,
                    January 1997, pp. 31-39.
                   http://www.ccp4.ac.uk/newsletters/newsletter33/murshudov.html

;
    _item.name                  '_refine.overall_SU_R_Cruickshank_DPI'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine.ebi_Overall_ESU_R_Cruickshanks_DPI'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    _item_type.code               float
     save_

save__refine.overall_SU_R_free
    _item_description.description
;              The overall standard uncertainty (estimated standard deviation)
               of the displacement parameters based on the free R value.

               The overall standard uncertainty gives an idea of the
               uncertainty in the B values of averagely defined atoms
               (atoms with B values equal to the average B value).

                                    N_a
               (sigma_B)^2  = 0.65 ----- (R_free)^2 (D_min)^2 C^(-2/3)
                                    N_o

               N_a    = number of atoms
               N_o    = number of reflections included in refinement
               R_free = conventional free crystallographic R value calculated
                        using reflections not included in refinement
               D_min  = maximum resolution
               C      = completeness of data

               Ref: Cruickshank, D. W. J. (1999). Acta Cryst. D55, 583-601.

                    Murshudov, G. N. & Dodson,
                    E. J. (1997). Simplified error estimation a la
                    Cruickshank in macromolecular crystallography.
                    CCP4 Newsletter on Protein Crystallography, No. 33,
                    January 1997, pp. 31-39.
                   http://www.ccp4.ac.uk/newsletters/newsletter33/murshudov.html
;
    _item.name                  '_refine.overall_SU_R_free'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine.ebi_Overall_ESU_Rfree'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    _item_type.code               float
     save_

save__refine.overall_FOM_free_R_set
    _item_description.description
;              Average figure of merit of phases of reflections not included
               in the refinement.

               This value is derived from the likelihood function.

               FOM           = I_1(X)/I_0(X)

               I_0, I_1      = zero- and first-order modified Bessel functions
                               of the first kind
               X             = sigma_A |E_o| |E_c|/SIGMA
               E_o, E_c      = normalized observed and calculated structure
                               factors
               sigma_A       = <cos 2 pi s delta_x> SQRT(Sigma_P/Sigma_N)
                               estimated using maximum likelihood
               Sigma_P       = sum_{atoms in model} f^2
               Sigma_N       = sum_{atoms in crystal} f^2
               f             = form factor of atoms
               delta_x       = expected error
               SIGMA         = (sigma_{E;exp})^2 + epsilon [1-(sigma_A)^2]
               sigma_{E;exp} = uncertainties of normalized observed
                               structure factors
               epsilon       = multiplicity of the diffracting plane

               Ref: Murshudov, G. N., Vagin, A. A. & Dodson, E. J. (1997).
                    Acta Cryst. D53, 240-255.
;
    _item.name                  '_refine.overall_FOM_free_R_set'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine.ebi_overall_FOM_free_Rset'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    _item_type.code               float
     save_

save__refine.overall_FOM_work_R_set
    _item_description.description
;              Average figure of merit of phases of reflections included in
               the refinement.

               This value is derived from the likelihood function

               FOM           = I_1(X)/I_0(X)

               I_0, I_1      = zero- and first-order modified Bessel functions
                               of the first kind
               X             = sigma_A |E_o| |E_c|/SIGMA
               E_o, E_c      = normalized observed and calculated structure
                               factors
               sigma_A       = <cos 2 pi s delta_x> SQRT(Sigma_P/Sigma_N)
                               estimated using maximum likelihood
               Sigma_P       = sum_{atoms in model} f^2
               Sigma_N       = sum_{atoms in crystal} f^2
               f             = form factor of atoms
               delta_x       = expected error
               SIGMA         = (sigma_{E;exp})^2 + epsilon [1-(sigma_A)^2]
               sigma_{E;exp} = uncertainties of normalized observed
                               structure factors
               epsilon       = multiplicity of diffracting plane

               Ref: Murshudov, G. N., Vagin, A. A. & Dodson, E. J. (1997).
                    Acta Cryst. D53, 240-255.
;
    _item.name                  '_refine.overall_FOM_work_R_set'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine.ebi_overall_FOM_work_Rset'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    _item_type.code               float
     save_

save__refine.solvent_model_details
    _item_description.description
;              Special aspects of the solvent model used during refinement.
;
    _item.name                  '_refine.solvent_model_details'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__refine.solvent_model_param_bsol
    _item_description.description
;              The value of the BSOL solvent-model parameter describing
               the average isotropic displacement parameter of disordered
               solvent atoms.

               This is one of the two parameters (the other is
               _refine.solvent_model_param_ksol) in Tronrud's method of
               modelling the contribution of bulk solvent to the
               scattering. The standard scale factor is modified according
               to the expression

                   k0 exp(-B0 * s^2^)[1-KSOL * exp(-BSOL * s^2^)]

               where k0 and B0 are the scale factors for the protein.

               Ref: Tronrud, D. E. (1997). Methods Enzymol. 277, 243-268.
;
    _item.name                  '_refine.solvent_model_param_bsol'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__refine.solvent_model_param_ksol
    _item_description.description
;              The value of the KSOL solvent-model parameter describing
               the ratio of the electron density in the bulk solvent to the
               electron density in the molecular solute.

               This is one of the two parameters (the other is
               _refine.solvent_model_param_bsol) in Tronrud's method of
               modelling the contribution of bulk solvent to the
               scattering. The standard scale factor is modified according
               to the expression

                   k0 exp(-B0 * s^2^)[1-KSOL * exp(-BSOL * s^2^)]

               where k0 and B0 are the scale factors for the protein.

               Ref: Tronrud, D. E. (1997). Methods Enzymol. 277, 243-268.
;
    _item.name                  '_refine.solvent_model_param_ksol'
    _item.category_id             refine
    _item.mandatory_code          no
    _item_type.code               float
     save_

####################
## REFINE_ANALYZE ##
####################

save_refine_analyze
    _category.description
;              Data items in the REFINE_ANALYZE category record details
               about the refined structure that are often used to analyze the
               refinement and assess its quality. A given computer program
               may or may not produce values corresponding to these data
               names.
;
    _category.id                  refine_analyze
    _category.mandatory_code      no
    _category_key.name          '_refine_analyze.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'refine_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _refine_analyze.entry_id
    _refine_analyze.Luzzati_coordinate_error_obs
    _refine_analyze.Luzzati_d_res_low_obs
        5HVP 0.056  2.51
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_


save__refine_analyze.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_refine_analyze.entry_id'
    _item.category_id             refine_analyze
    _item.mandatory_code          yes
     save_

save__refine_analyze.Luzzati_coordinate_error_free
    _item_description.description
;              The estimated coordinate error obtained from the plot of
               the R value versus sin(theta)/lambda for the reflections
               treated as a test set during refinement.

               Ref:  Luzzati, V. (1952). Traitement statistique des erreurs
               dans la determination des structures cristallines. Acta
               Cryst. 5, 802-810.
;
    _item.name                  '_refine_analyze.Luzzati_coordinate_error_free'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine_analyze.Luzzati_coordinate_error_obs
    _item_description.description
;              The estimated coordinate error obtained from the plot of
               the R value versus sin(theta)/lambda for reflections classified
               as observed.

               Ref:  Luzzati, V. (1952). Traitement statistique des erreurs
               dans la determination des structures cristallines. Acta
               Cryst. 5, 802-810.
;
    _item.name                  '_refine_analyze.Luzzati_coordinate_error_obs'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine_analyze.Luzzati_d_res_low_free
    _item_description.description
;              The value of the low-resolution cutoff used in constructing the
               Luzzati plot for reflections treated as a test set during
               refinement.

               Ref:  Luzzati, V. (1952). Traitement statistique des erreurs
               dans la determination des structures cristallines. Acta
               Cryst. 5, 802-810.
;
    _item.name                  '_refine_analyze.Luzzati_d_res_low_free'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine_analyze.Luzzati_d_res_low_obs
    _item_description.description
;              The value of the low-resolution cutoff used in
               constructing the Luzzati plot for reflections classified as
               observed.

               Ref:  Luzzati, V. (1952). Traitement statistique des erreurs
               dans la determination des structures cristallines. Acta
               Cryst. 5, 802-810.
;
    _item.name                  '_refine_analyze.Luzzati_d_res_low_obs'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine_analyze.Luzzati_sigma_a_free
    _item_description.description
;              The value of sigma~a~ used in constructing the Luzzati plot for
               the reflections treated as a test set during refinement.
               Details of the estimation of sigma~a~ can be specified
               in _refine_analyze.Luzzati_sigma_a_free_details.

               Ref:  Luzzati, V. (1952). Traitement statistique des erreurs
               dans la determination des structures cristallines. Acta
               Cryst. 5, 802-810.
;
    _item.name                  '_refine_analyze.Luzzati_sigma_a_free'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine_analyze.Luzzati_sigma_a_free_details
    _item_description.description
;              Details of the estimation of sigma~a~ for the reflections
               treated as a test set during refinement.

               Ref:  Luzzati, V. (1952). Traitement statistique des erreurs
               dans la determination des structures cristallines. Acta
               Cryst. 5, 802-810.
;
    _item.name                  '_refine_analyze.Luzzati_sigma_a_free_details'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__refine_analyze.Luzzati_sigma_a_obs
    _item_description.description
;              The value of sigma~a~ used in constructing the Luzzati plot for
               reflections classified as observed. Details of the
               estimation of sigma~a~ can be specified in
               _refine_analyze.Luzzati_sigma_a_obs_details.

               Ref:  Luzzati, V. (1952). Traitement statistique des erreurs
               dans la determination des structures cristallines. Acta
               Cryst. 5, 802-810.
;
    _item.name                  '_refine_analyze.Luzzati_sigma_a_obs'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine_analyze.Luzzati_sigma_a_obs_details
    _item_description.description
;              Special aspects of the estimation of sigma~a~ for the
               reflections classified as observed.

               Ref:  Luzzati, V. (1952). Traitement statistique des erreurs
               dans la determination des structures cristallines. Acta
               Cryst. 5, 802-810.
;
    _item.name                  '_refine_analyze.Luzzati_sigma_a_obs_details'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__refine_analyze.number_disordered_residues
    _item_description.description
;              The number of discretely disordered residues in the refined
               model.
;
    _item.name                  '_refine_analyze.number_disordered_residues'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__refine_analyze.occupancy_sum_hydrogen
    _item_description.description
;              The sum of the occupancies of the hydrogen atoms in the refined
               model.
;
    _item.name                  '_refine_analyze.occupancy_sum_hydrogen'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__refine_analyze.occupancy_sum_non_hydrogen
    _item_description.description
;              The sum of the occupancies of the non-hydrogen atoms in the
                refined model.
;
    _item.name                  '_refine_analyze.occupancy_sum_non_hydrogen'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_type.code               float
     save_


save__refine_analyze.RG_d_res_high
    _item_description.description
;              The value of the high-resolution cutoff in angstroms
               used in the calculation of the Hamilton generalized
               R factor (RG) stored in _refine_analyze.RG_work and
               _refine_analyze.RG_free.

               Ref: Hamilton, W. C. (1965). Acta Cryst. 18, 502-510.
;
    _item.name                  '_refine_analyze.RG_d_res_high'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_analyze.ebi_RG_d_res_high'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine_analyze.RG_d_res_low
    _item_description.description
;              The value of the low-resolution cutoff in angstroms
               used in the calculation of the Hamilton generalized
               R factor (RG) stored in _refine_analyze.RG_work and
               _refine_analyze.RG_free.

               Ref: Hamilton, W. C. (1965). Acta Cryst. 18, 502-510.
;
    _item.name                  '_refine_analyze.RG_d_res_low'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_analyze.ebi_RG_d_res_low'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine_analyze.RG_free
    _item_description.description
;              The Hamilton generalized R factor for all reflections that
               satisfy the resolution limits established by
               _refine_analyze.RG_d_res_high and
               _refine_analyze.RG_d_res_low for the free R set of
               reflections that were excluded from the refinement.

             sum_i sum_j w_{i,j}(|Fobs|_i - G|Fcalc|_i)(|Fobs|_j - G|Fcalc|_j)
 RG = Sqrt( ----------------------------------------------------------------- )
                          sum_i sum_j w_{i,j} |Fobs|_i |Fobs|_j

               where

               |Fobs|  = the observed structure-factor amplitudes
               |Fcalc| = the calculated structure-factor amplitudes
               G       = the scale factor which puts |Fcalc| on the
                         same scale as |Fobs|
               w_{i,j} = the weight for the combination of the reflections
                         i and j.

               sum_i and sum_j are taken over the specified reflections

               When the covariance of the amplitudes of reflection i and
               reflection j is zero (i.e. the reflections are independent)
               w{i,i} can be redefined as  w_i and the nested sums collapsed
               into one sum.

                           sum_i w_i(|Fobs|_i - G|Fcalc|_i)^2
               RG = Sqrt( ----------------------------------- )
                                  sum_i w_i |Fobs|_i^2

               Ref: Hamilton, W. C. (1965). Acta Cryst. 18, 502-510.
;
    _item.name                  '_refine_analyze.RG_free'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_analyze.ebi_RG_free'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine_analyze.RG_work
    _item_description.description
;              The Hamilton generalized R factor for all reflections
               that satisfy the resolution limits established by
               _refine_analyze.RG_d_res_high and
               _refine_analyze.RG_d_res_low  and for those
               reflections included in the working set when a free R set
               of reflections is omitted from the refinement.

             sum_i sum_j w_{i,j}(|Fobs|_i - G|Fcalc|_i)(|Fobs|_j - G|Fcalc|_j)
 RG = Sqrt( ----------------------------------------------------------------- )
                          sum_i sum_j w_{i,j} |Fobs|_i |Fobs|_j

               where

               |Fobs|  = the observed structure-factor amplitudes
               |Fcalc| = the calculated structure-factor amplitudes
               G       = the scale factor which puts |Fcalc| on the
                         same scale as |Fobs|
               w_{i,j} = the weight for the combination of the reflections
                         i and j.

               sum_i and sum_j are taken over the specified reflections

               When the covariance of the amplitudes of reflection i and
               reflection j is zero (i.e. the reflections are independent)
               w{i,i} can be redefined as w_i and the nested sums collapsed
               into one sum.

                           sum_i w_i(|Fobs|_i - G|Fcalc|_i)^2
               RG = Sqrt( ----------------------------------- )
                                  sum_i w_i |Fobs|_i^2

               Ref: Hamilton, W. C. (1965). Acta Cryst. 18, 502-510.
;
    _item.name                  '_refine_analyze.RG_work'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_analyze.ebi_RG_work'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine_analyze.RG_free_work_ratio
    _item_description.description
;              The observed ratio of RGfree to RGwork. The expected RG ratio
               is the value that should be achievable at the end of a structure
               refinement when only random uncorrelated errors exist in the data
               and the model provided that the observations are properly
               weighted. When compared with the observed RG ratio it may
               indicate that a structure has not reached convergence or a
               model has been over-refined with no corresponding improvement
               in the model.

               In an unrestrained refinement, the ratio of RGfree to RGwork with
               only random uncorrelated errors at convergence depends only
               on the number of reflections and the number of parameters
               according to

                                 sqrt[(f + m) / (f - m) ]

               where f = the number of included structure amplitudes and
                         target distances, and
                     m = the number of parameters being refined.

               In the restrained case, RGfree is calculated from a random
               selection of residuals including both structure amplitudes
               and restraints.  When restraints are included in the refinement,
               the RG ratio requires a term for the contribution to the
               minimized residual at convergence, D~restr~, due to those
               restraints:

                        D~restr~ = r - sum [w_i . (a_i)^t . (H)^-1 a_i]

               where

               r is the number of geometrical, displacement-parameter and
                 other restraints
               H is the (m,m) normal matrix given by A^t.W.A
               W is the (n,n) symmetric weight matrix of the included
                 observations
               A is the least-squares design matrix of derivatives of
                 order (n,m)
               a_i is the ith row of A

              Then the expected RGratio becomes

                  sqrt [ (f + (m - r + D~restr~))/ (f - (m - r + D~restr~)) ]

              There is no data name for the expected value of RGfree/RGwork yet.

               Ref: Tickle, I. J., Laskowski, R. A. & Moss, D. S. (1998).
                    Acta Cryst. D54, 547-557.

;
    _item.name                  '_refine_analyze.RG_free_work_ratio'
    _item.category_id             refine_analyze
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refine_analyze.ebi_RG_work_free_ratio'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

##################
## REFINE_B_ISO ##
##################

save_refine_B_iso
    _category.description
;              Data items in the REFINE_B_ISO category record details about
               the treatment of isotropic B factors (displacement parameters)
               during refinement.
;
    _category.id                  refine_B_iso
    _category.mandatory_code      no
    _category_key.name          '_refine_B_iso.class'
    loop_
    _category_group.id           'inclusive_group'
                                 'refine_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _refine_B_iso.class
    _refine_B_iso.treatment
     'protein'    isotropic
     'solvent'    isotropic
     'inhibitor'  isotropic
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__refine_B_iso.class
    _item_description.description
;              A class of atoms treated similarly for isotropic B-factor
               (displacement-parameter) refinement.
;
    _item.name                  '_refine_B_iso.class'
    _item.category_id             refine_B_iso
    _item.mandatory_code          yes
    _item_type.code               text
    loop_
    _item_examples.case          'all'
                                 'protein'
                                 'solvent'
                                 'sugar-phosphate backbone'
     save_

save__refine_B_iso.details
    _item_description.description
;              A description of special aspects of the isotropic B-factor
               (displacement-parameter) refinement for the class of atoms
               described in _refine_B_iso.class.
;
    _item.name                  '_refine_B_iso.details'
    _item.category_id             refine_B_iso
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 The temperature factors of atoms in the side
                                  chain of Arg 92 were held fixed due to
                                  unstable behavior in refinement.
;
     save_

save__refine_B_iso.treatment
    _item_description.description
;              The treatment of isotropic B-factor (displacement-parameter)
               refinement for a class of atoms defined in _refine_B_iso.class.
;
    _item.name                  '_refine_B_iso.treatment'
    _item.category_id             refine_B_iso
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value       fixed
                                  isotropic
                                  anisotropic
     save_

save__refine_B_iso.value
    _item_description.description
;              The value of the isotropic B factor (displacement parameter)
               assigned to a class of atoms defined in _refine_B_iso.class.
               Meaningful only for atoms with fixed isotropic B factors.
;
    _item.name                  '_refine_B_iso.value'
    _item.category_id             refine_B_iso
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

###############################
## REFINE_FUNCTION_MINIMIZED ##
###############################

save_refine_funct_minimized
    _category.description
;              Data items in the REFINE_FUNCT_MINIMIZED category record
               details about the individual terms of the function minimized
               during refinement.
;
    _category.id                 refine_funct_minimized
    _category.mandatory_code     no
    _category_key.name          '_refine_funct_minimized.type'
    loop_
    _category_group.id           'inclusive_group'
                                 'refine_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on RESTRAIN refinement for the CCP4 test data set
                toxd.
;
;
    loop_
    _refine_funct_minimized.type
    _refine_funct_minimized.number_terms
    _refine_funct_minimized.residual
    'sum(W*Delta(Amplitude)^2'               3009      1621.3
    'sum(W*Delta(Plane+Rigid)^2'               85       56.68
    'sum(W*Delta(Distance)^2'                1219      163.59
    'sum(W*Delta(U-tempfactors)^2'           1192      69.338
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__refine_funct_minimized.number_terms
    _item_description.description
;              The number of observations in this term.  For example, if the
               term is a residual of the X-ray intensities, this item would
               contain the number of reflections used in the refinement.
;
    _item.name                  '_refine_funct_minimized.number_terms'
    _item.category_id             refine_funct_minimized
    _item.mandatory_code          no
    _item_aliases.alias_name    '_ebi_refine_funct_minimized.NumTerms'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine_funct_minimized.residual
    _item_description.description
;              The residual for this term of the function that was minimized
              during the refinement.
;
    _item.name                  '_refine_funct_minimized.residual'
    _item.category_id             refine_funct_minimized
    _item.mandatory_code          no
    _item_aliases.alias_name    '_ebi_refine_funct_minimized.Residual'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine_funct_minimized.type
    _item_description.description
;              The type of the function being minimized.
;
    _item.name                  '_refine_funct_minimized.type'
    _item.category_id             refine_funct_minimized
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_ebi_refine_funct_minimized.type'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    _item_type.code               line
     save_

save__refine_funct_minimized.weight
    _item_description.description
;              The weight applied to this term of the function that was
               minimized during the refinement.
;
    _item.name                  '_refine_funct_minimized.weight'
    _item.category_id             refine_funct_minimized
    _item.mandatory_code          no
    _item_aliases.alias_name    '_ebi_refine_funct_minimized.weight'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    _item_type.code               float
     save_

#################
## REFINE_HIST ##
#################

save_refine_hist
    _category.description
;              Data items in the REFINE_HIST category record details about the
               steps during the refinement of the structure.
               These data items are not meant to be as thorough a description
               of the refinement as is provided for the final model in other
               categories; rather, these data items provide a mechanism for
               sketching out the progress of the refinement, supported by a
               small set of representative statistics.
;
    _category.id                  refine_hist
    _category.mandatory_code      no
    _category_key.name          '_refine_hist.cycle_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'refine_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for the collagen-like
                peptide [(POG)4 EKG (POG)5]3.
;
;
    _refine_hist.cycle_id                C134
    _refine_hist.d_res_high              1.85
    _refine_hist.d_res_low               20.0
    _refine_hist.number_atoms_solvent     217
    _refine_hist.number_atoms_total       808
    _refine_hist.number_reflns_all       6174
    _refine_hist.number_reflns_obs       4886
    _refine_hist.number_reflns_R_free     476
    _refine_hist.number_reflns_R_work    4410
    _refine_hist.R_factor_all            .265
    _refine_hist.R_factor_obs            .195
    _refine_hist.R_factor_R_free         .274
    _refine_hist.R_factor_R_work         .160
    _refine_hist.details
    ; Add majority of solvent molecules. B factors refined by
      group. Continued to remove misplaced water molecules.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__refine_hist.cycle_id
    _item_description.description
;              The value of _refine_hist.cycle_id must uniquely identify a
               record in the REFINE_HIST list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    _item.name                  '_refine_hist.cycle_id'
    _item.category_id             refine_hist
    _item.mandatory_code          yes
    _item_type.code               code
     save_

save__refine_hist.details
    _item_description.description
;              A description of special aspects of this cycle of the refinement
               process.
;
    _item.name                  '_refine_hist.details'
    _item.category_id             refine_hist
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 Residues 13-17 fit and added to model;
                                  substantial rebuilding of loop containing
                                  residues 43-48; addition of first atoms to
                                  solvent model; ten cycles of Prolsq
                                  refinement.
;
     save_

save__refine_hist.d_res_high
    _item_description.description
;              The lowest value for the interplanar spacings for the
               reflection data for this cycle of refinement. This is called
               the highest resolution.
;
    _item.name                  '_refine_hist.d_res_high'
    _item.category_id             refine_hist
    _item.mandatory_code          yes
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine_hist.d_res_low
    _item_description.description
;              The highest value for the interplanar spacings for the
               reflection data for this cycle of refinement. This is
               called the lowest resolution.
;
    _item.name                  '_refine_hist.d_res_low'
    _item.category_id             refine_hist
    _item.mandatory_code          yes
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine_hist.number_atoms_solvent
    _item_description.description
;              The number of solvent atoms that were included in the model at
               this cycle of the refinement.
;
    _item.name                  '_refine_hist.number_atoms_solvent'
    _item.category_id             refine_hist
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine_hist.number_atoms_total
    _item_description.description
;              The total number of atoms that were included in the model at
               this cycle of the refinement.
;
    _item.name                  '_refine_hist.number_atoms_total'
    _item.category_id             refine_hist
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine_hist.number_reflns_all
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine_hist.d_res_high and
               _refine_hist.d_res_low.
;
    _item.name                  '_refine_hist.number_reflns_all'
    _item.category_id             refine_hist
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine_hist.number_reflns_obs
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine_hist.d_res_high and
               _refine_hist.d_res_low and the observation criterion
               established by _reflns.observed_criterion.
;
    _item.name                  '_refine_hist.number_reflns_obs'
    _item.category_id             refine_hist
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine_hist.number_reflns_R_free
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine_hist.d_res_high and
               _refine_hist.d_res_low and the observation limit
               established by _reflns.observed_criterion, and that were used
               as the test reflections (i.e. were excluded from the refinement)
               when the refinement included the calculation of a 'free'
               R factor. Details of how reflections were assigned to the
               working and test sets are given in _reflns.R_free_details.
;
    _item.name                  '_refine_hist.number_reflns_R_free'
    _item.category_id             refine_hist
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine_hist.number_reflns_R_work
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine_hist.d_res_high and
               _refine_hist.d_res_low and the observation limit
               established by _reflns.observed_criterion, and that were used
               as the working reflections (i.e. were included in the
               refinement) when the refinement included the calculation
               of a 'free' R factor. Details of how reflections were
               assigned to the working and test sets are given in
               _reflns.R_free_details.
;
    _item.name                  '_refine_hist.number_reflns_R_work'
    _item.category_id             refine_hist
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine_hist.R_factor_all
    _item_description.description
;              Residual factor R for reflections that satisfy the resolution
               limits established by _refine_hist.d_res_high and
               _refine_hist.d_res_low.

                   sum|F~obs~ - F~calc~|
               R = ---------------------
                        sum|F~obs~|

               F~obs~  = the observed structure-factor amplitudes
               F~calc~ = the calculated structure-factor amplitudes

               sum is taken over the specified reflections
;
    _item.name                  '_refine_hist.R_factor_all'
    _item.category_id             refine_hist
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine_hist.R_factor_obs
    _item_description.description
;              Residual factor R for reflections that satisfy the resolution
               limits established by _refine_hist.d_res_high and
               _refine_hist.d_res_low and the observation criterion
               established by _reflns.observed_criterion.

                   sum|F~obs~ - F~calc~|
               R = ---------------------
                        sum|F~obs~|

               F~obs~  = the observed structure-factor amplitudes
               F~calc~ = the calculated structure-factor amplitudes

               sum is taken over the specified reflections
;
    _item.name                  '_refine_hist.R_factor_obs'
    _item.category_id             refine_hist
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine_hist.R_factor_R_free
    _item_description.description
;              Residual factor R for reflections that satisfy the resolution
               limits established by _refine_hist.d_res_high and
               _refine_hist.d_res_low and the observation limit
               established by _reflns.observed_criterion, and that were used
               as the test reflections (i.e. were excluded from the refinement)
               when the refinement included the calculation of a 'free'
               R factor. Details of how reflections were assigned to the
               working and test sets are given in _reflns.R_free_details.

                   sum|F~obs~ - F~calc~|
               R = ---------------------
                        sum|F~obs~|

               F~obs~  = the observed structure-factor amplitudes
               F~calc~ = the calculated structure-factor amplitudes

               sum is taken over the specified reflections
;
    _item.name                  '_refine_hist.R_factor_R_free'
    _item.category_id             refine_hist
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine_hist.R_factor_R_work
    _item_description.description
;              Residual factor R for reflections that satisfy the resolution
               limits established by _refine_hist.d_res_high and
               _refine_hist.d_res_low and the observation limit
               established by _reflns.observed_criterion, and that were used
               as the working reflections (i.e. were included in the refinement)
               when the refinement included the calculation of a 'free'
               R factor. Details of how reflections were assigned to the
               working and test sets are given in _reflns.R_free_details.

                   sum|F~obs~ - F~calc~|
               R = ---------------------
                        sum|F~obs~|

               F~obs~  = the observed structure-factor amplitudes
               F~calc~ = the calculated structure-factor amplitudes

               sum is taken over the specified reflections
;
    _item.name                  '_refine_hist.R_factor_R_work'
    _item.category_id             refine_hist
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

#####################
## REFINE_LS_RESTR ##
#####################

save_refine_ls_restr
    _category.description
;              Data items in the REFINE_LS_RESTR category record details about
               the restraints applied to various classes of parameters during
               the least-squares refinement.
;
    _category.id                  refine_ls_restr
    _category.mandatory_code      no
    _category_key.name          '_refine_ls_restr.type'
    loop_
    _category_group.id           'inclusive_group'
                                 'refine_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _refine_ls_restr.type
    _refine_ls_restr.dev_ideal_target
    _refine_ls_restr.dev_ideal
    _refine_ls_restr.number
    _refine_ls_restr.criterion
    _refine_ls_restr.rejects
     'bond_d'           0.020  0.018  1654  '> 2\s'  22
     'angle_d'          0.030  0.038  2246  '> 2\s'  139
     'planar_d'         0.040  0.043  498   '> 2\s'  21
     'planar'           0.020  0.015  270   '> 2\s'  1
     'chiral'           0.150  0.177  278   '> 2\s'  2
     'singtor_nbd'      0.500  0.216  582   '> 2\s'  0
     'multtor_nbd'      0.500  0.207  419   '> 2\s'  0
     'xyhbond_nbd'      0.500  0.245  149   '> 2\s'  0
     'planar_tor'       3.0    2.6    203   '> 2\s'  9
     'staggered_tor'    15.0   17.4   298   '> 2\s'  31
     'orthonormal_tor'  20.0   18.1   12    '> 2\s'  1
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__refine_ls_restr.criterion
    _item_description.description
;              A criterion used to define a parameter value that deviates
               significantly from its ideal value in the model obtained by
               restrained least-squares refinement.
;
    _item.name                  '_refine_ls_restr.criterion'
    _item.category_id             refine_ls_restr
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case          '> 3\s'
     save_

save__refine_ls_restr.dev_ideal
    _item_description.description
;              For the given parameter type, the root-mean-square deviation
               between the ideal values used as restraints in the least-squares
               refinement and the values obtained by refinement. For instance,
               bond distances may deviate by 0.018 \%A (r.m.s.) from ideal
               values in the current model.
;
    _item.name                  '_refine_ls_restr.dev_ideal'
    _item.category_id             refine_ls_restr
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine_ls_restr.dev_ideal_target
    _item_description.description
;              For the given parameter type, the target root-mean-square
               deviation between the ideal values used as restraints in the
               least-squares refinement and the values obtained by refinement.
;
    _item.name                  '_refine_ls_restr.dev_ideal_target'
    _item.category_id             refine_ls_restr
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refine_ls_restr.number
    _item_description.description
;              The number of parameters of this type subjected to restraint in
               least-squares refinement.
;
    _item.name                  '_refine_ls_restr.number'
    _item.category_id             refine_ls_restr
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine_ls_restr.rejects
    _item_description.description
;              The number of parameters of this type that deviate from ideal
               values by more than the amount defined in
               _refine_ls_restr.criterion in the model obtained by restrained
               least-squares refinement.
;
    _item.name                  '_refine_ls_restr.rejects'
    _item.category_id             refine_ls_restr
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine_ls_restr.type
    _item_description.description
;              The type of the parameter being restrained.
               Explicit sets of data values are provided for the programs
               PROTIN/PROLSQ (beginning with p_) and RESTRAIN (beginning with
               RESTRAIN_). As computer programs change, these data values
               are given as examples, not as an enumeration list. Computer
               programs that convert a data block to a refinement table will
               expect the exact form of the data values given here to be used.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
        '_refine_ls_restr.type'       refine_ls_restr        yes
        '_refine_ls_restr_type.type'  refine_ls_restr_type   yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_refine_ls_restr_type.type'  '_refine_ls_restr.type'
    _item_type.code               line
    loop_
    _item_examples.case
    _item_examples.detail
        'p_bond_d'                   'bond distance'
        'p_angle_d'                  'bond angle expressed as a distance'
        'p_planar_d'                 'planar 1,4 distance'
        'p_xhbond_d'                 'X-H bond distance'
        'p_xhangle_d'                'X-H bond angle expressed as a distance'
        'p_hydrog_d'                 'hydrogen distance'
        'p_special_d'                'special distance'
        'p_planar'                   'planes'
        'p_chiral'                   'chiral centres'
        'p_singtor_nbd'              'single-torsion non-bonded contact'
        'p_multtor_nbd'              'multiple-torsion non-bonded contact'
        'p_xyhbond_nbd'              'possible (X...Y) hydrogen bond'
        'p_xhyhbond_nbd'             'possible (X-H...Y) hydrogen bond'
        'p_special_tor'              'special torsion angle'
        'p_planar_tor'               'planar torsion angle'
        'p_staggered_tor'            'staggered torsion angle'
        'p_orthonormal_tor'          'orthonormal torsion angle'
        'p_mcbond_it'      'main-chain bond isotropic displacement parameter'
        'p_mcangle_it'     'main-chain angle isotropic displacement parameter'
        'p_scbond_it'      'side-chain bond isotropic displacement parameter'
        'p_scangle_it'     'side-chain angle isotropic displacement parameter'
        'p_xhbond_it'      'X-H bond isotropic displacement parameter'
        'p_xhangle_it'     'X-H angle isotropic displacement parameter'
        'p_special_it'               'special isotropic displacement parameter'
        'RESTRAIN_Distances < 2.12'
;  The root-mean-square deviation
   of the difference between the values calculated from the structures
   used to compile the restraints dictionary parameters and the dictionary
   values themselves in the distance range less than 2.12 Angstroms.
;
        'RESTRAIN_Distances 2.12 < D < 2.625'
;  The root-mean-square deviation
   of the difference between the values calculated from the structures
   used to compile the restraints dictionary parameters and the dictionary
   values themselves in the distance range 2.12 - 2.625 Angstroms.
;
        'RESTRAIN_Distances > 2.625'
;  The root-mean-square deviation
   of the difference between the values calculated from the structures
   used to compile the restraints dictionary parameters and the dictionary
   values themselves in the distance range greater than 2.625 Angstroms.
;
        'RESTRAIN_Peptide Planes'
;  The root-mean-square deviation
   of the difference between the values calculated from the structures
   used to compile the restraints dictionary parameters and the dictionary
   values themselves for peptide planes.
;
        'RESTRAIN_Ring and other planes'
;  The root-mean-square deviation
   of the difference between the values calculated from the structures
   used to compile the restraints dictionary parameters and the dictionary
   values themselves for rings and planes other than peptide planes.
;
        'RESTRAIN_rms diffs for Uiso atoms at dist 1.2-1.4'       .
        'RESTRAIN_rms diffs for Uiso atoms at dist 1.4-1.6'       .
        'RESTRAIN_rms diffs for Uiso atoms at dist 1.8-2.0'       .
        'RESTRAIN_rms diffs for Uiso atoms at dist 2.0-2.2'       .
        'RESTRAIN_rms diffs for Uiso atoms at dist 2.2-2.4'       .
        'RESTRAIN_rms diffs for Uiso atoms at dist >2.4'          .
     save_

save__refine_ls_restr.weight
    _item_description.description
;              The weighting value applied to this type of restraint in
               the least-squares refinement.
;
    _item.name                  '_refine_ls_restr.weight'
    _item.category_id             refine_ls_restr
    _item.mandatory_code          no
    _item_type.code               float
     save_

#########################
## REFINE_LS_RESTR_NCS ##
#########################

save_refine_ls_restr_ncs
    _category.description
;              Data items in the REFINE_LS_RESTR_NCS category record details
               about the restraints applied to atom positions in domains
               related by noncrystallographic symmetry during least-squares
               refinement, and also about the deviation of the restrained
               atomic parameters at the end of the refinement.  It is
               expected that these values will only be reported once for each
               set of restrained domains.
;
    _category.id                  refine_ls_restr_ncs
    _category.mandatory_code      no
    _category_key.name          '_refine_ls_restr_ncs.dom_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'refine_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for the collagen-like
                peptide, HYP-.
;
;
    _refine_ls_restr_ncs.dom_id              d2
    _refine_ls_restr_ncs.weight_position     300.0
    _refine_ls_restr_ncs.weight_B_iso        2.0
    _refine_ls_restr_ncs.rms_dev_position    0.09
    _refine_ls_restr_ncs.rms_dev_B_iso       0.16
    _refine_ls_restr_ncs.ncs_model_details
    ;
     NCS restraint for pseudo-twofold symmetry between domains
     d1 and d2.  Position weight coefficient given in
     Kcal/(mol \%A^2^) and isotropic B weight coefficient given
     in \%A^2^.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__refine_ls_restr_ncs.dom_id
    _item_description.description
;              This data item is a pointer to _struct_ncs_dom.id in the
               STRUCT_NCS_DOM category.
;
    _item.name                  '_refine_ls_restr_ncs.dom_id'
    _item.category_id             refine_ls_restr_ncs
    _item.mandatory_code          yes
    _item_type.code               code
     save_

save__refine_ls_restr_ncs.ncs_model_details
    _item_description.description
;              Special aspects of the manner in which noncrystallographic
               restraints were applied to atomic parameters in the domain
               specified by _refine_ls_restr_ncs.dom_id and equivalent
               atomic parameters in the domains against which it was restrained.
;
    _item.name                  '_refine_ls_restr_ncs.ncs_model_details'
    _item.category_id             refine_ls_restr_ncs
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__refine_ls_restr_ncs.rms_dev_B_iso
    _item_description.description
;              The root-mean-square deviation in equivalent isotropic
               displacement parameters in the domain specified by
               _refine_ls_restr_ncs.dom_id
               and in the domains against which it was restrained.
;
    _item.name                  '_refine_ls_restr_ncs.rms_dev_B_iso'
    _item.category_id             refine_ls_restr_ncs
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__refine_ls_restr_ncs.rms_dev_position
    _item_description.description
;              The root-mean-square deviation in equivalent atom positions in
               the domain specified by _refine_ls_restr_ncs.dom_id and in the
               domains against which it was restrained.
;
    _item.name                  '_refine_ls_restr_ncs.rms_dev_position'
    _item.category_id             refine_ls_restr_ncs
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine_ls_restr_ncs.weight_B_iso
    _item_description.description
;              The value of the weighting coefficient used in
               noncrystallographic symmetry restraint of isotropic displacement
               parameters in  the domain specified by
               _refine_ls_restr_ncs.dom_id to equivalent isotropic
               displacement parameters in the domains against
               which it was restrained.
;
    _item.name                  '_refine_ls_restr_ncs.weight_B_iso'
    _item.category_id             refine_ls_restr_ncs
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__refine_ls_restr_ncs.weight_position
    _item_description.description
;              The value of the weighting coefficient used in
               noncrystallographic symmetry restraint of atom positions in the
               domain specified by _refine_ls_restr_ncs.dom_id to equivalent
               atom positions in the domains against which it was restrained.
;
    _item.name                  '_refine_ls_restr_ncs.weight_position'
    _item.category_id             refine_ls_restr_ncs
    _item.mandatory_code          no
    _item_type.code               float
     save_

##########################
## REFINE_LS_RESTR_TYPE ##
##########################

save_refine_ls_restr_type
    _category.description
;              Data items in the REFINE_LS_RESTR_TYPE category record details
               about the restraint types used in the least-squares refinement.
;
    _category.id                  refine_ls_restr_type
    _category.mandatory_code      no
    _category_key.name          '_refine_ls_restr_type.type'
    loop_
    _category_group.id           'inclusive_group'
                                 'refine_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on RESTRAIN refinement for the CCP4 test data set
                toxd.
;
;
loop_
_refine_ls_restr.type
_refine_ls_restr.number
_refine_ls_restr.dev_ideal
_refine_ls_restr.dev_ideal_target
 'RESTRAIN_Distances < 2.12'              509     0.005 0.022
 'RESTRAIN_Distances 2.12 < D < 2.625'    671     0.016 0.037
 'RESTRAIN_Distances > 2.625'             39      0.034 0.043
 'RESTRAIN_Peptide Planes'                59      0.002 0.010
 'RESTRAIN_Ring and other planes'         26      0.014 0.010
 'RESTRAIN_rms diffs for Uiso atoms at dist 1.2-1.4'
                                             212     0.106     .
 'RESTRAIN_rms diffs for Uiso atoms at dist 1.4-1.6'
                                             288     0.101     .
 'RESTRAIN_rms diffs for Uiso atoms at dist 1.8-2.0'
                                             6       0.077     .
 'RESTRAIN_rms diffs for Uiso atoms at dist 2.0-2.2'
                                             10      0.114     .
 'RESTRAIN_rms diffs for Uiso atoms at dist 2.2-2.4'
                                             215     0.119     .
 'RESTRAIN_rms diffs for Uiso atoms at dist >2.4'
                                             461     0.106     .

loop_
_refine_ls_restr_type.type
_refine_ls_restr_type.distance_cutoff_low
_refine_ls_restr_type.distance_cutoff_high
 'RESTRAIN_Distances < 2.12'                    .     2.12
 'RESTRAIN_Distances 2.12 < D < 2.625'          2.12  2.625
 'RESTRAIN_Distances > 2.625'                   2.625 .
 'RESTRAIN_Peptide Planes'                      .     .
 'RESTRAIN_Ring and other planes'               .     .
 'RESTRAIN_rms diffs for Uiso atoms at dist 1.2-1.4'
                                                   1.2   1.4
 'RESTRAIN_rms diffs for Uiso atoms at dist 1.4-1.6'
                                                   1.4   1.6
 'RESTRAIN_rms diffs for Uiso atoms at dist 1.8-2.0'
                                                   1.8   2.0
 'RESTRAIN_rms diffs for Uiso atoms at dist 2.0-2.2'
                                                   2.0   2.2
 'RESTRAIN_rms diffs for Uiso atoms at dist 2.2-2.4'
                                                   2.2   2.4
 'RESTRAIN_rms diffs for Uiso atoms at dist >2.4'
                                                   2.4   .
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__refine_ls_restr_type.distance_cutoff_high
    _item_description.description
;              The upper limit in angstroms of the distance range applied to
               the current restraint type.
;
    _item.name                  '_refine_ls_restr_type.distance_cutoff_high'
    _item.category_id             refine_ls_restr_type
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine_ls_restr_type.distance_cutoff_low
    _item_description.description
;              The lower limit in angstroms of the distance range applied to
               the current restraint type.
;
    _item.name                  '_refine_ls_restr_type.distance_cutoff_low'
    _item.category_id             refine_ls_restr_type
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine_ls_restr_type.type
    _item_description.description
;              This data item is a pointer to _refine_ls_restr.type in the
               REFINE_LS_RESTR category.
;

    _item.name                  '_refine_ls_restr_type.type'
    _item.category_id             refine_ls_restr_type
    _item.mandatory_code          yes
    _item_type.code               line
     save_

#####################
## REFINE_LS_SHELL ##
#####################

save_refine_ls_shell
    _category.description
;              Data items in the REFINE_LS_SHELL category record details about
               the results of the least-squares refinement broken down into
               shells of resolution.
;
    _category.id                  refine_ls_shell
    _category.mandatory_code      no
    loop_
    _category_key.name          '_refine_ls_shell.d_res_low'
                                '_refine_ls_shell.d_res_high'
    loop_
    _category_group.id           'inclusive_group'
                                 'refine_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _refine_ls_shell.d_res_low
    _refine_ls_shell.d_res_high
    _refine_ls_shell.number_reflns_obs
    _refine_ls_shell.R_factor_obs
      8.00   4.51   1226   0.196
      4.51   3.48   1679   0.146
      3.48   2.94   2014   0.160
      2.94   2.59   2147   0.182
      2.59   2.34   2127   0.193
      2.34   2.15   2061   0.203
      2.15   2.00   1647   0.188
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__refine_ls_shell.d_res_high
    _item_description.description
;              The lowest value for the interplanar spacings for the
               reflection data in this shell. This is called
               the highest resolution.
;
    _item.name                  '_refine_ls_shell.d_res_high'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          yes
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine_ls_shell.d_res_low
    _item_description.description
;              The highest value for the interplanar spacings for the
               reflection data in this shell. This is called the lowest
               resolution.
;
    _item.name                  '_refine_ls_shell.d_res_low'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          yes
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refine_ls_shell.number_reflns_all
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine_ls_shell.d_res_high and
               _refine_ls_shell.d_res_low.
;
    _item.name                  '_refine_ls_shell.number_reflns_all'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine_ls_shell.number_reflns_obs
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine_ls_shell.d_res_high and
               _refine_ls_shell.d_res_low and the observation criterion
               established by _reflns.observed_criterion.
;
    _item.name                  '_refine_ls_shell.number_reflns_obs'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine_ls_shell.number_reflns_R_free
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine_ls_shell.d_res_high and
               _refine_ls_shell.d_res_low and the observation limit
               established by _reflns.observed_criterion, and that were used
               as the test reflections (i.e. were excluded from the refinement)
               when the refinement included the calculation of a 'free'
               R factor. Details of how reflections were assigned to the
               working and test sets are given in _reflns.R_free_details.
;
    _item.name                  '_refine_ls_shell.number_reflns_R_free'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine_ls_shell.number_reflns_R_work
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine_ls_shell.d_res_high and
               _refine_ls_shell.d_res_low and the observation limit
               established by _reflns.observed_criterion, and that were used
               as the working reflections (i.e. were included in the
               refinement) when the refinement included the calculation of
               a 'free' R factor. Details of how reflections were assigned
               to the working and test sets are given in _reflns.R_free_details.
;
    _item.name                  '_refine_ls_shell.number_reflns_R_work'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__refine_ls_shell.percent_reflns_obs
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine_ls_shell.d_res_high and
               _refine_ls_shell.d_res_low and the observation criterion
               established by _reflns.observed_criterion, expressed as a
               percentage of the number of geometrically observable
               reflections that satisfy the resolution limits.
;
    _item.name                  '_refine_ls_shell.percent_reflns_obs'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__refine_ls_shell.percent_reflns_R_free
    _item_description.description
;              The number of reflections that satisfy the resolution limits
               established by _refine_ls_shell.d_res_high and
               _refine_ls_shell.d_res_low and the observation limit
               established by _reflns.observed_criterion, and that were used
               as the test reflections (i.e. were excluded from the refinement)
               when the refinement included the calculation of a 'free'
               R factor, expressed as a percentage of the number of
               geometrically observable reflections that satisfy the
               reflection limits.
;
    _item.name                  '_refine_ls_shell.percent_reflns_R_free'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__refine_ls_shell.R_factor_all
    _item_description.description
;              Residual factor R for reflections that satisfy the resolution
               limits established by _refine_ls_shell.d_res_high and
               _refine_ls_shell.d_res_low.

                   sum|F~obs~ - F~calc~|
               R = ---------------------
                        sum|F~obs~|

               F~obs~  = the observed structure-factor amplitudes
               F~calc~ = the calculated structure-factor amplitudes

               sum is taken over the specified reflections
;
    _item.name                  '_refine_ls_shell.R_factor_all'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine_ls_shell.wR_factor_all'
    _item_related.function_code   alternate

    _item_type.code               float
     save_

save__refine_ls_shell.R_factor_obs
    _item_description.description
;              Residual factor R for reflections that satisfy the resolution
               limits established by _refine_ls_shell.d_res_high and
               _refine_ls_shell.d_res_low and the observation criterion
               established by _reflns.observed_criterion.

                   sum|F~obs~ - F~calc~|
               R = ---------------------
                        sum|F~obs~|

               F~obs~  = the observed structure-factor amplitudes
               F~calc~ = the calculated structure-factor amplitudes

               sum is taken over the specified reflections
;
    _item.name                  '_refine_ls_shell.R_factor_obs'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine_ls_shell.wR_factor_obs'
    _item_related.function_code   alternate
    _item_type.code               float
     save_

save__refine_ls_shell.R_factor_R_free
    _item_description.description
;              Residual factor R for reflections that satisfy the resolution
               limits established by _refine_ls_shell.d_res_high and
               _refine_ls_shell.d_res_low and the observation limit
               established by _reflns.observed_criterion, and that were
               used as the test reflections (i.e. were excluded from the
               refinement) when the refinement included the calculation
               of a 'free' R factor. Details of how reflections were assigned
               to the working and test sets are given in _reflns.R_free_details.

                   sum|F~obs~ - F~calc~|
               R = ---------------------
                        sum|F~obs~|

               F~obs~  = the observed structure-factor amplitudes
               F~calc~ = the calculated structure-factor amplitudes

               sum is taken over the specified reflections
;
    _item.name                  '_refine_ls_shell.R_factor_R_free'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    loop_
    _item_related.related_name
    _item_related.function_code '_refine_ls_shell.wR_factor_R_free'
                                  alternate
                                '_refine_ls_shell.R_factor_R_free_error'
                                  associated_error
    _item_type.code               float
     save_

save__refine_ls_shell.R_factor_R_free_error
    _item_description.description
;              The estimated error in _refine_ls_shell.R_factor_R_free.
               The method used to estimate the error is described in the
               item _refine.ls_R_factor_R_free_error_details.
;
    _item.name                  '_refine_ls_shell.R_factor_R_free_error'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    _item_related.related_name  '_refine_ls_shell.R_factor_R_free'
    _item_related.function_code   associated_value
    _item_type.code               float
     save_

save__refine_ls_shell.R_factor_R_work
    _item_description.description
;              Residual factor R for reflections that satisfy the resolution
               limits established by _refine_ls_shell.d_res_high and
               _refine_ls_shell.d_res_low and the observation limit
               established by _reflns.observed_criterion, and that were used
               as the working reflections (i.e. were included in the
               refinement) when the refinement included the calculation of
               a 'free' R factor. Details of how reflections were assigned
               to the working and test sets are given in _reflns.R_free_details.

                   sum|F~obs~ - F~calc~|
               R = ---------------------
                        sum|F~obs~|

               F~obs~  = the observed structure-factor amplitudes
               F~calc~ = the calculated structure-factor amplitudes

               sum is taken over the specified reflections
;
    _item.name                  '_refine_ls_shell.R_factor_R_work'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine_ls_shell.wR_factor_R_work'
    _item_related.function_code   alternate
    _item_type.code               float
     save_

save__refine_ls_shell.redundancy_reflns_all
    _item_description.description
;              The ratio of the total number of observations of the reflections
               that satisfy the resolution limits established by
               _refine_ls_shell.d_res_high and _refine_ls_shell.d_res_low
               to the number of crystallographically unique reflections that
               satisfy the same limits.
;
    _item.name                  '_refine_ls_shell.redundancy_reflns_all'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__refine_ls_shell.redundancy_reflns_obs
    _item_description.description
;              The ratio of the total number of observations of the
               reflections that satisfy the resolution limits established by
               _refine_ls_shell.d_res_high and _refine_ls_shell.d_res_low and
               the observation criterion established by
               _reflns.observed_criterion to the number of crystallographically
               unique reflections that satisfy the same limits.
;
    _item.name                  '_refine_ls_shell.redundancy_reflns_obs'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__refine_ls_shell.wR_factor_all
    _item_description.description
;              Weighted residual factor wR for reflections that satisfy the
               resolution limits established by _refine_ls_shell.d_res_high
               and _refine_ls_shell.d_res_low.

                    ( sum|w |Y~obs~ - Y~calc~|^2^| )^1/2^
               wR = ( ---------------------------- )
                    (        sum|w Y~obs~^2^|      )

               Y~obs~  = the observed amplitude specified by
                         _refine.ls_structure_factor_coef
               Y~calc~ = the calculated amplitude specified by
                         _refine.ls_structure_factor_coef
               w       = the least-squares weight

               sum is taken over the specified reflections
;
    _item.name                  '_refine_ls_shell.wR_factor_all'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine_ls_shell.R_factor_all'
    _item_related.function_code   alternate
    _item_type.code               float
     save_

save__refine_ls_shell.wR_factor_obs
    _item_description.description
;              Weighted residual factor wR for reflections that satisfy the
               resolution limits established by _refine_ls_shell.d_res_high
               and _refine_ls_shell.d_res_low and the observation criterion
               established by _reflns.observed_criterion.

                    ( sum|w |Y~obs~ - Y~calc~|^2^| )^1/2^
               wR = ( ---------------------------- )
                    (        sum|w Y~obs~^2^|      )

               Y~obs~  = the observed amplitude specified by
                         _refine.ls_structure_factor_coef
               Y~calc~ = the calculated amplitude specified by
                         _refine.ls_structure_factor_coef
               w       = the least-squares weight

               sum is taken over the specified reflections
;
    _item.name                  '_refine_ls_shell.wR_factor_obs'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine_ls_shell.R_factor_obs'
    _item_related.function_code   alternate
    _item_type.code               float
     save_

save__refine_ls_shell.wR_factor_R_free
    _item_description.description
;              Weighted residual factor wR for reflections that satisfy the
               resolution limits established by _refine_ls_shell.d_res_high
               and _refine_ls_shell.d_res_low and the observation limit
               established by _reflns.observed_criterion, and that were used
               as the test reflections (i.e. were excluded from the refinement)
               when the refinement included the calculation of a 'free'
               R factor. Details of how reflections were assigned to the
               working and test sets are given in _reflns.R_free_details.

                    ( sum|w |Y~obs~ - Y~calc~|^2^| )^1/2^
               wR = ( ---------------------------- )
                    (        sum|w Y~obs~^2^|      )

               Y~obs~  = the observed amplitude specified by
                         _refine.ls_structure_factor_coef
               Y~calc~ = the calculated amplitude specified by
                         _refine.ls_structure_factor_coef
               w       = the least-squares weight

               sum is taken over the specified reflections
;
    _item.name                  '_refine_ls_shell.wR_factor_R_free'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine_ls_shell.R_factor_R_free'
    _item_related.function_code   alternate
    _item_type.code               float
     save_

save__refine_ls_shell.wR_factor_R_work
    _item_description.description
;              Weighted residual factor wR for reflections that satisfy the
               resolution limits established by _refine_ls_shell.d_res_high
               and _refine_ls_shell.d_res_low and the observation limit
               established by _reflns.observed_criterion, and that were used
               as the working reflections (i.e. were included in the
               refinement) when the refinement included the calculation of
               a 'free' R factor. Details of how reflections were assigned
               to the working and test sets are given in _reflns.R_free_details.

                    ( sum|w |Y~obs~ - Y~calc~|^2^| )^1/2^
               wR = ( ---------------------------- )
                    (        sum|w Y~obs~^2^|      )

               Y~obs~  = the observed amplitude specified by
                         _refine.ls_structure_factor_coef
               Y~calc~ = the calculated amplitude specified by
                         _refine.ls_structure_factor_coef
               w       = the least-squares weight

               sum is taken over the specified reflections
;
    _item.name                  '_refine_ls_shell.wR_factor_R_work'
    _item.category_id             refine_ls_shell
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_related.related_name  '_refine_ls_shell.R_factor_R_work'
    _item_related.function_code   alternate
    _item_type.code               float
     save_

######################
## REFINE_OCCUPANCY ##
######################

save_refine_occupancy
    _category.description
;              Data items in the REFINE_OCCUPANCY category record details
               about the treatment of atom occupancies during refinement.
;
    _category.id                  refine_occupancy
    _category.mandatory_code      no
    _category_key.name          '_refine_occupancy.class'
    loop_
    _category_group.id           'inclusive_group'
                                 'refine_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _refine_occupancy.class
    _refine_occupancy.treatment
    _refine_occupancy.value
    _refine_occupancy.details
     'protein'                  fix  1.00  .
     'solvent'                  fix  1.00  .
     'inhibitor orientation 1'  fix  0.65  .
     'inhibitor orientation 2'  fix  0.35
    ; The inhibitor binds to the enzyme in two alternative
      conformations. The occupancy of each conformation was
      adjusted so as to result in approximately equal mean
      thermal factors for the atoms in each conformation.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__refine_occupancy.class
    _item_description.description
;              The class of atoms treated similarly for occupancy refinement.
;
    _item.name                  '_refine_occupancy.class'
    _item.category_id             refine_occupancy
    _item.mandatory_code          yes
    _item_type.code               text
    loop_
    _item_examples.case          'all'
                                 'protein'
                                 'solvent'
                                 'sugar-phosphate backbone'
     save_

save__refine_occupancy.details
    _item_description.description
;              A description of special aspects of the occupancy refinement for
               a class of atoms described in _refine_occupancy.class.
;
    _item.name                  '_refine_occupancy.details'
    _item.category_id             refine_occupancy
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 The inhibitor binds to the enzyme in two
                                  alternative conformations. The occupancy of
                                  each conformation was adjusted so as to result
                                  in approximately equal mean thermal factors
                                  for the atoms in each conformation.
;
     save_

save__refine_occupancy.treatment
    _item_description.description
;              The treatment of occupancies for a class of atoms
               described in _refine_occupancy.class.
;
    _item.name                  '_refine_occupancy.treatment'
    _item.category_id             refine_occupancy
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      fix  'fixed'
                                  ref  'refined'
     save_

save__refine_occupancy.value
    _item_description.description
;              The value of occupancy assigned to a class of atoms defined in
               _refine_occupancy.class. Meaningful only for atoms with fixed
               occupancy.
;
    _item.name                  '_refine_occupancy.value'
    _item.category_id             refine_occupancy
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum           1.0   1.0
                                  1.0   0.0
                                  0.0   0.0
    _item_type.code               float
    loop_
    _item_examples.case           1.0
                                  0.41
     save_

###########
## REFLN ##
###########

save_refln
    _category.description
;              Data items in the REFLN category record details about the
               reflection data used to determine the ATOM_SITE data items.

               The REFLN data items refer to individual reflections and must
               be included in looped lists.

               The REFLNS data items specify the parameters that apply to all
               reflections. The REFLNS data items are not looped.
;
    _category.id                  refln
    _category.mandatory_code      no
    loop_
    _category_key.name          '_refln.index_h'
                                '_refln.index_k'
                                '_refln.index_l'
    loop_
    _category_group.id           'inclusive_group'
                                 'refln_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on data set fetod of Todres, Yanovsky, Ermekov & Struchkov
                [Acta Cryst. (1993), C49, 1352-1354].
;
;
    loop_
    _refln.index_h
    _refln.index_k
    _refln.index_l
    _refln.F_squared_calc
    _refln.F_squared_meas
    _refln.F_squared_sigma
    _refln.status
       2   0   0       85.57       58.90      1.45 o
       3   0   0    15718.18    15631.06     30.40 o
       4   0   0    55613.11    49840.09     61.86 o
       5   0   0      246.85      241.86     10.02 o
       6   0   0       82.16       69.97      1.93 o
       7   0   0     1133.62      947.79     11.78 o
       8   0   0     2558.04     2453.33     20.44 o
       9   0   0      283.88      393.66      7.79 o
      10   0   0      283.70      171.98      4.26 o
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__refln.A_calc
    _item_description.description
;              The calculated value of structure-factor component A in
               electrons.

               A = |F|cos(phase)
;
    _item.name                  '_refln.A_calc'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_A_calc'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_related.related_name  '_refln.A_calc_au'
    _item_related.function_code   conversion_arbitrary
    _item_type.code               float
    _item_units.code              electrons
     save_

save__refln.A_calc_au
    _item_description.description
;              The calculated value of structure-factor component A in
               arbitrary units.

               A = |F|cos(phase)
;
    _item.name                  '_refln.A_calc_au'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_related.related_name  '_refln.A_calc'
    _item_related.function_code   conversion_arbitrary
    _item_type.code               float
    _item_units.code              arbitrary
     save_

save__refln.A_meas
    _item_description.description
;              The measured value of structure-factor component A in electrons.

               A = |F|cos(phase)
;
    _item.name                  '_refln.A_meas'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_A_meas'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_related.related_name  '_refln.A_meas_au'
    _item_related.function_code   conversion_arbitrary
    _item_type.code               float
    _item_units.code              electrons
     save_

save__refln.A_meas_au
    _item_description.description
;              The measured value of structure-factor component A in
               arbitrary units.

               A = |F|cos(phase)
;
    _item.name                  '_refln.A_meas_au'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_related.related_name  '_refln.A_meas'
    _item_related.function_code   conversion_arbitrary
    _item_type.code               float
    _item_units.code              arbitrary
     save_

save__refln.B_calc
    _item_description.description
;              The calculated value of structure-factor component B in
               electrons.

               B = |F|sin(phase)
;
    _item.name                  '_refln.B_calc'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_B_calc'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_related.related_name  '_refln.B_calc_au'
    _item_related.function_code   conversion_arbitrary
    _item_type.code               float
    _item_units.code              electrons
     save_

save__refln.B_calc_au
    _item_description.description
;              The calculated value of structure-factor component B in
               arbitrary units.

               B = |F|sin(phase)
;
    _item.name                  '_refln.B_calc_au'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_related.related_name  '_refln.B_calc'
    _item_related.function_code   conversion_arbitrary
    _item_type.code               float
    _item_units.code              arbitrary
     save_

save__refln.B_meas
    _item_description.description
;              The measured value of structure-factor component B in electrons.

               B = |F|sin(phase)
;
    _item.name                  '_refln.B_meas'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_B_meas'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_related.related_name  '_refln.B_meas_au'
    _item_related.function_code   conversion_arbitrary
    _item_type.code               float
    _item_units.code              electrons
     save_

save__refln.B_meas_au
    _item_description.description
;              The measured value of structure-factor component B in
               arbitrary units.

               B = |F|sin(phase)
;
    _item.name                  '_refln.B_meas_au'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_related.related_name  '_refln.B_meas'
    _item_related.function_code   conversion_arbitrary
    _item_type.code               float
    _item_units.code              arbitrary
     save_

save__refln.crystal_id
    _item_description.description
;              This data item is a pointer to _exptl_crystal.id in the
               EXPTL_CRYSTAL category.
;
    _item.name                  '_refln.crystal_id'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_refln_crystal_id'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
     save_

save__refln.F_calc
    _item_description.description
;              The calculated value of the structure factor in electrons.
;
    _item.name                  '_refln.F_calc'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_F_calc'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_related.related_name  '_refln.F_calc_au'
    _item_related.function_code   conversion_arbitrary
    _item_type.code               float
    _item_units.code              electrons
     save_

save__refln.F_calc_au
    _item_description.description
;              The calculated value of the structure factor in arbitrary
               units.
;
    _item.name                  '_refln.F_calc_au'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_related.related_name  '_refln.F_calc'
    _item_related.function_code   conversion_arbitrary
    _item_type.code               float
    _item_units.code              arbitrary
     save_

save__refln.F_meas
    _item_description.description
;              The measured value of the structure factor in electrons.
;
    _item.name                  '_refln.F_meas'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_F_meas'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_related.related_name
    _item_related.function_code '_refln.F_meas_sigma'
                                  associated_esd
                                '_refln.F_meas_au'
                                  conversion_arbitrary
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              electrons
     save_

save__refln.F_meas_au
    _item_description.description
;              The measured value of the structure factor in arbitrary units.
;
    _item.name                  '_refln.F_meas_au'
    _item.category_id             refln
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_refln.F_meas_sigma_au'
                                  associated_esd
                                '_refln.F_meas'
                                  conversion_arbitrary
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              arbitrary
     save_

save__refln.F_meas_sigma
    _item_description.description
;              The standard uncertainty (estimated standard deviation) of
               _refln.F_meas in electrons.
;
    _item.name                  '_refln.F_meas_sigma'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_F_sigma'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_related.related_name
    _item_related.function_code '_refln.F_meas'
                                  associated_value
                                '_refln.F_meas_sigma_au'
                                  conversion_arbitrary
    _item_type.code               float
    _item_units.code              electrons
     save_

save__refln.F_meas_sigma_au
    _item_description.description
;              The standard uncertainty (estimated standard deviation) of
               _refln.F_meas_au in arbitrary units.
;
    _item.name                  '_refln.F_meas_sigma_au'
    _item.category_id             refln
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_refln.F_meas_au'
                                  associated_value
                                '_refln.F_meas_sigma'
                                  conversion_arbitrary
    _item_type.code               float
    _item_units.code              arbitrary
     save_

save__refln.F_squared_calc
    _item_description.description
;              The calculated value of the squared structure factor in
               electrons squared.
;
    _item.name                  '_refln.F_squared_calc'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_F_squared_calc'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              electrons_squared
     save_

save__refln.F_squared_meas
    _item_description.description
;              The measured value of the squared structure factor in electrons
               squared.
;
    _item.name                  '_refln.F_squared_meas'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_F_squared_meas'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              electrons_squared
     save_

save__refln.F_squared_sigma
    _item_description.description
;              The standard uncertainty (derived from measurement) of the
               squared structure factor in electrons squared.
;
    _item.name                  '_refln.F_squared_sigma'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_F_squared_sigma'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              electrons_squared
     save_

save__refln.fom
    _item_description.description
;              The figure of merit m for this reflection.

                   int P~alpha~ exp(i*alpha) dalpha
               m = --------------------------------
                         int P~alpha~ dalpha

               P~a~ = the probability that the phase angle a is correct

               int is taken over the range alpha = 0 to 2 pi.
;
    _item.name                  '_refln.fom'
    _item.category_id             refln
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__refln.index_h
    _item_description.description
;              Miller index h of the reflection. The values of the Miller
               indices in the REFLN category must correspond to the cell
               defined by cell lengths and cell angles in the CELL category.
;
    _item.name                  '_refln.index_h'
    _item.category_id             refln
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_refln_index_h'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_refln.index_k'
                                '_refln.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__refln.index_k
    _item_description.description
;              Miller index k of the reflection. The values of the Miller
               indices in the REFLN category must correspond to the cell
               defined by cell lengths and cell angles in the CELL category.
;
    _item.name                  '_refln.index_k'
    _item.category_id             refln
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_refln_index_k'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_refln.index_h'
                                '_refln.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__refln.index_l
    _item_description.description
;              Miller index l of the reflection. The values of the Miller
               indices in the REFLN category must correspond to the cell
               defined by cell lengths and cell angles in the CELL category.
;
    _item.name                  '_refln.index_l'
    _item.category_id             refln
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_refln_index_l'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_dependent.dependent_name
                                '_refln.index_h'
                                '_refln.index_k'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__refln.intensity_calc
    _item_description.description
;              The calculated value of the intensity in the same units as
               _refln.intensity_meas.
;
    _item.name                  '_refln.intensity_calc'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_intensity_calc'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
     save_

save__refln.intensity_meas
    _item_description.description
;              The measured value of the intensity.
;
    _item.name                  '_refln.intensity_meas'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_intensity_meas'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
     save_

save__refln.intensity_sigma
    _item_description.description
;              The standard uncertainty (derived from measurement) of the
               intensity in the same units as _refln.intensity_meas.
;
    _item.name                  '_refln.intensity_sigma'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_intensity_sigma'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
     save_

#save__refln.mean_path_length_tbar
#    _item_description.description
#;              Mean path length in millimetres through the crystal for this
#               reflection.
#;
#    _item.name                  '_refln.mean_path_length_tbar'
#    _item.category_id             refln
#    _item.mandatory_code          no
#    _item_aliases.alias_name    '_refln_mean_path_length_tbar'
#    _item_aliases.dictionary      cif_core.dic
#    _item_aliases.version         2.0.1
#    _item_type.code               float
#    _item_units.code              millimetres
#     save_

save__refln.status
    _item_description.description
;              Classification of a reflection so as to indicate its status with
               respect to inclusion in the refinement and the calculation of
               R factors.
;
    _item.name                  '_refln.status'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_observed_status'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
#    _item_default.value           o
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      o
;                                     satisfies _refine.ls_d_res_high,
                                      satisfies _refine.ls_d_res_low,
                                      observed by _reflns.observed_criterion,
                                      not flagged as systematically absent,
                                      not flagged as unreliable
;
                                  <
;                                     satisfies _refine.ls_d_res_high,
                                      satisfies _refine.ls_d_res_low,
                                      unobserved by _reflns.observed_criterion,
                                      not flagged as systematically absent,
                                      not flagged as unreliable
;
                                  -  'systematically absent reflection'
                                  x  'unreliable measurement -- not used'
                                  h  'does not satisfy _refine.ls_d_res_high'
                                  l  'does not satisfy _refine.ls_d_res_low'
                                  f
;                                     satisfies _refine.ls_d_res_high,
                                      satisfies _refine.ls_d_res_low,
                                      observed by _reflns.observed_criterion,
                                      not flagged as systematically absent,
                                      not flagged as unreliable,
                                      excluded from refinement so as to be
                                      included in the calculation of a 'free' R
                                      factor
;
     save_

save__refln.phase_calc
    _item_description.description
;              The calculated structure-factor phase in degrees.
;
    _item.name                  '_refln.phase_calc'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_phase_calc'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              degrees
     save_

save__refln.phase_meas
    _item_description.description
;              The measured structure-factor phase in degrees.
;
    _item.name                  '_refln.phase_meas'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_phase_meas'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
    _item_units.code              degrees
     save_

save__refln.refinement_status
    _item_description.description
;              Status of a reflection in the structure-refinement process.
;
    _item.name                  '_refln.refinement_status'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_refinement_status'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_default.value           incl
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      incl  'included in ls process'
                                  excl  'excluded from ls process'
                                  extn  'excluded due to extinction'
     save_

save__refln.scale_group_code
    _item_description.description
;              This data item is a pointer to _reflns_scale.group_code in the
               REFLNS_SCALE category.
;
    _item.name                  '_refln.scale_group_code'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_refln_scale_group_code'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
     save_

save__refln.sint_over_lambda
    _item_description.description
;              The (sin theta)/lambda value in reciprocal angstroms for this
               reflection.
;
    _item.name                  '_refln.sint_over_lambda'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_sint/lambda'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              reciprocal_angstroms
     save_

save__refln.symmetry_epsilon
    _item_description.description
;              The symmetry reinforcement factor corresponding to the number of
               times the reflection indices are generated identically from the
               space-group symmetry operations.
;
    _item.name                  '_refln.symmetry_epsilon'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_symmetry_epsilon'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           48   48
                                  48    1
                                   1    1
    _item_type.code               int
     save_

save__refln.symmetry_multiplicity
    _item_description.description
;              The number of symmetry-equivalent reflections. The equivalent
               reflections have the same structure-factor magnitudes because
               of the space-group symmetry and the Friedel relationship.
;
    _item.name                  '_refln.symmetry_multiplicity'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_symmetry_multiplicity'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           48   48
                                  48    1
                                   1    1
    _item_type.code               int
     save_

save__refln.wavelength
    _item_description.description
;              The mean wavelength in angstroms of radiation used to measure
               this reflection. This is an important parameter for data
               collected using energy-dispersive detectors or the Laue
               method.
;
    _item.name                  '_refln.wavelength'
    _item.category_id             refln
    _item.mandatory_code          no
    _item_aliases.alias_name    '_refln_wavelength'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__refln.wavelength_id
    _item_description.description
;              This data item is a pointer to _diffrn_radiation.wavelength_id in
               the DIFFRN_RADIATION category.
;
    _item.name                  '_refln.wavelength_id'
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_refln_wavelength_id'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
     save_

###################
## REFLN_SYS_ABS ##
###################

save_refln_sys_abs
    _category.description
;              Data items in the REFLN_SYS_ABS category record details about
               the reflection data that should be systematically absent,
               given the designated space group.
;
    _category.id                  refln_sys_abs
    _category.mandatory_code      no
    loop_
    _category_key.name          '_refln_sys_abs.index_h'
                                '_refln_sys_abs.index_k'
                                '_refln_sys_abs.index_l'
    loop_
    _category_group.id           'inclusive_group'
                                 'refln_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - hypothetical example.
;
;
    loop_
    _refln_sys_abs.index_h
    _refln_sys_abs.index_k
    _refln_sys_abs.index_l
    _refln_sys_abs.I
    _refln_sys_abs.sigmaI
    _refln_sys_abs.I_over_sigmaI
     0  3  0   28.32  22.95  1.23
     0  5  0   14.11  16.38  0.86
     0  7  0  114.81  20.22  5.67
     0  9  0   32.99  24.51  1.35
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__refln_sys_abs.I
    _item_description.description
;              The measured value of the intensity in arbitrary units.
;
    _item.name                  '_refln_sys_abs.I'
    _item.category_id             refln_sys_abs
    _item.mandatory_code          no
    _item_aliases.alias_name    '_ebi_refln_sys_abs.I'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_related.related_name
    _item_related.function_code '_refln_sys_abs.sigmaI'
                                  associated_esd
    _item_type.code               float
    _item_type_conditions.code    esd
    _item_units.code              arbitrary
     save_

save__refln_sys_abs.I_over_sigmaI
    _item_description.description
;              The ratio of _refln_sys_abs.I to _refln_sys_abs.sigmaI.  Used
               to evaluate whether a reflection that should be systematically
               absent according to the designated space group is in fact
               absent.
;
    _item.name                  '_refln_sys_abs.I_over_sigmaI'
    _item.category_id             refln_sys_abs
    _item.mandatory_code          no
    _item_aliases.alias_name    '_ebi_refln_sys_abs.I_over_sigma'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    _item_type.code               float
     save_

save__refln_sys_abs.index_h
    _item_description.description
;              Miller index h of the reflection. The values of the Miller
               indices in the REFLN_SYS_ABS category must correspond to
               the cell defined by cell lengths and cell angles in the CELL
               category.
;
    _item.name                  '_refln_sys_abs.index_h'
    _item.category_id             refln_sys_abs
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_ebi_refln_sys_abs.h'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_dependent.dependent_name
                                '_refln_sys_abs.index_k'
                                '_refln_sys_abs.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__refln_sys_abs.index_k
    _item_description.description
;              Miller index k of the reflection. The values of the Miller
               indices in the REFLN_SYS_ABS category must correspond to the
               cell defined by cell lengths and cell angles in the CELL
               category.
;
    _item.name                  '_refln_sys_abs.index_k'
    _item.category_id             refln_sys_abs
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_ebi_refln_sys_abs.k'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_dependent.dependent_name
                                '_refln_sys_abs.index_h'
                                '_refln_sys_abs.index_l'
    _item_sub_category.id         miller_index
    _item_type.code               int
save_

save__refln_sys_abs.index_l
    _item_description.description
;              Miller index l of the reflection. The values of the Miller
               indices in the REFLN_SYS_ABS category must correspond to the
               cell defined by cell lengths and cell angles in the CELL
               category.
;
    _item.name                  '_refln_sys_abs.index_l'
    _item.category_id             refln_sys_abs
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_ebi_refln_sys_abs.l'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_dependent.dependent_name
                                '_refln_sys_abs.index_h'
                                '_refln_sys_abs.index_k'
    _item_sub_category.id         miller_index
    _item_type.code               int
     save_

save__refln_sys_abs.sigmaI
    _item_description.description
;              The standard uncertainty (estimated standard deviation) of
               _refln_sys_abs.I in arbitrary units.
;
    _item.name                  '_refln_sys_abs.sigmaI'
    _item.category_id             refln_sys_abs
    _item.mandatory_code          no
    _item_aliases.alias_name    '_ebi_refln_sys_abs.sigmaI'
    _item_aliases.dictionary      ebi_extensions
    _item_aliases.version         1.0
    loop_
    _item_related.related_name
    _item_related.function_code '_refln_sys_abs.I'
                                  associated_value
    _item_type.code               float
    _item_units.code              arbitrary
     save_

############
## REFLNS ##
############

save_reflns
    _category.description
;              Data items in the REFLNS category record details about the
               reflection data used to determine the ATOM_SITE data items.

               The REFLN data items refer to individual reflections and must
               be included in looped lists.

               The REFLNS data items specify the parameters that apply to all
               reflections. The REFLNS data items are not looped.
;
    _category.id                  reflns
    _category.mandatory_code      no
    _category_key.name          '_reflns.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'refln_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _reflns.entry_id                       '5HVP'
    _reflns.data_reduction_method
    ; Xengen program scalei. Anomalous pairs were merged. Scaling
      proceeded in several passes, beginning with 1-parameter
      fit and ending with 3-parameter fit.
    ;
    _reflns.data_reduction_details
    ; Merging and scaling based on only those reflections
      with I > \s(I).
    ;

    _reflns.d_resolution_high              2.00
    _reflns.d_resolution_low               8.00

    _reflns.limit_h_max                    22
    _reflns.limit_h_min                    0
    _reflns.limit_k_max                    46
    _reflns.limit_k_min                    0
    _reflns.limit_l_max                    57
    _reflns.limit_l_min                    0

    _reflns.number_obs                     7228
    _reflns.observed_criterion             '> 1 \s(I)'
    _reflns.details                        none
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - based on data set TOZ of Willis, Beckwith & Tozer
                 [Acta Cryst. (1991), C47, 2276-2277].
;
;
    _reflns.limit_h_min                0
    _reflns.limit_h_max                6
    _reflns.limit_k_min                0
    _reflns.limit_k_max                17
    _reflns.limit_l_min                0
    _reflns.limit_l_max                22
    _reflns.number_all                 1592
    _reflns.number_obs                 1408
    _reflns.observed_criterion         F_>_6.0_\s(F)
    _reflns.d_resolution_high          0.8733
    _reflns.d_resolution_low           11.9202
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__reflns.B_iso_Wilson_estimate
    _item_description.description
;              The value of the overall isotropic displacement parameter
               estimated from the slope of the Wilson plot.
;
    _item.name                  '_reflns.B_iso_Wilson_estimate'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              angstroms_squared
     save_

save__reflns.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_reflns.entry_id'
    _item.mandatory_code          yes
     save_

save__reflns.data_reduction_details
    _item_description.description
;              A description of special aspects of the data-reduction
               procedures.
;
    _item.name                  '_reflns.data_reduction_details'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 Merging and scaling based on only those
                                  reflections with I > sig(I).
;
     save_

save__reflns.data_reduction_method
    _item_description.description
;              The method used for data reduction.

               Note that this is not the computer program used, which is
               described in the SOFTWARE category, but the method
               itself.

               This data item should be used to describe significant
               methodological options used within the data-reduction programs.
;
    _item.name                  '_reflns.data_reduction_method'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 Profile fitting by method of Kabsch (1987).
                                  Scaling used spherical harmonic coefficients.
;
     save_

save__reflns.d_resolution_high
    _item_description.description
;              The smallest value for the interplanar spacings for
               the reflection data. This is called the highest resolution.
;
    _item.name                  '_reflns.d_resolution_high'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_d_resolution_high'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__reflns.d_resolution_low
    _item_description.description
;              The largest value for the interplanar spacings for the
               reflection data. This is called the lowest resolution.
;
    _item.name                  '_reflns.d_resolution_low'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_d_resolution_low'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__reflns.details
    _item_description.description
;              A description of reflection data not covered by other data
               names. This should include details of the Friedel pairs.
;
    _item.name                  '_reflns.details'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_special_details'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               text
     save_

save__reflns.limit_h_max
    _item_description.description
;              Maximum value of the Miller index h for the reflection data. This
               need not have the same value as _diffrn_reflns.limit_h_max.
;
    _item.name                  '_reflns.limit_h_max'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_limit_h_max'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__reflns.limit_h_min
    _item_description.description
;              Minimum value of the Miller index h for the reflection data. This
               need not have the same value as _diffrn_reflns.limit_h_min.
;
    _item.name                  '_reflns.limit_h_min'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_limit_h_min'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__reflns.limit_k_max
    _item_description.description
;              Maximum value of the Miller index k for the reflection data. This
               need not have the same value as _diffrn_reflns.limit_k_max.
;
    _item.name                  '_reflns.limit_k_max'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_limit_k_max'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__reflns.limit_k_min
    _item_description.description
;              Minimum value of the Miller index k for the reflection data. This
               need not have the same value as _diffrn_reflns.limit_k_min.
;
    _item.name                  '_reflns.limit_k_min'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_limit_k_min'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__reflns.limit_l_max
    _item_description.description
;              Maximum value of the Miller index l for the reflection data. This
               need not have the same value as _diffrn_reflns.limit_l_max.
;
    _item.name                  '_reflns.limit_l_max'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_limit_l_max'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__reflns.limit_l_min
    _item_description.description
;              Minimum value of the Miller index l for the reflection data. This
               need not have the same value as _diffrn_reflns.limit_l_min.
;
    _item.name                  '_reflns.limit_l_min'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_limit_l_min'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__reflns.number_all
    _item_description.description
;              The total number of reflections in the REFLN list (not the
               DIFFRN_REFLN list). This number may contain Friedel-equivalent
               reflections according to the nature of the structure and the
               procedures used. The item _reflns.details describes the
               reflection data.
;
    _item.name                  '_reflns.number_all'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_number_total'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__reflns.number_obs
    _item_description.description
;              The number of reflections in the REFLN list (not the DIFFRN_REFLN
               list) classified as observed (see _reflns.observed_criterion).
               This number may contain Friedel-equivalent reflections according
               to the nature of the structure and the procedures used.
;
    _item.name                  '_reflns.number_obs'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_number_observed'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum           .   0
                                  0   0
    _item_type.code               int
     save_

save__reflns.observed_criterion
    _item_description.description
;              The criterion used to classify a reflection as 'observed'. This
               criterion is usually expressed in terms of a sigma(I) or
               sigma(F) threshold.
;
    _item.name                  '_reflns.observed_criterion'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_observed_criterion'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_related.related_name
    _item_related.function_code '_reflns.observed_criterion_sigma_F'
                                  alternate
                                '_reflns.observed_criterion_sigma_I'
                                  alternate
                                '_reflns.observed_criterion_I_min'
                                  alternate
                                '_reflns.observed_criterion_I_max'
                                  alternate
                                '_reflns.observed_criterion_F_min'
                                  alternate
                                '_reflns.observed_criterion_F_max'
                                  alternate

    _item_type.code               text
    _item_examples.case          '>2sigma(I)'
     save_

save__reflns.observed_criterion_F_max
    _item_description.description
;              The criterion used to classify a reflection as 'observed'
               expressed as an upper limit for the value of F.
;
    _item.name                  '_reflns.observed_criterion_F_max'
    _item.category_id             reflns
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_reflns.observed_criterion'
                                  alternate
                                '_reflns.observed_criterion_I_max'
                                  convention
    _item_type.code               float
     save_

save__reflns.observed_criterion_F_min
    _item_description.description
;              The criterion used to classify a reflection as 'observed'
               expressed as a lower limit for the value of F.
;
    _item.name                  '_reflns.observed_criterion_F_min'
    _item.category_id             reflns
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_reflns.observed_criterion'
                                  alternate
                                '_reflns.observed_criterion_I_min'
                                  convention
    _item_type.code               float
     save_

save__reflns.observed_criterion_I_max
    _item_description.description
;              The criterion used to classify a reflection as 'observed'
               expressed as an upper limit for the value of I.
;
    _item.name                  '_reflns.observed_criterion_I_max'
    _item.category_id             reflns
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_reflns.observed_criterion'
                                  alternate
                                '_reflns.observed_criterion_F_max'
                                  convention
    _item_type.code               float
     save_

save__reflns.observed_criterion_I_min
    _item_description.description
;              The criterion used to classify a reflection as 'observed'
               expressed as a lower limit for the value of I.
;
    _item.name                  '_reflns.observed_criterion_I_min'
    _item.category_id             reflns
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_reflns.observed_criterion'
                                  alternate
                                '_reflns.observed_criterion_F_min'
                                  convention
    _item_type.code               float
     save_

save__reflns.observed_criterion_sigma_F
    _item_description.description
;              The criterion used to classify a reflection as 'observed'
               expressed as a multiple of the value of sigma(F).
;
    _item.name                  '_reflns.observed_criterion_sigma_F'
    _item.category_id             reflns
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_reflns.observed_criterion'
                                  alternate
                                '_reflns.observed_criterion_sigma_I'
                                  convention
    _item_type.code               float
     save_

save__reflns.observed_criterion_sigma_I
    _item_description.description
;              The criterion used to classify a reflection as 'observed'
               expressed as a multiple of the value of sigma(I).
;
    _item.name                  '_reflns.observed_criterion_sigma_I'
    _item.category_id             reflns
    _item.mandatory_code          no
    loop_
    _item_related.related_name
    _item_related.function_code '_reflns.observed_criterion'
                                  alternate
                                '_reflns.observed_criterion_sigma_F'
                                  convention
    _item_type.code               float
     save_

save__reflns.percent_possible_obs
    _item_description.description
;              The percentage of geometrically possible reflections represented
               by reflections that satisfy the resolution limits established
               by _reflns.d_resolution_high and _reflns.d_resolution_low and
               the observation limit established by
               _reflns.observed_criterion.
;
    _item.name                  '_reflns.percent_possible_obs'
    _item.category_id             reflns
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__reflns.R_free_details
    _item_description.description
;              A description of the method by which a subset of reflections was
               selected for exclusion from refinement so as to be used in the
               calculation of a 'free' R factor.
;
    _item.name                  '_reflns.R_free_details'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 The data set was sorted with l varying most
                                  rapidly and h varying least rapidly. Every
                                  10th reflection in this sorted list was
                                  excluded from refinement and included in the
                                  calculation of a 'free' R factor.
;
     save_

save__reflns.Rmerge_F_all
    _item_description.description
;              Residual factor Rmerge for all reflections that satisfy the
               resolution limits established by _reflns.d_resolution_high
               and _reflns.d_resolution_low.

                           sum~i~(sum~j~|F~j~ - <F>|)
               Rmerge(F) = --------------------------
                                sum~i~(sum~j~<F>)

               F~j~ = the amplitude of the jth observation of reflection i
               <F>  = the mean of the amplitudes of all observations of
                      reflection i

               sum~i~ is taken over all reflections
               sum~j~ is taken over all observations of each reflection
;
    _item.name                  '_reflns.Rmerge_F_all'
    _item.category_id             reflns
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__reflns.Rmerge_F_obs
    _item_description.description
;              Residual factor Rmerge for reflections that satisfy the
               resolution limits established by _reflns.d_resolution_high
               and _reflns.d_resolution_low and the observation limit
               established by _reflns.observed_criterion.

                           sum~i~(sum~j~|F~j~ - <F>|)
               Rmerge(F) = --------------------------
                                sum~i~(sum~j~<F>)

               F~j~ = the amplitude of the jth observation of reflection i
               <F>  = the mean of the amplitudes of all observations of
                      reflection i

               sum~i~ is taken over all reflections
               sum~j~ is taken over all observations of each reflection
;
    _item.name                  '_reflns.Rmerge_F_obs'
    _item.category_id             reflns
    _item.mandatory_code          no
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

##################
## REFLNS_SCALE ##
##################

save_reflns_scale
    _category.description
;              Data items in the REFLNS_SCALE category record details about
               the structure-factor scales. They are referenced from within
               the REFLN list through _refln.scale_group_code.
;
    _category.id                  reflns_scale
    _category.mandatory_code      no
    _category_key.name          '_reflns_scale.group_code'
    loop_
    _category_group.id           'inclusive_group'
                                 'refln_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for the collagen-like
                peptide [(POG)4 EKG (POG)5]3.
;
;
    _reflns_scale.group_code     SG1
    _reflns_scale.meas_F         4.0
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__reflns_scale.group_code
    _item_description.description
;              The code identifying a scale _reflns_scale.meas_F,
               _reflns_scale.meas_F_squared or _reflns_scale.meas_intensity.
               These are linked to the REFLN list by the
               _refln.scale_group_code. These codes
               need not correspond to those in the DIFFRN_SCALE list.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_reflns_scale.group_code'  reflns_scale       yes
               '_refln.scale_group_code'   refln              yes
    _item_aliases.alias_name    '_reflns_scale_group_code'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_refln.scale_group_code'  '_reflns_scale.group_code'
    _item_type.code               line
    loop_
    _item_examples.case          '1'
                                 '2'
                                 'c1'
                                 'c2'
     save_

save__reflns_scale.meas_F
    _item_description.description
;              A scale associated with _reflns_scale.group_code.
;
    _item.name                  '_reflns_scale.meas_F'
    _item.category_id             reflns_scale
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_scale_meas_F'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__reflns_scale.meas_F_squared
    _item_description.description
;              A scale associated with _reflns_scale.group_code.
;
    _item.name                  '_reflns_scale.meas_F_squared'
    _item.category_id             reflns_scale
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_scale_meas_F_squared'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__reflns_scale.meas_intensity
    _item_description.description
;              A scale associated with _reflns_scale.group_code.
;
    _item.name                  '_reflns_scale.meas_intensity'
    _item.category_id             reflns_scale
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_scale_meas_intensity'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

##################
## REFLNS_SHELL ##
##################

save_reflns_shell
    _category.description
;              Data items in the REFLNS_SHELL category record details about
               the reflection data used to determine the ATOM_SITE data items
               broken down into shells of resolution.
;
    _category.id                  reflns_shell
    _category.mandatory_code      no
    loop_
    _category_key.name          '_reflns_shell.d_res_high'
                                '_reflns_shell.d_res_low'
    loop_
    _category_group.id           'inclusive_group'
                                 'refln_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _reflns_shell.d_res_high
    _reflns_shell.d_res_low
    _reflns_shell.meanI_over_sigI_obs
    _reflns_shell.number_measured_obs
    _reflns_shell.number_unique_obs
    _reflns_shell.percent_possible_obs
    _reflns_shell.Rmerge_F_obs
      31.38  3.82  69.8  9024  2540  96.8   1.98
       3.82  3.03  26.1  7413  2364  95.1   3.85
       3.03  2.65  10.5  5640  2123  86.2   6.37
       2.65  2.41   6.4  4322  1882  76.8   8.01
       2.41  2.23   4.3  3247  1714  70.4   9.86
       2.23  2.10   3.1  1140   812  33.3  13.99
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__reflns_shell.d_res_high
    _item_description.description
;              The smallest value in angstroms for the interplanar spacings
               for the reflections in this shell. This is called the highest
               resolution.
;
    _item.name                  '_reflns_shell.d_res_high'
    _item.category_id             reflns_shell
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_reflns_shell_d_res_high'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__reflns_shell.d_res_low
    _item_description.description
;              The highest value in angstroms for the interplanar spacings
               for the reflections in this shell. This is called the lowest
               resolution.
;
    _item.name                  '_reflns_shell.d_res_low'
    _item.category_id             reflns_shell
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_reflns_shell_d_res_low'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
    _item_units.code              angstroms
     save_

save__reflns_shell.meanI_over_sigI_all
    _item_description.description
;              The ratio of the mean of the intensities of all reflections
               in this shell to the mean of the standard uncertainties of the
               intensities of all reflections in this shell.
;
    _item.name                  '_reflns_shell.meanI_over_sigI_all'
    _item.category_id             reflns_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_shell_meanI_over_sigI_all'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
     save_

save__reflns_shell.meanI_over_sigI_obs
    _item_description.description
;              The ratio of the mean of the intensities of the reflections
               classified as 'observed' (see _reflns.observed_criterion) in
               this shell to the mean of the standard uncertainties of the
               intensities of the 'observed' reflections in this
               shell.
;
    _item.name                  '_reflns_shell.meanI_over_sigI_obs'
    _item.category_id             reflns_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_shell_meanI_over_sigI_obs'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               float
     save_

save__reflns_shell.number_measured_all
    _item_description.description
;              The total number of reflections measured for this
               shell.
;
    _item.name                  '_reflns_shell.number_measured_all'
    _item.category_id             reflns_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_shell_number_measured_all'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__reflns_shell.number_measured_obs
    _item_description.description
;              The number of reflections classified as 'observed'
               (see _reflns.observed_criterion) for this
               shell.
;
    _item.name                  '_reflns_shell.number_measured_obs'
    _item.category_id             reflns_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_shell_number_measured_obs'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__reflns_shell.number_possible
    _item_description.description
;              The number of unique reflections it is possible to measure in
               this shell.
;
    _item.name                  '_reflns_shell.number_possible'
    _item.category_id             reflns_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_shell_number_possible'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0
                                  0     0
    _item_type.code               int
     save_

save__reflns_shell.number_unique_all
    _item_description.description
;              The total number of measured reflections which are symmetry-
               unique after merging for this shell.
;
    _item.name                  '_reflns_shell.number_unique_all'
    _item.category_id             reflns_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_shell_number_unique_all'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__reflns_shell.number_unique_obs
    _item_description.description
;              The total number of measured reflections classified as 'observed'
               (see _reflns.observed_criterion) which are symmetry-unique
               after merging for this shell.
;
    _item.name                  '_reflns_shell.number_unique_obs'
    _item.category_id             reflns_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_shell_number_unique_obs'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__reflns_shell.percent_possible_all
    _item_description.description
;              The percentage of geometrically possible reflections represented
               by all reflections measured for this shell.
;
    _item.name                  '_reflns_shell.percent_possible_all'
    _item.category_id             reflns_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_shell_percent_possible_all'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__reflns_shell.percent_possible_obs
    _item_description.description
;              The percentage of geometrically possible reflections represented
               by reflections classified as 'observed' (see
               _reflns.observed_criterion) for this shell.
;
    _item.name                  '_reflns_shell.percent_possible_obs'
    _item.category_id             reflns_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_shell_percent_possible_obs'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__reflns_shell.Rmerge_F_all
    _item_description.description
;              Residual factor Rmerge for all reflections that satisfy the
               resolution limits established by _reflns_shell.d_res_high and
               _reflns_shell.d_res_low.

                           sum~i~(sum~j~|F~j~ - <F>|)
               Rmerge(F) = --------------------------
                                sum~i~(sum~j~<F>)

               F~j~ = the amplitude of the jth observation of reflection i
               <F>  = the mean of the amplitudes of all observations of
                      reflection i

               sum~i~ is taken over all reflections
               sum~j~ is taken over all observations of each reflection
;
    _item.name                  '_reflns_shell.Rmerge_F_all'
    _item.category_id             reflns_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_shell_Rmerge_F_all'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__reflns_shell.Rmerge_F_obs
    _item_description.description
;              Residual factor Rmerge for reflections that satisfy the
               resolution limits established by _reflns_shell.d_res_high and
               _reflns_shell.d_res_low and the observation criterion
               established by _reflns.observed_criterion.

                           sum~i~(sum~j~|F~j~ - <F>|)
               Rmerge(F) = --------------------------
                                sum~i~(sum~j~<F>)

               F~j~ = the amplitude of the jth observation of reflection i
               <F>  = the mean of the amplitudes of all observations of
                      reflection i

               sum~i~ is taken over all reflections
               sum~j~ is taken over all observations of each reflection
;
    _item.name                  '_reflns_shell.Rmerge_F_obs'
    _item.category_id             reflns_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_shell_Rmerge_F_obs'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__reflns_shell.Rmerge_I_all
    _item_description.description
;              The value of Rmerge(I) for all reflections in a given shell.

                           sum~i~(sum~j~|I~j~ - <I>|)
               Rmerge(I) = --------------------------
                               sum~i~(sum~j~<I>)

               I~j~ = the intensity of the jth observation of reflection i
               <I>  = the mean of the intensities of all observations of
                      reflection i

               sum~i~ is taken over all reflections
               sum~j~ is taken over all observations of each reflection

;
    _item.name                  '_reflns_shell.Rmerge_I_all'
    _item.category_id             reflns_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_shell_Rmerge_I_all'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

save__reflns_shell.Rmerge_I_obs
    _item_description.description
;              The value of Rmerge(I) for reflections classified as 'observed'
               (see _reflns.observed_criterion) in a given shell.

                           sum~i~(sum~j~|I~j~ - <I>|)
               Rmerge(I) = --------------------------
                               sum~i~(sum~j~<I>)

               I~j~ = the intensity of the jth observation of reflection i
               <I>  = the mean of the intensities of all observations of
                      reflection i

               sum~i~ is taken over all reflections
               sum~j~ is taken over all observations of each reflection
;
    _item.name                  '_reflns_shell.Rmerge_I_obs'
    _item.category_id             reflns_shell
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_shell_Rmerge_I_obs'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    loop_
    _item_range.maximum
    _item_range.minimum            .    0.0
                                  0.0   0.0
    _item_type.code               float
     save_

##############
## SOFTWARE ##
##############

save_software
    _category.description
;              Data items in the SOFTWARE category record details about
               the software used in the structure analysis, which implies
               any software used in the generation of any data items
               associated with the structure determination and
               structure representation.

               These data items allow computer programs to be referenced
               in more detail than data items in the COMPUTING category do.
;
    _category.id                  software
    _category.mandatory_code      no
    loop_
    _category_key.name          '_software.name'
                                '_software.version'
    loop_
    _category_group.id           'inclusive_group'
                                 'computing_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _software.name
    _software.version
    _software.date
    _software.type
    _software.contact_author
    _software.contact_author_email
    _software.location
    _software.classification
    _software.citation_id
    _software.language
    _software.compiler_name
    _software.compiler_version
    _software.hardware
    _software.os
    _software.os_version
    _software.dependencies
    _software.mods
    _software.description
       Prolsq   unknown  .   program   'Wayne A. Hendrickson'  ?
       'ftp://rosebud.sdsc.edu/pub/sdsc/xtal/CCP4/ccp4/'
       refinement ref5  Fortran
       'Convex Fortran' v8.0 'Convex C220' ConvexOS  v10.1
       'Requires that Protin be run first'    optimized
       'restrained least-squares refinement'
;
     save_
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

save__software.citation_id
    _item_description.description
;              This data item is a pointer to _citation.id in the CITATION
               category.
;
    _item.name                  '_software.citation_id'
    _item.mandatory_code          no
     save_

save__software.classification
    _item_description.description
;              The classification of the program according to its
               major function.
;
    _item.name                  '_software.classification'
    _item.category_id             software
    _item.mandatory_code          no
    _item_type.code               uline
    loop_
    _item_examples.case          'data collection'
                                 'data reduction'
                                 'phasing'
                                 'model building'
                                 'refinement'
                                 'validation'
                                 'other'
     save_

save__software.compiler_name
    _item_description.description
;              The compiler used to compile the software.
;
    _item.name                  '_software.compiler_name'
    _item.category_id             software
    _item.mandatory_code          no
    _item_type.code               line
    loop_
    _item_examples.case
                                 'Convex Fortran'
                                 'gcc'
                                 'DEC C'
     save_

save__software.compiler_version
    _item_description.description
;              The version of the compiler used to compile the software.
;
    _item.name                  '_software.compiler_version'
    _item.category_id             software
    _item.mandatory_code          no
    _item_type.code               line
    loop_
    _item_examples.case          '3.1'
                                 '2.1 alpha'
     save_

save__software.contact_author
    _item_description.description
;              The recognized contact author of the software. This could be
               the original author, someone who has modified the code or
               someone who maintains the code.  It should be the person
               most commonly associated with the code.
;
    _item.name                  '_software.contact_author'
    _item.category_id             software
    _item.mandatory_code          no
    _item_type.code               line
    loop_
    _item_examples.case          'T. Alwyn Jones'
                                 'Axel Brunger'
     save_

save__software.contact_author_email
    _item_description.description
;              The e-mail address of the person specified in
               _software.contact_author.
;
    _item.name                  '_software.contact_author_email'
    _item.category_id             software
    _item.mandatory_code          no
    _item_type.code               line
    _item_examples.case          'bourne@sdsc.edu'
     save_

save__software.date
    _item_description.description
;              The date the software was released.
;
    _item.name                  '_software.date'
    _item.category_id             software
    _item.mandatory_code          no
    _item_type.code               line
    loop_
    _item_examples.case           1991-10-01
                                  1990-04-30
     save_

save__software.description
    _item_description.description
;              Description of the software.
;
    _item.name                  '_software.description'
    _item.category_id             software
    _item.mandatory_code          no
    _item_type.code               line
    _item_examples.case          'Uses method of restrained least squares'
     save_

save__software.dependencies
    _item_description.description
;              Any prerequisite software required to run _software.name.
;
    _item.name                  '_software.dependencies'
    _item.category_id             software
    _item.mandatory_code          no
    _item_type.code               line
    _item_examples.case          'PDBlib class library'
     save_

save__software.hardware
    _item_description.description
;              The hardware upon which the software was run.
;
    _item.name                  '_software.hardware'
    _item.category_id             software
    _item.mandatory_code          no
    _item_type.code               line
    loop_
    _item_examples.case          'Sun Sparc 10 model 41'
                                 'Dec Alpha 3000 model 500S'
                                 'Silicon Graphics Elan'
                                 'Compaq PC 486/66'
     save_

save__software.language
    _item_description.description
;              The major computing language in which the software is
               coded.
;
    _item.name                  '_software.language'
    _item.category_id             software
    _item.mandatory_code          no
    _item_type.code               uline
    loop_
    _item_enumeration.value       Ada
                                  assembler
                                  Awk
                                  Basic
                                 'C++'
                                 'C/C++'
                                  C
                                  csh
                                  Fortran
                                  Fortran_77
                                  'Fortran 77'
                                  'Fortran 90'
                                  Java
                                  ksh
                                  Pascal
                                  Perl
                                  Python
                                  sh
                                  Tcl
                                  Other
     save_

save__software.location
    _item_description.description
;              The URL for an Internet address at which
               details of the software can be found.
;
    _item.name                  '_software.location'
    _item.category_id             software
    _item.mandatory_code          no
    _item_type.code               line
    loop_
    _item_examples.case
                  'http://rosebud.sdsc.edu/projects/pb/IUCr/software.html'
                  'ftp://ftp.sdsc.edu/pub/sdsc/biology/'
     save_

save__software.mods
    _item_description.description
;              Any noteworthy modifications to the base software, if applicable.
;
    _item.name                  '_software.mods'
    _item.category_id             software
    _item.mandatory_code          no
    _item_type.code               line
    _item_examples.case          'Added support for space group F432'
     save_

save__software.name
    _item_description.description
;              The name of the software.
;
    _item.name                  '_software.name'
    _item.category_id             software
    _item.mandatory_code          yes
    _item_type.code               text
    loop_
    _item_examples.case          'Merlot'
                                 'O'
                                 'Xengen'
                                 'X-plor'
     save_

save__software.os
    _item_description.description
;              The name of the operating system under which the software
               runs.
;
    _item.name                  '_software.os'
    _item.category_id             software
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'Ultrix'
                                 'OpenVMS'
                                 'DOS'
                                 'Windows 95'
                                 'Windows NT'
                                 'Irix'
                                 'HPUX'
                                 'DEC Unix'
     save_

save__software.os_version
    _item_description.description
;              The version of the operating system under which the software
               runs.
;
    _item.name                  '_software.os_version'
    _item.category_id             software
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          '3.1'
                                 '4.2.1'
     save_

save__software.type
    _item_description.description
;              The classification of the software according to the most
               common types.
;
    _item.name                  '_software.type'
    _item.category_id             software
    _item.mandatory_code          no
    _item_type.code               uline
    loop_
    _item_enumeration.value
    _item_enumeration.detail      program
;                                 individual program with limited
                                  functionality
;
                                  library
;                                 used by a program at load time
;
                                  package
;                                 collections of programs with multiple
                                  functionality
;
                                  filter
;                                 filters input and output streams
;
                                  jiffy
;                                 short, simple program
;
                                  other
;                                 all other kinds of software
;
     save_

save__software.version
    _item_description.description
;              The version of the software.
;
    _item.name                  '_software.version'
    _item.category_id             software
    _item.mandatory_code          yes
    _item_type.code               line
    loop_
    _item_examples.case          'v1.0'
                                 'beta'
                                 '3.1-2'
                                 'unknown'
     save_

############
## STRUCT ##
############

save_struct
    _category.description
;              Data items in the STRUCT category record details about the
               description of the crystallographic structure.
;
    _category.id                  struct
    _category.mandatory_code      no
    _category_key.name          '_struct.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _struct.entry_id                       '5HVP'
    _struct.title
    ; HIV-1 protease complex with acetyl-pepstatin
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    save_

save__struct.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_struct.entry_id'
    _item.mandatory_code          yes
     save_

save__struct.title
    _item_description.description
;              A title for the data block. The author should attempt to convey
               the essence of the structure archived in the CIF in the title,
               and to distinguish this structural result from others.
;
    _item.name                  '_struct.title'
    _item.category_id             struct
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          '5'-D(*(I)CP*CP*GP*G)-3'
                                 'T4 lysozyme mutant - S32A'
                                 'hen egg white lysozyme at -30 degrees C'
                                 'quail egg white lysozyme at 2 atmospheres'
     save_

#################
## STRUCT_ASYM ##
#################

save_struct_asym
    _category.description
;              Data items in the STRUCT_ASYM category record details about the
               structural elements in the asymmetric unit.
;
    _category.id                  struct_asym
    _category.mandatory_code      no
    _category_key.name          '_struct_asym.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _struct_asym.id
    _struct_asym.entity_id
    _struct_asym.details
      A  1  'one monomer of the dimeric enzyme'
      B  1  'one monomer of the dimeric enzyme'
      C  2  'one partially occupied position for the inhibitor'
      D  2  'one partially occupied position for the inhibitor'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_asym.details
    _item_description.description
;              A description of special aspects of this portion of the contents
               of the asymmetric unit.
;
    _item.name                  '_struct_asym.details'
    _item.category_id             struct_asym
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 The drug binds to this enzyme in two roughly
                                  twofold symmetric modes. Hence this
                                  biological unit (3) is roughly twofold
                                  symmetric to biological unit (2). Disorder in
                                  the protein chain indicated with alternative
                                  ID 2 should be used with this biological unit.
;
     save_

save__struct_asym.entity_id
    _item_description.description
;              This data item is a pointer to _entity.id in the ENTITY category.
;
    _item.name                  '_struct_asym.entity_id'
    _item.mandatory_code          yes
     save_

save__struct_asym.id
    _item_description.description
;              The value of _struct_asym.id must uniquely identify a record in
               the STRUCT_ASYM list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_struct_asym.id'                         struct_asym         yes
               '_atom_site.label_asym_id'                atom_site           no
               '_geom_angle.atom_site_label_asym_id_1'   geom_angle          no
               '_geom_angle.atom_site_label_asym_id_2'   geom_angle          no
               '_geom_angle.atom_site_label_asym_id_3'   geom_angle          no
               '_geom_bond.atom_site_label_asym_id_1'    geom_bond           no
               '_geom_bond.atom_site_label_asym_id_2'    geom_bond           no
               '_geom_contact.atom_site_label_asym_id_1' geom_contact        no
               '_geom_contact.atom_site_label_asym_id_2' geom_contact        no
               '_geom_hbond.atom_site_label_asym_id_A'   geom_hbond          no
               '_geom_hbond.atom_site_label_asym_id_D'   geom_hbond          no
               '_geom_hbond.atom_site_label_asym_id_H'   geom_hbond          no
               '_geom_torsion.atom_site_label_asym_id_1' geom_torsion        no
               '_geom_torsion.atom_site_label_asym_id_2' geom_torsion        no
               '_geom_torsion.atom_site_label_asym_id_3' geom_torsion        no
               '_geom_torsion.atom_site_label_asym_id_4' geom_torsion        no
               '_struct_biol_gen.asym_id'                struct_biol_gen     yes
               '_struct_conf.beg_label_asym_id'          struct_conf         yes
               '_struct_conf.end_label_asym_id'          struct_conf         yes
               '_struct_conn.ptnr1_label_asym_id'        struct_conn         yes
               '_struct_conn.ptnr2_label_asym_id'        struct_conn         yes
               '_struct_mon_nucl.label_asym_id'          struct_mon_nucl     yes
               '_struct_mon_prot.label_asym_id'          struct_mon_prot     yes
               '_struct_mon_prot_cis.label_asym_id'      struct_mon_prot_cis yes
               '_struct_ncs_dom_lim.beg_label_asym_id'   struct_ncs_dom_lim  yes
               '_struct_ncs_dom_lim.end_label_asym_id'   struct_ncs_dom_lim  yes
               '_struct_sheet_range.beg_label_asym_id'   struct_sheet_range  yes
               '_struct_sheet_range.end_label_asym_id'   struct_sheet_range  yes
               '_struct_site_gen.label_asym_id'          struct_site_gen     yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
            '_atom_site.label_asym_id'                '_struct_asym.id'
            '_struct_biol_gen.asym_id'                '_struct_asym.id'
            '_geom_angle.atom_site_label_asym_id_1'   '_atom_site.label_asym_id'
            '_geom_angle.atom_site_label_asym_id_2'   '_atom_site.label_asym_id'
            '_geom_angle.atom_site_label_asym_id_3'   '_atom_site.label_asym_id'
            '_geom_bond.atom_site_label_asym_id_1'    '_atom_site.label_asym_id'
            '_geom_bond.atom_site_label_asym_id_2'    '_atom_site.label_asym_id'
            '_geom_contact.atom_site_label_asym_id_1' '_atom_site.label_asym_id'
            '_geom_contact.atom_site_label_asym_id_2' '_atom_site.label_asym_id'
            '_geom_hbond.atom_site_label_asym_id_A'   '_atom_site.label_asym_id'
            '_geom_hbond.atom_site_label_asym_id_D'   '_atom_site.label_asym_id'
            '_geom_hbond.atom_site_label_asym_id_H'   '_atom_site.label_asym_id'
            '_geom_torsion.atom_site_label_asym_id_1' '_atom_site.label_asym_id'
            '_geom_torsion.atom_site_label_asym_id_2' '_atom_site.label_asym_id'
            '_geom_torsion.atom_site_label_asym_id_3' '_atom_site.label_asym_id'
            '_geom_torsion.atom_site_label_asym_id_4' '_atom_site.label_asym_id'
            '_struct_conf.beg_label_asym_id'          '_atom_site.label_asym_id'
            '_struct_conf.end_label_asym_id'          '_atom_site.label_asym_id'
            '_struct_conn.ptnr1_label_asym_id'        '_atom_site.label_asym_id'
            '_struct_conn.ptnr2_label_asym_id'        '_atom_site.label_asym_id'
            '_struct_mon_nucl.label_asym_id'          '_atom_site.label_asym_id'
            '_struct_mon_prot.label_asym_id'          '_atom_site.label_asym_id'
            '_struct_mon_prot_cis.label_asym_id'      '_atom_site.label_asym_id'
            '_struct_ncs_dom_lim.beg_label_asym_id'   '_atom_site.label_asym_id'
            '_struct_ncs_dom_lim.end_label_asym_id'   '_atom_site.label_asym_id'
            '_struct_sheet_range.beg_label_asym_id'   '_atom_site.label_asym_id'
            '_struct_sheet_range.end_label_asym_id'   '_atom_site.label_asym_id'
            '_struct_site_gen.label_asym_id'          '_atom_site.label_asym_id'
    _item_type.code               code
    loop_
    _item_examples.case          '1'
                                 'A'
                                 '2B3'
     save_

#################
## STRUCT_BIOL ##
#################

save_struct_biol
    _category.description
;              Data items in the STRUCT_BIOL category record details about
               the structural elements that form each structure of biological
               significance.

               A given crystal structure may contain many different biological
               structures. A given structural component in the asymmetric
               unit may be part of more than one biological unit. A given
               biological structure may involve crystallographic symmetry.

               For instance, in a structure of a lysozyme-FAB structure, the
               light- and heavy-chain components of the FAB could be one
               biological unit, while the two chains of the FAB and the lysozyme
               could constitute a second biological unit.
;
    _category.id                  struct_biol
    _category.mandatory_code      no
    _category_key.name          '_struct_biol.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _struct_biol.id
    _struct_biol.details
      1
    ; significant deviations from twofold symmetry exist in this
      dimeric enzyme
    ;
      2
    ; The drug binds to this enzyme in two roughly twofold
      symmetric modes. Hence this biological unit (2) is roughly
      twofold symmetric to biological unit (3). Disorder in the
      protein chain indicated with alternative ID 1 should be
      used with this biological unit.
    ;
      3
    ; The drug binds to this enzyme in two roughly twofold
      symmetric modes. Hence this biological unit (3) is roughly
      twofold symmetric to biological unit (2). Disorder in the
      protein chain indicated with alternative ID 2 should be
      used with this biological unit.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_biol.details
    _item_description.description
;              A description of special aspects of the biological unit.
;
    _item.name                  '_struct_biol.details'
    _item.category_id             struct_biol
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 The drug binds to this enzyme in two roughly
                                  twofold symmetric modes. Hence this
                                  biological unit (3) is roughly twofold
                                  symmetric to biological unit (2). Disorder in
                                  the protein chain indicated with alternative
                                  ID 2 should be used with this biological unit.
;
     save_

save__struct_biol.id
    _item_description.description
;              The value of _struct_biol.id must uniquely identify a record in
               the STRUCT_BIOL list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_struct_biol.id'                struct_biol           yes
               '_struct_biol_gen.biol_id'       struct_biol_gen       yes
               '_struct_biol_keywords.biol_id'  struct_biol_keywords  yes
               '_struct_biol_view.biol_id'      struct_biol_view      yes
               '_struct_ref.biol_id'            struct_ref            no
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_struct_biol_gen.biol_id'       '_struct_biol.id'
               '_struct_biol_keywords.biol_id'  '_struct_biol.id'
               '_struct_biol_view.biol_id'      '_struct_biol.id'
               '_struct_ref.biol_id'            '_struct_biol.id'
    _item_type.code               line
     save_

#####################
## STRUCT_BIOL_GEN ##
#####################

save_struct_biol_gen
    _category.description
;              Data items in the STRUCT_BIOL_GEN category record details about
               the generation of each biological unit. The STRUCT_BIOL_GEN
               data items provide the specifications of the components that
               constitute that biological unit, which may include symmetry
               elements.
;
    _category.id                  struct_biol_gen
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_biol_gen.biol_id'
                                '_struct_biol_gen.asym_id'
                                '_struct_biol_gen.symmetry'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _struct_biol_gen.biol_id
    _struct_biol_gen.asym_id
    _struct_biol_gen.symmetry
      1  A  1_555
      1  B  1_555
      2  A  1_555
      2  B  1_555
      2  C  1_555
      3  A  1_555
      3  B  1_555
      3  D  1_555
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_biol_gen.asym_id
    _item_description.description
;              This data item is a pointer to _struct_asym.id in the STRUCT_ASYM
               category.
;
    _item.name                  '_struct_biol_gen.asym_id'
    _item.mandatory_code          yes
     save_

save__struct_biol_gen.biol_id
    _item_description.description
;              This data item is a pointer to _struct_biol.id in the STRUCT_BIOL
               category.
;
    _item.name                  '_struct_biol_gen.biol_id'
    _item.mandatory_code          yes
     save_

save__struct_biol_gen.details
    _item_description.description
;              A description of special aspects of the symmetry generation of
               this portion of the biological structure.
;
    _item.name                  '_struct_biol_gen.details'
    _item.category_id             struct_biol_gen
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 The zinc atom lies on a special position;
                                  application of symmetry elements to generate
                                  the insulin hexamer will generate excess zinc
                                  atoms, which must be removed by hand.
;
     save_

save__struct_biol_gen.symmetry
    _item_description.description
;              Describes the symmetry operation that should be applied to the
               atom set specified by _struct_biol_gen.asym_id to generate a
               portion of the biological structure.
;
    _item.name                  '_struct_biol_gen.symmetry'
    _item.category_id             struct_biol_gen
    _item.mandatory_code          yes
#    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

##########################
## STRUCT_BIOL_KEYWORDS ##
##########################

save_struct_biol_keywords
    _category.description
;              Data items in the STRUCT_BIOL_KEYWORDS category record
               keywords that describe each biological unit.
;
    _category.id                  struct_biol_keywords
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_biol_keywords.biol_id'
                                '_struct_biol_keywords.text'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _struct_biol_keywords.biol_id
    _struct_biol_keywords.text
      1  'aspartyl-protease'
      1  'aspartic-protease'
      1  'acid-protease'
      1  'aspartyl-proteinase'
      1  'aspartic-proteinase'
      1  'acid-proteinase'
      1  'enzyme'
      1  'protease'
      1  'proteinase'
      1  'dimer'
      2  'drug-enzyme complex'
      2  'inhibitor-enzyme complex'
      2  'drug-protease complex'
      2  'inhibitor-protease complex'
      3  'drug-enzyme complex'
      3  'inhibitor-enzyme complex'
      3  'drug-protease complex'
      3  'inhibitor-protease complex'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_biol_keywords.biol_id
    _item_description.description
;              This data item is a pointer to _struct_biol.id in the STRUCT_BIOL
               category.
;
    _item.name                  '_struct_biol_keywords.biol_id'
    _item.mandatory_code          yes
     save_

save__struct_biol_keywords.text
    _item_description.description
;              Keywords describing this biological entity.
;
    _item.name                  '_struct_biol_keywords.text'
    _item.category_id             struct_biol_keywords
    _item.mandatory_code          yes
    _item_type.code               text
    loop_
    _item_examples.case          'antibody'
                                 'antigen'
                                 'enzyme'
                                 'cytokine'
                                 'tRNA'
     save_

######################
## STRUCT_BIOL_VIEW ##
######################

save_struct_biol_view
    _category.description
;              Data items in the STRUCT_BIOL_VIEW category record details
               about how to draw and annotate an informative view of the
               biological structure.
;
    _category.id                  struct_biol_view
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_biol_view.biol_id'
                                '_struct_biol_view.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on NDB structure GDL001 by Coll, Aymami,
                Van Der Marel, Van Boom, Rich & Wang
                [Biochemistry, (1989), 28, 310-320].
;
;
    _struct_biol_view.biol_id               c1
    _struct_biol_view.id                    1
    _struct_biol_view.rot_matrix[1][1]      0.132
    _struct_biol_view.rot_matrix[1][2]      0.922
    _struct_biol_view.rot_matrix[1][3]     -0.363
    _struct_biol_view.rot_matrix[2][1]      0.131
    _struct_biol_view.rot_matrix[2][2]     -0.380
    _struct_biol_view.rot_matrix[2][3]     -0.916
    _struct_biol_view.rot_matrix[3][1]     -0.982
    _struct_biol_view.rot_matrix[3][2]      0.073
    _struct_biol_view.rot_matrix[3][3]     -0.172
    _struct_biol_view.details
    ; This view highlights the ATAT-Netropsin interaction in the
      DNA-drug complex.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_biol_view.biol_id
    _item_description.description
;              This data item is a pointer to _struct_biol.id in the STRUCT_BIOL
               category.
;
    _item.name                  '_struct_biol_view.biol_id'
    _item.mandatory_code          yes
     save_

save__struct_biol_view.details
    _item_description.description
;              A description of special aspects of this view of the biological
               structure.

               This data item can be used as a figure legend.
;
    _item.name                  '_struct_biol_view.details'
    _item.category_id             struct_biol_view
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 The enzyme has been oriented with the
                                  molecular twofold axis aligned with the
                                  horizontal axis of the figure.
;
     save_

save__struct_biol_view.id
    _item_description.description
;              The value of _struct_biol_view.id must uniquely identify a
               record in the STRUCT_BIOL_VIEW list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    _item.name                  '_struct_biol_view.id'
    _item.category_id             struct_biol_view
    _item.mandatory_code          yes
    _item_type.code               line
    loop_
    _item_examples.case          'Figure 1'
                                 'unliganded enzyme'
                                 'view down enzyme active site'
     save_

save__struct_biol_view.rot_matrix[1][1]
    _item_description.description
;              The [1][1] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_BIOL_GEN category to give a view useful for describing the
               structure. The conventions used in the rotation are described in
               _struct_biol_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_biol_view.rot_matrix[1][1]'
    _item.category_id             struct_biol_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_biol_view.rot_matrix[1][2]
    _item_description.description
;              The [1][2] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_BIOL_GEN category to give a view useful for describing the
               structure. The conventions used in the rotation are described in
               _struct_biol_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_biol_view.rot_matrix[1][2]'
    _item.category_id             struct_biol_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_biol_view.rot_matrix[1][3]
    _item_description.description
;              The [1][3] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_BIOL_GEN category to give a view useful for describing the
               structure. The conventions used in the rotation are described in
               _struct_biol_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_biol_view.rot_matrix[1][3]'
    _item.category_id             struct_biol_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_biol_view.rot_matrix[2][1]
    _item_description.description
;              The [2][1] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_BIOL_GEN category to give a view useful for describing the
               structure. The conventions used in the rotation are described in
               _struct_biol_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_biol_view.rot_matrix[2][1]'
    _item.category_id             struct_biol_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_biol_view.rot_matrix[2][2]
    _item_description.description
;              The [2][2] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_BIOL_GEN category to give a view useful for describing the
               structure. The conventions used in the rotation are described in
               _struct_biol_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_biol_view.rot_matrix[2][2]'
    _item.category_id             struct_biol_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_biol_view.rot_matrix[2][3]
    _item_description.description
;              The [2][3] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_BIOL_GEN category to give a view useful for describing the
               structure. The conventions used in the rotation are described in
               _struct_biol_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_biol_view.rot_matrix[2][3]'
    _item.category_id             struct_biol_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_biol_view.rot_matrix[3][1]
    _item_description.description
;              The [3][1] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_BIOL_GEN category to give a view useful for describing the
               structure. The conventions used in the rotation are described in
               _struct_biol_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_biol_view.rot_matrix[3][1]'
    _item.category_id             struct_biol_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_biol_view.rot_matrix[3][2]
    _item_description.description
;              The [3][2] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_BIOL_GEN category to give a view useful for describing the
               structure. The conventions used in the rotation are described in
               _struct_biol_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_biol_view.rot_matrix[3][2]'
    _item.category_id             struct_biol_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_biol_view.rot_matrix[3][3]
    _item_description.description
;              The [3][3] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_BIOL_GEN category to give a view useful for describing the
               structure. The conventions used in the rotation are described in
               _struct_biol_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_biol_view.rot_matrix[3][3]'
    _item.category_id             struct_biol_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

#################
## STRUCT_CONF ##
#################

save_struct_conf
    _category.description
;              Data items in the STRUCT_CONF category record details about
               the backbone conformation of a segment of polymer.

               Data items in the STRUCT_CONF_TYPE category define the
               criteria used to identify the backbone conformations.
;
    _category.id                  struct_conf
    _category.mandatory_code      no
    _category_key.name          '_struct_conf.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _struct_conf.id
    _struct_conf.conf_type_id
    _struct_conf.beg_label_comp_id
    _struct_conf.beg_label_asym_id
    _struct_conf.beg_label_seq_id
    _struct_conf.end_label_comp_id
    _struct_conf.end_label_asym_id
    _struct_conf.end_label_seq_id
    _struct_conf.details
      HELX1  HELX_RH_AL_P  ARG  A   87  GLN  A   92  .
      HELX2  HELX_RH_AL_P  ARG  B  287  GLN  B  292  .
      STRN1  STRN_P        PRO  A    1  LEU  A    5  .
      STRN2  STRN_P        CYS  B  295  PHE  B  299  .
      STRN3  STRN_P        CYS  A   95  PHE  A  299  .
      STRN4  STRN_P        PRO  B  201  LEU  B  205  .
    # - - - - data truncated for brevity - - - -
      TURN1  TURN_TY1P_P   ILE  A   15  GLN  A   18  .
      TURN2  TURN_TY2_P    GLY  A   49  GLY  A   52  .
      TURN3  TURN_TY1P_P   ILE  A   55  HIS  A   69  .
      TURN4  TURN_TY1_P    THR  A   91  GLY  A   94  .
    # - - - - data truncated for brevity - - - -
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_conf.beg_label_asym_id
    _item_description.description
;              A component of the identifier for the residue at which the
               conformation segment begins.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conf.beg_label_asym_id'
    _item.mandatory_code          yes
     save_

save__struct_conf.beg_label_comp_id
    _item_description.description
;              A component of the identifier for the residue at which the
               conformation segment begins.

               This data item is a pointer to _atom_site.label_comp_id in
               the ATOM_SITE category.
;
    _item.name                  '_struct_conf.beg_label_comp_id'
    _item.mandatory_code          yes
     save_

save__struct_conf.beg_label_seq_id
    _item_description.description
;              A component of the identifier for the residue at which the
               conformation segment begins.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conf.beg_label_seq_id'
    _item.mandatory_code          yes
     save_

save__struct_conf.beg_auth_asym_id
    _item_description.description
;              A component of the identifier for the residue at which the
               conformation segment begins.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conf.beg_auth_asym_id'
    _item.mandatory_code          no
     save_

save__struct_conf.beg_auth_comp_id
    _item_description.description
;              A component of the identifier for the residue at which the
               conformation segment begins.

               This data item is a pointer to _atom_site.auth_comp_id in
               the ATOM_SITE category.
;
    _item.name                  '_struct_conf.beg_auth_comp_id'
    _item.mandatory_code          no
     save_

save__struct_conf.beg_auth_seq_id
    _item_description.description
;              A component of the identifier for the residue at which the
               conformation segment begins.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conf.beg_auth_seq_id'
    _item.mandatory_code          no
     save_

save__struct_conf.conf_type_id
    _item_description.description
;              This data item is a pointer to _struct_conf_type.id in the
               STRUCT_CONF_TYPE category.
;
    _item.name                  '_struct_conf.conf_type_id'
    _item.mandatory_code          yes
     save_

save__struct_conf.details
    _item_description.description
;              A description of special aspects of the conformation assignment.
;
    _item.name                  '_struct_conf.details'
    _item.category_id             struct_conf
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__struct_conf.end_label_asym_id
    _item_description.description
;              A component of the identifier for the residue at which the
               conformation segment ends.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conf.end_label_asym_id'
    _item.mandatory_code          yes
     save_

save__struct_conf.end_label_comp_id
    _item_description.description
;              A component of the identifier for the residue at which the
               conformation segment ends.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conf.end_label_comp_id'
    _item.mandatory_code          yes
     save_

save__struct_conf.end_label_seq_id
    _item_description.description
;              A component of the identifier for the residue at which the
               conformation segment ends.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conf.end_label_seq_id'
    _item.mandatory_code          yes
     save_

save__struct_conf.end_auth_asym_id
    _item_description.description
;              A component of the identifier for the residue at which the
               conformation segment ends.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conf.end_auth_asym_id'
    _item.mandatory_code          no
     save_

save__struct_conf.end_auth_comp_id
    _item_description.description
;              A component of the identifier for the residue at which the
               conformation segment ends.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conf.end_auth_comp_id'
    _item.mandatory_code          no
     save_

save__struct_conf.end_auth_seq_id
    _item_description.description
;              A component of the identifier for the residue at which the
               conformation segment ends.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conf.end_auth_seq_id'
    _item.mandatory_code          no
     save_

save__struct_conf.id
    _item_description.description
;              The value of _struct_conf.id must uniquely identify a record in
               the STRUCT_CONF list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    _item.name                  '_struct_conf.id'
    _item.category_id             struct_conf
    _item.mandatory_code          yes
    _item_type.code               code
     save_

######################
## STRUCT_CONF_TYPE ##
######################

save_struct_conf_type
    _category.description
;              Data items in the STRUCT_CONF_TYPE category record details
               about the criteria used to identify backbone conformations of a
               segment of polymer.
;
    _category.id                  struct_conf_type
    _category.mandatory_code      no
    _category_key.name          '_struct_conf_type.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _struct_conf_type.id
    _struct_conf_type.criteria
    _struct_conf_type.reference
      HELX_RH_AL_P  'author judgement'  .
      STRN_P        'author judgement'  .
      TURN_TY1_P    'author judgement'  .
      TURN_TY1P_P   'author judgement'  .
      TURN_TY2_P    'author judgement'  .
      TURN_TY2P_P   'author judgement'  .
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_conf_type.criteria
    _item_description.description
;              The criteria used to assign this conformation type.
;
    _item.name                  '_struct_conf_type.criteria'
    _item.category_id             struct_conf_type
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'author judgement'
                                 'phi=54-74, psi=30-50'
     save_

save__struct_conf_type.id
     _item_description.description
;              The descriptor that categorizes the type of the conformation
               of the backbone of the polymer (whether protein or nucleic acid).
               Explicit values for the torsion angles that define each
               conformation are not given here, but it is expected that the
               author would provide such information in either the
               _struct_conf_type.criteria or _struct_conf_type.reference data
               items, or both.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_struct_conf_type.id'       struct_conf_type  yes
               '_struct_conf.conf_type_id'  struct_conf       yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_struct_conf.conf_type_id'  '_struct_conf_type.id'
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      HELX_P
;                                 helix with handedness and type not specified
                                  (protein)
;
                                  HELX_OT_P
;                                 helix with handedness and type that do not
                                  conform to an accepted category (protein)
;
#
                                  HELX_RH_P
;                                 right-handed helix with type not specified
                                  (protein)
;
                                  HELX_RH_OT_P
;                                 right-handed helix with type that does not
                                  conform to an accepted category (protein)
;
                                  HELX_RH_AL_P
                                 'right-handed alpha helix (protein)'
                                  HELX_RH_GA_P
                                 'right-handed gamma helix (protein)'
                                  HELX_RH_OM_P
                                 'right-handed omega helix (protein)'
                                  HELX_RH_PI_P
                                 'right-handed pi helix (protein)'
                                  HELX_RH_27_P
                                 'right-handed 2-7 helix (protein)'
                                  HELX_RH_3T_P
                                 'right-handed 3-10 helix (protein)'
                                  HELX_RH_PP_P
                                 'right-handed polyproline helix (protein)'
#
                                  HELX_LH_P
;                                 left-handed helix with type not specified
                                  (protein)
;
                                  HELX_LH_OT_P
;                                 left-handed helix with type that does not
                                  conform to an accepted category (protein)
;
                                  HELX_LH_AL_P
                                 'left-handed alpha helix (protein)'
                                  HELX_LH_GA_P
                                 'left-handed gamma helix (protein)'
                                  HELX_LH_OM_P
                                 'left-handed omega helix (protein)'
                                  HELX_LH_PI_P
                                 'left-handed pi helix (protein)'
                                  HELX_LH_27_P
                                 'left-handed 2-7 helix (protein)'
                                  HELX_LH_3T_P
                                 'left-handed 3-10 helix (protein)'
                                  HELX_LH_PP_P
                                 'left-handed polyproline helix (protein)'
#
                                  HELX_N
;                                 helix with handedness and type not specified
                                  (nucleic acid)
;
                                  HELX_OT_N
;                                 helix with handedness and type that do not
                                  conform to an accepted category (nucleic
                                  acid)
;
#
                                  HELX_RH_N
;                                 right-handed helix with type not specified
                                  (nucleic acid)
;
                                  HELX_RH_OT_N
;                                 right-handed helix with type that does not
                                  conform to an accepted category (nucleic
                                  acid)
;
                                  HELX_RH_A_N
                                 'right-handed A helix (nucleic acid)'
                                  HELX_RH_B_N
                                 'right-handed B helix (nucleic acid)'
                                  HELX_RH_Z_N
                                 'right-handed Z helix (nucleic acid)'
#
                                  HELX_LH_N
;                                 left-handed helix with type not specified
                                  (nucleic acid)
;
                                  HELX_LH_OT_N
;                                 left-handed helix with type that does not
                                  conform to an accepted category (nucleic
                                  acid)
;
                                  HELX_LH_A_N
                                 'left-handed A helix (nucleic acid)'
                                  HELX_LH_B_N
                                 'left-handed B helix (nucleic acid)'
                                  HELX_LH_Z_N
                                 'left-handed Z helix (nucleic acid)'
#
                                  TURN_P
                                 'turn with type not specified (protein)'
                                  TURN_OT_P
;                                 turn with type that does not conform to an
                                  accepted category (protein)
;
                                  TURN_TY1_P
                                 'type I turn (protein)'
                                  TURN_TY1P_P
                                 'type I prime turn (protein)'
                                  TURN_TY2_P
                                 'type II turn (protein)'
                                  TURN_TY2P_P
                                 'type II prime turn (protein)'
                                  TURN_TY3_P
                                 'type III turn (protein)'
                                  TURN_TY3P_P
                                 'type III prime turn (protein)'
#
                                  STRN
                                 'beta strand (protein)'
     save_

save__struct_conf_type.reference
    _item_description.description
;              A literature reference that defines the criteria used to assign
               this conformation type and subtype.
;
    _item.name                  '_struct_conf_type.reference'
    _item.category_id             struct_conf_type
    _item.mandatory_code          no
    _item_type.code               text
     save_

#################
## STRUCT_CONN ##
#################

save_struct_conn
    _category.description
;              Data items in the STRUCT_CONN category record details about
               the connections between portions of the structure. These can be
               hydrogen bonds, salt bridges, disulfide bridges and so on.

               The STRUCT_CONN_TYPE records define the criteria used to
               identify these connections.
;
    _category.id                  struct_conn
    _category.mandatory_code      no
    _category_key.name          '_struct_conn.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _struct_conn.id
    _struct_conn.conn_type_id
    _struct_conn.ptnr1_label_comp_id
    _struct_conn.ptnr1_label_asym_id
    _struct_conn.ptnr1_label_seq_id
    _struct_conn.ptnr1_label_atom_id
    _struct_conn.ptnr1_role
    _struct_conn.ptnr1_symmetry
    _struct_conn.ptnr2_label_comp_id
    _struct_conn.ptnr2_label_asym_id
    _struct_conn.ptnr2_label_seq_id
    _struct_conn.ptnr2_label_atom_id
    _struct_conn.ptnr2_role
    _struct_conn.ptnr2_symmetry
    _struct_conn.details
      C1  saltbr  ARG  A  87 NZ1 positive 1_555 GLU  A  92  OE1
          negative 1_555  .
      C2  hydrog  ARG  B 287 N   donor    1_555 GLY  B 292  O
          acceptor 1_555  .
    # - - - - data truncated for brevity - - - -
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_conn.conn_type_id
    _item_description.description
;              This data item is a pointer to _struct_conn_type.id in the
               STRUCT_CONN_TYPE category.
;
    _item.name                  '_struct_conn.conn_type_id'
    _item.mandatory_code          yes
     save_

save__struct_conn.details
    _item_description.description
;              A description of special aspects of the connection.
;
    _item.name                  '_struct_conn.details'
    _item.category_id             struct_conn
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case          'disulfide bridge C-S-S-C is highly distorted'
     save_

save__struct_conn.id
    _item_description.description
;              The value of _struct_conn.id must uniquely identify a record in
               the STRUCT_CONN list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    _item.name                  '_struct_conn.id'
    _item.category_id             struct_conn
    _item.mandatory_code          yes
    _item_type.code               code
     save_

save__struct_conn.ptnr1_label_alt_id
    _item_description.description
;              A component of the identifier for partner 1 of the structure
               connection.

               This data item is a pointer to _atom_sites_alt.id in the
               ATOM_SITES_ALT category.
;
    _item.name                  '_struct_conn.ptnr1_label_alt_id'
    _item.mandatory_code          no
     save_

save__struct_conn.ptnr1_label_asym_id
    _item_description.description
;              A component of the identifier for partner 1 of the structure
               connection.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conn.ptnr1_label_asym_id'
    _item.mandatory_code          yes
     save_

save__struct_conn.ptnr1_label_atom_id
    _item_description.description
;              A component of the identifier for partner 1 of the structure
               connection.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_struct_conn.ptnr1_label_atom_id'
    _item.mandatory_code          yes
     save_

save__struct_conn.ptnr1_label_comp_id
    _item_description.description
;              A component of the identifier for partner 1 of the structure
               connection.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conn.ptnr1_label_comp_id'
    _item.mandatory_code          yes
     save_

save__struct_conn.ptnr1_label_seq_id
    _item_description.description
;              A component of the identifier for partner 1 of the structure
               connection.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conn.ptnr1_label_seq_id'
    _item.mandatory_code          yes
     save_

save__struct_conn.ptnr1_auth_asym_id
    _item_description.description
;              A component of the identifier for partner 1 of the structure
               connection.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conn.ptnr1_auth_asym_id'
    _item.mandatory_code          no
     save_

save__struct_conn.ptnr1_auth_atom_id
    _item_description.description
;              A component of the identifier for partner 1 of the structure
               connection.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conn.ptnr1_auth_atom_id'
    _item.mandatory_code          no
     save_

save__struct_conn.ptnr1_auth_comp_id
    _item_description.description
;              A component of the identifier for partner 1 of the structure
               connection.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conn.ptnr1_auth_comp_id'
    _item.mandatory_code          no
     save_

save__struct_conn.ptnr1_auth_seq_id
    _item_description.description
;              A component of the identifier for partner 1 of the structure
               connection.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conn.ptnr1_auth_seq_id'
    _item.mandatory_code          no
     save_

save__struct_conn.ptnr1_role
    _item_description.description
;              The chemical or structural role of the first partner in
               the structure connection.
;
    _item.name                  '_struct_conn.ptnr1_role'
    _item.category_id             struct_conn
    _item.mandatory_code          no
    _item_type.code               uline
    loop_
    _item_examples.case          'donor'
                                 'acceptor'
                                 'negative'
                                 'positive'
                                 'metal'
                                 'metal coordination'
     save_

save__struct_conn.ptnr1_symmetry
    _item_description.description
;              Describes the symmetry operation that should be applied to the
               atom set specified by _struct_conn.ptnr1_label* to generate the
               first partner in the structure connection.
;
    _item.name                  '_struct_conn.ptnr1_symmetry'
    _item.category_id             struct_conn
    _item.mandatory_code          no
#    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

save__struct_conn.ptnr2_label_alt_id
    _item_description.description
;              A component of the identifier for partner 2 of the structure
               connection.

               This data item is a pointer to _atom_sites_alt.id in the
               ATOM_SITES_ALT category.
;
    _item.name                  '_struct_conn.ptnr2_label_alt_id'
    _item.mandatory_code          no
     save_

save__struct_conn.ptnr2_label_asym_id
    _item_description.description
;              A component of the identifier for partner 2 of the structure
               connection.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conn.ptnr2_label_asym_id'
    _item.mandatory_code          yes
     save_

save__struct_conn.ptnr2_label_atom_id
    _item_description.description
;              A component of the identifier for partner 2 of the structure
               connection.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_struct_conn.ptnr2_label_atom_id'
    _item.mandatory_code          yes
     save_

save__struct_conn.ptnr2_label_comp_id
    _item_description.description
;              A component of the identifier for partner 2 of the structure
               connection.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conn.ptnr2_label_comp_id'
    _item.mandatory_code          yes
     save_

save__struct_conn.ptnr2_label_seq_id
    _item_description.description
;              A component of the identifier for partner 2 of the structure
               connection.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conn.ptnr2_label_seq_id'
    _item.mandatory_code          yes
     save_

save__struct_conn.ptnr2_auth_asym_id
    _item_description.description
;              A component of the identifier for partner 2 of the structure
               connection.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conn.ptnr2_auth_asym_id'
    _item.mandatory_code          no
     save_

save__struct_conn.ptnr2_auth_atom_id
    _item_description.description
;              A component of the identifier for partner 2 of the structure
               connection.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conn.ptnr2_auth_atom_id'
    _item.mandatory_code          no
     save_

save__struct_conn.ptnr2_auth_comp_id
    _item_description.description
;              A component of the identifier for partner 2 of the structure
               connection.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conn.ptnr2_auth_comp_id'
    _item.mandatory_code          no
     save_

save__struct_conn.ptnr2_auth_seq_id
    _item_description.description
;              A component of the identifier for partner 2 of the structure
               connection.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_conn.ptnr2_auth_seq_id'
    _item.mandatory_code          no
     save_

save__struct_conn.ptnr2_role
    _item_description.description
;              The chemical or structural role of the second partner in
               the structure connection.
;
    _item.name                  '_struct_conn.ptnr2_role'
    _item.category_id             struct_conn
    _item.mandatory_code          no
    _item_type.code               uline
    loop_
    _item_examples.case          'donor'
                                 'acceptor'
                                 'negative'
                                 'positive'
                                 'metal'
                                 'metal coordination'
     save_

save__struct_conn.ptnr2_symmetry
    _item_description.description
;              Describes the symmetry operation that should be applied to the
               atom set specified by _struct_conn.ptnr2_label* to generate the
               second partner in the structure connection.
;
    _item.name                  '_struct_conn.ptnr2_symmetry'
    _item.category_id             struct_conn
    _item.mandatory_code          no
#    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

######################
## STRUCT_CONN_TYPE ##
######################

save_struct_conn_type
    _category.description
;              Data items in the STRUCT_CONN_TYPE category record details
               about the criteria used to identify interactions between
               portions of the structure.
;
    _category.id                  struct_conn_type
    _category.mandatory_code      no
    _category_key.name          '_struct_conn_type.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _struct_conn_type.id
    _struct_conn_type.criteria
    _struct_conn_type.reference
      saltbr
     'negative to positive distance > 2.5 \%A, < 3.2 \%A'      .
      hydrog
     'NO distance > 2.5\%A, < 3.5\%A, NOC angle < 120 degrees' .
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_conn_type.criteria
    _item_description.description
;              The criteria used to define the interaction.
;
    _item.name                  '_struct_conn_type.criteria'
    _item.category_id             struct_conn_type
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'O to N distance > 2.5 \%A, < 3.2 \%A'
                                 'authors judgement'
     save_

save__struct_conn_type.id
    _item_description.description
;              The chemical or structural type of the interaction.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_struct_conn_type.id'       struct_conn_type  yes
               '_struct_conn.conn_type_id'  struct_conn       yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_struct_conn.conn_type_id'  '_struct_conn_type.id'
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      covale  'covalent bond'
                                  disulf  'disulfide bridge'
                                  hydrog  'hydrogen bond'
                                  metalc  'metal coordination'
                                  mismat  'mismatched base pairs'
                                  saltbr  'ionic interaction'
                                  modres   'covalent residue modification'
                covale_base   'covalent modification of a nucleotide base'
               covale_sugar   'covalent modification of a nucleotide sugar'
           covale_phosphate   'covalent modification of a nucleotide phosphate'
     save_

save__struct_conn_type.reference
    _item_description.description
;              A reference that specifies the criteria used to define the
               interaction.
;
    _item.name                  '_struct_conn_type.reference'
    _item.category_id             struct_conn_type
    _item.mandatory_code          no
    _item_type.code               text
     save_

#####################
## STRUCT_KEYWORDS ##
#####################

save_struct_keywords
    _category.description
;              Data items in the STRUCT_KEYWORDS category specify keywords
               that describe the chemical structure in this entry.
;
    _category.id                  struct_keywords
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_keywords.entry_id'
#                               '_struct_keywords.text'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _struct_keywords.entry_id
    _struct_keywords.text
     '5HVP' 'enzyme-inhibitor complex'
     '5HVP' 'aspartyl protease'
     '5HVP' 'structure-based drug design'
     '5HVP' 'static disorder'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_keywords.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_struct_keywords.entry_id'
    _item.mandatory_code          yes
     save_

save__struct_keywords.text
    _item_description.description
;              Keywords describing this structure.
;
    _item.name                  '_struct_keywords.text'
    _item.category_id             struct_keywords
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'serine protease'
                                 'inhibited complex'
                                 'high-resolution refinement'
     save_

########################
## STRUCT_MON_DETAILS ##
########################

save_struct_mon_details
    _category.description
;              Data items in the STRUCT_MON_DETAILS category record details
               about specifics of calculations summarized in data items in the
               STRUCT_MON_PROT and STRUCT_MON_NUCL categories. These can
               include the coefficients used in map calculations,
               the radii used for including points in a calculation and so on.
;
    _category.id                  struct_mon_details
    _category.mandatory_code      no
    _category_key.name          '_struct_mon_details.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
     save_

save__struct_mon_details.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_struct_mon_details.entry_id'
    _item.mandatory_code          yes
     save_

save__struct_mon_details.prot_cis
    _item_description.description
;              An ideal cis peptide bond would have an omega torsion angle of
               zero. This data item gives the value in degrees by which the
               observed torsion angle can differ from 0.0 and still be
               considered cis.
;
    _item.name                  '_struct_mon_details.prot_cis'
    _item.category_id             struct_mon_details
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
    _item_examples.case           30.0
     save_

save__struct_mon_details.RSCC
    _item_description.description
;              This data item describes the specifics of the calculations that
               generated the values given in _struct_mon_prot.RSCC_all,
               _struct_mon_prot.RSCC_main and _struct_mon_prot.RSCC_side. The
               coefficients used to calculate the p(o) and p(c) maps should be
               given as well as the criterion for the inclusion of map grid
               points in the calculation.
;
    _item.name                  '_struct_mon_details.RSCC'
    _item.category_id             struct_mon_details
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case
;                                 The map p(o) was calculated with coefficients
                                  2F(o) - F(c) and with phase alpha(c). F(o)
                                  are the observed structure-factor amplitudes,
                                  F(c) are the amplitudes calculated from the
                                  current model and alpha(c) are the phases
                                  calculated from the current model.
                                  The map p(c) was calculated in program O using
                                  a Gaussian distribution function around the
                                  atoms in the current model.
                                  Map grid points within 1.5 A of the
                                  designated atoms were included in the
                                  calculation.
;
;                                 The map p(o) was calculated with coefficients
                                  F(o) and with phase alpha(c). F(o) are the
                                  observed structure-factor amplitudes, and
                                  alpha(c) are the phases calculated from the
                                  current model.
                                  The map p(c) was calculated with coefficients
                                  F(c) and with phases alpha(c). F(c) and
                                  alpha(c) are the structure-factor amplitudes
                                  and phases, respectively, calculated from the
                                  current model.
                                  Map grid points within a van der Waals radius
                                  of the designated atoms were included in the
                                  calculation.
;
     save_

save__struct_mon_details.RSR
    _item_description.description
;              This data item describes the specifics of the calculations that
               generated the values given in _struct_mon_prot.RSR_all,
               _struct_mon_prot.RSR_main and _struct_mon_prot.RSR_side. The
               coefficients used to calculate the p(o) and p(c) maps should be
               given as well as the criterion for the inclusion of map grid
               points in the calculation.
;
    _item.name                  '_struct_mon_details.RSR'
    _item.category_id             struct_mon_details
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case
;                                 The map p(o) was calculated with coefficients
                                  2F(o) - F(c) and with phase alpha(c). F(o)
                                  are the observed structure-factor amplitudes,
                                  F(c) are the amplitudes calculated from the
                                  current model and alpha(c) are the phases
                                  calculated from the current model.
                                  The map p(c) was calculated in program O using
                                  a Gaussian distribution function around the
                                  atoms in the current model.
                                  Map grid points within 1.5 A of the
                                  designated atoms were included in the
                                  calculation.
;
;                                 The map p(o) was calculated with coefficients
                                  F(o) and with phase alpha(c). F(o) are the
                                  observed structure-factor amplitudes, and
                                  alpha(c) are the phases calculated from the
                                  current model.
                                  The map p(c) was calculated with coefficients
                                  F(c) and with phases alpha(c). F(c) and
                                  alpha(c) are the structure-factor amplitudes
                                  and phases, respectively, calculated from the
                                  current model.
                                  Map grid points within a van der Waals radius
                                  of the designated atoms were included in the
                                  calculation.
;
     save_

#####################
## STRUCT_MON_NUCL ##
#####################

save_struct_mon_nucl
    _category.description
;              Data items in the STRUCT_MON_NUCL category record details about
               structural properties of a nucleic acid when analyzed at the
               monomer level. Analogous data items for proteins are given in
               the STRUCT_MON_PROT category. For items where the value of the
               property depends on the method employed to calculate it,
               details of the method of calculation are given using data items
               in the STRUCT_MON_DETAILS category.
;
    _category.id                  struct_mon_nucl
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_mon_nucl.label_alt_id'
                                '_struct_mon_nucl.label_asym_id'
                                '_struct_mon_nucl.label_comp_id'
                                '_struct_mon_nucl.label_seq_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on NDB structure BDL028.
;
;
    loop_
    _struct_mon_nucl.label_comp_id
    _struct_mon_nucl.label_seq_id
    _struct_mon_nucl.label_asym_id
    _struct_mon_nucl.label_alt_id
    _struct_mon_nucl.alpha
    _struct_mon_nucl.beta
    _struct_mon_nucl.gamma
    _struct_mon_nucl.delta
    _struct_mon_nucl.epsilon
    _struct_mon_nucl.zeta
    C  1 A .      .      .   29.9  131.9  222.1  174.2
    G  2 A .  334.0  130.6   33.1  125.6  167.6  270.9
    T  3 A .  258.2  178.7   101.0 114.6  216.6  259.3
    #         ---- abbreviated list -----
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_mon_nucl.alpha
    _item_description.description
;              The value in degrees of the backbone torsion angle alpha
               (O3'-P-O5'-C5').
;
    _item.name                  '_struct_mon_nucl.alpha'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.auth_asym_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_nucl.auth_asym_id'
    _item.mandatory_code          no
     save_

save__struct_mon_nucl.auth_comp_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_nucl.auth_comp_id'
    _item.mandatory_code          no
     save_

save__struct_mon_nucl.auth_seq_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_nucl.auth_seq_id'
    _item.mandatory_code          no
     save_

save__struct_mon_nucl.beta
    _item_description.description
;              The value in degrees of the backbone torsion angle beta
               (P-O5'-C5'-C4').
;
    _item.name                  '_struct_mon_nucl.beta'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.chi1
    _item_description.description
;              The value in degrees of the sugar-base torsion angle chi1
               (O4'-C1'-N1-C2).
;
    _item.name                  '_struct_mon_nucl.chi1'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.chi2
    _item_description.description
;              The value in degrees of the sugar-base torsion angle chi2
               (O4'-C1'-N9-C4).
;
    _item.name                  '_struct_mon_nucl.chi2'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.delta
    _item_description.description
;              The value in degrees of the backbone torsion angle delta
               (C5'-C4'-C3'-O3').
;
    _item.name                  '_struct_mon_nucl.delta'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.details
    _item_description.description
;              A description of special aspects of the residue, its
               conformation, behaviour in refinement, or any other aspect
               that requires annotation.
;
    _item.name                  '_struct_mon_nucl.details'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_examples.case
;                                 Part of the phosphodiester backbone not in
                                  density.
;
     save_

save__struct_mon_nucl.epsilon
    _item_description.description
;              The value in degrees of the backbone torsion angle epsilon
               (C4'-C3'-O3'-P).
;
    _item.name                  '_struct_mon_nucl.epsilon'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.gamma
    _item_description.description
;              The value in degrees of the backbone torsion angle gamma
               (O5'-C5'-C4'-C3').
;
    _item.name                  '_struct_mon_nucl.gamma'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.label_alt_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _atom_sites_alt.id in the
               ATOM_SITES_ALT category.
;
    _item.name                  '_struct_mon_nucl.label_alt_id'
    _item.mandatory_code          yes
     save_

save__struct_mon_nucl.label_asym_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_nucl.label_asym_id'
    _item.mandatory_code          yes
     save_

save__struct_mon_nucl.label_comp_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_nucl.label_comp_id'
    _item.mandatory_code          yes
     save_

save__struct_mon_nucl.label_seq_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_nucl.label_seq_id'
    _item.mandatory_code          yes
     save_

save__struct_mon_nucl.mean_B_all
    _item_description.description
;              The mean value of the isotropic displacement parameter
               for all atoms in the monomer.
;
    _item.name                  '_struct_mon_nucl.mean_B_all'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_nucl.mean_B_base
    _item_description.description
;              The mean value of the isotropic displacement parameter
               for atoms in the base moiety of the nucleic acid monomer.
;
    _item.name                  '_struct_mon_nucl.mean_B_base'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_nucl.mean_B_phos
    _item_description.description
;              The mean value of the isotropic displacement parameter
               for atoms in the phosphate moiety of the nucleic acid monomer.
;
    _item.name                  '_struct_mon_nucl.mean_B_phos'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_nucl.mean_B_sugar
    _item_description.description
;              The mean value of the isotropic displacement parameter
               for atoms in the sugar moiety of the nucleic acid monomer.
;
    _item.name                  '_struct_mon_nucl.mean_B_sugar'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_nucl.nu0
    _item_description.description
;              The value in degrees of the sugar torsion angle nu0
               (C4'-O4'-C1'-C2').
;
    _item.name                  '_struct_mon_nucl.nu0'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.nu1
    _item_description.description
;              The value in degrees of the sugar torsion angle nu1
               (O4'-C1'-C2'-C3').
;
    _item.name                  '_struct_mon_nucl.nu1'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.nu2
    _item_description.description
;              The value in degrees of the sugar torsion angle nu2
               (C1'-C2'-C3'-C4').
;
    _item.name                  '_struct_mon_nucl.nu2'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.nu3
    _item_description.description
;              The value in degrees of the sugar torsion angle nu3
               (C2'-C3'-C4'-O4').
;
    _item.name                  '_struct_mon_nucl.nu3'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.nu4
    _item_description.description
;              The value in degrees of the sugar torsion angle nu4
               (C3'-C4'-O4'-C1').
;
    _item.name                  '_struct_mon_nucl.nu4'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.P
    _item_description.description
;              P is the phase angle of pseudorotation for five-membered rings.
               For ribose and deoxyribose sugars in nucleic
               acids
                          (tau4 +tau1)-(tau3+tau0)
               P = ATAN (-------------------------)
                           2tau2 (sin 36+sin 72)

               If tau2 is <0, then P=P+180 degree (Altona & Sundaralingam,
               1972).

               Ref: Altona, C. & Sundaralingam, M. (1972).
               J. Am. Chem. Soc. 94, 8205-8212.
;
    _item.name                  '_struct_mon_nucl.P'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.RSCC_all
    _item_description.description
;              The real-space (linear) correlation coefficient RSCC, as
               described by Jones et al. (1991), evaluated over all atoms in the
               nucleic acid monomer.

                      sum|p~obs~ - <p~obs~>| * sum|p~calc~ - <p~calc~>|
               RSCC = -------------------------------------------------
                            [ sum|p~obs~  - <p~obs~> |^2^
                            * sum|p~calc~ - <p~calc~>|^2^ ]^1/2^

               p~obs~  = the density in an 'experimental' map
               p~calc~ = the density in a 'calculated' map

               sum is taken over the specified grid points

               Details of how these maps were calculated should be given
               in _struct_mon_details.RSCC. < > indicates an average and the
               sums are taken over all map grid  points near the relevant atoms.
               The radius for including grid points in the calculation should
               also be given in _struct_mon_details.RSCC.

               Ref: Jones, T. A., Zou, J.-Y., Cowan, S. W. & Kjeldgaard, M.
                    (1991). Acta Cryst. A47, 110-119.
;
    _item.name                  '_struct_mon_nucl.RSCC_all'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_nucl.RSCC_base
    _item_description.description
;              The real-space (linear) correlation coefficient RSCC, as
               described by Jones et al. (1991), evaluated over all atoms in the
               base moiety of the nucleic acid monomer.

                      sum|p~obs~ - <p~obs~>| * sum|p~calc~ - <p~calc~>|
               RSCC = -------------------------------------------------
                            [ sum|p~obs~  - <p~obs~> |^2^
                            * sum|p~calc~ - <p~calc~>|^2^ ]^1/2^

               p~obs~  = the density in an 'experimental' map
               p~calc~ = the density in a 'calculated' map

               sum is taken over the specified grid points

               Details of how these maps were calculated should be given
               in _struct_mon_details.RSCC. < > indicates an average and the
               sums are taken over all map grid  points near the relevant atoms.
               The radius for including grid points in the calculation should
               also be given in _struct_mon_details.RSCC.

               Ref: Jones, T. A., Zou, J.-Y., Cowan, S. W. & Kjeldgaard, M.
                    (1991). Acta Cryst. A47, 110-119.
;
    _item.name                  '_struct_mon_nucl.RSCC_base'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_nucl.RSCC_phos
    _item_description.description
;              The real-space (linear) correlation coefficient RSCC, as
               described by Jones et al. (1991), evaluated over all atoms in the
               phosphate moiety of the nucleic acid monomer.

                      sum|p~obs~ - <p~obs~>| * sum|p~calc~ - <p~calc~>|
               RSCC = -------------------------------------------------
                            [ sum|p~obs~  - <p~obs~> |^2^
                            * sum|p~calc~ - <p~calc~>|^2^ ]^1/2^

               p~obs~  = the density in an 'experimental' map
               p~calc~ = the density in a 'calculated' map

               sum is taken over the specified grid points

               Details of how these maps were calculated should be given
               in _struct_mon_details.RSCC. < > indicates an average and the
               sums are taken over all map grid  points near the relevant atoms.
               The radius for including grid points in the calculation should
               also be given in _struct_mon_details.RSCC.

               Ref: Jones, T. A., Zou, J.-Y., Cowan, S. W. & Kjeldgaard, M.
                    (1991). Acta Cryst. A47, 110-119.
;
    _item.name                  '_struct_mon_nucl.RSCC_phos'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_nucl.RSCC_sugar
    _item_description.description
;              The real-space (linear) correlation coefficient RSCC, as
               described by Jones et al. (1991), evaluated over all atoms in the
               sugar moiety of the nucleic acid monomer.

                      sum|p~obs~ - <p~obs~>| * sum|p~calc~ - <p~calc~>|
               RSCC = -------------------------------------------------
                            [ sum|p~obs~  - <p~obs~> |^2^
                            * sum|p~calc~ - <p~calc~>|^2^ ]^1/2^

               p~obs~  = the density in an 'experimental' map
               p~calc~ = the density in a 'calculated' map

               sum is taken over the specified grid points

               Details of how these maps were calculated should be given
               in _struct_mon_details.RSCC. < > indicates an average and the
               sums are taken over all map grid  points near the relevant atoms.
               The radius for including grid points in the calculation should
               also be given in _struct_mon_details.RSCC.

               Ref: Jones, T. A., Zou, J.-Y., Cowan, S. W. & Kjeldgaard, M.
                    (1991). Acta Cryst. A47, 110-119.
;
    _item.name                  '_struct_mon_nucl.RSCC_sugar'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_nucl.RSR_all
    _item_description.description
;              The real-space residual RSR, as described by Branden & Jones
               (1990), evaluated over all atoms in the nucleic acid monomer.

                     sum|p~obs~ - p~calc~|
               RSR = ---------------------
                     sum|p~obs~ + p~calc~|

               p~obs~  = the density in an 'experimental' map
               p~calc~ = the density in a 'calculated' map

               sum is taken over the specified grid points

               Details of how these maps were calculated should be given
               in _struct_mon_details.RSR. The sums are taken over all map grid
               points near the relevant atoms. The radius for including grid
               points in the calculation should also be given in
               _struct_mon_details.RSR.

               Ref: Branden, C.-I. & Jones, T. A. (1990). Nature (London), 343,
                    687-689.
;
    _item.name                  '_struct_mon_nucl.RSR_all'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_nucl.RSR_base
    _item_description.description
;              The real-space residual RSR, as described by Branden & Jones
               (1990), evaluated over all atoms in the base moiety of the
               nucleic acid monomer.

                     sum|p~obs~ - p~calc~|
               RSR = ---------------------
                     sum|p~obs~ + p~calc~|

               p~obs~  = the density in an 'experimental' map
               p~calc~ = the density in a 'calculated' map

               sum is taken over the specified grid points

               Details of how these maps were calculated should be given
               in _struct_mon_details.RSR. The sums are taken over all map grid
               points near the relevant atoms. The radius for including grid
               points in the calculation should also be given in
               _struct_mon_details.RSR.

               Ref: Branden, C.-I. & Jones, T. A. (1990). Nature (London), 343,
                    687-689.
;
    _item.name                  '_struct_mon_nucl.RSR_base'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_nucl.RSR_phos
    _item_description.description
;              The real-space residual RSR, as described by Branden & Jones
               (1990), evaluated over all atoms in the phosphate moiety of the
               nucleic acid monomer.

                     sum|p~obs~ - p~calc~|
               RSR = ---------------------
                     sum|p~obs~ + p~calc~|

               p~obs~  = the density in an 'experimental' map
               p~calc~ = the density in a 'calculated' map

               sum is taken over the specified grid points

               Details of how these maps were calculated should be given
               in _struct_mon_details.RSR. The sums are taken over all map grid
               points near the relevant atoms. The radius for including grid
               points in the calculation should also be given in
               _struct_mon_details.RSR.

               Ref: Branden, C.-I. & Jones, T. A. (1990). Nature (London), 343,
                    687-689.
;
    _item.name                  '_struct_mon_nucl.RSR_phos'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_nucl.RSR_sugar
    _item_description.description
;              The real-space residual RSR, as described by Branden & Jones
               (1990), evaluated over all atoms in the sugar moiety of the
               nucleic acid monomer.

                     sum|p~obs~ - p~calc~|
               RSR = ---------------------
                     sum|p~obs~ + p~calc~|

               p~obs~  = the density in an 'experimental' map
               p~calc~ = the density in a 'calculated' map

               sum is taken over the specified grid points

               Details of how these maps were calculated should be given
               in _struct_mon_details.RSR. The sums are taken over all map grid
               points near the relevant atoms. The radius for including grid
               points in the calculation should also be given in
               _struct_mon_details.RSR.

               Ref: Branden, C.-I. & Jones, T. A. (1990). Nature (London), 343,
                    687-689.
;
    _item.name                  '_struct_mon_nucl.RSR_sugar'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
     save_
save__struct_mon_nucl.tau0
    _item_description.description
;              The value in degrees of the sugar torsion angle tau0
               (C4'-O4'-C1'-C2').
;
    _item.name                  '_struct_mon_nucl.tau0'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.tau1
    _item_description.description
;              The value in degrees of the sugar torsion angle tau1
               (O4'-C1'-C2'-C3').
;
    _item.name                  '_struct_mon_nucl.tau1'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.tau2
    _item_description.description
;              The value in degrees of the sugar torsion angle tau2
               (C1'-C2'-C3'-C4').
;
    _item.name                  '_struct_mon_nucl.tau2'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.tau3
    _item_description.description
;              The value in degrees of the sugar torsion angle tau3
               (C2'-C3'-C4'-O4').
;
    _item.name                  '_struct_mon_nucl.tau3'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.tau4
    _item_description.description
;              The value in degrees of the sugar torsion angle tau4
               (C3'-C4'-O4'-C1').
;
    _item.name                  '_struct_mon_nucl.tau4'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.taum
    _item_description.description
;              The maximum amplitude of puckering. This is derived from the
               pseudorotation value P and the torsion angles in the ribose
               ring.

               Tau2= Taum cosP
               Tau3= Taum cos(P+144)
               Tau4= Taum cos(P+288)
               Tau0= Taum cos(P+ 72)
               Tau1= Taum cos(P+216)
;
    _item.name                  '_struct_mon_nucl.taum'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_nucl.zeta
    _item_description.description
;              The value in degrees of the backbone torsion angle zeta
               (C3'-O3'-P-O5').
;
    _item.name                  '_struct_mon_nucl.zeta'
    _item.category_id             struct_mon_nucl
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

#####################
## STRUCT_MON_PROT ##
#####################

save_struct_mon_prot
    _category.description
;              Data items in the STRUCT_MON_PROT category record details about
               structural properties of a protein when analyzed at the monomer
               level. Analogous data items for nucleic acids are given in the
               STRUCT_MON_NUCL category. For items where the value of the
               property depends on the method employed to calculate it,
               details of the method of calculation are given using data items
               in the STRUCT_MON_DETAILS category.
;
    _category.id                  struct_mon_prot
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_mon_prot.label_alt_id'
                                '_struct_mon_prot.label_asym_id'
                                '_struct_mon_prot.label_comp_id'
                                '_struct_mon_prot.label_seq_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for protein NS1.
                This example provides details for residue ARG 35.
;
;
    _struct_mon_prot.label_comp_id    ARG
    _struct_mon_prot.label_seq_id      35
    _struct_mon_prot.label_asym_id      A
    _struct_mon_prot.label_alt_id       .
    _struct_mon_prot.chi1            -67.9
    _struct_mon_prot.chi2           -174.7
    _struct_mon_prot.chi3            -67.7
    _struct_mon_prot.chi4            -86.3
    _struct_mon_prot.chi5              4.2
    _struct_mon_prot.RSCC_all          0.90
    _struct_mon_prot.RSR_all           0.18
    _struct_mon_prot.mean_B_all        30.0
    _struct_mon_prot.mean_B_main       25.0
    _struct_mon_prot.mean_B_side       35.1
    _struct_mon_prot.omega            180.1
    _struct_mon_prot.phi              -60.3
    _struct_mon_prot.psi              -46.0
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_mon_prot.chi1
    _item_description.description
;              The value in degrees of the side-chain torsion angle chi1, for
               those residues containing such an angle.
;
    _item.name                  '_struct_mon_prot.chi1'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_prot.chi2
    _item_description.description
;              The value in degrees of the side-chain torsion angle chi2, for
               those residues containing such an angle.
;
    _item.name                  '_struct_mon_prot.chi2'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_prot.chi3
    _item_description.description
;              The value in degrees of the side-chain torsion angle chi3, for
               those residues containing such an angle.
;
    _item.name                  '_struct_mon_prot.chi3'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_prot.chi4
    _item_description.description
;              The value in degrees of the side-chain torsion angle chi4, for
               those residues containing such an angle.
;
    _item.name                  '_struct_mon_prot.chi4'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_prot.chi5
    _item_description.description
;              The value in degrees of the side-chain torsion angle chi5, for
               those residues containing such an angle.
;
    _item.name                  '_struct_mon_prot.chi5'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_prot.details
    _item_description.description
;              A description of special aspects of the residue, its
               conformation, behaviour in refinement, or any other aspect that
               requires annotation.
;
    _item.name                  '_struct_mon_prot.details'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
    loop_
    _item_examples.case          'very poor density'
;                                 The side chain of this density may occupy
                                  alternative conformations, but alternative
                                  conformations were not fit in this model.
;
;                                 This residue has a close contact with the
                                  bound inhibitor, which may account for
                                  the nonstandard conformation of the side
                                  chain.
;
     save_

save__struct_mon_prot.label_alt_id
    _item_description.description
;              A component of the identifier for the monomer.

               This data item is a pointer to _atom_sites_alt.id in the
               ATOM_SITES_ALT category.
;
    _item.name                  '_struct_mon_prot.label_alt_id'
    _item.mandatory_code          yes
     save_

save__struct_mon_prot.label_asym_id
    _item_description.description
;              A component of the identifier for the monomer.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_prot.label_asym_id'
    _item.mandatory_code          yes
     save_

save__struct_mon_prot.label_comp_id
    _item_description.description
;              A component of the identifier for the monomer.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_prot.label_comp_id'
    _item.mandatory_code          yes
     save_

save__struct_mon_prot.label_seq_id
    _item_description.description
;              A component of the identifier for the monomer.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_prot.label_seq_id'
    _item.mandatory_code          yes
     save_

save__struct_mon_prot.auth_asym_id
    _item_description.description
;              A component of the identifier for the monomer.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_prot.auth_asym_id'
    _item.mandatory_code          no
     save_

save__struct_mon_prot.auth_comp_id
    _item_description.description
;              A component of the identifier for the monomer.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_prot.auth_comp_id'
    _item.mandatory_code          no
     save_

save__struct_mon_prot.auth_seq_id
    _item_description.description
;              A component of the identifier for the monomer.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_prot.auth_seq_id'
    _item.mandatory_code          no
     save_

save__struct_mon_prot.RSCC_all
    _item_description.description
;              The real-space (linear) correlation coefficient RSCC, as
               described by Jones et al. (1991),  evaluated over all atoms
               in the monomer.

                      sum|p~obs~ - <p~obs~>| * sum|p~calc~ - <p~calc~>|
               RSCC = -------------------------------------------------
                            [ sum|p~obs~  - <p~obs~> |^2^
                            * sum|p~calc~ - <p~calc~>|^2^ ]^1/2^

               p~obs~  = the density in an 'experimental' map
               p~calc~ = the density in a 'calculated' map

               sum is taken over the specified grid points

               Details of how these maps were calculated should be given
               in _struct_mon_details.RSCC. < > indicates an average and the
               sums are taken over all map grid  points near the relevant atoms.
               The radius for including grid points in the calculation should
               also be given in _struct_mon_details.RSCC.

               Ref: Jones, T. A., Zou, J.-Y., Cowan, S. W. & Kjeldgaard, M.
                    (1991). Acta Cryst. A47, 110-119.
;
    _item.name                  '_struct_mon_prot.RSCC_all'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_prot.RSCC_main
    _item_description.description
;              The real-space (linear) correlation coefficient RSCC, as
               described by Jones et al. (1991), evaluated over all atoms
               in the main chain of the monomer.

                      sum|p~obs~ - <p~obs~>| * sum|p~calc~ - <p~calc~>|
               RSCC = -------------------------------------------------
                            [ sum|p~obs~  - <p~obs~> |^2^
                            * sum|p~calc~ - <p~calc~>|^2^ ]^1/2^

               p~obs~  = the density in an 'experimental' map
               p~calc~ = the density in a 'calculated' map

               sum is taken over the specified grid points

               Details of how these maps were calculated should be given
               in _struct_mon_details.RSCC. < > indicates an average and the
               sums are taken over all map grid  points near the relevant atoms.
               The radius for including grid points in the calculation should
               also be given in _struct_mon_details.RSCC.

               Ref: Jones, T. A., Zou, J.-Y., Cowan, S. W. & Kjeldgaard, M.
                    (1991). Acta Cryst. A47, 110-119.
;
    _item.name                  '_struct_mon_prot.RSCC_main'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_prot.RSCC_side
    _item_description.description
;              The real-space (linear) correlation coefficient RSCC, as
               described by Jones et al. (1991), evaluated over all atoms
               in the side chain of the monomer.

                      sum|p~obs~ - <p~obs~>| * sum|p~calc~ - <p~calc~>|
               RSCC = -------------------------------------------------
                            [ sum|p~obs~  - <p~obs~> |^2^
                            * sum|p~calc~ - <p~calc~>|^2^ ]^1/2^

               p~obs~  = the density in an 'experimental' map
               p~calc~ = the density in a 'calculated' map

               sum is taken over the specified grid points

               Details of how these maps were calculated should be given
               in _struct_mon_details.RSCC. < > indicates an average and the
               sums are taken over all map grid  points near the relevant atoms.
               The radius for including grid points in the calculation should
               also be given in _struct_mon_details.RSCC.

               Ref: Jones, T. A., Zou, J.-Y., Cowan, S. W. & Kjeldgaard, M.
                    (1991). Acta Cryst. A47, 110-119.
;
    _item.name                  '_struct_mon_prot.RSCC_side'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_prot.RSR_all
    _item_description.description
;              The real-space residual RSR, as described by Branden & Jones
               (1990), evaluated over all atoms in the monomer.

                     sum|p~obs~ - p~calc~|
               RSR = ---------------------
                     sum|p~obs~ + p~calc~|

               p~obs~  = the density in an 'experimental' map
               p~calc~ = the density in a 'calculated' map

               sum is taken over the specified grid points

               Details of how these maps were calculated should be given
               in _struct_mon_details.RSR. The sums are taken over all map grid
               points near the relevant atoms. The radius for including grid
               points in the calculation should also be given in
               _struct_mon_details.RSR.

               Ref: Branden, C.-I. & Jones, T. A. (1990). Nature (London), 343,
                    687-689.
;
    _item.name                  '_struct_mon_prot.RSR_all'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_prot.RSR_main
    _item_description.description
;              The real-space residual RSR, as described by Branden & Jones
               (1990), evaluated over all atoms in the main chain of the
               monomer.

                     sum|p~obs~ - p~calc~|
               RSR = ---------------------
                     sum|p~obs~ + p~calc~|

               p~obs~  = the density in an 'experimental' map
               p~calc~ = the density in a 'calculated' map

               sum is taken over the specified grid points

               Details of how these maps were calculated should be given
               in _struct_mon_details.RSR. The sums are taken over all map grid
               points near the relevant atoms. The radius for including grid
               points in the calculation should also be given in
               _struct_mon_details.RSR.

               Ref: Branden, C.-I. & Jones, T. A. (1990). Nature (London), 343,
                    687-689.
;
    _item.name                  '_struct_mon_prot.RSR_main'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_prot.RSR_side
    _item_description.description
;              The real-space residual RSR, as described by Branden & Jones
               (1990), evaluated over all atoms in the side chain of the
               monomer.

                     sum|p~obs~ - p~calc~|
               RSR = ---------------------
                     sum|p~obs~ + p~calc~|

               p~obs~  = the density in an 'experimental' map
               p~calc~ = the density in a 'calculated' map

               sum is taken over the specified grid points

               Details of how these maps were calculated should be given
               in _struct_mon_details.RSR. The sums are taken over all map grid
               points near the relevant atoms. The radius for including grid
               points in the calculation should also be given in
               _struct_mon_details.RSR.

               Ref: Branden, C.-I. & Jones, T. A. (1990). Nature (London), 343,
                    687-689.
;
    _item.name                  '_struct_mon_prot.RSR_side'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_prot.mean_B_all
    _item_description.description
;              The mean value of the isotropic displacement parameter for all
               atoms in the monomer.
;
    _item.name                  '_struct_mon_prot.mean_B_all'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_prot.mean_B_main
    _item_description.description
;              The mean value of the isotropic displacement parameter for atoms
               in the main chain of the monomer.
;
    _item.name                  '_struct_mon_prot.mean_B_main'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_prot.mean_B_side
    _item_description.description
;              The mean value of the isotropic displacement parameter for atoms
               in the side chain of the monomer.
;
    _item.name                  '_struct_mon_prot.mean_B_side'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
     save_

save__struct_mon_prot.omega
    _item_description.description
;              The value in degrees of the main-chain torsion angle omega.
;
    _item.name                  '_struct_mon_prot.omega'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_prot.phi
    _item_description.description
;              The value in degrees of the main-chain torsion angle phi.
;
    _item.name                  '_struct_mon_prot.phi'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

save__struct_mon_prot.psi
    _item_description.description
;              The value in degrees of the main-chain torsion angle psi.
;
    _item.name                  '_struct_mon_prot.psi'
    _item.category_id             struct_mon_prot
    _item.mandatory_code          no
    _item_type.code               float
    _item_units.code              degrees
     save_

#########################
## STRUCT_MON_PROT_CIS ##
#########################

save_struct_mon_prot_cis
    _category.description
;              Data items in the STRUCT_MON_PROT_CIS category identify
               monomers that have been found to have the peptide bond in the cis
               conformation. The criterion used to select residues to be
               designated as containing cis peptide bonds is given in
               _struct_mon_details.prot_cis.
;
    _category.id                  struct_mon_prot_cis
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_mon_prot_cis.label_alt_id'
                                '_struct_mon_prot_cis.label_asym_id'
                                '_struct_mon_prot_cis.label_comp_id'
                                '_struct_mon_prot_cis.label_seq_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB structure 1ACY of Ghiara, Stura, Stanfield,
                Profy & Wilson [Science (1994),  264,  82-85].
;
;
    loop_
    _struct_mon_prot_cis.label_comp_id
    _struct_mon_prot_cis.label_seq_id
    _struct_mon_prot_cis.label_asym_id
    _struct_mon_prot_cis.label_alt_id
     PRO   8  L .
     PRO  77  L .
     PRO  95  L .
     PRO 141  L .
     #  -----   abbreviated  -----
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_mon_prot_cis.label_alt_id
    _item_description.description
;              A component of the identifier for the monomer.

               This data item is a pointer to _atom_sites_alt.id in the
               ATOM_SITES_ALT category.
;
    _item.name                  '_struct_mon_prot_cis.label_alt_id'
    _item.mandatory_code          yes
     save_

save__struct_mon_prot_cis.label_asym_id
    _item_description.description
;              A component of the identifier for the monomer.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_prot_cis.label_asym_id'
    _item.mandatory_code          yes
     save_

save__struct_mon_prot_cis.label_comp_id
    _item_description.description
;              A component of the identifier for the monomer.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_prot_cis.label_comp_id'
    _item.mandatory_code          yes
     save_

save__struct_mon_prot_cis.label_seq_id
    _item_description.description
;              A component of the identifier for the monomer.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_prot_cis.label_seq_id'
    _item.mandatory_code          yes
     save_
save__struct_mon_prot_cis.auth_asym_id
    _item_description.description
;              A component of the identifier for the monomer.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_prot_cis.auth_asym_id'
    _item.mandatory_code          no
     save_

save__struct_mon_prot_cis.auth_comp_id
    _item_description.description
;              A component of the identifier for the monomer.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_prot_cis.auth_comp_id'
    _item.mandatory_code          no
     save_

save__struct_mon_prot_cis.auth_seq_id
    _item_description.description
;              A component of the identifier for the monomer.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_mon_prot_cis.auth_seq_id'
    _item.mandatory_code          no
     save_

####################
## STRUCT_NCS_DOM ##
####################

save_struct_ncs_dom
    _category.description
;              Data items in the STRUCT_NCS_DOM category record information
               about the domains in an ensemble of domains related by one or
               more noncrystallographic symmetry operators.

               A domain need not correspond to a complete polypeptide chain;
               it can be composed of one or more segments in a single chain,
               or by segments from more than one chain.
;
    _category.id                  struct_ncs_dom
    _category.mandatory_code      no
    _category_key.name          '_struct_ncs_dom.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for the collagen-like
                peptide, HYP-.
;
;
    loop_
    _struct_ncs_dom.id
    _struct_ncs_dom.details
     d1  'Chains A, B, and C'
     d2  'Chains D, E, and F'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_ncs_dom.details
    _item_description.description
;              A description of special aspects of the structural elements that
               comprise a domain in an ensemble of domains related by
               noncrystallographic symmetry.
;
    _item.name                  '_struct_ncs_dom.details'
    _item.category_id             struct_ncs_dom
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 The loop between residues 18 and 23 in this
                                  domain interacts with a symmetry-related
                                  molecule, and thus deviates significantly from
                                  the noncrystallographic threefold.
;
     save_

save__struct_ncs_dom.id
    _item_description.description
;              The value of _struct_ncs_dom.id must uniquely identify a
               record in the STRUCT_NCS_DOM list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_struct_ncs_dom.id'             struct_ncs_dom      yes
               '_struct_ncs_dom_lim.dom_id'     struct_ncs_dom_lim  yes
               '_struct_ncs_ens_gen.dom_id_1'   struct_ncs_ens_gen  yes
               '_struct_ncs_ens_gen.dom_id_2'   struct_ncs_ens_gen  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_struct_ncs_dom_lim.dom_id'    '_struct_ncs_dom.id'
               '_struct_ncs_ens_gen.dom_id_1'  '_struct_ncs_dom.id'
               '_struct_ncs_ens_gen.dom_id_2'  '_struct_ncs_dom.id'
    _item_type.code               code
     save_

########################
## STRUCT_NCS_DOM_LIM ##
########################

save_struct_ncs_dom_lim
    _category.description
;              Data items in the STRUCT_NCS_DOM_LIM category identify the
               start and end points of polypeptide chain segments
               that form all or part of a domain in an ensemble of domains
               related by noncrystallographic symmetry.
;
    _category.id                  struct_ncs_dom_lim
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_ncs_dom_lim.dom_id'
                                '_struct_ncs_dom_lim.beg_label_alt_id'
                                '_struct_ncs_dom_lim.beg_label_asym_id'
                                '_struct_ncs_dom_lim.beg_label_comp_id'
                                '_struct_ncs_dom_lim.beg_label_seq_id'
                                '_struct_ncs_dom_lim.end_label_alt_id'
                                '_struct_ncs_dom_lim.end_label_asym_id'
                                '_struct_ncs_dom_lim.end_label_comp_id'
                                '_struct_ncs_dom_lim.end_label_seq_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for the collagen-like
                peptide, HYP-.
;
;
    loop_
    _struct_ncs_dom_lim.dom_id
    _struct_ncs_dom_lim.beg_label_alt_id
    _struct_ncs_dom_lim.beg_label_asym_id
    _struct_ncs_dom_lim.beg_label_comp_id
    _struct_ncs_dom_lim.beg_label_seq_id
    _struct_ncs_dom_lim.end_label_alt_id
    _struct_ncs_dom_lim.end_label_asym_id
    _struct_ncs_dom_lim.end_label_comp_id
    _struct_ncs_dom_lim.end_label_seq_id
     d1   .  A PRO  1  . A GLY  29
     d1   .  B PRO  31 . B GLY  59
     d1   .  C PRO  61 . B GLY  89
     d2   .  D PRO  91 . D GLY 119
     d2   .  E PRO 121 . E GLY 149
     d2   .  F PRO 151 . F GLY 179
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_ncs_dom_lim.beg_label_alt_id
    _item_description.description
;              A component of the identifier for the monomer at which this
               segment of the domain begins.

               This data item is a pointer to _atom_sites_alt.id in the
               ATOM_SITES_ALT category.
;
    _item.name                  '_struct_ncs_dom_lim.beg_label_alt_id'
    _item.mandatory_code          yes
     save_

save__struct_ncs_dom_lim.beg_label_asym_id
    _item_description.description
;              A component of the identifier for the monomer at which this
               segment of the domain begins.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_ncs_dom_lim.beg_label_asym_id'
    _item.mandatory_code          yes
     save_

save__struct_ncs_dom_lim.beg_label_comp_id
    _item_description.description
;              A component of the identifier for the monomer at which this
               segment of the domain begins.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_ncs_dom_lim.beg_label_comp_id'
    _item.mandatory_code          yes
     save_

save__struct_ncs_dom_lim.beg_label_seq_id
    _item_description.description
;              A component of the identifier for the monomer at which this
               segment of the domain begins.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_ncs_dom_lim.beg_label_seq_id'
    _item.mandatory_code          yes
     save_

save__struct_ncs_dom_lim.beg_auth_asym_id
    _item_description.description
;              A component of the identifier for the monomer at which this
               segment of the domain begins.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_ncs_dom_lim.beg_auth_asym_id'
    _item.mandatory_code          no
     save_

save__struct_ncs_dom_lim.beg_auth_comp_id
    _item_description.description
;              A component of the identifier for the monomer at which this
               segment of the domain begins.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_ncs_dom_lim.beg_auth_comp_id'
    _item.mandatory_code          no
     save_

save__struct_ncs_dom_lim.beg_auth_seq_id
    _item_description.description
;              A component of the identifier for the monomer at which this
               segment of the domain begins.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_ncs_dom_lim.beg_auth_seq_id'
    _item.mandatory_code          no
     save_

save__struct_ncs_dom_lim.dom_id
    _item_description.description
;              This data item is a pointer to _struct_ncs_dom.id in the
               STRUCT_NCS_DOM category.
;
    _item.name                  '_struct_ncs_dom_lim.dom_id'
    _item.mandatory_code          yes
     save_

save__struct_ncs_dom_lim.end_label_alt_id
    _item_description.description
;              A component of the identifier for the monomer at which this
               segment of the domain ends.

               This data item is a pointer to _atom_sites_alt.id in the
               ATOM_SITES_ALT category.
;
    _item.name                  '_struct_ncs_dom_lim.end_label_alt_id'
    _item.mandatory_code          yes
     save_

save__struct_ncs_dom_lim.end_label_asym_id
    _item_description.description
;              A component of the identifier for the monomer at which this
               segment of the domain ends.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_ncs_dom_lim.end_label_asym_id'
    _item.mandatory_code          yes
     save_

save__struct_ncs_dom_lim.end_label_comp_id
    _item_description.description
;              A component of the identifier for the monomer at which this
               segment of the domain ends.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_ncs_dom_lim.end_label_comp_id'
    _item.mandatory_code          yes
     save_

save__struct_ncs_dom_lim.end_label_seq_id
    _item_description.description
;              A component of the identifier for the monomer at which this
               segment of the domain ends.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_ncs_dom_lim.end_label_seq_id'
    _item.mandatory_code          yes
     save_

save__struct_ncs_dom_lim.end_auth_asym_id
    _item_description.description
;              A component of the identifier for the monomer at which this
               segment of the domain ends.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_ncs_dom_lim.end_auth_asym_id'
    _item.mandatory_code          no
     save_

save__struct_ncs_dom_lim.end_auth_comp_id
    _item_description.description
;              A component of the identifier for the monomer at which this
               segment of the domain ends.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_ncs_dom_lim.end_auth_comp_id'
    _item.mandatory_code          no
     save_

save__struct_ncs_dom_lim.end_auth_seq_id
    _item_description.description
;              A component of the identifier for the monomer at which this
               segment of the domain ends.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_ncs_dom_lim.end_auth_seq_id'
    _item.mandatory_code          no
     save_

####################
## STRUCT_NCS_ENS ##
####################

save_struct_ncs_ens
    _category.description
;              Data items in the STRUCT_NCS_ENS category record information
               about ensembles of domains related by noncrystallographic
               symmetry. The point group of the ensemble when taken as a
               whole may be specified, as well as any special aspects of the
               ensemble that require description.
;
    _category.id                  struct_ncs_ens
    _category.mandatory_code      no
    _category_key.name          '_struct_ncs_ens.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for the collagen-like
                peptide, HYP-.
;
;
    _struct_ncs_ens.id          en1
    _struct_ncs_ens.details
    ; The ensemble represents the pseudo-twofold symmetry
      between domains d1 and d2.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_ncs_ens.details
    _item_description.description
;              A description of special aspects of the ensemble.
;
    _item.name                  '_struct_ncs_ens.details'
    _item.category_id             struct_ncs_ens
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 The ensemble has a slight translation between
                                  domains 1 and 4, but overall it can accurately
                                  be described as point group 222
;
     save_

save__struct_ncs_ens.id
    _item_description.description
;              The value of _struct_ncs_ens.id must uniquely identify a
               record in the STRUCT_NCS_ENS list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_struct_ncs_ens.id'          struct_ncs_ens      yes
               '_struct_ncs_ens_gen.ens_id'  struct_ncs_ens_gen  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_struct_ncs_ens_gen.ens_id'  '_struct_ncs_ens.id'
    _item_type.code               code
     save_

save__struct_ncs_ens.point_group
    _item_description.description
;              The point group of the ensemble of structural elements related by
               one or more noncrystallographic symmetry operations. The
               relationships need not be precise; this data item is intended
               to give a rough description of the noncrystallographic symmetry
               relationships.
;
    _item.name                  '_struct_ncs_ens.point_group'
    _item.category_id             struct_ncs_ens
    _item.mandatory_code          no
    _item_type.code               line
    loop_
    _item_examples.case          '3'
                                 '422'
                                 'non-proper'
     save_

########################
## STRUCT_NCS_ENS_GEN ##
########################

save_struct_ncs_ens_gen
    _category.description
;              Data items in the STRUCT_NCS_ENS_GEN category list domains
               related by a noncrystallographic symmetry operation and
               identify the operator.
;
    _category.id                  struct_ncs_ens_gen
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_ncs_ens_gen.ens_id'
                                '_struct_ncs_ens_gen.dom_id_1'
                                '_struct_ncs_ens_gen.dom_id_2'
                                '_struct_ncs_ens_gen.oper_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for the collagen-like
                peptide, HYP-.
;
;
    _struct_ncs_ens_gen.dom_id_1   d1
    _struct_ncs_ens_gen.dom_id_2   d2
    _struct_ncs_ens_gen.ens_id     en1
    _struct_ncs_ens_gen.oper_id    ncsop1
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_ncs_ens_gen.dom_id_1
    _item_description.description
;              The identifier for the domain that will remain unchanged by the
               transformation operator.

               This data item is a pointer to _struct_ncs_dom.id in the
               STRUCT_NCS_DOM category.
;
    _item.name                  '_struct_ncs_ens_gen.dom_id_1'
    _item.mandatory_code          yes
     save_

save__struct_ncs_ens_gen.dom_id_2
    _item_description.description
;              The identifier for the domain that will be transformed by
               application of the transformation operator.

               This data item is a pointer to _struct_ncs_dom.id in the
               STRUCT_NCS_DOM category.
;
    _item.name                  '_struct_ncs_ens_gen.dom_id_2'
    _item.mandatory_code          yes
     save_

save__struct_ncs_ens_gen.ens_id
    _item_description.description
;              This data item is a pointer to _struct_ncs_ens.id in the
               STRUCT_NCS_ENS category.
;
    _item.name                  '_struct_ncs_ens_gen.ens_id'
    _item.mandatory_code          yes
     save_

save__struct_ncs_ens_gen.oper_id
    _item_description.description
;              This data item is a pointer to _struct_ncs_oper.id in the
               STRUCT_NCS_OPER category.
;
    _item.name                  '_struct_ncs_ens_gen.oper_id'
    _item.mandatory_code          yes
     save_

#####################
## STRUCT_NCS_OPER ##
#####################

save_struct_ncs_oper
    _category.description
;              Data items in the STRUCT_NCS_OPER category describe the
               noncrystallographic symmetry operations.

               Each operator is specified as a matrix and a subsequent
               translation vector. Operators need not represent proper
               rotations.
;
    _category.id                  struct_ncs_oper
    _category.mandatory_code      no
    _category_key.name          '_struct_ncs_oper.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for the protein NS1.
;
;
    _struct_ncs_oper.id              ncsop1
    _struct_ncs_oper.code            given
    _struct_ncs_oper.matrix[1][1]    0.247
    _struct_ncs_oper.matrix[1][2]    0.935
    _struct_ncs_oper.matrix[1][3]    0.256
    _struct_ncs_oper.matrix[2][1]    0.929
    _struct_ncs_oper.matrix[2][2]    0.153
    _struct_ncs_oper.matrix[2][3]    0.337
    _struct_ncs_oper.matrix[3][1]    0.276
    _struct_ncs_oper.matrix[3][2]    0.321
    _struct_ncs_oper.matrix[3][3]   -0.906
    _struct_ncs_oper.vector[1]      -8.253
    _struct_ncs_oper.vector[2]     -11.743
    _struct_ncs_oper.vector[3]      -1.782
    _struct_ncs_oper.details
    ; Matrix and translation vector for pseudo-twofold operation.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_ncs_oper.code
    _item_description.description
;              A code to indicate whether this operator describes a
               relationship between coordinates all of which are given in the
               data block (in which case the value of code is 'given'), or
               whether the operator is used to generate new coordinates from
               those that are given in the data block (in which case the value
               of code is 'generate').
;
    _item.name                  '_struct_ncs_oper.code'
    _item.category_id             struct_ncs_oper
    _item.mandatory_code          no
    _item_type.code               code
    loop_
    _item_enumeration.value
    _item_enumeration.detail      given
;                                 operator relates coordinates given in the
                                  data block
;
                                  generate
;                                 operator generates new coordinates from
                                  those given in the data block
;
     save_

save__struct_ncs_oper.details
    _item_description.description
;              A description of special aspects of the noncrystallographic
               symmetry operator.
;
    _item.name                  '_struct_ncs_oper.details'
    _item.category_id             struct_ncs_oper
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 The operation is given as a precise threefold
                                  rotation, despite the fact the best rms
                                  fit between domain 1 and domain 2 yields a
                                  rotation of 119.7 degrees and a translation
                                  of 0.13 angstroms.
;
     save_

save__struct_ncs_oper.id
    _item_description.description
;              The value of _struct_ncs_oper.id must uniquely identify a
               record in the STRUCT_NCS_OPER list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_struct_ncs_oper.id'             struct_ncs_oper      yes
               '_struct_ncs_ens_gen.oper_id'     struct_ncs_ens_gen   yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_struct_ncs_ens_gen.oper_id'    '_struct_ncs_oper.id'
    _item_type.code               code
     save_

save__struct_ncs_oper.matrix[1][1]
    _item_description.description
;              The [1][1] element of the 3x3 matrix component of a
               noncrystallographic symmetry operation.
;
    _item.name                  '_struct_ncs_oper.matrix[1][1]'
    _item.category_id             struct_ncs_oper
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_ncs_oper.matrix[1][2]
    _item_description.description
;              The [1][2] element of the 3x3 matrix component of a
               noncrystallographic symmetry operation.
;
    _item.name                  '_struct_ncs_oper.matrix[1][2]'
    _item.category_id             struct_ncs_oper
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_ncs_oper.matrix[1][3]
    _item_description.description
;              The [1][3] element of the 3x3 matrix component of a
               noncrystallographic symmetry operation.
;
    _item.name                  '_struct_ncs_oper.matrix[1][3]'
    _item.category_id             struct_ncs_oper
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_ncs_oper.matrix[2][1]
    _item_description.description
;              The [2][1] element of the 3x3 matrix component of a
               noncrystallographic symmetry operation.
;
    _item.name                  '_struct_ncs_oper.matrix[2][1]'
    _item.category_id             struct_ncs_oper
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_ncs_oper.matrix[2][2]
    _item_description.description
;              The [2][2] element of the 3x3 matrix component of a
               noncrystallographic symmetry operation.
;
    _item.name                  '_struct_ncs_oper.matrix[2][2]'
    _item.category_id             struct_ncs_oper
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_ncs_oper.matrix[2][3]
    _item_description.description
;              The [2][3] element of the 3x3 matrix component of a
               noncrystallographic symmetry operation.
;
    _item.name                  '_struct_ncs_oper.matrix[2][3]'
    _item.category_id             struct_ncs_oper
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_ncs_oper.matrix[3][1]
    _item_description.description
;              The [3][1] element of the 3x3 matrix component of a
               noncrystallographic symmetry operation.
;
    _item.name                  '_struct_ncs_oper.matrix[3][1]'
    _item.category_id             struct_ncs_oper
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_ncs_oper.matrix[3][2]
    _item_description.description
;              The [3][2] element of the 3x3 matrix component of a
               noncrystallographic symmetry operation.
;
    _item.name                  '_struct_ncs_oper.matrix[3][2]'
    _item.category_id             struct_ncs_oper
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_ncs_oper.matrix[3][3]
    _item_description.description
;              The [3][3] element of the 3x3 matrix component of a
               noncrystallographic symmetry operation.
;
    _item.name                  '_struct_ncs_oper.matrix[3][3]'
    _item.category_id             struct_ncs_oper
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_ncs_oper.vector[1]
    _item_description.description
;              The [1] element of the three-element vector component of a
               noncrystallographic symmetry operation.
;
    _item.name                  '_struct_ncs_oper.vector[1]'
    _item.category_id             struct_ncs_oper
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

save__struct_ncs_oper.vector[2]
    _item_description.description
;              The [2] element of the three-element vector component of a
               noncrystallographic symmetry operation.
;
    _item.name                  '_struct_ncs_oper.vector[2]'
    _item.category_id             struct_ncs_oper
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

save__struct_ncs_oper.vector[3]
    _item_description.description
;              The [3] element of the three-element vector component of a
               noncrystallographic symmetry operation.
;
    _item.name                  '_struct_ncs_oper.vector[3]'
    _item.category_id             struct_ncs_oper
    _item.mandatory_code          no
#    _item_default.value           0.0
    _item_sub_category.id         vector
    _item_type.code               float
     save_

################
## STRUCT_REF ##
################

save_struct_ref
    _category.description
;              Data items in the STRUCT_REF category allow the author of a
               data block to relate the entities or biological units
               described in the data block to information archived in external
               databases.

               For references to the sequence of a polymer, the value of
               the data item _struct_ref.seq_align is used to indicate
               whether the correspondence between the sequence of the entity
               or biological unit in the data block and the sequence in the
               referenced database entry is 'complete' or 'partial'. If
               this value is 'partial', the region (or regions) of the
               alignment may be delimited using data items in the
               STRUCT_REF_SEQ category.

               Similarly, the value of _struct_ref.seq_dif is used to indicate
               whether the two sequences contain point differences. If the
               value is 'yes', the differences may be identified and annotated
               using data items in the STRUCT_REF_SEQ_DIF category.
;
    _category.id                  struct_ref
    _category.mandatory_code      no
    _category_key.name          '_struct_ref.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _struct_ref.id
    _struct_ref.entity_id
    _struct_ref.biol_id
    _struct_ref.db_name
    _struct_ref.db_code
    _struct_ref.seq_align
    _struct_ref.seq_dif
    _struct_ref.details
      1   1  .  'Genbank'  '12345' 'entire' 'yes' .
      2   .  2  'PDB'      '1ABC'  .        .
    ; The structure of the closely related compound,
      isobutyryl-pepstatin (pepstatin A) in complex with
      rhizopuspepsin
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_ref.biol_id
    _item_description.description
;              This data item is a pointer to _struct_biol.id in the
               STRUCT_BIOL category.
;
    _item.name                  '_struct_ref.biol_id'
    _item.mandatory_code          no
     save_

save__struct_ref.db_code
    _item_description.description
;              The code for this entity or biological unit or for a closely
               related entity or biological unit in the named database.
;
    _item.name                  '_struct_ref.db_code'
    _item.category_id             struct_ref
    _item.mandatory_code          yes
    _item_type.code               line
    loop_
    _item_examples.case          '1ABC'
                                 'ABCDEF'
     save_

save__struct_ref.db_name
    _item_description.description
;              The name of the database containing reference information about
               this entity or biological unit.
;
    _item.name                  '_struct_ref.db_name'
    _item.category_id             struct_ref
    _item.mandatory_code          yes
    _item_type.code               line
    loop_
    _item_examples.case          'PDB'
                                 'CSD'
                                 'Genbank'
     save_

save__struct_ref.details
    _item_description.description
;              A description of special aspects of the relationship between
               the entity or biological unit described in the data block and
               that in the referenced database entry.
;
    _item.name                  '_struct_ref.details'
    _item.category_id             struct_ref
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__struct_ref.entity_id
    _item_description.description
;              This data item is a pointer to _entity.id in the ENTITY category.
;
    _item.name                  '_struct_ref.entity_id'
    _item.mandatory_code          yes
     save_

save__struct_ref.id
    _item_description.description
;              The value of _struct_ref.id must uniquely identify a record
               in the STRUCT_REF list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_struct_ref.id'               struct_ref      yes
               '_struct_ref_seq.ref_id'       struct_ref_seq  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_struct_ref_seq.ref_id'      '_struct_ref.id'
    _item_type.code               code
     save_

save__struct_ref.seq_align
    _item_description.description
;              A flag to indicate the scope of the alignment between the
               sequence of the entity or biological unit described in the data
               block and that in the referenced database entry. 'entire'
               indicates that alignment spans the entire length of both
               sequences (although point differences may occur and can be
               annotated using the data items in the STRUCT_REF_SEQ_DIF
               category). 'partial' indicates a partial alignment. The region
               (or regions) of the alignment may be delimited using data items
               in the STRUCT_REF_SEQ category. This data item may also take
               the value '.', indicating that the reference is not to a
               sequence.
;
    _item.name                  '_struct_ref.seq_align'
    _item.category_id             struct_ref
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      complete  'alignment is complete'
                                  partial   'alignment is partial'
                                  .         'reference is not to a sequence'
     save_

save__struct_ref.seq_dif
    _item_description.description
;              A flag to indicate the presence ('yes') or absence ('no') of
               point differences between the sequence of the entity or
               biological unit described in the data block and that in
               the referenced database entry. This data item may also
               take the value '.', indicating that the reference is not to a
               sequence.
;
    _item.name                  '_struct_ref.seq_dif'
    _item.category_id             struct_ref
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value
    _item_enumeration.detail      no   'there are no point differences'
                                  n    'abbreviation for "no"'
                                  yes  'there are point difference'
                                  y    'abbreviation for "yes"'
                                  .    'reference is not to a sequence'
     save_

####################
## STRUCT_REF_SEQ ##
####################

save_struct_ref_seq
    _category.description
;              Data items in the STRUCT_REF_SEQ category provide a mechanism
               for indicating and annotating a region (or regions) of alignment
               between the sequence of an entity or biological unit described
               in the data block and the sequence in the referenced database
               entry.
;
    _category.id                  struct_ref_seq
    _category.mandatory_code      no
    _category_key.name          '_struct_ref_seq.align_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on the sequence alignment of CHER from M. xantus
                (36 to 288) and CHER from S. typhimurium (18 to 276).
;
;
    _struct_ref_seq.align_id          alg1
    _struct_ref_seq.ref_id            seqdb1
    _struct_ref_seq.seq_align_beg     36
    _struct_ref_seq.seq_align_end     288
    _struct_ref_seq.db_align_beg      18
    _struct_ref_seq.db_align_end      276
    _struct_ref_seq.details
    ; The alignment contains 3 gaps larger than 2 residues
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_ref_seq.align_id
    _item_description.description
;              The value of _struct_ref_seq.align_id must uniquely identify a
               record in the STRUCT_REF_SEQ list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_struct_ref_seq.align_id'      struct_ref_seq      yes
               '_struct_ref_seq_dif.align_id'  struct_ref_seq_dif  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_struct_ref_seq_dif.align_id' '_struct_ref_seq.align_id'
    _item_type.code               code
     save_

save__struct_ref_seq.db_align_beg
    _item_description.description
;              The sequence position in the referenced database entry
               at which the alignment begins.
;
    _item.name                  '_struct_ref_seq.db_align_beg'
    _item.mandatory_code          yes
#    loop_
#    _item_range.maximum
#    _item_range.minimum           .   1
#                                  1   1
    _item_type.code               int
     save_

save__struct_ref_seq.db_align_end
    _item_description.description
;              The sequence position in the referenced database entry
               at which the alignment ends.
;
    _item.name                  '_struct_ref_seq.db_align_end'
    _item.mandatory_code          yes
#    loop_
#    _item_range.maximum
#    _item_range.minimum           .   1
#                                  1   1
    _item_type.code               int
     save_

save__struct_ref_seq.details
    _item_description.description
;              A description of special aspects of the sequence alignment.
;
    _item.name                  '_struct_ref_seq.details'
    _item.category_id             struct_ref_seq
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__struct_ref_seq.ref_id
    _item_description.description
;              This data item is a pointer to _struct_ref.id in the
               STRUCT_REF category.
;
    _item.name                  '_struct_ref_seq.ref_id'
    _item.mandatory_code          yes
     save_

save__struct_ref_seq.seq_align_beg
    _item_description.description
;              The sequence position in the entity or biological unit described
                in the data block at which the alignment begins.

               This data item is a pointer to _entity_poly_seq.num in the
               ENTITY_POLY_SEQ category.
;
    _item.name                  '_struct_ref_seq.seq_align_beg'
    _item.mandatory_code          yes
     save_

save__struct_ref_seq.seq_align_end
    _item_description.description
;              The sequence position in the entity or biological unit described
               in the data block at which the alignment ends.

               This data item is a pointer to _entity_poly_seq.num in the
               ENTITY_POLY_SEQ category.
;
    _item.name                  '_struct_ref_seq.seq_align_end'
    _item.mandatory_code          yes
     save_

########################
## STRUCT_REF_SEQ_DIF ##
########################

save_struct_ref_seq_dif
    _category.description
;              Data items in the STRUCT_REF_SEQ_DIF category provide a
               mechanism for indicating and annotating point differences
               between the sequence of the entity or biological unit described
               in the data block and the sequence of the referenced database
               entry.
;
    _category.id                  struct_ref_seq_dif
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_ref_seq_dif.align_id'
                                '_struct_ref_seq_dif.seq_num'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on laboratory records for CAP-DNA complex.
;
;
    _struct_ref_seq_dif.align_id    algn2
    _struct_ref_seq_dif.seq_num     181
    _struct_ref_seq_dif.db_mon_id   GLU
    _struct_ref_seq_dif.mon_id      PHE
    _struct_ref_seq_dif.details
    ; A point mutation was introduced in the CAP at position 181
      substituting PHE for GLU.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_ref_seq_dif.align_id
    _item_description.description
;              This data item is a pointer to _struct_ref_seq.align_id in
               the STRUCT_REF_SEQ  category.
;
    _item.name                  '_struct_ref_seq_dif.align_id'
    _item.mandatory_code          yes
     save_

save__struct_ref_seq_dif.db_mon_id
    _item_description.description
;              The monomer type found at this position in the referenced
               database entry.

               This data item is a pointer to _chem_comp.id in the CHEM_COMP
               category.
;
    _item.name                  '_struct_ref_seq_dif.db_mon_id'
    _item.mandatory_code          yes
     save_

save__struct_ref_seq_dif.details
    _item_description.description
;              A description of special aspects of the point differences
               between the sequence of the entity or biological unit described
               in the data block and that in the referenced database entry.
;
    _item.name                  '_struct_ref_seq_dif.details'
    _item.category_id             struct_ref_seq_dif
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__struct_ref_seq_dif.mon_id
    _item_description.description
;              The monomer type found at this position in the sequence of
               the entity or biological unit described in this data block.

               This data item is a pointer to _chem_comp.id in the CHEM_COMP
               category.
;
    _item.name                  '_struct_ref_seq_dif.mon_id'
    _item.mandatory_code          yes
     save_

save__struct_ref_seq_dif.seq_num
    _item_description.description
;              This data item is a pointer to _entity_poly_seq.num in the
               ENTITY_POLY_SEQ category.
;
    _item.name                  '_struct_ref_seq_dif.seq_num'
    _item.mandatory_code          yes
     save_

##################
## STRUCT_SHEET ##
##################

save_struct_sheet
    _category.description
;              Data items in the STRUCT_SHEET category record details about
               the beta-sheets.
;
    _category.id                  struct_sheet
    _category.mandatory_code      no
    _category_key.name          '_struct_sheet.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - simple beta-barrel.

N  O    N  O    N  O    N  O    N  O    N  O
 10--11--12--13--14--15--16--17--18--19--20  strand_a
    N  O    N  O    N  O    N  O    N  O
    /  \    /  \    /  \    /  \    /  \
N  O    N  O    N  O    N  O    N  O    N  O
 30--31--32--33--34--35--36--37--38--39--40  strand_b
    N  O    N  O    N  O    N  O    N  O
    /  \    /  \    /  \    /  \    /  \
N  O    N  O    N  O    N  O    N  O    N  O
 50--51--52--53--54--55--56--57--58--59--60  strand_c
    N  O    N  O    N  O    N  O    N  O
    /  \    /  \    /  \    /  \    /  \
N  O    N  O    N  O    N  O    N  O    N  O
 70--71--72--73--74--75--76--77--78--79--80  strand_d
    N  O    N  O    N  O    N  O    N  O
    /  \    /  \    /  \    /  \    /  \
N  O    N  O    N  O    N  O    N  O    N  O
 90--91--92--93--94--95--96--97--98--99-100  strand_e
    N  O    N  O    N  O    N  O    N  O
    /  \    /  \    /  \    /  \    /  \
N  O    N  O    N  O    N  O    N  O    N  O
110-111-112-113-114-115-116-117-118-119-120  strand_f
    N  O    N  O    N  O    N  O    N  O
    /  \    /  \    /  \    /  \    /  \
N  O    N  O    N  O    N  O    N  O    N  O
130-131-132-133-134-135-136-137-138-139-140  strand_g
     N  O    N  O    N  O    N  O    N  O
   /  \    /  \    /  \    /  \    /  \
N  O    N  O    N  O    N  O    N  O    N  O
150-151-152-153-154-155-156-157-158-159-160  strand_h
     N  O    N  O    N  O    N  O    N  O
   /  \    /  \    /  \    /  \    /  \
;
;
    _struct_sheet.id                sheet_1
    _struct_sheet.type             'beta-barrel'
    _struct_sheet.number_strands    8
    _struct_sheet.details           .
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - five stranded mixed-sense sheet with one two-piece strand.

      N  O    N  O    N  O    N  O
  -10--11--12--13--14--15--16--17--18->  strand_a
  N  O    N  O    N  O    N  O    N  O
  |  |    |  |    |  |    |  |    |  |
  O  N    O  N    O  N    O  N    O  N
<-119-118-117-116-115-114-113-112-111-110-  strand_b
      O  N    O  N    O  N    O  N    O  N
          \  /   \   /   \   /   \   /   \
          O  N    O  N    O  N    O  N    O  N    O  N
         <-41--40--39--38--37--36--35--34--33--32--31--30-  strand_c
              O  N    O  N    O  N    O  N    O  N    O  N
              |  |    |  |    |  |    |  |    |  |    |  |
              N  O    N  O    N  O    N  O    N  O    N  O
   strand_d1  -50--51--52->   -90--91--92--93--95--95--96--97->  strand_d2
                  N  O            N  O    N  O    N  O    N  O
                  |  |    |  |    |  |    |  |    |  |    |  |
                  O  N    O  N    O  N    O  N    O  N    O  N
                 <-80--79--78--77--76--75--74--73--72--71--70-   strand_e
                      O  N    O  N    O  N    O  N    O  N
;
;
    _struct_sheet.id                sheet_2
    _struct_sheet.type             'five stranded, mixed-sense'
    _struct_sheet.number_strands    5
    _struct_sheet.details          'strand_d is in two pieces'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_sheet.details
    _item_description.description
;              A description of special aspects of the beta-sheet.
;
    _item.name                  '_struct_sheet.details'
    _item.category_id             struct_sheet
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__struct_sheet.id
    _item_description.description
;              The value of _struct_sheet.id must uniquely identify a record in
               the STRUCT_SHEET list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_struct_sheet.id'                 struct_sheet           yes
               '_struct_sheet_hbond.sheet_id'     struct_sheet_hbond     yes
               '_struct_sheet_order.sheet_id'     struct_sheet_order     yes
               '_struct_sheet_range.sheet_id'     struct_sheet_range     yes
               '_struct_sheet_topology.sheet_id'  struct_sheet_topology  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_struct_sheet_hbond.sheet_id'     '_struct_sheet.id'
               '_struct_sheet_order.sheet_id'     '_struct_sheet.id'
               '_struct_sheet_range.sheet_id'     '_struct_sheet.id'
               '_struct_sheet_topology.sheet_id'  '_struct_sheet.id'
    _item_type.code               code
     save_

save__struct_sheet.number_strands
    _item_description.description
;            The number of strands in the sheet. If a given range of residues
             bulges out from the strands, it is still counted as one strand.
             If a strand is composed of two different regions of polypeptide,
             it is still counted as one strand, as long as the proper hydrogen-
             bonding connections are made to adjacent strands.
;
    _item.name                  '_struct_sheet.number_strands'
    _item.category_id             struct_sheet
    _item.mandatory_code          no
    _item_type.code               int
     save_

save__struct_sheet.type
    _item_description.description
;              A simple descriptor for the type of the sheet.
;
    _item.name                  '_struct_sheet.type'
    _item.category_id             struct_sheet
    _item.mandatory_code          no
    _item_type.code               text
    loop_
    _item_examples.case          'jelly-roll'
                                 'Rossmann fold'
                                 'beta barrel'
     save_

########################
## STRUCT_SHEET_HBOND ##
########################

save_struct_sheet_hbond
    _category.description
;              Data items in the STRUCT_SHEET_HBOND category record details
               about the hydrogen bonding between residue ranges in a beta-
               sheet. It is necessary to treat hydrogen bonding independently
               of the designation of ranges, because the hydrogen bonding may
               begin in different places for the interactions of a given strand
               with the one preceding it and the one following it in the sheet.
;
    _category.id                  struct_sheet_hbond
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_sheet_hbond.sheet_id'
                                '_struct_sheet_hbond.range_id_1'
                                '_struct_sheet_hbond.range_id_2'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - simple beta-barrel.
;
;
    loop_
    _struct_sheet_hbond.sheet_id
    _struct_sheet_hbond.range_id_1
    _struct_sheet_hbond.range_id_2
    _struct_sheet_hbond.range_1_beg_label_seq_id
    _struct_sheet_hbond.range_1_beg_label_atom_id
    _struct_sheet_hbond.range_2_beg_label_seq_id
    _struct_sheet_hbond.range_2_beg_label_atom_id
    _struct_sheet_hbond.range_1_end_label_seq_id
    _struct_sheet_hbond.range_1_end_label_atom_id
    _struct_sheet_hbond.range_2_end_label_seq_id
    _struct_sheet_hbond.range_2_end_label_atom_id
     sheet_1  strand_a  strand_b   11  N   30  O   19  O   40  N
     sheet_1  strand_b  strand_c   31  N   50  O   39  O   60  N
     sheet_1  strand_c  strand_d   51  N   70  O   59  O   80  N
     sheet_1  strand_d  strand_e   71  N   90  O   89  O  100  N
     sheet_1  strand_e  strand_f   91  N  110  O   99  O  120  N
     sheet_1  strand_f  strand_g  111  N  130  O  119  O  140  N
     sheet_1  strand_g  strand_h  131  N  150  O  139  O  160  N
     sheet_1  strand_h  strand_a  151  N   10  O  159  O  180  N
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - five stranded mixed-sense sheet with one two-piece strand.
;
;
    loop_
    _struct_sheet_hbond.sheet_id
    _struct_sheet_hbond.range_id_1
    _struct_sheet_hbond.range_id_2
    _struct_sheet_hbond.range_1_beg_label_seq_id
    _struct_sheet_hbond.range_1_beg_label_atom_id
    _struct_sheet_hbond.range_2_beg_label_seq_id
    _struct_sheet_hbond.range_2_beg_label_atom_id
    _struct_sheet_hbond.range_1_end_label_seq_id
    _struct_sheet_hbond.range_1_end_label_atom_id
    _struct_sheet_hbond.range_2_end_label_seq_id
    _struct_sheet_hbond.range_2_end_label_atom_id
     sheet_2  strand_a   strand_b    20  N  119  O  18  O  111  N
     sheet_2  strand_b   strand_c   110  N   33  O 118  N   41  O
     sheet_2  strand_c   strand_d1   38  N   52  O  40  O   50  N
     sheet_2  strand_c   strand_d2   30  N   96  O  36  O   90  N
     sheet_2  strand_d1  strand_e    51  N   80  O  51  O   80  N
     sheet_2  strand_d2  strand_e    91  N   76  O  97  O   70  N
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_sheet_hbond.range_1_beg_label_atom_id
    _item_description.description
;              A component of the identifier for the residue for the first
               partner of the first hydrogen bond between two residue ranges
               in a sheet.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_1_beg_label_atom_id'
    _item.mandatory_code          yes
     save_

save__struct_sheet_hbond.range_1_beg_label_seq_id
    _item_description.description
;              A component of the identifier for the residue for the first
               partner of the first hydrogen bond between two residue ranges
               in a sheet.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_1_beg_label_seq_id'
    _item.mandatory_code          yes
     save_

save__struct_sheet_hbond.range_1_end_label_atom_id
    _item_description.description
;              A component of the identifier for the residue for the first
               partner of the last hydrogen bond between two residue ranges in
               a sheet.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_1_end_label_atom_id'
    _item.mandatory_code          yes
     save_

save__struct_sheet_hbond.range_1_end_label_seq_id
    _item_description.description
;              A component of the identifier for the residue for the first
               partner of the last hydrogen bond between two residue ranges in
               a sheet.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_1_end_label_seq_id'
    _item.mandatory_code          yes
     save_

save__struct_sheet_hbond.range_2_beg_label_atom_id
    _item_description.description
;              A component of the identifier for the residue for the second
               partner of the first hydrogen bond between two residue ranges
               in a sheet.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_2_beg_label_atom_id'
    _item.mandatory_code          yes
     save_

save__struct_sheet_hbond.range_2_beg_label_seq_id
    _item_description.description
;              A component of the identifier for the residue for the second
               partner of the first hydrogen bond between two residue ranges
               in a sheet.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_2_beg_label_seq_id'
    _item.mandatory_code          yes
     save_

save__struct_sheet_hbond.range_2_end_label_atom_id
    _item_description.description
;              A component of the identifier for the residue for the second
               partner of the last hydrogen bond between two residue ranges in
               a sheet.

               This data item is a pointer to _atom_site.label_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_2_end_label_atom_id'
    _item.mandatory_code          yes
     save_

save__struct_sheet_hbond.range_2_end_label_seq_id
    _item_description.description
;              A component of the identifier for the residue for the second
               partner of the last hydrogen bond between two residue ranges in
               a sheet.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_2_end_label_seq_id'
    _item.mandatory_code          yes
     save_

save__struct_sheet_hbond.range_1_beg_auth_atom_id
    _item_description.description
;              A component of the identifier for the residue for the first
               partner of the first hydrogen bond between two residue ranges
               in a sheet.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_1_beg_auth_atom_id'
    _item.mandatory_code          no
     save_

save__struct_sheet_hbond.range_1_beg_auth_seq_id
    _item_description.description
;              A component of the identifier for the residue for the first
               partner of the first hydrogen bond between two residue ranges
               in a sheet.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_1_beg_auth_seq_id'
    _item.mandatory_code          no
     save_

save__struct_sheet_hbond.range_1_end_auth_atom_id
    _item_description.description
;              A component of the identifier for the residue for the first
               partner of the last hydrogen bond between two residue ranges in
               a sheet.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_1_end_auth_atom_id'
    _item.mandatory_code          no
     save_

save__struct_sheet_hbond.range_1_end_auth_seq_id
    _item_description.description
;              A component of the identifier for the residue for the first
               partner of the last hydrogen bond between two residue ranges in
               a sheet.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_1_end_auth_seq_id'
    _item.mandatory_code          no
     save_

save__struct_sheet_hbond.range_2_beg_auth_atom_id
    _item_description.description
;              A component of the identifier for the residue for the second
               partner of the first hydrogen bond between two residue ranges
               in a sheet.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_2_beg_auth_atom_id'
    _item.mandatory_code          no
     save_

save__struct_sheet_hbond.range_2_beg_auth_seq_id
    _item_description.description
;              A component of the identifier for the residue for the second
               partner of the first hydrogen bond between two residue ranges
               in a sheet.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_2_beg_auth_seq_id'
    _item.mandatory_code          no
     save_

save__struct_sheet_hbond.range_2_end_auth_atom_id
    _item_description.description
;              A component of the identifier for the residue for the second
               partner of the last hydrogen bond between two residue ranges in
               a sheet.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_2_end_auth_atom_id'
    _item.mandatory_code          no
     save_

save__struct_sheet_hbond.range_2_end_auth_seq_id
    _item_description.description
;              A component of the identifier for the residue for the second
               partner of the last hydrogen bond between two residue ranges in
               a sheet.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_hbond.range_2_end_auth_seq_id'
    _item.mandatory_code          no
     save_

save__struct_sheet_hbond.range_id_1
    _item_description.description
;              This data item is a pointer to _struct_sheet_range.id in
               the STRUCT_SHEET_RANGE category.
;
    _item.name                  '_struct_sheet_hbond.range_id_1'
    _item.mandatory_code          yes
     save_

save__struct_sheet_hbond.range_id_2
    _item_description.description
;              This data item is a pointer to _struct_sheet_range.id in
               the STRUCT_SHEET_RANGE category.
;
    _item.name                  '_struct_sheet_hbond.range_id_2'
    _item.mandatory_code          yes
     save_

save__struct_sheet_hbond.sheet_id
    _item_description.description
;              This data item is a pointer to _struct_sheet.id in the
               STRUCT_SHEET category.
;
    _item.name                  '_struct_sheet_hbond.sheet_id'
    _item.mandatory_code          yes
     save_

########################
## STRUCT_SHEET_ORDER ##
########################

save_struct_sheet_order
    _category.description
;              Data items in the STRUCT_SHEET_ORDER category record details
               about the order of the residue ranges that form a beta-sheet.
               All order links are pairwise and the specified pairs are
               assumed to be adjacent to one another in the sheet. These data
               items are an alternative to the STRUCT_SHEET_TOPOLOGY data
               items and they allow all manner of sheets to be described.
;
    _category.id                  struct_sheet_order
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_sheet_order.sheet_id'
                                '_struct_sheet_order.range_id_1'
                                '_struct_sheet_order.range_id_2'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - simple beta-barrel.
;
;
    loop_
    _struct_sheet_order.sheet_id
    _struct_sheet_order.range_id_1
    _struct_sheet_order.range_id_2
    _struct_sheet_order.offset
    _struct_sheet_order.sense
     sheet_1  strand_a  strand_b  +1  parallel
     sheet_1  strand_b  strand_c  +1  parallel
     sheet_1  strand_c  strand_d  +1  parallel
     sheet_1  strand_d  strand_e  +1  parallel
     sheet_1  strand_e  strand_f  +1  parallel
     sheet_1  strand_f  strand_g  +1  parallel
     sheet_1  strand_g  strand_h  +1  parallel
     sheet_1  strand_h  strand_a  +1  parallel
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - five stranded mixed-sense sheet with one two-piece strand.
;
;
    loop_
    _struct_sheet_order.sheet_id
    _struct_sheet_order.range_id_1
    _struct_sheet_order.range_id_2
    _struct_sheet_order.offset
    _struct_sheet_order.sense
     sheet_2  strand_a   strand_b    +1 anti-parallel
     sheet_2  strand_b   strand_c    +1 parallel
     sheet_2  strand_c   strand_d1   +1 anti-parallel
     sheet_2  strand_c   strand_d2   +1 anti-parallel
     sheet_2  strand_d1  strand_e    +1 anti-parallel
     sheet_2  strand_d2  strand_e    +1 anti-parallel
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_sheet_order.offset
    _item_description.description
;              Designates the relative position in the sheet, plus or minus, of
               the second residue range to the first.
;
    _item.name                  '_struct_sheet_order.offset'
    _item.category_id             struct_sheet_order
    _item.mandatory_code          no
    _item_type.code               int
     save_

save__struct_sheet_order.range_id_1
    _item_description.description
;              This data item is a pointer to _struct_sheet_range.id in
               the STRUCT_SHEET_RANGE category.
;
    _item.name                  '_struct_sheet_order.range_id_1'
    _item.mandatory_code          yes
     save_

save__struct_sheet_order.range_id_2
    _item_description.description
;              This data item is a pointer to _struct_sheet_range.id in
               the STRUCT_SHEET_RANGE category.
;
    _item.name                  '_struct_sheet_order.range_id_2'
    _item.mandatory_code          yes
     save_

save__struct_sheet_order.sense
    _item_description.description
;              A flag to indicate whether the two designated residue ranges are
               parallel or antiparallel to one another.
;
    _item.name                  '_struct_sheet_order.sense'
    _item.category_id             struct_sheet_order
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value      'parallel'
                                 'anti-parallel'
     save_

save__struct_sheet_order.sheet_id
    _item_description.description
;              This data item is a pointer to _struct_sheet.id in the
               STRUCT_SHEET category.
;
    _item.name                  '_struct_sheet_order.sheet_id'
    _item.mandatory_code          yes
     save_

########################
## STRUCT_SHEET_RANGE ##
########################

save_struct_sheet_range
    _category.description
;              Data items in the STRUCT_SHEET_RANGE category record details
               about the residue ranges that form a beta-sheet. Residues are
               included in a range if they made beta-sheet-type hydrogen-bonding
               interactions with at least one adjacent strand and if there are
               at least two residues in the range.
;
    _category.id                  struct_sheet_range
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_sheet_range.sheet_id'
                                '_struct_sheet_range.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - simple beta-barrel.
;
;
    loop_
    _struct_sheet_range.sheet_id
    _struct_sheet_range.id
    _struct_sheet_range.beg_label_comp_id
    _struct_sheet_range.beg_label_asym_id
    _struct_sheet_range.beg_label_seq_id
    _struct_sheet_range.end_label_comp_id
    _struct_sheet_range.end_label_asym_id
    _struct_sheet_range.end_label_seq_id
    _struct_sheet_range.symmetry
     sheet_1  strand_a  ala  A   20  ala  A   30  1_555
     sheet_1  strand_b  ala  A   40  ala  A   50  1_555
     sheet_1  strand_c  ala  A   60  ala  A   70  1_555
     sheet_1  strand_d  ala  A   80  ala  A   90  1_555
     sheet_1  strand_e  ala  A  100  ala  A  110  1_555
     sheet_1  strand_f  ala  A  120  ala  A  130  1_555
     sheet_1  strand_g  ala  A  140  ala  A  150  1_555
     sheet_1  strand_h  ala  A  160  ala  A  170  1_555
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - five stranded mixed-sense sheet with one two-piece strand.
;
;
    loop_
    _struct_sheet_range.sheet_id
    _struct_sheet_range.id
    _struct_sheet_range.beg_label_comp_id
    _struct_sheet_range.beg_label_asym_id
    _struct_sheet_range.beg_label_seq_id
    _struct_sheet_range.end_label_comp_id
    _struct_sheet_range.end_label_asym_id
    _struct_sheet_range.end_label_seq_id
    _struct_sheet_range.symmetry
     sheet_2  strand_a   ala  A  10  ala  A  18  1_555
     sheet_2  strand_b   ala  A 110  ala  A 119  1_555
     sheet_2  strand_c   ala  A  30  ala  A  41  1_555
     sheet_2  strand_d1  ala  A  50  ala  A  52  1_555
     sheet_2  strand_d2  ala  A  90  ala  A  97  1_555
     sheet_2  strand_e   ala  A  70  ala  A  80  1_555
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_sheet_range.beg_label_asym_id
    _item_description.description
;              A component of the identifier for the residue at which the
               beta-sheet range begins.

               This data item is a pointer to _struct_asym.id in the
               STRUCT_ASYM category.
;
    _item.name                  '_struct_sheet_range.beg_label_asym_id'
    _item.mandatory_code          yes
     save_

save__struct_sheet_range.beg_label_comp_id
    _item_description.description
;              A component of the identifier for the residue at which the
               beta-sheet range begins.

               This data item is a pointer to _chem_comp.id in the CHEM_COMP
               category.
;
    _item.name                  '_struct_sheet_range.beg_label_comp_id'
    _item.mandatory_code          yes
     save_

save__struct_sheet_range.beg_label_seq_id
    _item_description.description
;              A component of the identifier for the residue at which the
               beta-sheet range begins.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_range.beg_label_seq_id'
    _item.mandatory_code          yes
     save_

save__struct_sheet_range.end_label_asym_id
    _item_description.description
;              A component of the identifier for the residue at which the
               beta-sheet range ends.

               This data item is a pointer to _struct_asym.id in the
               STRUCT_ASYM category.
;
    _item.name                  '_struct_sheet_range.end_label_asym_id'
    _item.mandatory_code          yes
     save_

save__struct_sheet_range.end_label_comp_id
    _item_description.description
;              A component of the identifier for the residue at which the
               beta-sheet range ends.

               This data item is a pointer to _chem_comp.id in the CHEM_COMP
               category.
;
    _item.name                  '_struct_sheet_range.end_label_comp_id'
    _item.mandatory_code          yes
     save_

save__struct_sheet_range.end_label_seq_id
    _item_description.description
;              A component of the identifier for the residue at which the
               beta-sheet range ends.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_range.end_label_seq_id'
    _item.mandatory_code          yes
     save_

save__struct_sheet_range.beg_auth_asym_id
    _item_description.description
;              A component of the identifier for the residue at which the
               beta-sheet range begins.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_range.beg_auth_asym_id'
    _item.mandatory_code          no
     save_

save__struct_sheet_range.beg_auth_comp_id
    _item_description.description
;              A component of the identifier for the residue at which the
               beta-sheet range begins.

               This data item is a pointer to _atom_site.auth_comp_id in
               the ATOM_SITE category.
;
    _item.name                  '_struct_sheet_range.beg_auth_comp_id'
    _item.mandatory_code          no
     save_

save__struct_sheet_range.beg_auth_seq_id
    _item_description.description
;              A component of the identifier for the residue at which the
               beta-sheet range begins.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_range.beg_auth_seq_id'
    _item.mandatory_code          no
     save_

save__struct_sheet_range.end_auth_asym_id
    _item_description.description
;              A component of the identifier for the residue at which the
               beta-sheet range ends.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.

;
    _item.name                  '_struct_sheet_range.end_auth_asym_id'
    _item.mandatory_code          no
     save_

save__struct_sheet_range.end_auth_comp_id
    _item_description.description
;              A component of the identifier for the residue at which the
               beta-sheet range ends.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_range.end_auth_comp_id'
    _item.mandatory_code          no
     save_

save__struct_sheet_range.end_auth_seq_id
    _item_description.description
;              A component of the identifier for the residue at which the
               beta-sheet range ends.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_sheet_range.end_auth_seq_id'
    _item.mandatory_code          no
     save_

save__struct_sheet_range.id
    _item_description.description
;              The value of _struct_sheet_range.id must uniquely identify a
               range in a given sheet in the STRUCT_SHEET_RANGE list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_struct_sheet_range.id'             struct_sheet_range     yes
               '_struct_sheet_hbond.range_id_1'     struct_sheet_hbond     yes
               '_struct_sheet_hbond.range_id_2'     struct_sheet_hbond     yes
               '_struct_sheet_order.range_id_1'     struct_sheet_order     yes
               '_struct_sheet_order.range_id_2'     struct_sheet_order     yes
               '_struct_sheet_topology.range_id_1'  struct_sheet_topology  yes
               '_struct_sheet_topology.range_id_2'  struct_sheet_topology  yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_struct_sheet_hbond.range_id_1'     '_struct_sheet_range.id'
               '_struct_sheet_hbond.range_id_2'     '_struct_sheet_range.id'
               '_struct_sheet_order.range_id_1'     '_struct_sheet_range.id'
               '_struct_sheet_order.range_id_2'     '_struct_sheet_range.id'
               '_struct_sheet_topology.range_id_1'  '_struct_sheet_range.id'
               '_struct_sheet_topology.range_id_2'  '_struct_sheet_range.id'
    _item_type.code               code
     save_

save__struct_sheet_range.sheet_id
    _item_description.description
;              This data item is a pointer to _struct_sheet.id in the
               STRUCT_SHEET category.
;
    _item.name                  '_struct_sheet_range.sheet_id'
    _item.mandatory_code          yes
     save_

save__struct_sheet_range.symmetry
    _item_description.description
;              Describes the symmetry operation that should be applied to the
               residues delimited by the start and end designators in
               order to generate the appropriate strand in this sheet.
;
    _item.name                  '_struct_sheet_range.symmetry'
    _item.category_id             struct_sheet_range
    _item.mandatory_code          no
#    _item_default.value           1_555
    _item_type.code               symop
     save_

###########################
## STRUCT_SHEET_TOPOLOGY ##
###########################

save_struct_sheet_topology
    _category.description
;              Data items in the STRUCT_SHEET_TOPOLOGY category record details
               about the topology of the residue ranges that form a beta-sheet.
               All topology links are pairwise and the specified pairs are
               assumed to be successive in the amino-acid sequence. These
               data items are useful in describing various simple and complex
               folds, but they become inadequate when the strands in the sheet
               come from more than one chain. The
               STRUCT_SHEET_ORDER data items can be used to describe
               single- and multiple-chain-containing sheets.
;
    _category.id                  struct_sheet_topology
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_sheet_topology.sheet_id'
                                '_struct_sheet_topology.range_id_1'
                                '_struct_sheet_topology.range_id_2'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - simple beta-barrel.
;
;
    loop_
    _struct_sheet_topology.sheet_id
    _struct_sheet_topology.range_id_1
    _struct_sheet_topology.range_id_2
    _struct_sheet_topology.offset
    _struct_sheet_topology.sense
     sheet_1  strand_a  strand_b  +1  parallel
     sheet_1  strand_b  strand_c  +1  parallel
     sheet_1  strand_c  strand_d  +1  parallel
     sheet_1  strand_d  strand_e  +1  parallel
     sheet_1  strand_e  strand_f  +1  parallel
     sheet_1  strand_f  strand_g  +1  parallel
     sheet_1  strand_g  strand_h  +1  parallel
     sheet_1  strand_h  strand_a  +1  parallel
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 2 - five stranded mixed-sense sheet with one two-piece strand.
;
;
    loop_
    _struct_sheet_topology.sheet_id
    _struct_sheet_topology.range_id_1
    _struct_sheet_topology.range_id_2
    _struct_sheet_topology.offset
    _struct_sheet_topology.sense
     sheet_2  strand_a   strand_c    +2 anti-parallel
     sheet_2  strand_c   strand_d1   +1 anti-parallel
     sheet_2  strand_d1  strand_e    +1 anti-parallel
     sheet_2  strand_e   strand_d2   -1 anti-parallel
     sheet_2  strand_d2  strand_b    -2 anti-parallel
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_sheet_topology.offset
    _item_description.description
;              Designates the relative position in the sheet, plus or minus, of
               the second residue range to the first.
;
    _item.name                  '_struct_sheet_topology.offset'
    _item.category_id             struct_sheet_topology
    _item.mandatory_code          no
    _item_type.code               int
     save_

save__struct_sheet_topology.range_id_1
    _item_description.description
;              This data item is a pointer to _struct_sheet_range.id in
               the STRUCT_SHEET_RANGE category.
;
    _item.name                  '_struct_sheet_topology.range_id_1'
    _item.mandatory_code          yes
     save_

save__struct_sheet_topology.range_id_2
    _item_description.description
;              This data item is a pointer to _struct_sheet_range.id in
               the STRUCT_SHEET_RANGE category.
;
    _item.name                  '_struct_sheet_topology.range_id_2'
    _item.mandatory_code          yes
     save_

save__struct_sheet_topology.sense
    _item_description.description
;              A flag to indicate whether the two designated residue ranges are
               parallel or antiparallel to one another.
;
    _item.name                  '_struct_sheet_topology.sense'
    _item.category_id             struct_sheet_topology
    _item.mandatory_code          no
    _item_type.code               ucode
    loop_
    _item_enumeration.value      'parallel'
                                 'anti-parallel'
     save_

save__struct_sheet_topology.sheet_id
    _item_description.description
;              This data item is a pointer to _struct_sheet.id in the
               STRUCT_SHEET category.
;
    _item.name                  '_struct_sheet_topology.sheet_id'
    _item.mandatory_code          yes
     save_

#################
## STRUCT_SITE ##
#################

save_struct_site
    _category.description
;              Data items in the STRUCT_SITE category record details about
               portions of the structure that contribute to structurally
               relevant sites (e.g. active sites, substrate-binding subsites,
               metal-coordination sites).
;
    _category.id                  struct_site
    _category.mandatory_code      no
    _category_key.name          '_struct_site.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _struct_site.id
    _struct_site.details
     'P2 site C'
    ; residues with a contact < 3.7 \%A to an atom in the P2
      moiety of the inhibitor in the conformation with
      _struct_asym.id = C
    ;
     'P2 site D'
    ; residues with a contact < 3.7 \%A to an atom in the P1
      moiety of the inhibitor in the conformation with
      _struct_asym.id = D)
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_site.details
    _item_description.description
;              A description of special aspects of the site.
;
    _item.name                  '_struct_site.details'
    _item.category_id             struct_site
    _item.mandatory_code          no
    _item_type.code               text
     save_

save__struct_site.id
    _item_description.description
;              The value of _struct_site.id must uniquely identify a record in
               the STRUCT_SITE list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    loop_
    _item.name
    _item.category_id
    _item.mandatory_code
               '_struct_site.id'                struct_site           yes
               '_struct_site_gen.site_id'       struct_site_gen       yes
               '_struct_site_keywords.site_id'  struct_site_keywords  yes
               '_struct_site_view.site_id'      struct_site_view      yes
    loop_
    _item_linked.child_name
    _item_linked.parent_name
               '_struct_site_gen.site_id'       '_struct_site.id'
               '_struct_site_keywords.site_id'  '_struct_site.id'
               '_struct_site_view.site_id'      '_struct_site.id'
    _item_type.code               line
     save_

#####################
## STRUCT_SITE_GEN ##
#####################

save_struct_site_gen
    _category.description
;              Data items in the STRUCT_SITE_GEN category record details about
               the generation of portions of the structure that contribute to
               structurally relevant sites.
;
    _category.id                  struct_site_gen
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_site_gen.id'
                                '_struct_site_gen.site_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _struct_site_gen.id
    _struct_site_gen.site_id
    _struct_site_gen.label_comp_id
    _struct_site_gen.label_asym_id
    _struct_site_gen.label_seq_id
    _struct_site_gen.symmetry
    _struct_site_gen.details
      1  1  VAL  A   32  1_555  .
      2  1  ILE  A   47  1_555  .
      3  1  VAL  A   82  1_555  .
      4  1  ILE  A   84  1_555  .
      5  2  VAL  B  232  1_555  .
      6  2  ILE  B  247  1_555  .
      7  2  VAL  B  282  1_555  .
      8  2  ILE  B  284  1_555  .
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_site_gen.details
    _item_description.description
;              A description of special aspects of the symmetry generation of
               this portion of the structural site.
;
    _item.name                  '_struct_site_gen.details'
    _item.category_id             struct_site_gen
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 The zinc atom lies on a special position;
                                  application of symmetry elements to generate
                                  the insulin hexamer will generate excess zinc
                                  atoms, which must be removed by hand.
;
     save_

save__struct_site_gen.id
    _item_description.description
;              The value of _struct_site_gen.id must uniquely identify a record
               in the STRUCT_SITE_GEN list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    _item.name                  '_struct_site_gen.id'
    _item.category_id             struct_site_gen
    _item.mandatory_code          yes
    _item_type.code               line
     save_

save__struct_site_gen.label_alt_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _atom_sites_alt.id in the
               ATOM_SITES_ALT category.
;
    _item.name                  '_struct_site_gen.label_alt_id'
    _item.mandatory_code          yes
     save_

save__struct_site_gen.label_asym_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _atom_site.label_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_site_gen.label_asym_id'
    _item.mandatory_code          yes
     save_

save__struct_site_gen.label_atom_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _chem_comp_atom.atom_id in the
               CHEM_COMP_ATOM category.
;
    _item.name                  '_struct_site_gen.label_atom_id'
    _item.mandatory_code          yes
     save_

save__struct_site_gen.label_comp_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _atom_site.label_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_site_gen.label_comp_id'
    _item.mandatory_code          yes
     save_

save__struct_site_gen.label_seq_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _atom_site.label_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_site_gen.label_seq_id'
    _item.mandatory_code          yes
     save_

save__struct_site_gen.auth_asym_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _atom_site.auth_asym_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_site_gen.auth_asym_id'
    _item.mandatory_code          no
     save_

save__struct_site_gen.auth_atom_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _atom_site.auth_atom_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_site_gen.auth_atom_id'
    _item.mandatory_code          no
     save_

save__struct_site_gen.auth_comp_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _atom_site.auth_comp_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_site_gen.auth_comp_id'
    _item.mandatory_code          no
     save_

save__struct_site_gen.auth_seq_id
    _item_description.description
;              A component of the identifier for participants in the site.

               This data item is a pointer to _atom_site.auth_seq_id in the
               ATOM_SITE category.
;
    _item.name                  '_struct_site_gen.auth_seq_id'
    _item.mandatory_code          no
     save_

save__struct_site_gen.site_id
    _item_description.description
;              This data item is a pointer to _struct_site.id in the STRUCT_SITE
               category.
;
    _item.name                  '_struct_site_gen.site_id'
    _item.mandatory_code          yes
     save_

save__struct_site_gen.symmetry
    _item_description.description
;              Describes the symmetry operation that should be applied to the
               atom set specified by _struct_site_gen.label* to generate a
               portion of the site.
;
    _item.name                  '_struct_site_gen.symmetry'
    _item.category_id             struct_site_gen
    _item.mandatory_code          no
#    _item_default.value           1_555
    _item_type.code               symop
    loop_
    _item_examples.case
    _item_examples.detail         .      'no symmetry or translation to site'
                                  4      '4th symmetry operation applied'
                                  7_645  '7th symm. posn.; +a on x; -b on y'
     save_

##########################
## STRUCT_SITE_KEYWORDS ##
##########################

save_struct_site_keywords
    _category.description
;              Data items in the STRUCT_SITE_KEYWORDS category record
               keywords describing the site.
;
    _category.id                  struct_site_keywords
    _category.mandatory_code      no
    loop_
    _category_key.name          '_struct_site_keywords.site_id'
                                '_struct_site_keywords.text'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _struct_site_keywords.site_id
    _struct_site_keywords.text
     'P2 site C'  'binding site'
     'P2 site C'  'binding pocket'
     'P2 site C'  'P2 site'
     'P2 site C'  'P2 pocket'
     'P2 site D'  'binding site'
     'P2 site D'  'binding pocket'
     'P2 site D'  'P2 site'
     'P2 site D'  'P2 pocket'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_site_keywords.site_id
    _item_description.description
;              This data item is a pointer to _struct_site.id in the STRUCT_SITE
               category.
;
    _item.name                  '_struct_site_keywords.site_id'
    _item.mandatory_code          yes
     save_

save__struct_site_keywords.text
    _item_description.description
;              Keywords describing this site.
;
    _item.name                  '_struct_site_keywords.text'
    _item.category_id             struct_site_keywords
    _item.mandatory_code          yes
    _item_type.code               text
    loop_
    _item_examples.case          'active site'
                                 'binding pocket'
                                 'Ca coordination'
     save_

######################
## STRUCT_SITE_VIEW ##
######################

save_struct_site_view
    _category.description
;              Data items in the STRUCT_SITE_VIEW category record details
               about how to draw and annotate an informative view of the
               site.
;
    _category.id                  struct_site_view
    _category.mandatory_code      no
    _category_key.name          '_struct_site_view.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'struct_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on NDB structure GDL001 by Coll, Aymami,
                Van Der Marel, Van Boom, Rich & Wang
                [Biochemistry (1989), 28, 310-320].
;
;
    _struct_site_view.id                    1
    _struct_site_view.rot_matrix[1][1]      0.132
    _struct_site_view.rot_matrix[1][2]      0.922
    _struct_site_view.rot_matrix[1][3]     -0.363
    _struct_site_view.rot_matrix[2][1]      0.131
    _struct_site_view.rot_matrix[2][2]     -0.380
    _struct_site_view.rot_matrix[2][3]     -0.916
    _struct_site_view.rot_matrix[3][1]     -0.982
    _struct_site_view.rot_matrix[3][2]      0.073
    _struct_site_view.rot_matrix[3][3]     -0.172
    _struct_site_view.details
    ; This view highlights the site of ATAT-Netropsin
      interaction.
    ;
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__struct_site_view.details
    _item_description.description
;              A description of special aspects of this view of the
               site. This data item can be used as a figure legend.
;
    _item.name                  '_struct_site_view.details'
    _item.category_id             struct_site_view
    _item.mandatory_code          no
    _item_type.code               text
    _item_examples.case
;                                 The active site has been oriented with the
                                  specificity pocket on the right and the active
                                  site machinery on the left.
;
     save_

save__struct_site_view.id
    _item_description.description
;              The value of _struct_site_view.id must uniquely identify a
               record in the STRUCT_SITE_VIEW list.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    _item.name                  '_struct_site_view.id'
    _item.category_id             struct_site_view
    _item.mandatory_code          yes
    _item_type.code               line
    loop_
    _item_examples.case          'Figure 1'
                                 'unliganded enzyme'
                                 'view down enzyme active site'
     save_

save__struct_site_view.rot_matrix[1][1]
    _item_description.description
;              The [1][1] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_SITE_GEN category to an orientation useful for
               visualizing the site. The conventions used in the rotation are
               described in _struct_site_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_site_view.rot_matrix[1][1]'
    _item.category_id             struct_site_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_site_view.rot_matrix[1][2]
    _item_description.description
;              The [1][2] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_SITE_GEN category to an orientation useful for
               visualizing the site. The conventions used in the rotation are
               described in _struct_site_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_site_view.rot_matrix[1][2]'
    _item.category_id             struct_site_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_site_view.rot_matrix[1][3]
    _item_description.description
;              The [1][3] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_SITE_GEN category to an orientation useful for
               visualizing the site. The conventions used in the rotation are
               described in _struct_site_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_site_view.rot_matrix[1][3]'
    _item.category_id             struct_site_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_site_view.rot_matrix[2][1]
    _item_description.description
;              The [2][1] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_SITE_GEN category to an orientation useful for
               visualizing the site. The conventions used in the rotation are
               described in _struct_site_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_site_view.rot_matrix[2][1]'
    _item.category_id             struct_site_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_site_view.rot_matrix[2][2]
    _item_description.description
;              The [2][2] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_SITE_GEN category to an orientation useful for
               visualizing the site. The conventions used in the rotation are
               described in _struct_site_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_site_view.rot_matrix[2][2]'
    _item.category_id             struct_site_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_site_view.rot_matrix[2][3]
    _item_description.description
;              The [2][3] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_SITE_GEN category to an orientation useful for
               visualizing the site. The conventions used in the rotation are
               described in _struct_site_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_site_view.rot_matrix[2][3]'
    _item.category_id             struct_site_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_site_view.rot_matrix[3][1]
    _item_description.description
;              The [3][1] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_SITE_GEN category to an orientation useful for
               visualizing the site. The conventions used in the rotation are
               described in _struct_site_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_site_view.rot_matrix[3][1]'
    _item.category_id             struct_site_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_site_view.rot_matrix[3][2]
    _item_description.description
;              The [3][2] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_SITE_GEN category to an orientation useful for
               visualizing the site. The conventions used in the rotation are
               described in _struct_site_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_site_view.rot_matrix[3][2]'
    _item.category_id             struct_site_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_site_view.rot_matrix[3][3]
    _item_description.description
;              The [3][3] element of the matrix used to rotate the subset of the
               Cartesian coordinates in the ATOM_SITE category identified in the
               STRUCT_SITE_GEN category an orientation useful for visualizing
               the site. The conventions used in the rotation are
               described in _struct_site_view.details.

               |x'|                         |11 12 13| |x|
               |y'|~reoriented Cartesian~ = |21 22 23| |y|~Cartesian~
               |z'|                         |31 32 33| |z|
;
    _item.name                  '_struct_site_view.rot_matrix[3][3]'
    _item.category_id             struct_site_view
    _item.mandatory_code          no
    _item_sub_category.id         matrix
    _item_type.code               float
     save_

save__struct_site_view.site_id
    _item_description.description
;              This data item is a pointer to _struct_site.id in the STRUCT_SITE
               category.
;
    _item.name                  '_struct_site_view.site_id'
    _item.mandatory_code          yes
     save_

##############
## SYMMETRY ##
##############

save_symmetry
    _category.description
;              Data items in the SYMMETRY category record details about the
               space-group symmetry.
;
    _category.id                  symmetry
    _category.mandatory_code      no
    _category_key.name          '_symmetry.entry_id'
    loop_
    _category_group.id           'inclusive_group'
                                 'symmetry_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    _symmetry.entry_id                     '5HVP'
    _symmetry.cell_setting                 orthorhombic
    _symmetry.Int_Tables_number            18
    _symmetry.space_group_name_H-M         'P 21 21 2'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__symmetry.entry_id
    _item_description.description
;              This data item is a pointer to _entry.id in the ENTRY category.
;
    _item.name                  '_symmetry.entry_id'
    _item.mandatory_code          yes
     save_

save__symmetry.cell_setting
    _item_description.description
;              The cell settings for this space-group symmetry.
;
    _item.name                  '_symmetry.cell_setting'
    _item.category_id             symmetry
    _item.mandatory_code          no
    _item_aliases.alias_name    '_symmetry_cell_setting'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               ucode
    loop_
    _item_enumeration.value       triclinic
                                  monoclinic
                                  orthorhombic
                                  tetragonal
                                  rhombohedral
                                  trigonal
                                  hexagonal
                                  cubic
     save_

save__symmetry.Int_Tables_number
    _item_description.description
;              Space-group number from International Tables for Crystallography
               Vol. A (2002).
;
    _item.name                  '_symmetry.Int_Tables_number'
    _item.category_id             symmetry
    _item.mandatory_code          no
    _item_aliases.alias_name    '_symmetry_Int_Tables_number'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               int
     save_

save__symmetry.space_group_name_Hall
    _item_description.description
;              Space-group symbol as described by Hall (1981). This symbol
               gives the space-group setting explicitly. Leave spaces between
               the separate components of the symbol.

               Ref: Hall, S. R. (1981). Acta Cryst. A37, 517-525; erratum
               (1981) A37, 921.
;
    _item.name                  '_symmetry.space_group_name_Hall'
    _item.category_id             symmetry
    _item.mandatory_code          no
    _item_aliases.alias_name    '_symmetry_space_group_name_Hall'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          '-P 2ac 2n'
                                 '-R 3 2"'
                                 'P 61 2 2 (0 0 -1)'
     save_

save__symmetry.space_group_name_H-M
    _item_description.description
;              Hermann-Mauguin space-group symbol. Note that the
               Hermann-Mauguin symbol does not necessarily contain complete
               information about the symmetry and the space-group origin. If
               used, always supply the FULL symbol from International Tables
               for Crystallography Vol. A (2002) and indicate the origin and
               the setting if it is not implicit. If there is any doubt that
               the equivalent positions can be uniquely deduced from this
               symbol, specify the  _symmetry_equiv.pos_as_xyz or
               _symmetry.space_group_name_Hall  data items as well. Leave
               spaces between symbols referring to
               different axes.
;
    _item.name                  '_symmetry.space_group_name_H-M'
    _item.category_id             symmetry
    _item.mandatory_code          no
    _item_aliases.alias_name    '_symmetry_space_group_name_H-M'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    loop_
    _item_examples.case          'P 1 21/m 1'
                                 'P 2/n 2/n 2/n (origin at -1)'
                                 'R -3 2/m'
     save_

####################
## SYMMETRY_EQUIV ##
####################

save_symmetry_equiv
    _category.description
;              Data items in the SYMMETRY_EQUIV category list the
               symmetry-equivalent positions for the space group.
;
    _category.id                  symmetry_equiv
    _category.mandatory_code      no
    _category_key.name          '_symmetry_equiv.id'
    loop_
    _category_group.id           'inclusive_group'
                                 'symmetry_group'
    loop_
    _category_examples.detail
    _category_examples.case
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    Example 1 - based on PDB entry 5HVP and laboratory records for the
                structure corresponding to PDB entry 5HVP.
;
;
    loop_
    _symmetry_equiv.id
    _symmetry_equiv.pos_as_xyz
      1  '+x,+y,+z'
      2  '-x,-y,z'
      3  '1/2+x,1/2-y,-z'
      4  '1/2-x,1/2+y,-z'
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     save_

save__symmetry_equiv.id
    _item_description.description
;              The value of _symmetry_equiv.id must uniquely identify
               a record in the SYMMETRY_EQUIV category.

               Note that this item need not be a number; it can be any unique
               identifier.
;
    _item.name                  '_symmetry_equiv.id'
    _item.category_id             symmetry_equiv
    _item.mandatory_code          yes
    _item_aliases.alias_name    '_symmetry_equiv_pos_site_id'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               code
     save_

save__symmetry_equiv.pos_as_xyz
    _item_description.description
;              Symmetry-equivalent position in the 'xyz' representation. Except
               for the space group P1, these data will be repeated in a loop.
               The format of the data item is as per International Tables for
               Crystallography Vol. A (2002). All equivalent positions should
               be entered, including those for lattice centring and a centre of
               symmetry, if present.
;
    _item.name                  '_symmetry_equiv.pos_as_xyz'
    _item.category_id             symmetry_equiv
    _item.mandatory_code          no
    _item_aliases.alias_name    '_symmetry_equiv_pos_as_xyz'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.0.1
    _item_type.code               line
    _item_examples.case         '-y+x,-y,1/3+z'
     save_

### EOF mmcif_std-def-1.dic
###########################################################################
#
# File:  mmcif_std-def-2.dic
#
#                      mmCIF Data Dictionary
#
# This data dictionary contains the standard mmCIF data definitions.
#
#                           Definition Section 2
#
# Section 2 contains definitions added to maintain correspondence 
# with the Core CIF dictionary  V2.3
#
# 
#                                                                        
###########################################################################

save__atom_site.adp_type
     _item_description.description
;              A standard code used to describe the type of atomic displacement
               parameters used for the site.
;

     _item.name                      '_atom_site.adp_type'
     _item.category_id               atom_site
     _item.mandatory_code             no
     _item_type.code                  code
     _item_related.related_name      '_atom_site.thermal_displace_type'
     _item_related.function_code      alternate
    loop_
     _item_enumeration.value
     _item_enumeration.detail
                                 Uani   'anisotropic Uij'
                                 Uiso   'isotropic U'
                                 Uovl   'overall U'
                                 Umpe   'multipole expansion U'
                                 Bani   'anisotropic Bij'
                                 Biso   'isotropic B'
                                 Bovl   'overall B'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_atom_site_adp_type'         cif_core.dic 2.3
      save_

save__atom_site.refinement_flags
     _item_description.description
;           A concatenated series of single-letter codes which indicate the
            refinement restraints or constraints applied to this site.  This
            item should not be used.  It has been replaced by
            _atom_site.refinement_flags_posn, *_adp and *_occupancy. It is
            retained in this dictionary only to provide compatibility with
            old CIFs.
;
     _item.name                      '_atom_site.refinement_flags'
     _item.category_id                atom_site
     _item.mandatory_code             no
     _item_type.code                  code
    loop_
     _item_related.related_name
     _item_related.function_code
                               '_atom_site.refinement_flags_posn'      replaces
                               '_atom_site.refinement_flags_adp'       replaces
                               '_atom_site.refinement_flags_occupancy' replaces
    loop_
     _item_enumeration.value
     _item_enumeration.detail
                               . 'no refinement constraints'
                               S 'special-position constraint on site'
                               G 'rigid-group refinement of site'
                               R 'riding-atom site attached to non-riding atom'
                               D 'distance or angle restraint on site'
                               T 'thermal displacement constraints'
                               U 'Uiso or Uij restraint (rigid bond)'
                               P 'partial occupancy constraint'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_atom_site_refinement_flags'          cif_core.dic 2.3

      save_

save__atom_site.refinement_flags_adp
     _item_description.description
;              A code which indicates the refinement restraints or constraints
               applied to the atomic displacement parameters of this site.
;

     _item.name                      '_atom_site.refinement_flags_adp'
     _item.category_id                atom_site
     _item.mandatory_code             no
     _item_type.code                  code
     _item_related.related_name      '_atom_site.refinement_flags_posn'
     _item_related.function_code     alternate
    loop_
     _item_enumeration.value
     _item_enumeration.detail
             .  'no constraints on atomic displacement parameters'
             T  'special-position constraints on atomic displacement parameters'
             U  'Uiso or Uij restraint (rigid bond)'
             TU 'both constraints applied'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_atom_site_refinement_flags_adp'          cif_core.dic 2.3

      save_

save__atom_site.refinement_flags_occupancy
     _item_description.description
;              A code which indicates that refinement restraints or
               constraints were applied to the occupancy of this site.
;
     _item.name                      '_atom_site.refinement_flags_occupancy'
     _item.category_id                atom_site
     _item.mandatory_code             no
     _item_type.code                  code
     _item_related.related_name      '_atom_site.refinement_flags_posn'
     _item_related.function_code      alternate
    loop_
     _item_enumeration.value
     _item_enumeration.detail
                                . 'no constraints on site-occupancy parameters'
                                P 'site-occupancy constraint'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_atom_site_refinement_flags_occupancy'         cif_core.dic 2.3

      save_

save__atom_site.refinement_flags_posn
     _item_description.description
;              A code which indicates the refinement restraints or constraints
               applied to the positional coordinates of this site.
;
     _item.name                      '_atom_site.refinement_flags_posn'
     _item.category_id                atom_site
     _item.mandatory_code             no
     _item_type.code                  code
     _item_related.related_name      '_atom_site.refinement_flags_posn'
     _item_related.function_code      alternate
    loop_
     _item_enumeration.value
     _item_enumeration.detail
                     . 'no constraints on  positional coordinates'
                     D 'distance or angle restraint on positional coordinates'
                     G 'rigid-group refinement of positional coordinates'
                     R 'riding-atom site attached to non-riding atom'
                     S 'special-position constraint on positional coordinates'
                     DG   'combination of the above constraints'
                     DR   'combination of the above constraints'
                     DS   'combination of the above constraints'
                     GR   'combination of the above constraints'
                     GS   'combination of the above constraints'
                     RS    'combination of the above constraints'
                     DGR  'combination of the above constraints'
                     DGS  'combination of the above constraints'
                     DRS  'combination of the above constraints'
                     GRS  'combination of the above constraints'
                     DGRS 'combination of the above constraints'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_atom_site_refinement_flags_posn'          cif_core.dic 2.3

      save_

save__atom_sites.special_details
     _item_description.description
;              Additional information about the atomic coordinates not coded
               elsewhere in the CIF.
;
     _item.name                      '_atom_sites.special_details'
     _item.category_id                atom_sites
     _item.mandatory_code             no
     _item_type.code                  text
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_atom_sites_special_details'          cif_core.dic 2.3

      save_

save__atom_type.scat_dispersion_source
     _item_description.description
;              Reference to the source of the real and imaginary dispersion
               corrections for scattering factors used for this atom type.
;
     _item.name                      '_atom_type.scat_dispersion_source'
     _item.category_id                    atom_type
     _item.mandatory_code             no
     _item_type.code                  text
     _item_examples.case             'International Tables Vol. IV Table 2.3.1'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_atom_type_scat_dispersion_source'         cif_core.dic 2.3

      save_

################
## AUDIT_LINK ##
################

save_audit_link
    _category.description
;              Data items in the AUDIT_LINK category record details about the
               relationships between data blocks in the current CIF.
;

    _category.id                      'audit_link'
    _category.mandatory_code          no
    loop_
    _category_key.name
          '_audit_link.block_code'
          '_audit_link.block_description'

    loop_
    _category_examples.case
    _category_examples.detail
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    loop_
    _audit_link.block_code
    _audit_link.block_description
       .             'discursive text of paper with two structures'
       morA_(1)      'structure 1 of 2'
       morA_(2)      'structure 2 of 2'
;
;
    Example 1 - multiple structure paper, as illustrated
                in A Guide to CIF for Authors (1995). IUCr: Chester.
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    loop_
    _audit_link.block_code
    _audit_link.block_description
       .        'publication details'
       KSE_COM  'experimental data common to ref./mod. structures'
       KSE_REF  'reference structure'
       KSE_MOD  'modulated structure'
;
;
    Example 2 - example file for the one-dimensional incommensurately
                modulated structure of K~2~SeO~4~.
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      save_

save__audit_link.block_code
     _item_description.description
;              The value of _audit_block.code associated with a data block
               in the current file related to the current data block. The
               special value '.' may be used to refer to the current data
               block for completeness.
;
     _item.name                      '_audit_link.block_code'
     _item.category_id                audit_link
     _item.mandatory_code             yes
     _item_type.code                  code
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_audit_link_block_code'         cif_core.dic 2.3
      save_

save__audit_link.block_description
     _item_description.description
;              A textual description of the relationship of the referenced
               data block to the current one.
;
     _item.name                      '_audit_link.block_description'
     _item.category_id                audit_link
     _item.mandatory_code             yes
     _item_type.code                  text
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_audit_link_block_description'          cif_core.dic 2.3

      save_

##

save__cell.reciprocal_angle_alpha
     _item_description.description
;              The angle (recip-alpha) defining the reciprocal cell in degrees.
               (recip-alpha), (recip-alpha) and (recip-alpha) related to the
               angles in the real cell by:

               cos(recip-alpha)
                   = [cos(beta)*cos(gamma) - cos(alpha)]/[sin(beta)*sin(gamma)]

               cos(recip-beta)
                   = [cos(gamma)*cos(alpha) - cos(beta)]/[sin(gamma)*sin(alpha)]

               cos(recip-gamma)
                   = [cos(alpha)*cos(beta) - cos(gamma)]/[sin(alpha)*sin(beta)]

               Ref: Buerger, M. J. (1942). X-ray Crystallography, p. 360.
                       New York: John Wiley & Sons Inc.
;
     _item.name               '_cell.reciprocal_angle_alpha'
     _item.category_id         cell
     _item.mandatory_code      no
     _item_type.code           float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0 180.0
                         180.0 180.0
     _item_default.value       90.0
     _item_type_conditions.code esd
     _item_units.code          'degrees'
     _item_related.related_name      '_cell.reciprocal_angle_alpha_esd'
     _item_related.function_code      associated_esd
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_cell_reciprocal_angle_alpha'    cif_core.dic 2.3
      save_

save__cell.reciprocal_angle_beta
     _item_description.description
;              The angle (recip-beta) defining the reciprocal cell in degrees.
               (recip-alpha), (recip-alpha) and (recip-alpha) related to the
               angles in the real cell by:

               cos(recip-alpha)
                   = [cos(beta)*cos(gamma) - cos(alpha)]/[sin(beta)*sin(gamma)]

               cos(recip-beta)
                   = [cos(gamma)*cos(alpha) - cos(beta)]/[sin(gamma)*sin(alpha)]

               cos(recip-gamma)
                   = [cos(alpha)*cos(beta) - cos(gamma)]/[sin(alpha)*sin(beta)]

               Ref: Buerger, M. J. (1942). X-ray Crystallography, p. 360.
                       New York: John Wiley & Sons Inc.
;
     _item.name               '_cell.reciprocal_angle_beta'
     _item.category_id         cell
     _item.mandatory_code      no
     _item_type.code            float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0 180.0
                         180.0 180.0
     _item_default.value       90.0
     _item_type_conditions.code esd
     _item_units.code          'degrees'
     _item_related.related_name      '_cell.reciprocal_angle_beta_esd'
     _item_related.function_code      associated_esd
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_cell_reciprocal_angle_beta'         cif_core.dic 2.3
      save_
#
save__cell.reciprocal_angle_gamma
     _item_description.description
;              The angle (recip-gamma) defining the reciprocal cell in degrees.
               (recip-alpha), (recip-alpha) and (recip-alpha) related to the
               angles in the real cell by:

               cos(recip-alpha)
                   = [cos(beta)*cos(gamma) - cos(alpha)]/[sin(beta)*sin(gamma)]

               cos(recip-beta)
                   = [cos(gamma)*cos(alpha) - cos(beta)]/[sin(gamma)*sin(alpha)]

               cos(recip-gamma)
                   = [cos(alpha)*cos(beta) - cos(gamma)]/[sin(alpha)*sin(beta)]

               Ref: Buerger, M. J. (1942). X-ray Crystallography, p. 360.
                       New York: John Wiley & Sons Inc.
;
     _item.name               '_cell.reciprocal_angle_gamma'
     _item.category_id         cell
     _item.mandatory_code      no
     _item_type.code           float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0 180.0
                         180.0 180.0
     _item_default.value       90.0
     _item_type_conditions.code esd
     _item_units.code          'degrees'
     _item_related.related_name      '_cell.reciprocal_angle_gamma_esd'
     _item_related.function_code      associated_esd
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_cell_reciprocal_angle_gamma'         cif_core.dic 2.3

      save_
#

save__cell.reciprocal_angle_alpha_esd
     _item_description.description
;             The estimated standard deviation of _cell.reciprocal_angle_alpha.
;
     _item.name               '_cell.reciprocal_angle_alpha_esd'
     _item.category_id         cell
     _item.mandatory_code      no
     _item_type.code           float
     _item_units.code          'degrees'
     _item_related.related_name      '_cell.reciprocal_angle_alpha'
     _item_related.function_code      associated_value
#    loop_
#    _item_aliases.alias_name
#    _item_aliases.dictionary
#    _item_aliases.version
#    '_cell_reciprocal_angle_alpha_esd'          cif_core.dic 2.3

      save_
#


save__cell.reciprocal_angle_beta_esd
     _item_description.description
;             The estimated standard deviation of _cell.reciprocal_angle_beta.
;
     _item.name               '_cell.reciprocal_angle_beta_esd'
     _item.category_id         cell
     _item.mandatory_code      no
     _item_type.code           float
     _item_units.code          'degrees'
     _item_related.related_name      '_cell.reciprocal_angle_beta'
     _item_related.function_code      associated_value
#    loop_
#    _item_aliases.alias_name
#    _item_aliases.dictionary
#    _item_aliases.version
#     '_cell_reciprocal_angle_beta_esd'    cif_core.dic 2.3

      save_
#

save__cell.reciprocal_angle_gamma_esd
     _item_description.description
;             The estimated standard deviation of _cell.reciprocal_angle_gamma.
;
     _item.name               '_cell.reciprocal_angle_gamma_esd'
     _item.category_id         cell
     _item.mandatory_code      no
     _item_type.code           float
     _item_units.code          'degrees'
     _item_related.related_name      '_cell.reciprocal_angle_gamma'
     _item_related.function_code      associated_value
#    loop_
#    _item_aliases.alias_name
#    _item_aliases.dictionary
#    _item_aliases.version
#     '_cell_reciprocal_angle_gamma_esd'         cif_core.dic 2.3

      save_
#

save__cell.reciprocal_length_a
     _item_description.description
;              The reciprocal cell length (recip-a) in inverse Angstroms.
              (recip-a), (recip-b) and (recip-c) are related to the real cell
              by the following equation:

               recip-a = b*c*sin(alpha)/V

               recip-b = c*a*sin(beta)/V

               recip-c = a*b*sin(gamma)/V

               where V is the cell volume.

               Ref: Buerger, M. J. (1942). X-ray Crystallography, p. 360.
                       New York: John Wiley & Sons Inc.
;

     _item.name                '_cell.reciprocal_length_a'
     _item.category_id          cell
     _item.mandatory_code       no
     _item_type.code            float

    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code            'reciprocal_angstroms'
     _item_type_conditions.code  esd
     _item_related.related_name  '_cell.reciprocal_length_a_esd'
     _item_related.function_code  associated_esd
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_cell_reciprocal_length_a'          cif_core.dic 2.3
      save_

save__cell.reciprocal_length_b
     _item_description.description
;              The reciprocal cell length (recip-b) in inverse Angstroms.
              (recip-a), (recip-b) and (recip-c) are related to the real cell
              by the following equation:

               recip-a = b*c*sin(alpha)/V

               recip-b = c*a*sin(beta)/V

               recip-c = a*b*sin(gamma)/V

               where V is the cell volume.

               Ref: Buerger, M. J. (1942). X-ray Crystallography, p. 360.
                       New York: John Wiley & Sons Inc.
;

     _item.name                '_cell.reciprocal_length_b'
     _item.category_id          cell
     _item.mandatory_code       no
     _item_type.code            float

    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code            'reciprocal_angstroms'
     _item_type_conditions.code  esd
     _item_related.related_name  '_cell.reciprocal_length_b_esd'
     _item_related.function_code  associated_esd
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_cell_reciprocal_length_b'          cif_core.dic 2.3

      save_

save__cell.reciprocal_length_c
     _item_description.description
;              The reciprocal cell length (recip-c) in inverse Angstroms.
              (recip-a), (recip-b) and (recip-c) are related to the real cell
              by the following equation:

               recip-a = b*c*sin(alpha)/V

               recip-b = c*a*sin(beta)/V

               recip-c = a*b*sin(gamma)/V

               where V is the cell volume.

               Ref: Buerger, M. J. (1942). X-ray Crystallography, p. 360.
                       New York: John Wiley & Sons Inc.
;

     _item.name                '_cell.reciprocal_length_c'
     _item.category_id          cell
     _item.mandatory_code       no
     _item_type.code            float

    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code            'reciprocal_angstroms'
     _item_type_conditions.code  esd
     _item_related.related_name  '_cell.reciprocal_length_c_esd'
     _item_related.function_code  associated_esd
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_cell_reciprocal_length_c'         cif_core.dic 2.3
      save_

save__cell.reciprocal_length_a_esd
     _item_description.description
;             The estimated standard deviation of _cell.reciprocal_length_a.
;
     _item.name               '_cell.reciprocal_length_a_esd'
     _item.category_id         cell
     _item.mandatory_code       no
     _item_type.code            float
     _item_units.code          'reciprocal_angstroms'
     _item_related.related_name      '_cell.reciprocal_length_a'
     _item_related.function_code      associated_value
#    loop_
#    _item_aliases.alias_name
#    _item_aliases.dictionary
#    _item_aliases.version
#     '_cell_reciprocal_length_a_esd'         cif_core.dic 2.3

      save_

save__cell.reciprocal_length_b_esd
     _item_description.description
;             The estimated standard deviation of _cell.reciprocal_length_b.
;
     _item.name               '_cell.reciprocal_length_b_esd'
     _item.category_id         cell
     _item.mandatory_code       no
     _item_type.code            float
     _item_units.code          'reciprocal_angstroms'
     _item_related.related_name      '_cell.reciprocal_length_b'
     _item_related.function_code      associated_value
#    loop_
#    _item_aliases.alias_name
#    _item_aliases.dictionary
#    _item_aliases.version
#    '_cell_reciprocal_length_b_esd'          cif_core.dic 2.3
      save_

save__cell.reciprocal_length_c_esd
     _item_description.description
;             The estimated standard deviation of _cell.reciprocal_length_c.
;
     _item.name               '_cell.reciprocal_length_c_esd'
     _item.category_id         cell
     _item.mandatory_code       no
     _item_type.code            float
     _item_units.code          'reciprocal_angstroms'
     _item_related.related_name      '_cell.reciprocal_length_c'
     _item_related.function_code      associated_value
#    loop_
#    _item_aliases.alias_name
#    _item_aliases.dictionary
#    _item_aliases.version
#     '_cell_reciprocal_length_c_esd'         cif_core.dic 2.3
      save_

# save__cell.special_details
#      _item_description.description
# ;              A description of special aspects of the cell choice, noting
#                possible alternative settings.
# ;
#      _item.name                '_cell.special_details'
#      _item.category_id          cell
#      _item.mandatory_code       no
#      _item_type.code            text
#     loop_
#      _item_examples.case
#                              'pseudo-orthorhombic'
#                              'standard setting from 45 deg rotation around c'
#     loop_
#      _item_aliases.alias_name
#      _item_aliases.dictionary
#      _item_aliases.version
#      '_cell_special_details'          cif_core.dic 2.3
#       save_
# #


save__chemical.absolute_configuration
     _item_description.description
;              Necessary conditions for the assignment of
               _chemical.absolute_configuration are given by H. D. Flack and
               G. Bernardinelli (1999, 2000).

               Ref: Flack, H. D. & Bernardinelli, G. (1999). Acta Cryst. A55,
                       908-915. (http://www.iucr.org/paper?sh0129)
                    Flack, H. D. & Bernardinelli, G. (2000). J. Appl. Cryst.
                       33, 1143-1148. (http://www.iucr.org/paper?ks0021)
;
     _item.name                      '_chemical.absolute_configuration'
     _item.category_id                chemical
     _item.mandatory_code             no
     _item_type.code                  code

    loop_
     _item_enumeration.value
     _item_enumeration.detail
                                rm
;                                        absolute configuration established by
                                         the structure determination of a
                                         compound containing a chiral reference
                                         molecule of known absolute
                                         configuration
;
                                 ad
;                                        absolute configuration established by
                                         anomalous-dispersion effects in
                                         diffraction measurements on the
                                         crystal
;
                                 rmad
;                                        absolute configuration established by
                                         the structure determination of a
                                         compound containing a chiral reference
                                         molecule of known absolute
                                         configuration and confirmed by
                                         anomalous-dispersion effects in
                                         diffraction measurements on the
                                         crystal
;
                                 syn
;                                        absolute configuration has not been
                                         established by anomalous-dispersion
                                         effects in diffraction measurements on
                                         the crystal. The enantiomer has been
                                         assigned by reference to an unchanging
                                         chiral centre in the synthetic
                                         procedure
;
                                 unk
;                                        absolute configuration is unknown,
                                         there being no firm chemical evidence
                                         for its assignment to hand and it
                                         having not been established by
                                         anomalous-dispersion effects in
                                         diffraction measurements on the
                                         crystal. An arbitrary choice of
                                         enantiomer has been made
;
                                 .      'inapplicable'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_chemical_absolute_configuration'          cif_core.dic 2.3
      save_

save__chemical.melting_point_gt
     _item_description.description
;              A temperature in kelvins above
               which the melting point (the temperature at which the
               crystalline solid changes to a liquid) lies.
               _chemical.melting_point_gt and _chemical.melting_point_lt
               allow a range of temperatures to be given.

               _chemical.melting_point should always be used in preference
               to these two items whenever possible.
;
     _item.name                 '_chemical.melting_point_gt'
     _item.category_id           chemical
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name  '_chemical.melting_point'
     _item_related.function_code  alternate

    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .

     _item_units.code               kelvins
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_chemical_melting_point_gt'         cif_core.dic 2.3
      save_

save__chemical.melting_point_lt
     _item_description.description
;              A temperature in kelvins below which the melting point (the
               temperature at which the crystalline solid changes to a liquid)
               lies. _chemical.melting_point_gt and _chemical.melting_point_lt
               allow a range of temperatures to be given.

               _chemical.melting_point should always be used in preference
               to these two items whenever possible.
;
     _item.name                 '_chemical.melting_point_lt'
     _item.category_id           chemical
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name  '_chemical.melting_point'
     _item_related.function_code  alternate

    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .

     _item_units.code               kelvins
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_chemical_melting_point_lt'         cif_core.dic 2.3
      save_

save__chemical.optical_rotation
     _item_description.description
;              The optical rotation in solution of the compound is
               specified in the following format:
                    '[\a]^TEMP^~WAVE~ = SORT (c = CONC, SOLV)'
               where:
                 TEMP is the temperature of the measurement in degrees
                      Celsius,
                 WAVE is an indication of the wavelength of the light
                      used for the measurement,
                 CONC is the concentration of the solution given as the
                      mass of the substance in g in 100 ml of solution,
                 SORT is the signed value (preceded by a + or a - sign)
                      of 100.\a/(l.c), where \a is the signed optical
                      rotation in degrees measured in a cell of length l in
                      dm and c is the value of CONC as defined above, and
                 SOLV is the chemical formula of the solvent.
;
     _item.name                 '_chemical.optical_rotation'
     _item.category_id           chemical
     _item.mandatory_code        no
     _item_type.code             line
     _item_examples.case        '[\a]^25^~D~ = +108 (c = 3.42, CHCl~3~)'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_chemical_optical_rotation'          cif_core.dic 2.3
      save_

save__chemical.properties_biological
     _item_description.description
;              A free-text description of the biological properties of the
               material.
;
     _item.name                 '_chemical.properties_biological'
     _item.category_id           chemical
     _item.mandatory_code        no
     _item_type.code             text
    loop_
     _item_examples.case
;              diverse biological activities including use as a
               laxative and strong antibacterial activity against
               S. aureus and weak activity against
               cyclooxygenase-1 (COX-1)
;

;              antibiotic activity against Bacillus subtilis
               (ATCC 6051) but no significant activity against
               Candida albicans (ATCC 14053), Aspergillus flavus
               (NRRL 6541) and Fusarium verticillioides (NRRL
               25457)
;

;              weakly potent lipoxygenase nonredox inhibitor
;

;              no influenza A virus sialidase inhibitory and
               plaque reduction activities
;

;              low toxicity against Drosophila melanogaster
;
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_chemical_properties_biological'         cif_core.dic 2.3
      save_

save__chemical.properties_physical
     _item_description.description
;    A free-text description of the physical properties of the material.
;

     _item.name                 '_chemical.properties_physical'
     _item.category_id           chemical
     _item.mandatory_code        no
     _item_type.code             text
    loop_
     _item_examples.case
                                 air-sensitive
                                 moisture-sensitive
                                 hygroscopic
                                 deliquescent
                                 oxygen-sensitive
                                 photo-sensitive
                                 pyrophoric
                                 semiconductor
                                 'ferromagnetic at low temperature'
                                 'paramagnetic and thermochromic'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_chemical_properties_physical'          cif_core.dic 2.3
      save_

save__chemical.temperature_decomposition
     _item_description.description
;              The temperature in kelvins at which the solid decomposes.
;
     _item.name                 '_chemical.temperature_decomposition'
     _item.category_id           chemical
     _item.mandatory_code        no
     _item_type.code             float
     _item_type_conditions.code  esd
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code            kelvins
     _item_examples.case         350
     _item_related.related_name      '_chemical.temperature_decomposition_esd'
     _item_related.function_code      associated_esd
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_chemical_temperature_decomposition'         cif_core.dic 2.3
      save_

save__chemical.temperature_decomposition_esd
     _item_description.description
;              The estimated standard deviation of
               _chemical.temperature_decomposition.
;
     _item.name                 '_chemical.temperature_decomposition_esd'
     _item.category_id           chemical
     _item.mandatory_code        no
     _item_type.code             float
     _item_units.code            kelvins
     _item_related.related_name      '_chemical.temperature_decomposition'
     _item_related.function_code      associated_value
#    loop_
#    _item_aliases.alias_name
#    _item_aliases.dictionary
#    _item_aliases.version
#     '_chemical_temperature_decomposition_esd'         cif_core.dic 2.3
      save_

save__chemical.temperature_decomposition_gt
     _item_description.description
;              A temperature in kelvins above which the solid is known to
               decompose. _chemical.temperature_decomposition_gt and
               _chemical.temperature_decomposition_lt allow
               a range of temperatures to be given.

               _chemical.temperature_decomposition should always be used in
               preference to these two items whenever possible.
;
     _item.name                 '_chemical.temperature_decomposition_gt'
     _item.category_id           chemical
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .

     _item_units.code             kelvins
     _item_related.related_name  '_chemical.temperature_decomposition'
     _item_related.function_code  alternate
     _item_examples.case          350
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_chemical_temperature_decomposition_gt'         cif_core.dic 2.3
      save_

save__chemical.temperature_decomposition_lt
     _item_description.description
;              A temperature in kelvins below which the solid is known to
              decompose. _chemical.temperature_decomposition_gt and
               _chemical.temperature_decomposition_lt allow
               a range of temperatures to be given.

               _chemical.temperature_decomposition should always be used in
               preference to these two items whenever possible.
;
     _item.name                 '_chemical.temperature_decomposition_lt'
     _item.category_id           chemical
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code             kelvins
     _item_related.related_name  '_chemical.temperature_decomposition'
     _item_related.function_code  alternate
     _item_examples.case          350
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_chemical_temperature_decomposition_lt'         cif_core.dic 2.3
      save_

save__chemical.temperature_sublimation
     _item_description.description
;              The temperature in kelvins at which the solid sublimes.
;
     _item.name                 '_chemical.temperature_sublimation'
     _item.category_id           chemical
     _item.mandatory_code        no
     _item_type.code             float
     _item_type_conditions.code  esd
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code            kelvins
     _item_examples.case         350
     _item_related.related_name  '_chemical.temperature_sublimation_esd'
     _item_related.function_code  associated_esd
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_chemical_temperature_sublimation'         cif_core.dic 2.3
      save_

save__chemical.temperature_sublimation_esd
     _item_description.description
;              The estimated standard deviation of
               _chemical.temperature_sublimation.
;
     _item.name                 '_chemical.temperature_sublimation_esd'
     _item.category_id           chemical
     _item.mandatory_code        no
     _item_type.code             float
     _item_units.code            kelvins
     _item_related.related_name  '_chemical.temperature_sublimation'
     _item_related.function_code  associated_value
#    loop_
#    _item_aliases.alias_name
#    _item_aliases.dictionary
#    _item_aliases.version
#     '_chemical_temperature_sublimation_esd'         cif_core.dic 2.3
      save_

save__chemical.temperature_sublimation_gt
     _item_description.description
;             A temperature in kelvins above which the solid is known to
              sublime. _chemical.temperature_sublimation_gt and
              _chemical.temperature_sublimation_lt allow a
              range of temperatures to be given.

              _chemical.temperature_sublimation should always be used in
              preference to these two items whenever possible.
;
     _item.name                 '_chemical.temperature_sublimation_gt'
     _item.category_id           chemical
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code             kelvins
     _item_related.related_name   '_chemical.temperature_sublimation'
     _item_related.function_code   alternate
     _item_examples.case          350
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_chemical_temperature_sublimation_gt'         cif_core.dic 2.3
      save_


save__chemical.temperature_sublimation_lt
     _item_description.description
;             A temperature in kelvins below which the solid is known to
              sublime. _chemical.temperature_sublimation_gt and
              _chemical.temperature_sublimation_lt allow a
              range of temperatures to be given.

              _chemical.temperature_sublimation should always be used in
              preference to these two items whenever possible.
;
     _item.name                 '_chemical.temperature_sublimation_lt'
     _item.category_id           chemical
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code             kelvins
     _item_related.related_name   '_chemical.temperature_sublimation'
     _item_related.function_code   alternate
     _item_examples.case          350
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_chemical_temperature_sublimation_lt'         cif_core.dic 2.3
      save_
#

save__citation.database_id_CSD
     _item_description.description
;           Identifier ('refcode') of the database record in the Cambridge
            Structural Database that contains details of the cited structure.
;
     _item.name                 '_citation.database_id_CSD'
     _item.category_id           citation
     _item.mandatory_code        no
     _item_type.code             code
     _item_examples.case         LEKKUH
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_citation_database_id_CSD'         cif_core.dic 2.3
      save_

save__database.CSD_history
     _item_description.description
;              A history of changes made by the Cambridge Crystallographic Data
               Centre and incorporated into the Cambridge Structural Database
               (CSD).
;
     _item.name                 '_database.CSD_history'
     _item.category_id           database
     _item.mandatory_code        no
     _item_type.code             text
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_database_CSD_history'          cif_core.dic 2.3
      save_

save__database.code_CAS
     _item_description.description
;              The code assigned by Chemical Abstracts.
;
     _item.name                 '_database.code_CAS'
     _item.category_id           database
     _item.mandatory_code        no
     _item_type.code             line
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_database_code_CAS'         cif_core.dic 2.3
      save_

save__database.code_CSD
     _item_description.description
;              The code assigned by the Cambridge Structural Database.
;
     _item.name                 '_database.code_CSD'
     _item.category_id           database
     _item.mandatory_code        no
     _item_type.code             line
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_database_code_CSD'         cif_core.dic 2.3
      save_

save__database.code_ICSD
     _item_description.description
;              The code assigned by the Inorganic Crystal Structure
               Database.
;
     _item.name                 '_database.code_ICSD'
     _item.category_id           database
     _item.mandatory_code        no
     _item_type.code             line
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_database_code_ICSD'          cif_core.dic 2.3
      save_

save__database.code_MDF
     _item_description.description
;              The code assigned by the Metals Data File.
;
     _item.name                 '_database.code_MDF'
     _item.category_id           database
     _item.mandatory_code        no
     _item_type.code             line
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_database_code_MDF'         cif_core.dic 2.3
      save_

save__database.code_NBS
     _item_description.description
;              The code assigned by the NBS (NIST) Crystal Data Database.
;
     _item.name                 '_database.code_NBS'
     _item.category_id           database
     _item.mandatory_code        no
     _item_type.code             line
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_database_code_NBS'         cif_core.dic 2.3
      save_

save__database.code_PDB
     _item_description.description
;              The code assigned by the Protein Data Bank.
;
     _item.name                 '_database.code_PDB'
     _item.category_id           database
     _item.mandatory_code        no
     _item_type.code             line
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_database_code_PDB'         cif_core.dic 2.3
      save_

save__database.code_PDF
     _item_description.description
;              The code assigned by the Powder Diffraction File (JCPDS/ICDD).
;
     _item.name                 '_database.code_PDF'
     _item.category_id           database
     _item.mandatory_code        no
     _item_type.code             line
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
       '_database_code_PDF'         cif_core.dic 2.3
      save_

save__database.code_depnum_ccdc_fiz
     _item_description.description
;              Deposition numbers assigned by the Fachinformationszentrum
               Karlsruhe (FIZ) to files containing structural information
               archived by the Cambridge Crystallographic Data Centre (CCDC).
;
     _item.name                 '_database.code_depnum_ccdc_fiz'
     _item.category_id           database
     _item.mandatory_code        no
     _item_type.code             line
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_database_code_depnum_ccdc_fiz'         cif_core.dic 2.3
      save_

save__database.code_depnum_ccdc_journal
     _item_description.description
;              Deposition numbers assigned by various journals to files
               containing structural information archived by the Cambridge
               Crystallographic Data Centre (CCDC).
;

     _item.name                 '_database.code_depnum_ccdc_journal'
     _item.category_id           database
     _item.mandatory_code        no
     _item_type.code             line
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_database_code_depnum_ccdc_journal'         cif_core.dic 2.3
      save_

save__database.code_depnum_ccdc_archive
     _item_description.description
;              Deposition numbers assigned by the Cambridge Crystallographic
               Data Centre (CCDC) to files containing structural information
               archived by the CCDC.
;
     _item.name                 '_database.code_depnum_ccdc_archive'
     _item.category_id           database
     _item.mandatory_code        no
     _item_type.code             line
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_database_code_depnum_ccdc_archive'         cif_core.dic 2.3
      save_


save__diffrn.ambient_pressure
     _item_description.description
;              The mean hydrostatic pressure in kilopascals at which the
               intensities were measured.
;
     _item.name                 '_diffrn.ambient_pressure'
     _item.category_id           diffrn
     _item.mandatory_code        no
     _item_type.code             float
     _item_type_conditions.code  esd
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .

     _item_units.code            'kilopascals'
     _item_related.related_name  '_diffrn.ambient_pressure_esd'
     _item_related.function_code  associated_esd
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_ambient_pressure'         cif_core.dic 2.3
      save_

save__diffrn.ambient_pressure_esd
     _item_description.description
;              The estimated standard deviation of _diffrn.ambient_pressure.
;
     _item.name                 '_diffrn.ambient_pressure_esd'
     _item.category_id           diffrn
     _item.mandatory_code        no
     _item_type.code             float
     _item_units.code            'kilopascals'
     _item_related.related_name  '_diffrn.ambient_pressure'
     _item_related.function_code  associated_value
#    loop_
#    _item_aliases.alias_name
#    _item_aliases.dictionary
#    _item_aliases.version
#     '_diffrn_ambient_pressure'         cif_core.dic 2.3
      save_


save__diffrn.ambient_pressure_gt
     _item_description.description
;              The mean hydrostatic pressure in kilopascals above which
               the intensities were measured. _diffrn.ambient_pressure_gt and
               _diffrn.ambient_pressure_lt allow a pressure range to be given.

               _diffrn.ambient_pressure should always be used in
               preference to these two items whenever possible.
;
     _item.name                 '_diffrn.ambient_pressure_gt'
     _item.category_id           diffrn
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name  '_diffrn.ambient_pressure'
     _item_related.function_code  alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code            'kilopascals'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_ambient_pressure_gt'         cif_core.dic 2.3
      save_

save__diffrn.ambient_pressure_lt
     _item_description.description
;              The mean hydrostatic pressure in kilopascals below which
               the intensities were measured. _diffrn.ambient_pressure_gt and
               _diffrn.ambient_pressure_lt allow a pressure range to be given.

               _diffrn.ambient_pressure should always be used in
               preference to these two items whenever possible.
;
     _item.name                 '_diffrn.ambient_pressure_lt'
     _item.category_id           diffrn
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name  '_diffrn.ambient_pressure'
     _item_related.function_code  alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code            'kilopascals'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_ambient_pressure_lt'         cif_core.dic 2.3
      save_

# save__diffrn.ambient_temperature
#      _item_description.description
# ;             The mean temperature in kelvins at which the intensities
#               were measured.
# ;
#      _item.name                 '_diffrn.ambient_temperature'
#      _item.category_id           diffrn
#      _item.mandatory_code        no
#      _item_type.code             float
#      _item_type_conditions.code  esd
#     loop_
#      _item_range.minimum
#      _item_range.maximum
#                            0.0   0.0
#                            0.0    .
#      _item_units.code            kelvins
#      _item_related.related_name  '_diffrn.ambient_temperature_esd'
#      _item_related.function_code  associated_esd
#     loop_
#      _item_aliases.alias_name
#      _item_aliases.dictionary
#      _item_aliases.version
#       '_diffrn_ambient_temperature'         cif_core.dic 2.3
#       save_

#save__diffrn.ambient_temperature_esd
#     _item_description.description
#;             The estimated standard deviation of _diffrn.ambient_temp.
#;
#     _item.name                 '_diffrn.ambient_temperature_esd'
#     _item.category_id           diffrn
#     _item.mandatory_code        no
#     _item_type.code             float
#     _item_units.code            kelvins
#     _item_related.related_name  '_diffrn.ambient_temp'
#     _item_related.function_code  associated_value
#    loop_
#    _item_aliases.alias_name
#    _item_aliases.dictionary
#    _item_aliases.version
#    '_diffrn_ambient_temperature_esd'          cif_core.dic 2.3
#      save_

save__diffrn.ambient_temp_gt
     _item_description.description
;             The mean temperature in kelvins above which the intensities were
              measured.  _diffrn.ambient_temp_gt and _diffrn.ambient_temp_lt
              allow a range of temperatures to be given.

              _diffrn.ambient_temp should always be used in preference
              to these two items whenever possible.
;
     _item.name                 '_diffrn.ambient_temp_gt'
     _item.category_id           diffrn
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name  '_diffrn.ambient_temp'
     _item_related.function_code  alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code                kelvins
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_ambient_temperature_gt'         cif_core.dic 2.3
      save_

save__diffrn.ambient_temp_lt
     _item_description.description
;             The mean temperature in kelvins below which the intensities were
              measured. _diffrn.ambient_temp_gt and _diffrn.ambient_temp_lt
              allow a range of temperatures to be given.

              _diffrn.ambient_temp should always be used in preference
              to these two items whenever possible.
;
     _item.name                 '_diffrn.ambient_temp_lt'
     _item.category_id           diffrn
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name  '_diffrn.ambient_temp'
     _item_related.function_code  alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code                kelvins
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_ambient_temperature_lt'         cif_core.dic 2.3
      save_

save__diffrn_attenuator.material
     _item_description.description
;              Material from which the attenuator is made.
;
     _item.name                 '_diffrn_attenuator.material'
     _item.category_id           diffrn_attenuator
     _item.mandatory_code        no
     _item_type.code             text
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_attenuator_material'         cif_core.dic 2.3
      save_

save__diffrn_detector.area_resol_mean
     _item_description.description
;              The resolution of an area detector, in pixels/mm.
;
     _item.name                 '_diffrn_detector.area_resol_mean'
     _item.category_id           diffrn_detector
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code              'pixels_per_millimetre'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_diffrn_detector_area_resol_mean'          cif_core.dic 2.3
      save_

save__diffrn_detector.dtime
     _item_description.description
;              The deadtime in microseconds of the detector used to measure
               the diffraction intensities.
;
     _item.name                 '_diffrn_detector.dtime'
     _item.category_id           diffrn_detector
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
#     _item_related.related_name '_diffrn_radiation_detector.dtime'
#     _item_related.function_code alternate
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_detector_dtime'         cif_core.dic 2.3
      save_

save__diffrn_refln.class_code
     _item_description.description
;              The code identifying the class to which this reflection has
               been assigned. This code must match a value of
               _diffrn_reflns_class.code. Reflections may be grouped into
               classes for a variety of purposes. For example, for modulated
               structures each reflection class may be defined by the
               number m=sum|m~i~|, where the m~i~ are the integer coefficients
               that, in addition to h,k,l, index the corresponding diffraction
               vector in the basis defined for the reciprocal lattice.
;
     _item.name                 '_diffrn_refln.class_code'
     _item.category_id           diffrn_refln
     _item.mandatory_code        no
     _item_type.code             code
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_refln_class_code'         cif_core.dic 2.3
      save_

save__diffrn_refln.intensity_u
     _item_description.description
;              Standard uncertainty of the net intensity calculated from
               the diffraction counts after the attenuator and standard
               scales have been applied.
;
     _item.name                 '_diffrn_refln.intensity_u'
     _item.category_id           diffrn_refln
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name  '_diffrn_refln.intensity_sigma'
     _item_related.function_code  alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_refln_intensity_u'         cif_core.dic 2.3
      save_

save__diffrn_reflns.av_unetI/netI
     _item_description.description
;              Measure [sum u(net I)|/sum|net I|] for all measured reflections.
;

     _item.name                 '_diffrn_reflns.av_unetI/netI'
     _item.category_id           diffrn_reflns
     _item.mandatory_code        no
     _item_type.code             float
#     _item_related.related_name  '_diffrn_reflns.av_sigmaI/netI'
#     _item_related.function_code  alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_reflns_av_unetI/netI'         cif_core.dic 2.3
      save_

#########################
## DIFFRN_REFLNS_CLASS ##
#########################

save_diffrn_reflns_class
    _category.description
;              Data items in the DIFFRN_REFLNS_CLASS category record details
               about the classes of reflections measured in the diffraction
               experiment.
;

    _category.id               'diffrn_reflns_class'
    _category.mandatory_code    no
    _category_key.name         '_diffrn_reflns_class.code'

    loop_
    _category_examples.case
    _category_examples.detail
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    loop_
        _diffrn_reflns_class.number
        _diffrn_reflns_class.d_res_high
        _diffrn_reflns_class.d_res_low
        _diffrn_reflns_class.av_R_eq
        _diffrn_reflns_class.code
        _diffrn_reflns_class.description
               1580 0.551 6.136 0.015 'Main' 'm=0; main reflections'
               1045 0.551 6.136 0.010 'Sat1' 'm=1; first-order satellites'
;
;
    Example 1 - example corresponding to the one-dimensional incommensurately
                modulated structure of K~2~SeO~4~. Each reflection class is
                defined by the number m=sum|m~i~|, where the m~i~ are the
                integer coefficients that, in addition to h,k,l, index the
                corresponding diffraction vector in the basis defined for
                the reciprocal lattice.
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      save_

save__diffrn_reflns_class.av_R_eq
     _item_description.description
;              For each reflection class, the residual
               [sum av|del(I)|/sum|av(I)|] for symmetry-equivalent reflections
               used to calculate the average intensity av(I). The av|del(I)|
               term is the average absolute difference between av(I) and the
               individual intensities.
;
     _item.name                 '_diffrn_reflns_class.av_R_eq'
     _item.category_id           diffrn_reflns_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_reflns_class_av_R_eq'         cif_core.dic 2.3
      save_

save__diffrn_reflns_class.av_sgI/I
    _item_description.description
;         Measure [sum|sigma(net I)|/sum|net I|] for all measured intensities
          in a reflection class.
;
     _item.name                 '_diffrn_reflns_class.av_sgI/I'
     _item.category_id           diffrn_reflns_class
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name   '_diffrn_reflns_class.av_uI/I'
     _item_related.function_code  replaces
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_diffrn_reflns_class_av_sgI/I'          cif_core.dic 2.3
      save_

save__diffrn_reflns_class.av_uI/I
     _item_description.description
;              Measure [sum|u(net I)|/sum|net I|] for all measured intensities
               in a reflection class.
;
     _item.name                 '_diffrn_reflns_class.av_uI/I'
     _item.category_id           diffrn_reflns_class
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name  '_diffrn_reflns_class.av_sgI/I'
     _item_related.function_code alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_diffrn_reflns_class_av_uI/I'          cif_core.dic 2.3
      save_

save__diffrn_reflns_class.code
     _item_description.description
;              The code identifying a certain reflection class.
;
     _item.name                  '_diffrn_reflns_class.code'
     _item.category_id           diffrn_reflns_class
     _item.mandatory_code        yes
     _item_type.code             code
    loop_
     _item_examples.case         '1'
                                 'm1'
                                 's2'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_reflns_class_code'          cif_core.dic 2.3
      save_

save__diffrn_reflns_class.description
     _item_description.description
;              Description of each reflection class.
;
     _item.name                  '_diffrn_reflns_class.description'
     _item.category_id           diffrn_reflns_class
     _item.mandatory_code        no
     _item_type.code             text
    loop_
     _item_examples.case
                'm=1 first order satellites'
                'H0L0 common projection reflections'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_reflns_class_description'         cif_core.dic 2.3
      save_

save__diffrn_reflns_class.d_res_high
     _item_description.description
;              The smallest value in angstroms for the interplanar
               spacings for the reflections in each measured reflection class.
               This is called the highest resolution for this reflection class.
;
     _item.name                 '_diffrn_reflns_class.d_res_high'
     _item.category_id           diffrn_reflns_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code                'angstroms'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_reflns_class_d_res_high'         cif_core.dic 2.3
      save_

save__diffrn_reflns_class.d_res_low
     _item_description.description
;              The largest value in angstroms of the interplanar
               spacings for the reflections for each measured reflection class.
               This is called the lowest resolution for this reflection class.
;
     _item.name                 '_diffrn_reflns_class.d_res_low'
     _item.category_id           diffrn_reflns_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code            'angstroms'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_reflns_class_d_res_low'         cif_core.dic 2.3
      save_

save__diffrn_reflns_class.number
     _item_description.description
;              The total number of measured intensities for each reflection
               class, excluding the systematic absences arising from
               centring translations.
;
     _item.name                 '_diffrn_reflns_class.number'
     _item.category_id           diffrn_reflns_class
     _item.mandatory_code        no
     _item_type.code             int
    loop_
     _item_range.minimum
     _item_range.maximum
                           0   0
                           0   .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_reflns_class_number'         cif_core.dic 2.3
      save_

save__diffrn_source.take-off_angle
     _item_description.description
;              The complement of the angle in degrees between the normal
               to the surface of the X-ray tube target and the primary
               X-ray beam for beams generated by traditional X-ray tubes.
;

     _item.name                 '_diffrn_source.take-off_angle'
     _item.category_id           diffrn_source
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.00   0.00
                           0.00   90.0
                           90.0   90.0
     _item_examples.case       1.5
     _item_units.code          'degrees'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_source_take-off_angle'         cif_core.dic 2.3
      save_

save__diffrn_standards.scale_u
     _item_description.description
;              The standard uncertainty of the individual mean
               standard scales applied to the intensity data.
;
     _item.name                 '_diffrn_standards.scale_u'
     _item.category_id           diffrn_standards
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name  '_diffrn_standards.scale_sigma'
     _item_related.function_code  alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_diffrn_standards_scale_u'         cif_core.dic 2.3
      save_

save__exptl_crystal.colour_lustre
     _item_description.description
;             The enumeration list of standardized names developed for the
              International Centre for Diffraction Data.
              The colour of a crystal is given by the combination of
              _exptl_crystal.colour_modifier with
              _exptl_crystal.colour_primary, as in 'dark-green' or
              'bluish-violet', if necessary combined with
              _exptl_crystal.colour_lustre, as in 'metallic-green'.
;

     _item.name                 '_exptl_crystal.colour_lustre'
     _item.category_id           exptl_crystal
     _item.mandatory_code        no
     _item_type.code             line
    loop_
     _item_enumeration.value
                                 metallic
                                 dull
                                 clear
     _item_related.related_name  '_exptl_crystal.colour'
     _item_related.function_code  alternate
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_exptl_crystal_colour_lustre'         cif_core.dic 2.3
      save_

save__exptl_crystal.colour_modifier
     _item_description.description
;             The enumeration list of standardized names developed for the
              International Centre for Diffraction Data.
              The colour of a crystal is given by the combination of
              _exptl_crystal.colour_modifier with
              _exptl_crystal.colour_primary, as in 'dark-green' or
              'bluish-violet', if necessary combined with
              _exptl_crystal.colour_lustre, as in 'metallic-green'.
;

     _item.name                 '_exptl_crystal.colour_modifier'
     _item.category_id           exptl_crystal
     _item.mandatory_code        no
     _item_type.code             line
    loop_
     _item_enumeration.value
                                 light
                                 dark
                                 whitish
                                 blackish
                                 grayish
                                 brownish
                                 reddish
                                 pinkish
                                 orangish
                                 yellowish
                                 greenish
                                 bluish
     _item_related.related_name  '_exptl_crystal.colour'
     _item_related.function_code  alternate
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_exptl_crystal_colour_modifier'          cif_core.dic 2.3
      save_

save__exptl_crystal.colour_primary
     _item_description.description
;             The enumeration list of standardized names developed for the
              International Centre for Diffraction Data.
              The colour of a crystal is given by the combination of
              _exptl_crystal.colour_modifier with
              _exptl_crystal.colour_primary, as in 'dark-green' or
              'bluish-violet', if necessary combined with
              _exptl_crystal.colour_lustre, as in 'metallic-green'.
;
     _item.name                 '_exptl_crystal.colour_primary'
     _item.category_id           exptl_crystal
     _item.mandatory_code        no
     _item_type.code             line
    loop_
     _item_enumeration.value
                                 colourless
                                 white
                                 black
                                 gray
                                 brown
                                 red
                                 pink
                                 orange
                                 yellow
                                 green
                                 blue
                                 violet
      _item_related.related_name '_exptl_crystal.colour'
      _item_related.function_code            alternate
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_exptl_crystal_colour_primary'          cif_core.dic 2.3
      save_

save__exptl_crystal.density_meas
     _item_description.description
;              Density values measured using standard chemical and physical
               methods. The units are megagrams per cubic metre (grams per
               cubic centimetre).
;

     _item.name                 '_exptl_crystal.density_meas'
     _item.category_id           exptl_crystal
     _item.mandatory_code        no
     _item_type.code             float
     _item_type_conditions.code  esd
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code            'megagrams_per_cubic_metre'
     _item_related.related_name  '_exptl_crystal.density_meas_esd'
     _item_related.function_code  associated_esd
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_exptl_crystal_density_meas'         cif_core.dic 2.3
      save_

save__exptl_crystal.density_meas_esd
     _item_description.description
;              The estimated standard deviation of _exptl_crystal.density_meas.
;

     _item.name                 '_exptl_crystal.density_meas_esd'
     _item.category_id           exptl_crystal
     _item.mandatory_code        no
     _item_type.code             float
     _item_units.code            'megagrams_per_cubic_metre'
     _item_related.related_name  '_exptl_crystal.density_meas'
     _item_related.function_code  associated_value
#    loop_
#    _item_aliases.alias_name
#    _item_aliases.dictionary
#    _item_aliases.version
#    '_exptl_crystal_density_meas_esd'          cif_core.dic 2.3
      save_

save__exptl_crystal.density_meas_gt
     _item_description.description
;              The value above which the density measured using standard
               chemical and physical methods lies. The units are megagrams
               per cubic metre (grams per cubic centimetre).
               _exptl_crystal.density_meas_gt and _exptl_crystal.density_meas_lt
               should not be used to report new experimental work, for which
               _exptl_crystal.density_meas should be used.  These items are
               intended for use in reporting information in existing databases
               and archives which would be misleading if reported under
               _exptl_crystal.density_meas.
;

     _item.name                 '_exptl_crystal.density_meas_gt'
     _item.category_id           exptl_crystal
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code            'megagrams_per_cubic_metre'
     _item_related.related_name  '_exptl_crystal.density_meas'
     _item_related.function_code  alternate
    loop_
     _item_examples.case
     _item_examples.detail
                                2.5
;                              lower limit for the density (only the range
                               within which the density lies was given in the
                               original paper)
;
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_exptl_crystal_density_meas_gt'         cif_core.dic 2.3
      save_

save__exptl_crystal.density_meas_lt
     _item_description.description
;              The value below which the density measured using standard
               chemical and physical methods lies. The units are megagrams
               per cubic metre (grams per cubic centimetre).
               _exptl_crystal.density_meas_gt and _exptl_crystal.density_meas_lt
               should not be used to report new experimental work, for which
               _exptl_crystal.density_meas should be used.  These items are
               intended for use in reporting information in existing databases
               and archives which would be misleading if reported under
               _exptl_crystal.density_meas.
;

     _item.name                 '_exptl_crystal.density_meas_lt'
     _item.category_id           exptl_crystal
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code            'megagrams_per_cubic_metre'
     _item_related.related_name  '_exptl_crystal.density_meas'
     _item_related.function_code  alternate
    loop_
     _item_examples.case
     _item_examples.detail
                               1.0
                               'specimen floats in water'
                               5.0

;                              upper limit for the density (only the range
                               within which the density lies was given in the
                               original paper)
;
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_exptl_crystal_density_meas_lt'         cif_core.dic 2.3
      save_

save__exptl_crystal.density_meas_temp
     _item_description.description
;              Temperature in kelvins at which _exptl_crystal.density_meas
               was determined.
;
     _item.name                 '_exptl_crystal.density_meas_temp'
     _item.category_id           exptl_crystal
     _item.mandatory_code        no
     _item_type.code             float
     _item_type_conditions.code  esd
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .

     _item_units.code            kelvins
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_exptl_crystal_density_meas_temp'         cif_core.dic 2.3
      save_

save__exptl_crystal.density_meas_temp_esd
     _item_description.description
;              The estimated standard deviation of
               _exptl_crystal.density_meas_temp.
;
     _item.name                 '_exptl_crystal.density_meas_temp_esd'
     _item.category_id           exptl_crystal
     _item.mandatory_code        no
     _item_type.code             float
     _item_units.code            kelvins
#    loop_
#    _item_aliases.alias_name
#    _item_aliases.dictionary
#    _item_aliases.version
#     '_exptl_crystal_density_meas_temp_esd'         cif_core.dic 2.3
      save_

save__exptl_crystal.density_meas_temp_gt
     _item_description.description
;              Temperature in kelvins above which _exptl_crystal.density_meas
               was determined. _exptl_crystal.density_meas_temp_gt and
               _exptl_crystal.density_meas_temp_lt should not be used for
               reporting new work,  for which the correct temperature of
               measurement should be given. These items are intended for
               use in reporting information stored in databases or archives
               which would be misleading if reported under
               _exptl_crystal.density_meas_temp.
;

     _item.name                 '_exptl_crystal.density_meas_temp_gt'
     _item.category_id           exptl_crystal
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .

     _item_units.code            kelvins
     _item_related.related_name  '_exptl_crystal.density_meas_temp'
     _item_related.function_code  alternate

    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_exptl_crystal_density_meas_temp_gt'         cif_core.dic 2.3
      save_

save__exptl_crystal.density_meas_temp_lt
     _item_description.description
;              Temperature in kelvins below which _exptl_crystal.density_meas
               was determined. _exptl_crystal.density_meas_temp_gt and
               _exptl_crystal.density_meas_temp_lt should not be used for
               reporting new work,  for which the correct temperature of
               measurement should be given. These items are intended for
               use in reporting information stored in databases or archives
               which would be misleading if reported under
               _exptl_crystal.density_meas_temp.
;

     _item.name                 '_exptl_crystal.density_meas_temp_lt'
     _item.category_id           exptl_crystal
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .

     _item_units.code            kelvins
     _item_related.related_name  '_exptl_crystal.density_meas_temp'
     _item_related.function_code  alternate
    loop_
     _item_examples.case
     _item_examples.detail
                               300
;                               The density was measured at some unspecified
                                temperature below room temperature.
;
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_exptl_crystal_density_meas_temp_lt'         cif_core.dic 2.3
      save_

save__geom_bond.valence
     _item_description.description
;              The bond valence calculated from _geom_bond.dist.
;
    _item.name                  '_geom_bond.valence'
    _item.category_id            geom_bond
     _item.mandatory_code        no
    _item_type.code              int
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_geom_bond_valence'         cif_core.dic 2.3
      save_

save__publ_author.id_iucr
     _item_description.description
;              Identifier in the IUCr contact database of a publication
               author.  This identifier may be available from the World
               Directory of Crystallographers (http://wdc.iucr.org).
;
     _item.name                 '_publ_author.id_iucr'
     _item.category_id           publ_author
     _item.mandatory_code        no
     _item_type.code             code
     _item_examples.case         2985
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_publ_author_id_iucr'         cif_core.dic 2.3
      save_

save__refine.ls_R_factor_gt
     _item_description.description
;              Residual factor for the reflections (with number given by
               _reflns.number_gt) judged significantly intense (i.e. satisfying
               the threshold specified by _reflns.threshold_expression)
               and included in the refinement. The reflections also satisfy
               the resolution limits established by _refine.ls_d_res_high and
               _refine.ls_d_res_low. This is the conventional R
               factor. See also _refine.ls_wR_factor_ definitions.

                   sum | F(obs) - F(calc) |
               R = ------------------------
                         sum | F(obs) |

               F(obs)  = the observed structure-factor amplitudes
               F(calc) = the calculated structure-factor amplitudes

               and the sum is taken over the specified reflections
;
     _item.name                 '_refine.ls_R_factor_gt'
     _item.category_id           refine
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name '_refine.ls_R_factor_obs'
     _item_related.function_code  alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_refine_ls_R_factor_gt'          cif_core.dic 2.3
      save_

save__refine.ls_goodness_of_fit_gt
     _item_description.description
;              The least-squares goodness-of-fit parameter S for
               significantly intense reflections (see
               _reflns.threshold_expression) after the final cycle of
               refinement. Ideally, account should be taken of parameters
               restrained in the least-squares refinement. See also
               _refine.ls_restrained_S_ definitions.

                   {  sum { w [ Y(obs) - Y(calc) ]^2^ }  }^1/2^
               S = { ----------------------------------- }
                   {            Nref - Nparam            }

               Y(obs)  = the observed coefficients
                         (see _refine_ls_structure_factor_coef)
               Y(calc) = the calculated coefficients
                         (see _refine_ls_structure_factor_coef)
               w       = the least-squares reflection weight
                         [1/(u^2^)]
               u       = standard uncertainty

               Nref   = the number of reflections used in the refinement
               Nparam = the number of refined parameters

               and the sum is taken over the specified reflections
;

     _item.name                 '_refine.ls_goodness_of_fit_gt'
     _item.category_id           refine
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name  '_refine.ls_goodness_of_fit_obs'
     _item_related.function_code  alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_refine_ls_goodness_of_fit_gt'          cif_core.dic 2.3
      save_

save__refine.ls_goodness_of_fit_ref
     _item_description.description
;              The least-squares goodness-of-fit parameter S for all
               reflections included in the refinement after the final cycle
               of refinement. Ideally, account should be taken of parameters
               restrained in the least-squares refinement. See also
               _refine_ls_restrained_S_ definitions.

                   {  sum | w | Y(obs) - Y(calc) |^2^ |  }^1/2^
               S = { ----------------------------------- }
                   {            Nref - Nparam            }

               Y(obs)  = the observed coefficients
                         (see _refine_ls_structure_factor_coef)
               Y(calc) = the calculated coefficients
                         (see _refine_ls_structure_factor_coef)
               w       = the least-squares reflection weight
                         [1/(u^2^)]
               u       = standard uncertainty

               Nref   = the number of reflections used in the refinement
               Nparam = the number of refined parameters

               and the sum is taken over the specified reflections
;
     _item.name                 '_refine.ls_goodness_of_fit_ref'
     _item.category_id           refine
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_refine_ls_goodness_of_fit_ref'          cif_core.dic 2.3
      save_

# save__refine.ls_shift/esd_max
#      _item_description.description
# ;              The largest ratio of the final least-squares parameter
#                shift to the final standard uncertainty (s.u.,
#                formerly described as estimated standard deviation, e.s.d.).
# ;
#      _item.name                 '_refine.ls_shift/esd_max'
#      _item.category_id           refine
#      _item.mandatory_code        no
#      _item_type.code             float
#      _item_related.related_name '_refine.ls_shift/su_max'
#      _item_related.function_code  replaces
#     loop_
#      _item_range.minimum
#      _item_range.maximum
#                            0.0   0.0
#                            0.0    .
#     loop_
#      _item_aliases.alias_name
#      _item_aliases.dictionary
#      _item_aliases.version
#       '_refine_ls_shift/esd_max'         cif_core.dic 2.3
#       save_
#
# save__refine.ls_shift/esd_mean
#      _item_description.description
# ;              The average ratio of the final least-squares parameter
#                shift to the final standard uncertainty (s.u.,
#                formerly described as estimated standard deviation, e.s.d.).
# ;
#
#      _item.name                 '_refine.ls_shift/esd_mean'
#      _item.category_id           refine
#      _item.mandatory_code        no
#      _item_type.code             float
#      _item_related.related_name  '_refine.ls_shift/su_mean'
#      _item_related.function_code  replaces
#     loop_
#      _item_range.minimum
#      _item_range.maximum
#                            0.0   0.0
#                            0.0    .
#     loop_
#      _item_aliases.alias_name
#      _item_aliases.dictionary
#      _item_aliases.version
#        '_refine_ls_shift/esd_mean'         cif_core.dic 2.3
#       save_

save__refine.ls_shift_over_su_max
     _item_description.description
;              The largest ratio of the final least-squares parameter
               shift to the final standard uncertainty.
;
     _item.name                 '_refine.ls_shift_over_su_max'
     _item.category_id           refine
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name '_refine.ls_shift_over_esd_max'
     _item_related.function_code alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_refine_ls_shift/su_max'         cif_core.dic 2.3
      save_

save__refine.ls_shift_over_su_max_lt
     _item_description.description
;              An upper limit for the largest ratio of the final
               least-squares parameter shift to the final
               standard uncertainty.  This item is used when the largest
               value of the shift divided by the final standard uncertainty
               is too small to measure.
;
     _item.name                 '_refine.ls_shift_over_su_max_lt'
     _item.category_id           refine
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name '_refine.ls_shift_over_su_max'
     _item_related.function_code alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_refine_ls_shift/su_max_lt'         cif_core.dic 2.3
      save_

save__refine.ls_shift_over_su_mean
     _item_description.description
;              The average ratio of the final least-squares parameter
               shift to the final standard uncertainty.
;
     _item.name                '_refine.ls_shift_over_su_mean'
     _item.category_id           refine
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name '_refine.ls_shift_over_esd_mean'
     _item_related.function_code alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_refine_ls_shift/su_mean'    cif_core.dic 2.3
      save_

save__refine.ls_shift_over_su_mean_lt
     _item_description.description
;              An upper limit for the average ratio of the final
               least-squares parameter shift to the
               final standard uncertainty.  This
               item is used when the average value of the shift divided by
               the final standard uncertainty is too small to measure.
;
     _item.name                 '_refine.ls_shift_over_su_mean_lt'
     _item.category_id           refine
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name '_refine.ls_shift_over_su_mean'
     _item_related.function_code alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .

    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_refine_ls_shift/su_mean_lt'         cif_core.dic 2.3
      save_

#####################
## REFINE_LS_CLASS ##
#####################

save_refine_ls_class
    _category.description
;              Data items in the REFINE_LS_CLASS category record details
               about the reflections used for the structure refinement
               for each reflection class separately.
;

    _category.id                   'refine_ls_class'
    _category.mandatory_code        no
    _category_key.name             '_refine_ls_class.code'
    loop_
    _category_examples.case
    _category_examples.detail
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    loop_
        _refine_ls_class.R_factor_gt
        _refine_ls_class.code
                0.057    'Main'
                0.074    'Com'
                0.064    'NbRefls'
                0.046    'LaRefls'
                0.112    'Sat1'
                0.177    'Sat2'
;
;
    Example 1 - data for a modulated structure from van Smaalen
    [J. Phys. Condens. Matter (1991),  3, 1247-1263].
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      save_

save__refine_ls_class.code
     _item_description.description
;              The code identifying a certain reflection class. This code must
               match a _reflns_class.code.
;

     _item.name                 '_refine_ls_class.code'
     _item.category_id           refine_ls_class
     _item.mandatory_code        yes
     _item_type.code             code
    loop_
     _item_examples.case
                                 '1'
                                 'm1'
                                 's2'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_refine_ls_class_code'         cif_core.dic 2.3
      save_

save__refine_ls_class.d_res_high
     _item_description.description
;              For each reflection class, the lowest value in angstroms
               for the interplanar spacings for the reflections used in the
               refinement. This is called the highest resolution.
;
     _item.name                 '_refine_ls_class.d_res_high'
     _item.category_id           refine_ls_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code           'angstroms'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_refine_ls_class_d_res_high'          cif_core.dic 2.3
      save_

save__refine_ls_class.d_res_low
     _item_description.description
;              For each reflection class, the highest value in angstroms
               for the interplanar spacings for the reflections used in the
               refinement. This is called the lowest resolution.
;
     _item.name                 '_refine_ls_class.d_res_low'
     _item.category_id           refine_ls_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code           'angstroms'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_refine_ls_class_d_res_low'         cif_core.dic 2.3
      save_

save__refine_ls_class.R_factor_gt
     _item_description.description
;              For each reflection class, the residual factor for significantly
               intense reflections (see _reflns.threshold_expression) included
               in the refinement.
               The reflections also satisfy the resolution limits established by
               _refine_ls_class.d_res_high and _refine_ls_class.d_res_low.
               This is the conventional R factor. See also the definition of
               _refine_ls_class.wR_factor_all.

                   sum | F(obs) - F(calc) |
               R = ------------------------
                         sum | F(obs) |

               F(obs)  = the observed structure-factor amplitudes
               F(calc) = the calculated structure-factor amplitudes

               and the sum is taken over the reflections of this class.
;

     _item.name                 '_refine_ls_class.R_factor_gt'
     _item.category_id           refine_ls_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_refine_ls_class_R_factor_gt'         cif_core.dic 2.3
      save_

save__refine_ls_class.R_factor_all
     _item_description.description
;              For each reflection class, the residual factor for all
               reflections satisfying the resolution limits established by
               _refine_ls_class.d_res_high and _refine_ls_class.d_res_low.
               This is the conventional R factor. See also the
               definition of _refine_ls_class.wR_factor_all.

                   sum | F(obs) - F(calc) |
               R = ------------------------
                         sum | F(obs) |

               F(obs)  = the observed structure-factor amplitudes
               F(calc) = the calculated structure-factor amplitudes

               and the sum is taken over the reflections of this class.
;

     _item.name                 '_refine_ls_class.R_factor_all'
     _item.category_id           refine_ls_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .

    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_refine_ls_class_R_factor_all'         cif_core.dic 2.3
      save_

save__refine_ls_class.R_Fsqd_factor
     _item_description.description
;              For each reflection class, the residual factor R(F^2^) calculated
               on the squared amplitudes of the observed and calculated
               structure factors, for the reflections judged significantly
               intense (i.e. satisfying the threshold specified by
               _reflns.threshold_expression) and included in the refinement.

               The reflections also satisfy the resolution limits established
               by _refine_ls_class.d_res_high and _refine_ls_class.d_res_low.

                          sum | F(obs)^2^ - F(calc)^2^ |
               R(Fsqd) = -------------------------------
                                  sum F(obs)^2^

               F(obs)^2^  = squares of the observed structure-factor amplitudes
               F(calc)^2^ = squares of the calculated structure-factor
                            amplitudes

               and the sum is taken over the reflections of this class.
;

     _item.name                 '_refine_ls_class.R_Fsqd_factor'
     _item.category_id           refine_ls_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_refine_ls_class_R_Fsqd_factor'         cif_core.dic 2.3
      save_

save__refine_ls_class.R_I_factor
     _item_description.description
;              For each reflection class, the residual factor R(I) for the
               reflections judged significantly intense (i.e. satisfying the
               threshold specified by _reflns.threshold_expression) and
               included in the refinement.

               This is most often calculated in Rietveld refinements
               against powder data, where it is referred to as R~B~ or R~Bragg~

                       sum | I(obs) - I(calc) |
               R(I) =  ------------------------
                              sum | I(obs) |

               I(obs)  = the net observed intensities
               I(calc) = the net calculated intensities

               and the sum is taken over the reflections of this class.
;
     _item.name                 '_refine_ls_class.R_I_factor'
     _item.category_id           refine_ls_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .

    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_refine_ls_class_R_I_factor'         cif_core.dic 2.3
      save_

save__refine_ls_class.wR_factor_all
     _item_description.description
;              For each reflection class, the weighted residual factor for all
               reflections included in the refinement. The reflections also
               satisfy the resolution limits established by
               _refine_ls_class.d_res_high and _refine_ls_class.d_res_low.
               See also the _refine_ls_class.R_factor_ definitions.

                    ( sum w [ Y(obs) - Y(calc) ]^2^  )^1/2^
               wR = ( ------------------------------ )
                    (         sum w Y(obs)^2^       )

               Y(obs)  = the observed amplitude specified by
                         _refine.ls_structure_factor_coef
               Y(calc) = the calculated amplitude specified by
                         _refine.ls_structure_factor_coef
               w       = the least-squares weight

               and the sum is taken over the reflections of this class.
;

     _item.name                 '_refine_ls_class.wR_factor_all'
     _item.category_id           refine_ls_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_refine_ls_class_wR_factor_all'         cif_core.dic 2.3
      save_

save__refln.class_code
     _item_description.description
;              The code identifying the class to which this reflection has been
               assigned. This code must match a value of _reflns_class.code.
               Reflections may be grouped into classes for a variety of
               purposes. For example, for modulated structures each reflection
               class may be defined by the number m=sum|m~i~|, where the m~i~
               are the integer coefficients that, in addition to h,k,l, index
               the corresponding diffraction vector in the basis defined
               for the reciprocal lattice.
;
     _item.name                 '_refln.class_code'
     _item.category_id           refln
     _item.mandatory_code        no
     _item_type.code             code
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_refln_class_code'         cif_core.dic 2.3
      save_

save__refln.d_spacing
     _item_description.description
;              The d spacing in angstroms for this reflection. This is related
               to the (sin theta)/lambda value by the expression
                    _refln.d_spacing = 2/(_refln.sint/lambda).
;

     _item.name                 '_refln.d_spacing'
     _item.category_id           refln
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code           'angstroms'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_refln_d_spacing'         cif_core.dic 2.3
      save_

save__refln.include_status
     _item_description.description
;              Classification of a reflection so as to indicate its status with
               respect to inclusion in the refinement and the calculation of
               R factors.
;

     _item.name                 '_refln.include_status'
     _item.category_id           refln
     _item.mandatory_code        no
     _item_type.code             code
     _item_related.related_name '_refln.status'
     _item_related.function_code alternate
    loop_
     _item_enumeration.value
     _item_enumeration.detail
                                      o
;                                     (lower-case letter o for 'observed')
                                      satisfies _refine.ls_d_res_high
                                      satisfies _refine.ls_d_res_low
                                      exceeds _reflns.threshold_expression
;
                                 <
;                                     satisfies _refine.ls_d_res_high
                                      satisfies _refine.ls_d_res_low
                                      does not exceed
                                        _reflns.threshold_expression
;
                                 -  'systematically absent reflection'
                                 x  'unreliable measurement -- not used'
                                 h  'does not satisfy _refine.ls_d_res_high'
                                 l  'does not satisfy _refine.ls_d_res_low'
#    _item_default.value         o
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
       '_refln_include_status'         cif_core.dic 2.3
      save_

save__refln.mean_path_length_tbar
    _item_description.description
;              Mean path length in millimetres through the crystal for this
               reflection.
;

     _item.name                 '_refln.mean_path_length_tbar'
     _item.category_id           refln
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code           'millimetres'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
       '_refln_mean_path_length_tbar'        cif_core.dic 2.3
      save_

# save__refln.observed_status
#      _item_description.description
# ;              Classification of a reflection so as to indicate its status
#                with respect to inclusion in refinement and calculation of
#                R factors.
# ;
#
#      _item.name                 '_refln.observed_status'
#      _item.category_id           refln
#      _item.mandatory_code        no
#      _item_type.code             code
#      _item_related.related_name '_refln.include_status'
#      _item_related.function_code replaces
#     loop_
#      _item_enumeration.value
#      _item_enumeration.detail
#                                       o
# ;                                     satisfies _refine.ls_d_res_high
#                                       satisfies _refine.ls_d_res_low
#                                       observed by _reflns_observed_criterion
# ;
#                                  <
# ;                                     satisfies _refine.ls_d_res_high
#                                       satisfies _refine.ls_d_res_low
#                                       unobserved by _reflns.observed_criterion
# ;
#                                  -  'systematically absent reflection'
#                                  x  'unreliable measurement -- not used'
#                                  h  'does not satisfy _refine.ls_d_res_high'
#                                  l  'does not satisfy _refine.ls_d_res_low'
#
# #    _item_default.value         o
#     loop_
#      _item_aliases.alias_name
#      _item_aliases.dictionary
#      _item_aliases.version
#       '_refln_observed_status'         cif_core.dic 2.3
#       save_

# save__refln.sint/lambda
#      _item_description.description
# ;              The (sin theta)/lambda value in reciprocal angstroms for this
#                reflection.
# ;
#      _item.name                 '_refln.sint/lambda'
#      _item.category_id           refln
#      _item.mandatory_code        no
#      _item_type.code             float
#     loop_
#      _item_range.minimum
#      _item_range.maximum
#                            0.0   0.0
#                            0.0    .
#      _item_units.code           'reciprocal_angstroms'
#     loop_
#      _item_aliases.alias_name
#      _item_aliases.dictionary
#      _item_aliases.version
#       '_refln_sint/lambda'         cif_core.dic 2.3
#       save_

save__reflns.Friedel_coverage
     _item_description.description
;              The proportion of Friedel-related reflections present in
               the number of  'independent' reflections specified by
               the item _reflns.number_all.

               This proportion is calculated as the ratio:

                 [N(Crystal class) - N(Laue symmetry)] / N(Laue symmetry)

               where, working from the DIFFRN_REFLN list,

               N(Crystal class) is the number of reflections obtained on
                  averaging under the symmetry of the crystal class
               N(Laue symmetry) is the number of reflections obtained on
                  averaging under the Laue symmetry.

               Examples:
                 (a) For centrosymmetric structures, the value of
                     _reflns.Friedel_coverage is
                     necessarily equal to 0.0, as the crystal class
                     is identical to the Laue symmetry.
                 (b) For whole-sphere data for a crystal in the space
                     group P1, _reflns.Friedel_coverage is equal to 1.0,
                     as no reflection h k l is equivalent to -h -k -l
                     in the crystal class and all Friedel pairs
                     {h k l; -h -k -l} have been measured.
                 (c) For whole-sphere data in space group Pmm2,
                    _reflns.Friedel_coverage
                     will be < 1.0 because although reflections h k l and
                     -h -k -l are not equivalent when h k l indices are
                     nonzero, they are when l=0.
                 (d) For a crystal in space group Pmm2, measurements of the
                     two inequivalent octants h >= 0, k >=0, l lead to the
                     same value as in (c), whereas measurements of the
                     two equivalent octants h >= 0, k, l >= 0 will lead to
                     a zero value for _reflns.Friedel_coverage.
;
     _item.name                 '_reflns.Friedel_coverage'
     _item.category_id           reflns
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0   1.0
                           1.0   1.0
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_reflns_Friedel_coverage'         cif_core.dic 2.3
      save_

save__reflns.number_gt
    _item_description.description
;              The number of reflections in the REFLN list (not the
               DIFFRN_REFLN list) that are significantly intense, satisfying
               the criterion specified by _reflns.threshold_expression. This may
               include Friedel-equivalent reflections (i.e. those which are
               symmetry-equivalent under the Laue symmetry but inequivalent
               under the crystal class) according to the nature of the
               structure and the procedures used. Any special characteristics
               of the reflections included in the REFLN list should be
               described using the item _reflns.details.
;
     _item.name                 '_reflns.number_gt'
     _item.category_id           reflns
     _item.mandatory_code        no
     _item_type.code             int
#     _item_related.related_name '_reflns.number_observed'
#     _item_related.function_code  alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0   0
                           0   .
     loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
       '_reflns_number_gt'         cif_core.dic 2.3
     save_

save__reflns.threshold_expression
    _item_description.description
;              The threshold, usually based on multiples of u(I), u(F^2^)
               or u(F), that serves to identify significantly intense
               reflections, the number of which is given by _reflns.number_gt.
               These reflections are used in the calculation of
               _refine.ls_R_factor_gt.
;
    _item.name                  '_reflns.threshold_expression'
    _item.category_id             reflns
    _item.mandatory_code          no
    _item_aliases.alias_name    '_reflns_threshold_expression'
    _item_aliases.dictionary      cif_core.dic
    _item_aliases.version         2.3
    loop_
    _item_related.related_name
    _item_related.function_code '_reflns.observed_criterion'
                                  alternate

    _item_type.code               text
    _item_examples.case          'I>2u(I)'
     save_

##################
## REFLNS_CLASS ##
##################

save_reflns_class
    _category.description
;              Data items in the REFLNS_CLASS category record details
               of the reflections used to determine the structural
               parameters for each reflection class.
;
    _category.id                     'reflns_class'
    _category.mandatory_code         no
    _category_key.name               '_reflns_class.code'
    loop_
    _category_examples.case
    _category_examples.detail
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    loop_
        _reflns_class.number_gt
        _reflns_class.code
               584     'Main'
               226     'Sat1'
               50      'Sat2'
;
;
    Example 1 - example corresponding to the one-dimensional incommensurately
                modulated structure of K~2~SeO~4~.
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      save_

save__reflns_class.code
     _item_description.description
;              The code identifying a certain reflection class.
;
     _item.name                 '_reflns_class.code'
     _item.category_id           reflns_class
     _item.mandatory_code        yes
     _item_type.code             code
    loop_
     _item_examples.case
                                 '1'
                                 'm1'
                                 's2'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_reflns_class_code'          cif_core.dic 2.3
      save_

save__reflns_class.description
    _item_description.description
;              Description of each reflection class.
;
     _item.name                 '_reflns_class.description'
     _item.category_id           reflns_class
     _item.mandatory_code        no
     _item_type.code             text
    loop_
     _item_examples.case
                                 'm=1 first order satellites'
                                 'H0L0 common projection reflections'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
       '_reflns_class_description'         cif_core.dic 2.3
      save_

save__reflns_class.d_res_high
     _item_description.description
;              For each reflection class, the smallest value in angstroms
               for the interplanar spacings for the reflections used in the
               refinement. This is called the highest resolution.
;
     _item.name                 '_reflns_class.d_res_high'
     _item.category_id           reflns_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code           'angstroms'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_reflns_class_d_res_high'         cif_core.dic 2.3
      save_

save__reflns_class.d_res_low
     _item_description.description
;              For each reflection class, the largest value in angstroms
               for the interplanar spacings for the reflections used in the
               refinement. This is called the lowest resolution.
;
     _item.name                 '_reflns_class.d_res_low'
     _item.category_id           reflns_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
     _item_units.code           'angstroms'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_reflns_class_d_res_low'         cif_core.dic 2.3
      save_

save__reflns_class.number_gt
     _item_description.description
;              For each reflection class, the number of significantly intense
               reflections (see _reflns.threshold_expression) in the REFLN
               list (not the DIFFRN_REFLN list). This may include Friedel-
               equivalent reflections (i.e. those which are symmetry-equivalent
               under the Laue symmetry but inequivalent under the crystal
               class)  according to the nature of the structure and the
               procedures used. Any special characteristics of the reflections
               included in the REFLN list should be described using the item
               _reflns.details.
;

     _item.name                 '_reflns_class.number_gt'
     _item.category_id           reflns_class
     _item.mandatory_code        no
     _item_type.code             int
    loop_
     _item_range.minimum
     _item_range.maximum
                           0   0
                           0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_reflns_class_number_gt'          cif_core.dic 2.3
      save_

save__reflns_class.number_total
     _item_description.description
;              For each reflection class, the total number of reflections
               in the REFLN list (not the DIFFRN_REFLN list). This may
               include Friedel-equivalent reflections (i.e. those which are
               symmetry-equivalent under the Laue symmetry but inequivalent
               under the crystal class) according to the nature of the
               structure and the procedures used.  Any special characteristics
               of the reflections included in the REFLN list should be
               described using the item _reflns.details.
;

     _item.name                 '_reflns_class.number_total'
     _item.category_id           reflns_class
     _item.mandatory_code        no
     _item_type.code             int
    loop_
     _item_range.minimum
     _item_range.maximum
                           0   0
                           0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_reflns_class_number_total'         cif_core.dic 2.3
      save_

save__reflns_class.R_factor_all
     _item_description.description
;              For each reflection class, the residual factor for all
               reflections included in the refinement.
               The reflections also satisfy the resolution limits established by
               _reflns_class.d_res_high and _reflns_class.d_res_low.
               This is the conventional R factor. See also the
               definition of _reflns_class.wR_factor_all.

                   sum | F(obs) - F(calc) |
               R = ------------------------
                         sum | F(obs) |

               F(obs)  = the observed structure-factor amplitudes
               F(calc) = the calculated structure-factor amplitudes

               and the sum is taken over the reflections of this class.
;
     _item.name                 '_reflns_class.R_factor_all'
     _item.category_id           reflns_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_reflns_class_R_factor_all'          cif_core.dic 2.3
      save_

save__reflns_class.R_factor_gt
     _item_description.description
;              For each reflection class, the residual factor for significantly
               intense reflections (see _reflns.threshold_expression) included
               in the refinement.
               The reflections also satisfy the resolution limits established by
               _reflns_class.d_res_high and _reflns_class.d_res_low.
               This is the conventional R factor. See also the
               definition of _reflns_class.wR_factor_all.

                   sum | F(obs) - F(calc) |
               R = ------------------------
                         sum | F(obs) |

               F(obs)  = the observed structure-factor amplitudes
               F(calc) = the calculated structure-factor amplitudes

               and the sum is taken over the reflections of this class.
;
     _item.name                 '_reflns_class.R_factor_gt'
     _item.category_id           reflns_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .

    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_reflns_class_R_factor_gt'         cif_core.dic 2.3
      save_

save__reflns_class.R_Fsqd_factor
     _item_description.description
;              For each reflection class, the residual factor R(F^2^) calculated
               on the squared amplitudes of the observed and calculated
               structure factors for the reflections judged significantly
               intense (i.e. satisfying the threshold specified by
               _reflns.threshold_expression) and included in the refinement.

               The reflections also satisfy the resolution limits established
               by _reflns_class.d_res_high and _reflns_class.d_res_low.

                          sum | F(obs)^2^ - F(calc)^2^ |
               R(Fsqd) = -------------------------------
                                  sum F(obs)^2^

               F(obs)^2^  = squares of the observed structure-factor amplitudes
               F(calc)^2^ = squares of the calculated structure-factor
                            amplitudes

               and the sum is taken over the reflections of this class.
;

     _item.name                 '_reflns_class.R_Fsqd_factor'
     _item.category_id           reflns_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
       '_reflns_class_R_Fsqd_factor'        cif_core.dic 2.3
      save_

save__reflns_class.R_I_factor
     _item_description.description
;              For each reflection class, the residual factor R(I) for the
               reflections judged significantly intense (i.e. satisfying the
               threshold specified by _reflns.threshold_expression) and
               included in the refinement.

               This is most often calculated in Rietveld refinements
               against powder data, where it is referred to as R~B~ or R~Bragg~.

                       sum | I(obs) - I(calc) |
               R(I) =  ------------------------
                              sum | I(obs) |

               I(obs)  = the net observed intensities
               I(calc) = the net calculated intensities

               and the sum is taken over the reflections of this class.
;
     _item.name                 '_reflns_class.R_I_factor'
     _item.category_id           reflns_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_reflns_class_R_I_factor'         cif_core.dic 2.3
      save_

save__reflns_class.wR_factor_all
     _item_description.description
;              For each reflection class, the weighted residual factors for all
               reflections included in the refinement. The reflections also
               satisfy the resolution limits established by
               _reflns_class.d_res_high and _reflns_class.d_res_low.
               See also _reflns_class.R_factor_ definitions.

                    ( sum w [ Y(obs) - Y(calc) ]^2^  )^1/2^
               wR = ( ------------------------------ )
                    (         sum w Y(obs)^2^       )

               Y(obs)  = the observed amplitude specified by
                         _refine.ls_structure_factor_coef
               Y(calc) = the calculated amplitude specified by
                         _refine.ls_structure_factor_coef
               w       = the least-squares weight

               and the sum is taken over the reflections of this class.
;
     _item.name                 '_reflns_class.wR_factor_all'
     _item.category_id           reflns_class
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0   0.0
                           0.0    .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_reflns_class_wR_factor_all'           cif_core.dic 2.3
      save_

save__reflns_shell.meanI_over_sigI_gt
     _item_description.description
;              The ratio of the mean of the intensities of the significantly
               intense reflections (see _reflns.threshold_expression) in
               this shell to the mean of the standard uncertainties of the
               intensities of the significantly intense reflections in this
               shell.
;
     _item.name                 '_reflns_shell.meanI_over_sigI_gt'
     _item.category_id           reflns_shell
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name '_reflns_shell.meanI_over_uI_gt'
     _item_related.function_code replaces
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
       '_reflns_shell_meanI_over_sigI_gt'         cif_core.dic 2.3
      save_

save__reflns_shell.meanI_over_uI_all
     _item_description.description
;              The ratio of the mean of the intensities of all reflections
               in this shell to the mean of the standard uncertainties of the
               intensities of all reflections in this shell.
;
     _item.name                 '_reflns_shell.meanI_over_uI_all'
     _item.category_id           reflns_shell
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name '_reflns_shell.meanI_over_sigI_all'
     _item_related.function_code alternate
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_reflns_shell_meanI_over_uI_all'         cif_core.dic 2.3

      save_

save__reflns_shell.meanI_over_uI_gt
     _item_description.description
;              The ratio of the mean of the intensities of the significantly
               intense reflections (see _reflns.threshold_expression) in
               this shell to the mean of the standard uncertainties of the
               intensities of the significantly intense reflections in this
               shell.
;
     _item.name                 '_reflns_shell.meanI_over_uI_gt'
     _item.category_id           reflns_shell
     _item.mandatory_code        no
     _item_type.code             float
    loop_
     _item_related.related_name
     _item_related.function_code
              '_reflns_shell.meanI_over_sigI_gt'   alternate
              '_reflns_shell.meanI_over_sigI_obs'  alternate
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_reflns_shell_meanI_over_uI_gt'         cif_core.dic 2.3
      save_

save__reflns_shell.number_measured_gt
     _item_description.description
;              The number of significantly intense reflections
               (see _reflns.threshold_expression) measured for this
               shell.
;
     _item.name                 '_reflns_shell.number_measured_gt'
     _item.category_id           reflns_shell
     _item.mandatory_code        no
     _item_type.code             int
     _item_related.related_name  '_reflns_shell.number_measured_obs'
     _item_related.function_code  alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0   0
                           0   .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_reflns_shell_number_measured_gt'          cif_core.dic 2.3
      save_

save__reflns_shell.number_unique_gt
     _item_description.description
;              The total number of significantly intense reflections
               (see _reflns.threshold_expression) resulting from merging
               measured symmetry-equivalent reflections for this resolution
               shell.
;
     _item.name                 '_reflns_shell.number_unique_gt'
     _item.category_id           reflns_shell
     _item.mandatory_code        no
     _item_type.code             int
     _item_related.related_name '_reflns_shell.number_unique_obs'
     _item_related.function_code alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0   0
                           0   .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_reflns_shell_number_unique_gt'          cif_core.dic 2.3
      save_

save__reflns_shell.percent_possible_gt
     _item_description.description
;              The percentage of geometrically possible reflections
               represented by significantly intense reflections
               (see _reflns.threshold_expression) measured for this
               shell.
;
     _item.name                 '_reflns_shell.percent_possible_gt'
     _item.category_id           reflns_shell
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name '_reflns_shell.percent_possible_obs'
     _item_related.function_code  alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0    0.0
                           0.0  100.0
                         100.0  100.0
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_reflns_shell_percent_possible_gt'          cif_core.dic 2.3
      save_

save__reflns_shell.Rmerge_F_gt
     _item_description.description
;              The value of Rmerge(F) for significantly intense reflections
               (see _reflns.threshold_expression) in a given shell.

                           sum~i~ ( sum~j~ | F~j~ - <F> | )
               Rmerge(F) = --------------------------------
                               sum~i~ ( sum~j~ <F> )

               F~j~  = the amplitude of the jth observation of reflection i
               <F> = the mean of the amplitudes of all observations of
                      reflection i

               sum~i~ is taken over all reflections
               sum~j~ is taken over all observations of each reflection.
;
     _item.name                 '_reflns_shell.Rmerge_F_gt'
     _item.category_id           reflns_shell
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name '_reflns_shell.Rmerge_F_obs'
     _item_related.function_code  alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0    0.0
                           0.0     .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_reflns_shell_Rmerge_F_gt'         cif_core.dic 2.3
      save_

save__reflns_shell.Rmerge_I_gt
     _item_description.description
;              The value of Rmerge(I) for significantly intense reflections
               (see _reflns.threshold_expression) in a given shell.

                           sum~i~ ( sum~j~ | I~j~ - <I> | )
               Rmerge(I) = --------------------------------
                               sum~i~ ( sum~j~ <I> )

               I~j~  = the intensity of the jth observation of reflection i
               <I> = the mean of the intensities of all observations of
                      reflection i

               sum~i~ is taken over all reflections
               sum~j~ is taken over all observations of each reflection.
;
     _item.name                 '_reflns_shell.Rmerge_I_gt'
     _item.category_id           reflns_shell
     _item.mandatory_code        no
     _item_type.code             float
     _item_related.related_name '_reflns_shell.Rmerge_I_obs'
     _item_related.function_code alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           0.0    0.0
                           0.0     .
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
     '_reflns_shell_Rmerge_I_gt'          cif_core.dic 2.3
      save_

#################
## SPACE_GROUP ##
#################

save_space_group
    _category.description
;              Contains all the data items that refer to the space group as a
               whole, such as its name or crystal system. They may be looped,
               for example, in a list of space groups and their properties.

               Only a subset of the SPACE_GROUP category items appear in
               this dictionary.  The remainder are found in the symmetry CIF
               dictionary.

               Space-group types are identified by their number as given in
               International Tables for Crystallography Vol. A. Specific
               settings of the space groups can be identified either by their
               Hall symbol or by specifying their symmetry operations.

               The commonly used Hermann-Mauguin symbol determines the
               space-group type uniquely but several different Hermann-Mauguin
               symbols may refer to the same space-group type. A Hermann-Mauguin
               symbol contains information on the choice of the basis, but not
               on the choice of origin.  Different formats for the
               Hermann-Mauguin symbol are found in the symmetry CIF dictionary.
;
    _category.id                     'space_group'
    _category.mandatory_code         no
    _category_key.name               '_space_group.id'
    loop_
    _category_examples.case
    _category_examples.detail
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    _space_group.id                 1
    _space_group.name_H-M_alt       'C 2/c'
    _space_group.IT_number          15
    _space_group.name_Hall          '-C 2yc'
    _space_group.crystal_system     monoclinic
;
;
    Example 1 - the monoclinic space group No. 15 with unique axis b.
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      save_

save__space_group.crystal_system
     _item_description.description
;              The name of the system of geometric crystal classes of space
               groups (crystal system) to which the space group belongs.
               Note that rhombohedral space groups belong to the
               trigonal system.
;
     _item.name                 '_space_group.crystal_system'
     _item.category_id           space_group
     _item.mandatory_code        no
     _item_type.code             code
     _item_related.related_name '_symmetry.cell_setting'
     _item_related.function_code alternate
    loop_
     _item_enumeration.value     triclinic
                                 monoclinic
                                 orthorhombic
                                 tetragonal
                                 trigonal
                                 hexagonal
                                 cubic
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_space_group_crystal_system'         cif_core.dic 2.3
      save_

save__space_group.id
     _item_description.description
;              This is the unique identifier for the SPACE_GROUP category.
;
     _item.name                 '_space_group.id'
     _item.category_id           space_group
     _item.mandatory_code        yes
     _item_type.code             code
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_space_group_id'         cif_core.dic 2.3
      save_

save__space_group.IT_number
     _item_description.description
;              The number as assigned in International Tables for
               Crystallography Vol. A, specifying the proper affine class (i.e.
               the orientation-preserving affine class) of space groups
               (crystallographic space-group type) to which the space group
               belongs.  This number defines the space-group type but not
               the coordinate system in which it is expressed.
;
     _item.name                 '_space_group.IT_number'
     _item.category_id           space_group
     _item.mandatory_code        no
     _item_type.code             int
     _item_related.related_name '_symmetry.Int_Tables_number'
     _item_related.function_code alternate
    loop_
     _item_range.minimum
     _item_range.maximum
                           1     1
                           1   230
                         230   230
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_space_group_IT_number'         cif_core.dic 2.3
      save_

save__space_group.name_Hall
     _item_description.description
;              Space-group symbol defined by Hall.

               Each component of the space-group name is separated by a
               space or an underscore.  The use of a space is strongly
               recommended.  The underscore is only retained because it
               was used in old CIFs.  It should not be
               used in new CIFs.

               _space_group.name_Hall uniquely defines the space group and
               its reference to a particular coordinate system.

               Ref: Hall, S. R. (1981). Acta Cryst. A37, 517-525; erratum
                    (1981), A37, 921.
                    [See also International Tables for Crystallography
                    Vol. B (2001), Chapter 1.4, Appendix 1.4.2.]
;
     _item.name                 '_space_group.name_Hall'
     _item.category_id           space_group
     _item.mandatory_code        no
     _item_type.code             line
     _item_related.related_name '_symmetry.space_group_name_Hall'
     _item_related.function_code alternate
    loop_
     _item_examples.case
     _item_examples.detail
            'P 2c -2ac'            'equivalent to Pca21'
            '-I 4bd 2ab 3'         'equivalent to Ia3d'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_space_group_name_Hall'         cif_core.dic 2.3
      save_

save__space_group.name_H-M_alt
     _item_description.description
;              _space_group.name_H-M_alt allows any Hermann-Mauguin symbol
               to be given. The way in which this item is used is determined
               by the user and in general is not intended to be interpreted by
               computer. It may, for example, be used to give one of the
               extended Hermann-Mauguin symbols given in Table 4.3.2.1 of
               International Tables for Crystallography Vol. A (2002) or
               a Hermann-Mauguin symbol for a conventional or unconventional
               setting.

               Each component of the space-group name is separated by a
               space or an underscore. The use of a space is strongly
               recommended.  The underscore is only retained because it
               was used in old CIFs. It should not be
               used in new CIFs. Subscripts should appear without special
               symbols. Bars should be given as negative signs before the
               numbers to which they apply.

               The commonly used Hermann-Mauguin symbol determines the space-
               group type uniquely but a given space-group type may be
               described by more than one Hermann-Mauguin symbol. The space-
               group type is best described using _space_group.IT_number.

               The Hermann-Mauguin symbol may contain information on the
               choice of basis, but not on the choice of origin. To
               define the setting uniquely, use _space_group.name_Hall or
               list the symmetry operations.
;
     _item.name                 '_space_group.name_H-M_alt'
     _item.category_id           space_group
     _item.mandatory_code        no
     _item_type.code             line
     _item_related.related_name '_symmetry.space_group_name_H-M'
     _item_related.function_code alternate
    loop_
     _item_examples.case
     _item_examples.detail
;                               loop_
                                   _space_group.name_H-M_alt
                                    'C m c m'
                                    'C 2/c 2/m 21/m'
                                    'A m a m'
;
                               'three examples for space group No. 63'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
       '_space_group_name_H-M_alt'         cif_core.dic 2.3
      save_

#######################
## SPACE_GROUP_SYMOP ##
#######################

save_space_group_symop
    _category.description
;              Contains information about the symmetry operations of the
               space group.
;

    _category.id                   'space_group_symop'
    _category.mandatory_code        no
    _category_key.name             '_space_group_symop.id'
    loop_
    _category_examples.case
    _category_examples.detail
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;   loop_
    _space_group_symop.id
    _space_group_symop.operation_xyz
      1    x,y,z
      2   -x,-y,-z
      3   -x,1/2+y,1/2-z
      4    x,1/2-y,1/2+z
;
;
    Example 1 - The symmetry operations for the space group P21/c.
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      save_

save__space_group_symop.id
     _item_description.description
;              An arbitrary identifier that uniquely labels each symmetry
               operation in the list.
;
     _item.name                 '_space_group_symop.id'
     _item.category_id           space_group_symop
     _item.mandatory_code        yes
     _item_type.code             code
     _item_related.related_name '_symmetry_equiv.id'
     _item_related.function_code alternate
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
       '_space_group_symop_id'         cif_core.dic 2.3
      save_

save__space_group_symop.operation_xyz
     _item_description.description
;               A parsable string giving one of the symmetry operations of the
                space group in algebraic form.  If W is a matrix representation
                of the rotational part of the symmetry operation defined by the
                positions and signs of x, y and z, and w is a column of
                translations defined by the fractions, an equivalent position
                X' is generated from a given position X by the equation

                          X' = WX + w

                (Note: X is used to represent bold_italics_x in International
                Tables for Crystallography Vol. A, Part 5)

                When a list of symmetry operations is given, it must contain
                a complete set of coordinate representatives which generates
                all the operations of the space group by the addition of
                all primitive translations of the space group. Such
                representatives are to be found as the coordinates of
                the general-equivalent position in International Tables for
                Crystallography Vol. A (2002), to which it is necessary to
                add any centring translations shown above the
                general-equivalent position.

                That is to say, it is necessary to list explicity all the
                symmetry operations required to generate all the atoms in
                the unit cell defined by the setting used.
;

     _item.name                 '_space_group_symop.operation_xyz'
     _item.category_id           space_group_symop
     _item.mandatory_code        no
     _item_type.code             line
#     _item_default.value        'x,y,z'
     _item_related.related_name  '_symmetry_equiv.pos_as_xyz'
     _item_related.function_code  alternate
    loop_
    _item_examples.case
    _item_examples.detail
                                 'x,1/2-y,1/2+z'
;                                glide reflection through the plane (x,1/4,z),
                                 with glide vector 1/2 c
;
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
       '_space_group_symop_operation_xyz'         cif_core.dic 2.3
      save_

save__space_group_symop.sg_id
     _item_description.description
;              This must match a particular value of _space_group.id, allowing
               the symmetry operation to be identified with a particular space
               group.
;
     _item.name                 '_space_group_symop.sg_id'
     _item.category_id           space_group_symop
     _item.mandatory_code        no
     _item_type.code             code
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_space_group_symop_sg_id'         cif_core.dic 2.3
      save_

###################
## VALENCE_PARAM ##
###################

save_valence_param
    _category.description
;              Data items in the VALENCE_PARAM category define the
               parameters used for calculating bond valences from bond
               lengths.  In addition to the parameters, a pointer
               is given to the reference (in VALENCE_REF) from which
               the bond-valence parameters were taken.
;

    _category.id                      'valence_param'
    _category.mandatory_code          no
    loop_
    _category_key.name
           '_valence_param.atom_1'
           '_valence_param.atom_1_valence'
           '_valence_param.atom_2'
           '_valence_param.atom_2_valence'
    loop_
    _category_examples.case
    _category_examples.detail
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
    loop_
    _valence_param.atom_1
    _valence_param.atom_1_valence
    _valence_param.atom_2
    _valence_param.atom_2_valence
    _valence_param.Ro
    _valence_param.B
    _valence_param.ref_id
    _valence_param.details
      Cu 2 O -2 1.679 0.37 a .
      Cu 2 O -2 1.649 0.37 j .
      Cu 2 N -3 1.64  0.37 m '2-coordinate N'
      Cu 2 N -3 1.76  0.37 m '3-coordinate N'
    loop_
    _valence_ref.id
    _valence_ref.reference
      a  'Brown & Altermatt (1985), Acta Cryst. B41, 244-247'
      j  'Liu & Thorp (1993), Inorg. Chem. 32, 4102-4205'
      m  'See, Krause & Strub (1998), Inorg. Chem. 37, 5369-5375'
;
;
    Example 1 - a bond-valence parameter list with accompanying references.
;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      save_

save__valence_param.atom_1
     _item_description.description
;              The element symbol of the first atom forming the bond whose
               bond-valence parameters are given in this category.
;
     _item.name                '_valence_param.atom_1'
     _item.category_id           valence_param
     _item.mandatory_code        yes
     _item_type.code             code
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
       '_valence_param_atom_1'         cif_core.dic 2.3
      save_

save__valence_param.atom_1_valence
     _item_description.description
;              The valence (formal charge) of the first atom whose
               bond-valence parameters are given in this category.
;

     _item.name                 '_valence_param.atom_1_valence'
     _item.category_id           valence_param
     _item.mandatory_code        yes
     _item_type.code             int
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_valence_param_atom_1_valence'         cif_core.dic 2.3
      save_

save__valence_param.atom_2
     _item_description.description
;              The element symbol of the second atom forming the bond whose
               bond-valence parameters are given in this category.
;
     _item.name                 '_valence_param.atom_2'
     _item.category_id           valence_param
     _item.mandatory_code        yes
     _item_type.code             code
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_valence_param_atom_2'         cif_core.dic 2.3
      save_

save__valence_param.atom_2_valence
     _item_description.description
;              The valence (formal charge) of the second atom whose
               bond-valence parameters are given in this category.
;
     _item.name                '_valence_param.atom_2_valence'
     _item.category_id           valence_param
     _item.mandatory_code        yes
     _item_type.code             int
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_valence_param_atom_2_valence'         cif_core.dic 2.3
      save_

save__valence_param.B
     _item_description.description
;              The bond-valence parameter B used in the expression

                     s = exp[(Ro - R)/B]

               where s is the valence of a bond of length R.
;
     _item.name                '_valence_param.B'
     _item.category_id           valence_param
     _item.mandatory_code        no
     _item_type.code             float
     _item_units.code            'angstroms'
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
        '_valence_param_B'        cif_core.dic 2.3
      save_

save__valence_param.details
     _item_description.description
;              Details of or comments on the bond-valence parameters.
;
     _item.name                '_valence_param.details'
     _item.category_id           valence_param
     _item.mandatory_code        no
     _item_type.code             text
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_valence_param_details'         cif_core.dic 2.3
      save_

save__valence_param.id
     _item_description.description
;              An identifier for the valence parameters of a bond between
               the given atoms.
;
     _item.name                 '_valence_param.id'
     _item.category_id           valence_param
     _item.mandatory_code        no
     _item_type.code             code
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
       '_valence_param_id'        cif_core.dic 2.3
      save_

save__valence_param.ref_id
     _item_description.description
;              An identifier which links to the reference to the source
               from which the bond-valence parameters are taken. A child
               of _valence_ref.id which it must match.
;
     _item.name                 '_valence_param.ref_id'
     _item.category_id           valence_param
     _item.mandatory_code        no
     _item_type.code             code
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
       '_valence_param_ref_id'        cif_core.dic 2.3
      save_

save__valence_param.Ro
     _item_description.description
;              The bond-valence parameter Ro used in the expression

                     s = exp[(Ro - R)/B]

               where s is the valence of a bond of length R.
;
     _item.name                 '_valence_param.Ro'
     _item.category_id           valence_param
     _item.mandatory_code        no
     _item_type.code             float
     _item_units.code            angstroms
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_valence_param_Ro'         cif_core.dic 2.3
      save_

#################
## VALENCE_REF ##
#################

save_valence_ref
    _category.description
;              Data items in the VALENCE_REF category list the references
               from which the bond-valence parameters have been taken.
;
    _category.id                     'valence_ref'
    _category.mandatory_code         no
    _category_key.name               '_valence_ref.id'
      save_

save__valence_ref.id
     _item_description.description
;              An identifier for items in this category. Parent of
               _valence_param.ref_id, which must have the same value.
;
     _item.name                '_valence_ref.id'
     _item.category_id           valence_ref
     _item.mandatory_code        yes
     _item_type.code             code
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_valence_ref_id'         cif_core.dic 2.3
      save_

save__valence_ref.reference
     _item_description.description
;              Literature reference from which the valence parameters
               identified by _valence_param.id were taken.
;
     _item.name                 '_valence_ref.reference'
     _item.category_id           valence_ref
     _item.mandatory_code        no
     _item_type.code             text
    loop_
     _item_aliases.alias_name
     _item_aliases.dictionary
     _item_aliases.version
      '_valence_ref_reference'         cif_core.dic 2.3
      save_


#-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof
