Discussion List Archives

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CIF dictionary for Restraints and constraints

  • To: Distribution list of the IUCr COMCIFS Core Dictionary Maintenance Group <coredmg@iucr.org>
  • Subject: Re: CIF dictionary for Restraints and constraints
  • From: Brian McMahon <bm@iucr.org>
  • Date: Thu, 14 Jan 2010 17:37:17 +0000
  • In-Reply-To: <4B4DE94B.8060005@mcmaster.ca>
  • References: <4B4DE94B.8060005@mcmaster.ca>
Dear David

I had a quick pass through the draft dictionary with the software
we use for formatting the dictionaries published in International
Tables. This immediately identifies some technical problems (a
few CIF syntax errors - I recommend that vcif always be run on
a candidate dictionary - and a few more subtle ones, such as missing
underscores in some data names (and extraneous underscores in category
names).

I attach a copy of the dictionary modified to fix these errors. I also
attach a PDF of the formatted dictionary, in case people prefer this for a
quick read-through (but be aware that formatting may introduce new errors,
so always compare with the original ASCII file before making comments
arising from the formatted version). The formatted version also has faults
that would be manually corrected if preparing a final version for press -
such as quote-delimited strings in the category examples wrapping over line
endings.

I note the use of 'esd' and 'estimated standard deviation', where the core
dictionary has systematically replaced such phrases with 'standard
uncertainty'.

I also note the discrepancy between the data block name
  data_restr_parameter_class_target_weight_param
and the associated data name
  _restr_parameter_class_weight_param
I can guess what is intended, but have not actually made the change in the
file I'm enclosing.

Best wishes
Brian
_________________________________________________________________________
Brian McMahon                                       tel: +44 1244 342878
Research and Development Officer                    fax: +44 1244 314888
International Union of Crystallography            e-mail:  bm@iucr.org
5 Abbey Square, Chester CH1 2HU, England


On Wed, Jan 13, 2010 at 10:39:55AM -0500, David Brown wrote:
> Dear Colleagues,
> 
> After a rather long gestation period in which Ilia Guzei and I consulted 
> with a number of the authors of crystallographic refinement packages, 
> the attached draft dictionary for reporting details of restaints and 
> constraints is now ready for review by the core CIF Dictionary 
> Maintenance Group (i.e., you).  The document is selfcontained and has an 
> introduction in the form of a comment embedded within the dictionary file.
> 
> I am putting this dictionary up for reveiw for the next six weeks.  The 
> time is negotiable if you require longer.  If any issues are raised that 
> cannot be easily resolved, Ilia and I will have another look at the 
> dictionary, otherwise at the end of the review period (i.e., 2010-02-24) 
> the dictionary will be passed to COMCIFS for final approval.  If you do 
> not reply during this period I will assume that you approve the dictionary.
> 
> The dictionary is necessarily rather long, but it is conveniently 
> divided into a dozen different restraints which are independent of each 
> other which should make the task a little easier.
> 
> I look forward to receiving your comments which should be circulated to 
> the Dictinary Maintenance Group discussion group.
> 
> David Brown
##############################################################################
#                                                                            # 
#           CIF RESTRAINTS AND CONSTRAINTS DICTIONARY                        #
#           -----------------------------------------                        #
#                                                                            #
# Proposed dictionary code for reporting restraints and constraints in the   #
# core CIF dictionary                                                        #
#                                                                            #
# This dictionary contains the names and definitions proposed for reporting  #
# restraints and constraints in the Core CIF dictionary                      #
#                                                                            #
# 2010-01-13                                                                 #
# This dictionary is still under development and the items described below   #
# have not been approved by COMCIFS on behalf of the International Union of  #
# Crystallography                                                            #
#                                                                            #
# Copyright 2010 International Union of Crystallography                      #
##############################################################################

##############################################################################
#                                                                            #
# Some notes on the philosophy followed in this dictionary                   #
# --------------------------------------------------------                   #
# Restraints and constraints are handled in many different ways in different #
# programs.  The actual parameters restrained are determined by the way the  #
# restraint is expressed within the program, and different programs          #
# express the same restraint in different ways.  In this dictionary the      #
# restraints are expressed in a way that is most natural to the description  #
# of the crystal structure which means that the parameters given here        #
# may not correspond to the parameters that were actually restrained.        #
# For example the rigid body constraint is expressed here by a single item,  #
# a flag which identifies which atoms belong to the same rigid body.         #
# For a rigid body the target parameters are the same as the refined         #
# parameters, allowing the target geometry of the rigid body to be found     #
# from the reported atomic coordinates.  However, in order to apply          #
# this constraint in a refinement, either the coordinates of the atoms       #
# in some arbitrary coordinate system, or a sufficient number of geometric   # 
# parameters of the body, must be specified.  Since all these methods        #
# preserve the rigid body intact, it is only the result that needs           #
# to be reported, not the details of the method used.                        #
# In this way the description of restraints and constraints has been         #
# kept as simple as possible.                                                #
#                                                                            #
# A RESTRAINT is a condition used in the refinement of a crystal structure   #
# that requires one or more of the parameters of the refinement to lie       #
# within a certain range.                                                    #
#                                                                            #
# A CONSTRAINT is a condition used in the refinement of a crystal structure  # 
# that requires one or more parameters of the refinement to have a           #
# specific value or be exactly equal to another refined parameter.           #
#                                                                            #
# The range of values allowed in a restraint is given in this dictionary     #
# by a target value and a weighting parameter, the latter being the          #
# expectation value of the difference between the refined value and          #
# the target.                                                                #
# Constraints are indicated by setting the weighting parameter to zero.      #
#                                                                            #
# The restraints and constraints used are many and varied, and not all       #
# can be given in the forms listed in this dictionary.                       #
# For this reason a general item _restr_special_details has been             #
# provided so that a text description can be given for                       #
# a restraint or constraint that cannot be reported in any other way.        #
#                                                                            #
##############################################################################


data_on_this_dictionary
    _dictionary_name            cif_core_restraints.dic
    _dictionary_version         0.1
    _dictionary_update          2010-01-13
    _dictionary_history
;
2009-18-10  Following consultations between the user community and I.David Brown and
Ilia Guzei IDB started preparing this dictionary using DDL1 by creating items 
required by distance and angle restraints.

2009-12-09 IDB Completed first draft

2010-01-13 IDB Corrected minor errors detected by IG prior to DMG reveiw
;

#
# This dictionary describes 11 restraints some of which are also constraints.
#
# 1. Distance 
# 2. Angle
# 3. Torsion angle
# 4. Distances restrained to be equal
# 5. Angles restrained to be equal
# 6. Torsion angles restrained to be equal
# 7. Atoms lie on a plane
# 8. Rigid bond
# 9. Minimum approach of two atoms
# 10. Restrained parameter
# 11. Rigid body
# 12. Other restraint or constraint
#
# ----------------------------------------------------------------------------
# RESTRAINT 1. A DISTANCE IS RESTRAINED TO A PREDETERMINED VALUE. 
# ----------------------------------------------------------------------------
#

#####################
#                   #              
#  RESTR_DISTANCE   #
#                   #
#####################

data_restr_distance_[]
    _name                      '_restr_distance_[]'           
    _category                  category_overview
    _type                      null
    _definition
; Category of items that describes restraints applied to distances during the final
refinement.
;
   _example
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;
loop_         
   _restr_distance_atom_site_label_1   
   _restr_distance_atom_site_label_2
   _restr_distance_site_symmetry_2
   _restr_distance_target
   _restr_distance_target_weight_param
   _restr_distance_diff      
   _restr_distance_details
   C1   C2  1_555  1.524  0.04 -0.032 'generated by SHELX DFIX'
   C2   C3  1_555  1.340  0.04  0.051 'generated by SHELX DFIX'
   Na1  Ca1 1_555  0.0    0.0   0.0   'Na1 is constrained to occupy Ca site'
   Fe1  Ca1 1_555  0.0    0.0   0.0  ?
   Al1  Ca1 1_555  0.0    0.0   0.0  ?
;

data_restr_distance_atom_site_label_   
    loop_ _name                '_restr_distance_atom_site_label_1'
                               '_restr_distance_atom_site_label_2'
    _category                  'restr_distance'
    _type                      char             
    _list                      yes
    _list_mandatory            yes            
    _list_link_parent          '_atom_site_label_' 
    _definition
; The _atom_site_labels of the two atoms defining the distance to be restrained
;

data_restr_distance_details
    _name                      '_restr_distance_details'   
    _category                  'restr_distance'
    _type                      char
    _list                      yes
    _list_reference            '_restr_distance_atom_site_label_'
    _definition
;          A free text description of the restraint.
;

data_restr_distance_diff      
    _name                      '_restr_distance_diff'
    _category                  'restr_distance'
    _type                      numb
    _list                      yes
    _list_reference            '_restr_distance_atom_site_label_'
    _type_conditions           esd
    _units                     A
    _units_detail              Angstrom  
    _definition
;          The difference between the target and the refined distance
;

data_restr_distance_site_symmetry_
    loop_ _name                '_restr_distance_site_symmetry_1'
                               '_restr_distance_site_symmetry_2'
    _category                  'restr_distance'
    _type                      char
     _list                      yes
    _list_reference            '_restr_distance_atom_site_label_'
    loop_ _example
          _example_detail        .     'no symmetry or translation to site'
                                 4     '4th symmetry operation applied'
                                 7_645 '7th symm. posn.; +a on x; -b on y'
    _enumeration_default         1_555
    _definition
;          The symmetry transformation needed to generate the coordinates 
           of the two atoms that define the distance.

               The symmetry code of each atom site as the symmetry-equivalent
               position number 'n' and the cell translation number 'klm'.
               These numbers are combined to form the code n_klm.
               The character string n_klm is composed as follows:

               n refers to a symmetry operation that is applied to the
               coordinates stored in _atom_site_fract_x, _atom_site_fract_y
               and _atom_site_fract_z. It should match a number given in
               _space_group_symop_id (formerly _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 in calculating the distance. These translations
               (x,y,z) are related to (k,l,m) by the relations
                    k = 5 + x
                    l = 5 + y
                    m = 5 + z
               By adding 5 to the translations, the use of negative numbers
               is avoided.
;

data_restr_distance_target
    _name                      '_restr_distance_target'
    _category                  'restr_distance'
    _type                      numb
    _list                      yes
    _list_reference            '_restr_distance_atom_site_label_'
    _units                     A  
    _units_detail              Angstrom  
    _definition
;          The expectation distance between the two atoms.  
           This is the target distance for the restrained refinement.
;

data_restr_distance_target_weight_param
    _name                      '_restr_distance_target_weight_param'
    _category                  'restr_distance'
    _type                      numb
    _list                      yes
    _list_reference            '_restr_distance_atom_site_label_'
    _units                     A
    _units_detail              Angstrom 
    _enumeration_default       0
    _definition
;          Weighting parameter = sqrt(1/weight).  
           It is the expectation value of the difference between 
           the refined value and the target. 
           If this parameter is set to zero, the distance will be constrained
           to refine to the target value. 
           If this item is absent, its value will be taken as zero 
           and the distance will be constrained
;

#
# ----------------------------------------------------------------------------
# RESTRAINT 2. AN ANGLE IS RESTRAINED TO A PREDETERMINED VALUE. 
# ----------------------------------------------------------------------------

####################
#                  #
#  RESTR_ANGLE     #
#                  #
####################

data_restr_angle_[]
    _name                '_restr_angle_[]'               
    _category            category_overview
    _type                      null
    _definition
;         Items in this category define angles that were restrained in the final
refinement.
;
   _example
; loop_    
_restr_angle_atom_site_label_1   
_restr_angle_site_symmetry_1
_restr_angle_atom_site_label_2 
_restr_angle_atom_site_label_3
_restr_angle_site_symmetry_3
_restr_angle_target
_restr_angle_target_weight_param
_restr_angle_diff      
_restr_angle_details     
C1 1_555  C2  C3 1_555 120  1   -0.3 'generated by JANA'
C2 1_555  C3  C4 3_455 120  1.5  0.5 ?
;

data_restr_angle_atom_site_label_   
    loop_ _name             '_restr_angle_atom_site_label_1'
                            '_restr_angle_atom_site_label_2'
                            '_restr_angle_atom_site_label_3'
    _category               'restr_angle'   
    _type                   char
    _list                   yes
    _list_mandatory         yes 
    _list_link_parent       '_atom_site_label'
    _definition
; The _atom_site_labels used to define the angle. Atom 2 is at the apex of the
angle.
;

data_restr_angle_details
    _name                      '_restr_angle_details'
    _category                  'restr_angle' 
    _type                      char 
    _list                      yes 
    _list_reference            '_restr_angle_atom_site_label_'
    _definition
;            A free text description of the restraint.
;
data_restr_angle_diff      
    _name                      '_restr_angle_diff'
    _category                  'restr_angle'
    _type                      numb
    _type_conditions           esd
    _list                      yes
    _list_reference            '_restr_angle_atom_site_label_'
    _units                     degrees
    _enumeration_range         0:
    _definition
;          The difference between the target and the refined angle
;

data_restr_angle_site_symmetry_   
    loop_ _name              '_restr_angle_site_symmetry_1'
                             '_restr_angle_site_symmetry_2'   
                             '_restr_angle_site_symmetry_3'   
    _category                  'restr_angle'
    _type                      char
    _list                      yes
    _list_reference            '_restr_angle_atom_site_label_'
    loop_ _example
          _example_detail        .     'no symmetry or translation to site'
                                 4     '4th symmetry operation applied'
                                 7_645 '7th symm. posn.; +a on x; -b on y'
    _enumeration_default         1_555
    _definition
;          The symmetry transformation needed to generate the coordinates 
           of the three atoms that define the angle.

              The symmetry code of each atom site as the symmetry-equivalent
               position number 'n' and the cell translation number 'klm'.
               These numbers are combined to form the code n_klm.
               The character string n_klm is composed as follows:

               n refers to the symmetry operation that is applied to the
               coordinates stored in _atom_site_fract_x, _atom_site_fract_y
               and _atom_site_fract_z. It should match a number given in
               _space_group_symop_id.

               k, l and m refer to the translations that are subsequently
               applied to the symmetry-transformed coordinates to generate
               the atom used in calculating the angle. These translations
               (x,y,z) are related to (k,l,m) by the relations
                    k = 5 + 
                    l = 5 + y
                    m = 5 + z
               By adding 5 to the translations, the use of negative numbers
               is avoided.
;

data_restr_angle_target
    _name                      '_restr_angle_target'
    _category                  'restr_angle'
    _type                      numb
    _list                      yes
    _list_reference            '_restr_angle_atom_site_label_'
    _units                     degrees
    _enumeration_range         0:180
    _definition
;          The expectation angle defined by the three atoms.  
           This is the target angle for the restrained refinement.
;

data_restr_angle_target_weight_param
    _name                      '_restr_angle_target_weight_param'
    _category                  'restr_angle'
    _type                      numb
    _list                      yes
    _list_reference            '_restr_angle_atom_site_label_'
    _units                     degrees
    _enumeration_range         0:180
    _enumeration_default       0
    _definition
;          Weighting parameter = sqrt(1/weight).  
           It is the expectation value of the difference between 
           the refined value and the target. 
           If this parameter is set to zero, the angle will be constrained
           to refine to the target value. 
           If this item is absent, its value will be taken as zero 
           and the distance will be constrained
;

#
# ----------------------------------------------------------------------------
# RESTRAINT 3. A TORSION ANGLE IS CONSTRAINED TO A PREDETERMINED VALUE
# ----------------------------------------------------------------------------

######################
#                    #
#  RESTR_TORSION     #
#                    #
######################

data_restr_torsion_[]
    _name                '_restr_torsion_[]'               
    _category            category_overview
    _type                      null
    _definition
;         Items in this category define torsion angles that were restrained in the   
        final refinement.
;
loop_    _example
         _example_detail
;  _restr_torsion_atom_site_label_1  
   _restr_torsion_site_symmetry_1
   _restr_torsion_atom_site_label_2
   _restr_torsion_site_symmetry_2
   _restr_torsion_atom_site_label_3
   _restr_torsion_site_symmetry_3
   _restr_torsion_atom_site_label_4
   _restr_torsion_site_symmetry_4 
   _restr_torsion_angle
   _restr_torsion_weight_param
   _restr_torsion_diff
   _restr_torsion_details  
 Na1 1_555  Na1 2_555  O1 2_555  H101 1_555  90  1  0.97  ?
;
; An example of a torsion angle restrained to 90+/-1 degree with a refined
 difference of 0.97 degrees.
;

data_restr_torsion_angle_target
    _name                      '_restr_torsion_angle_target'     
    _category                  'restr_torsion'
    _type                      numb
    _list                      yes
    _list_reference            '_restr_torsion_atom_site_label_'
    _units                       degree
    _enumeration_range         -180:180
    _definition
;          The angle in degrees to which the torsion angle is restrained.
           The torsion angle is the dihedral angle between the plane defined
           by atoms 1, 2 and 3, and the plane defined by atoms 2, 3 and 4.
;

data_restr_torsion_atom_site_label_
    loop_ _name                '_restr_torsion_atom_site_label_1'
                               '_restr_torsion_atom_site_label_2'
                               '_restr_torsion_atom_site_label_3'
                               '_restr_torsion_atom_site_label_4'
    _category                  'restr_torsion'
    _type                      char
    _list                      yes
    _list_mandatory            yes
    _list_link_parent          '_atom_site_label_' 
    _definition
;          The _atom_site_labels of the atoms in the sequence in which they are
           linked by the bonds whose torsion angle is to be restrained.
;

data_restr_torsion_details  
    _name                      '_restr_torsion_details'   
    _category                  'restr_torsion'
    _type                      numb
    _list                      yes
    _list_reference            '_restr_torsion_atom_site_label_'
    _units                       degree
    _definition
;             A free text description of the restraint.
;

  data_restr_torsion_diff
    _name                      '_restr_torsion_diff'      
    _category                  'restr_torsion'
    _type                      numb
    _type_conditions           esd
    _list                      yes
    _list_reference            '_restr_torsion_atom_site_label_'
    _units                       degree
    _definition
;           The difference between the target and the refined torsion angle.
;

data_restr_torsion_site_symmetry_
    loop_ _name                '_restr_torsion_site_symmetry_1'
                               '_restr_torsion_site_symmetry_2'
                               '_restr_torsion_site_symmetry_3'
                               '_restr_torsion_site_symmetry_4' 
    _category                  'restr_torsion'
    _type                      char
    _list                      yes
    _list_reference            '_restr_torsion_atom_site_label_'
    _enumeration_default       '1_555'
    loop_ _example
          _example_detail        .     'no symmetry or translation to site'
                                 '4'     '4th symmetry operation applied'
                                 '7_645' '7th symm. posn.; +a on x; -b on y'
    _definition
;          The symmetry transformation needed to generate the coordinates 
           of the four atoms that define the torsion angle.

              The symmetry code of each atom site as the symmetry-equivalent
               position number 'n' and the cell translation number 'klm'.
               These numbers are combined to form the code n_klm.
               The character string n_klm is composed as follows:

               n refers to the symmetry operation that is applied to the
               coordinates stored in _atom_site_fract_x, _atom_site_fract_y
               and _atom_site_fract_z. It should match a number given in
               _space_group_symop_id.

               k, l and m refer to the translations that are subsequently
               applied to the symmetry-transformed coordinates to generate
               the atom used in calculating the torsion angle. These 
               translations (x,y,z) are related to (k,l,m) by the relations
                    k = 5 + x
                    l = 5 + y
                    m = 5 + z
               By adding 5 to the translations, the use of negative numbers
               is avoided.
;

data_restr_torsion_weight_param
    _name                      '_restr_torsion_weight_param'
    _category                  'restr_torsion'
    _type                      numb
    _list                      yes
    _list_reference            '_restr_torsion_atom_site_label_'
    _units                       degree
    _enumeration_range          0:
    _enumeration_default        0
    _definition
;          Weighting parameter = sqrt(1/weight).  
           It is the expectation value of the difference between 
           the refined value and the target. 
           If this parameter is set to zero, the angle will be constrained
           to refine to the target value. 
           If this item is absent, its value will be taken as zero 
           and the distance will be constrained
;




#
# ----------------------------------------------------------------------------
# RESTRAINT 4. SEVERAL DISTANCES ARE RESTRAINED TO BE EQUAL. 
# ----------------------------------------------------------------------------
# This restraint contains two categories.
# The first defines the distances to be restrained and assigns
# them to different classes that are restrained independently.
# The second category defines the properties of each class. 
# --------------------------------------------------------

#############################
#                           #
#  RESTR_EQUAL_DISTANCE     #
#                           #
#############################

data_restr_equal_distance_[]
    _name                '_restr_equal_distance_[]'               
    _category            category_overview
    _type                      null
    _definition
;         Items in this category list the atoms defining the distances 
          that are restrained to be equal in the final refinement.
;
    _example
;
loop_        
 _restr_equal_distance_atom_site_label_1   
 _restr_equal_distance_site_symmetry_1  
 _restr_equal_distance_atom_site_label_2
 _restr_equal_distance_site_symmetry_2
 _restr_equal_distance_class_id
 _restr_equal_distance_details    
 C1 1_555  C2  1_555  1  'C1-C2 and C3-C4 are restrained to be equal'
 C2 1_555  C3  1_555  2  'C2-C3, C4-C5 and C5-C6 are restrained to be equal'
 C3 1_555  C4  2_655  1  ?
 C4 1_555  C5  1_555  2  ?
 C5 1_555  C6  1_555  2  ?
;                               


data_restr_equal_distance_atom_site_label_
    loop_ _name       '_restr_equal_distance_atom_site_label_1'
                      '_restr_equal_distance_atom_site_label_2'
    _category                  'restr_equal_distance'
    _type                      char
    _list                      yes
    _list_mandatory            yes
    _list_link_parent          '_atom_site_label' 
    _definition
;      The _atom_site_labels of the two atoms that define one of the 
       distances to be restrained to be equal to other distances in 
       the same class.
;

data_restr_equal_distance_class_id
    _name                      '_restr_equal_distance_class_id'
    _category                  'restr_equal_distance'
    _type                      char
    _list                      yes
    _list_reference            '_restr_equal_distance_atom_site_label_'
    _enumeration_default       1
    _definition
;       A character string identifying the class of equal distances
        to which this distance belongs.
;

data_restr_equal_distance_details    
    _name                    '_restr_equal_distance_details'
    _category                  'restr_equal_distance'
    _type                      char
    _list                      yes
    _list_reference            '_restr_equal_distance_atom_site_label_'
    _definition
;          A text description giving details of a distance in 
           a class of distances that are restrained to be equal. 
;

data_restr_equal_distance_site_symmetry_label_
    loop_ _name       '_restr_equal_distance_site_symmetry_label_1'
                      '_restr_equal_distance_site_symmetry_label_2'
    _category                  'restr_equal_distance'
    _type                      char
    _list                      yes
    _list_reference            '_restr_equal_distance_atom_site_label_'
    _definition
;         The site symmetries of the two atoms that define a distance 
          to be restrained to be equal to other distances in the same class.

               The symmetry code of each atom site as the symmetry-equivalent
               position number 'n' and the cell translation number 'klm'.
               These numbers are combined to form the code n_klm.
               The character string n_klm is composed as follows:

               n refers to the symmetry operation that is applied to the
               coordinates stored in _atom_site_fract_x, _atom_site_fract_y
               and _atom_site_fract_z. It must should a number given in
               _space_group_symop_id.

               k, l and m refer to the translations that are subsequently
               applied to the symmetry-transformed coordinates to generate
               the atom used in calculating the distance. These translations
               (x,y,z) are related to (k,l,m) by the relations
                    k = 5 + x
                    l = 5 + y
                    m = 5 + z
               By adding 5 to the translations, the use of negative numbers
               is avoided.
;
    loop_ _example
          _example_detail        .     'no symmetry or translation to site'
                                 4     '4th symmetry operation applied'
                                 7_645 '7th symm. posn.; +a on x; -b on y'
    _enumeration_default         1_555



###################################
#                                 #
#  RESTR_EQUAL_DISTANCE_CLASS     #
#                                 #
###################################
#
#
data_restr_equal_distance_class_[]
    _name                '_restr_equal_distance_class_[]'               
    _category            category_overview
    _type                      null
    _definition
;         Items in this category give details of the target distances 
          for each class of distances that are restrained to be equal 
          in the final refinement.
;
      _example
;
 loop_         
 _restr_equal_distance_class_class_id        
 _restr_equal_distance_class_target_weight_param
 _restr_equal_distance_class_average   
 _restr_equal_distance_class_esd      
 _restr_equal_distance_class_diff_max  
 _restr_equal_distance_class_details   
             1  0.04   1.534  0.032  0.053   ?
             2  0.04   1.338  0.052  0.103   ?
;

   data_restr_equal_distance_class_average   
    _name                      '_restr_equal_distance_class_average'
    _category                  'restr_equal_distance_class'
    _type                      numb
    _list                      yes
    _units                     A
    _units_detail              Angstrom  
    _enumeration_range         0:
    _definition
;         The average distance in the class of distances restrained to 
          be the same after refinement.
;
   data_restr_equal_distance_class_class_id
    _name                      '_restr_equal_distance_class_class_id'
    _category                  'restr_equal_distance_class'
    _type                      char
    _list                      yes
    _list_mandatory            yes
    _list_link_parent         '_restr_equal_distance_class_id'
    _enumeration_default       1
    _definition
;        A character string that identifies the class of distances 
         whose properties are described.  
;

   data_restr_equal_distance_class_details
    _name                      '_restr_equal_distance_class_details'
    _category                  'restr_equal_distance_class'
    _type                      char
    _list                      yes
    _definition
;        A text description giving details of the class of distances that 
         are restrained to be equal.
;

   data_restr_equal_distance_class_diff_max  
    _name                      '_restr_equal_distance_class_diff_max'
    _category                  'restr_equal_distance_class'
    _type                      numb
    _type_conditions           esd
    _list                      yes
    _units                     A
    _units_detail              Angstrom  
    _enumeration_range         0:
    _definition
;         The maximum deviation of a distance in the class from the
          class average after refinement.
;

   data_restr_equal_distance_class_esd
    _name                      '_restr_equal_distance_class_esd'
    _category                  'restr_equal_distance_class'
    _type                      numb
    _list                      yes
    _units                     Angstrom
    _enumeration_range         0:
    _definition
;        The actual estimated standard deviation of the distances in the 
         class from their average after refinement.
         This number is expected to be similar to the value set for
             _restr_equal_distance_class_target_weight_param
;
   data_restr_equal_distance_class_target_weight_param
    _name              '_restr_equal_distance_class_target_weight_param'
    _category          'restr_equal_distance_class'
    _type                      numb
    _list                      yes
    _units                     A
    _units_detail              Angstrom  
    _enumeration_range         0:
    _enumeration_default       0
    _definition
;        The weighting parameter = sqrt(1/weight).
         The expectation value of the estimated standard deviation of the 
         distances in the class from their average after refinement.  
         This value determines the weight assigned to the restraint.
         If it is zero the distances are constrained to be equal.
         The default value is zero.
;

#
# ----------------------------------------------------------------------------
# RESTRAINT 5. SEVERAL ANGLES ARE RESTRAINED TO BE EQUAL. 
# ----------------------------------------------------------------------------
# This restraint contains two categories.
# The first defines the angles to be restrained and assigns
# them to different classes that are restrained independently.
# The second category defines the properties of each class. 
# --------------------------------------------------------
#

##########################
#                        #
#  RESTR_EQUAL_ANGLE     #
#                        #
##########################

data_restr_equal_angle_[]
    _name                '_restr_equal_angle_[]'               
    _category            category_overview
    _type                      null
    _definition
;         Items in this category list the atoms defining the angles 
          that are restrained to be equal in the final refinement.
;
    _example
;
loop_         
_restr_equal_angle_atom_site_label_1   
_restr_equal_angle_site_symmetry_1
_restr_equal_angle_atom_site_label_2   # Atom 2 is at the apex of the angle
_restr_equal_angle_site_symmetry_2
_restr_equal_angle_atom_site_label_3   
_restr_equal_angle_site_symmetry_3
_restr_equal_angle_class_id
_restr_equal_angle_details
C1 1_555  C2  1_555  C3 1_555 1  'Benzene ring with mirror symmetry' 
C2 1_555  C3  1_555  C4 2_655 2  ? 
C4 1_555  C5  1_555  C6 1_555 2  ?
C5 1_555  C6  1_555  C1 1_555 1  ?
;                               


data_restr_equal_angle_atom_site_label_
    loop_ _name       '_restr_equal_angle_atom_site_label_1'
                      '_restr_equal_angle_atom_site_label_2'
                      '_restr_equal_angle_atom_site_label_3'
    _category                  'restr_equal_angle'
    _type                      char
    _list                      yes
    _list_mandatory            yes
    _list_link_parent          '_atom_site_label' 
    _definition
;      The _atom_site_labels of the three atoms that define one of the 
       angles to be restrained to be equal to other angles in 
       the same class.
;

data_restr_equal_angle_class_id
    _name                      '_restr_equal_angle_class_id'
    _category                  'restr_equal_angle'
    _type                      char
    _list                      yes
    _list_reference            '_restr_equal_angle_atom_site_label_'
    _enumeration_default       1
    _definition
;       A character string identifying the class of equal angles
        to which this angle belongs.
;

data_restr_equal_angle_details    
    _name                    '_restr_equal_angle_details'
    _category                  'restr_equal_angle'
    _type                      char
    _list                      yes
    _list_reference            '_restr_equal_angle_atom_site_label_'
    _definition
;          A text description giving details of an angle in 
           a class of angles that are restrained to be equal. 
;

data_restr_equal_angle_site_symmetry_label_
    loop_ _name       '_restr_equal_angle_site_symmetry_label_1'
                      '_restr_equal_angle_site_symmetry_label_2'
                      '_restr_equal_angle_site_symmetry_label_3'
    _category                  'restr_equal_angle'
    _type                      char
    _list                      yes
    _list_reference            '_restr_equal_angle_atom_site_label_'
    _definition
;         The site symmetries of the three atoms that define an angle 
          to be restrained to be equal to other angles in the same class.

               The symmetry code of each atom site as the symmetry-equivalent
               position number 'n' and the cell translation number 'klm'.
               These numbers are combined to form the code n_klm.
               The character string n_klm is composed as follows:

               n refers to the symmetry operation that is applied to the
               coordinates stored in _atom_site_fract_x, _atom_site_fract_y
               and _atom_site_fract_z. It should match a number given in
               _space_group_symop_id.

               k, l and m refer to the translations that are subsequently
               applied to the symmetry-transformed coordinates to generate
               the atom used in calculating the angle. These translations
               (x,y,z) are related to (k,l,m) by the relations
                    k = 5 + x
                    l = 5 + y
                    m = 5 + z
               By adding 5 to the translations, the use of negative numbers
               is avoided.
;
    loop_ _example
          _example_detail        .     'no symmetry or translation to site'
                                 4     '4th symmetry operation applied'
                                 7_645 '7th symm. posn.; +a on x; -b on y'
    _enumeration_default         1_555



###################################
#                                 #
#  RESTR_EQUAL_ANGLE_CLASS        #
#                                 #
###################################
#
#
data_restr_equal_angle_class_[]
    _name                '_restr_equal_angle_class_[]'               
    _category            category_overview
    _type                      null
    _definition
;         Items in this category give details of the target angles 
          for each class of angles that are restrained to be equal 
          in the final refinement.
;
      _example
;
loop_     
_restr_equal_angle_class_class_id        
_restr_equal_angle_class_target_weight_param
_restr_equal_angle_class_average   
_restr_equal_angle_class_esd      
_restr_equal_angle_class_diff_max  
_restr_equal_angle_class_details
1  0.50  123.52  0.32 0.62  ?
2  0.50  118.23  0.52 1.43  ?
;

data_restr_equal_angle_class_average   
    _name                      '_restr_equal_angle_class_average'
    _category                  'restr_equal_angle_class'
    _type                      numb
    _list                      yes
    _units                     degrees
    _enumeration_range         0:
    _definition
;         The average angle in the class of angles restrained to 
          be the same after refinement.
;

data_restr_equal_angle_class_class_id
    _name                      '_restr_equal_angle_class_class_id'
    _category                  'restr_equal_angle_class'
    _type                      char
    _list                      yes
    _list_mandatory            yes
    _list_link_parent         '_restr_equal_angle_class_id'
    _enumeration_default       1
    _definition
;        A character string that identifies the class of angles 
         whose properties are described.  
;

   data_restr_equal_angle_class_details
    _name                      '_restr_equal_angle_class_details'
    _category                  'restr_equal_angle_class'
    _type                      char
    _list                      yes
    _definition
;        A text description giving details of the class of angles that 
         are restrained to be equal.
;

   data_restr_equal_angle_class_diff_max  
    _name                      '_restr_equal_angle_class_diff_max'
    _category                  'restr_equal_angle_class'
    _type                      numb
    _type_conditions           esd
    _list                      yes
    _units                     degrees
    _enumeration_range         0:
    _definition
;         The maximum deviation of an angle in the class from the
          class average after refinement.
;

data_restr_equal_angle_class_esd
    _name                      '_restr_equal_angle_class_esd'
    _category                  'restr_equal_angle_class'
    _type                      numb
    _list                      yes
    _units                     degrees
    _enumeration_range         0:
    _definition
;        The actual estimated standard deviation of the angles in the 
         class from their average after refinement.
         This number is expected to be similar to the value set for
             _restr_equal_angle_class_target_weight_param
;

data_restr_equal_angle_class_target_weight_param
    _name              '_restr_equal_angle_class_target_weight_param'
    _category          'restr_equal_angle_class'
    _type                      numb
    _list                      yes
    _units                     degrees
    _enumeration_range         0:
    _enumeration_default       0
    _definition
;        The weighting parameter = sqrt(1/weight).
         The expectation value of the estimated standard deviation of the 
         angles in the class from their average after refinement.  
         This value determines the weight assigned to the restraint.
         If it is zero the angles are constrained to be equal.
         The default value is zero.
;

#
# ----------------------------------------------------------------------------
# RESTRAINT 6. SEVERAL TORSION ANGLES ARE RESTRAINED TO BE EQUAL. 
# ----------------------------------------------------------------------------
# This restraint contains two categories.
# The first defines the torsion angles to be restrained and assigns
# them to different classes that are restrained independently.
# The second category defines the properties of each class. 
# --------------------------------------------------------

############################
#                          #
#  RESTR_EQUAL_TORSION     #
#                          #
############################
#

data_restr_equal_torsion_[]
    _name                '_restr_equal_torsion_[]'               
    _category            category_overview
    _type                      null
    _definition
;         Items in this category list the atoms defining the torsion angles 
          that are restrained to be equal in the final refinement.
;
    _example
;
loop_         
_restr_equal_torsion_atom_site_label_1   
_restr_equal_torsion_site_symmetry_1
_restr_equal_torsion_atom_site_label_2   
_restr_equal_torsion_site_symmetry_2
_restr_equal_torsion_atom_site_label_3   
_restr_equal_torsion_site_symmetry_3
_restr_equal_torsion_atom_site_label_4
_restr_equal_torsion_site_symmetry_4
_restr_equal_torsion_class_id
_restr_equal_torsion_details
C1 1_555  C2  1_555  C3 1_555  C4 1_555 1 ?
C5 1_555  C6  1_555  C1 1_555  C2 1_555 1 ?
;                               


data_restr_equal_torsion_atom_site_label_
    loop_ _name       '_restr_equal_torsion_atom_site_label_1'
                      '_restr_equal_torsion_atom_site_label_2'
                      '_restr_equal_torsion_atom_site_label_3'
                      '_restr_equal_torsion_atom_site_label_4'
    _category                  'restr_equal_torsion'
    _type                      char
    _list                      yes
    _list_mandatory            yes
    _list_link_parent          '_atom_site_label' 
    _definition
;      The _atom_site_labels of the four atoms that define one of the 
       torsion angles to be restrained to be equal to other torsion 
       angles in the same class.  The torsion angle is the dihedral angle
       between the plane defined by atoms 1, 2 and 3, and the plane defined
       atoms 2, 3 and 4.
;

data_restr_equal_torsion_class_id
    _name                      '_restr_equal_torsion_class_id'
    _category                  'restr_equal_torsion'
    _type                      char
    _list                      yes
    _list_reference            '_restr_equal_torsion_atom_site_label_'
    _enumeration_default       1
    _definition
;       A character string identifying the class of equal torsion
        angles to which this torsion angle belongs.
;

data_restr_equal_torsion_details    
    _name                    '_restr_equal_torsion_details'
    _category                  'restr_equal_torsion'
    _type                      char
    _list                      yes
    _list_reference            '_restr_equal_torsion_atom_site_label_'
    _definition
;          A text description giving details of a torsion angle in 
           a class of torsion angles that are restrained to be equal. 
;

data_restr_equal_torsion_site_symmetry_label_
    loop_ _name       '_restr_equal_torsion_site_symmetry_label_1'
                      '_restr_equal_torsion_site_symmetry_label_2'
                      '_restr_equal_torsion_site_symmetry_label_3'
                      '_restr_equal_torsion_site_symmetry_label_4'
    _category                  'restr_equal_torsion'
    _type                      char
    _list                      yes
    _list_reference            '_restr_equal_torsion_atom_site_label_'
    _enumeration_default         1_555
    _definition
;         The site symmetries of the four atoms that define a torsion angle
          to be restrained to be equal to other torsion angles in the same class.

               The symmetry code of each atom site as the symmetry-equivalent
               position number 'n' and the cell translation number 'klm'.
               These numbers are combined to form the code n_klm.
               The character string n_klm is composed as follows:

               n refers to the symmetry operation that is applied to the
               coordinates stored in _atom_site_fract_x, _atom_site_fract_y
               and _atom_site_fract_z. It should match a number given in
               _space_group_symop_id.

               k, l and m refer to the translations that are subsequently
               applied to the symmetry-transformed coordinates to generate
               the atom used in calculating the torsion angle. These translations
               (x,y,z) are related to (k,l,m) by the relations
                    k = 5 + x
                    l = 5 + y
                    m = 5 + z
               By adding 5 to the translations, the use of negative numbers
               is avoided.
;
    loop_ _example
          _example_detail        .     'no symmetry or translation to site'
                                 4     '4th symmetry operation applied'
                                 7_645 '7th symm. posn.; +a on x; -b on y'



###################################
#                                 #
#  RESTR_EQUAL_TORSION_CLASS      #
#                                 #
###################################
#
#
data_restr_equal_torsion_class_[]
    _name                '_restr_equal_torsion_class_[]'               
    _category            category_overview
    _type                      null
    _definition
;         Items in this category give details of the target torsion 
          nagles for each class of torsion angles that are restrained 
          to be equal in the final refinement.
;
      _example
;
 loop_         
 _restr_equal_torsion_class_class_id        
 _restr_equal_torsion_class_target_weight_param 
 _restr_equal_torsion_class_average    
 _restr_equal_torsion_class_esd      
 _restr_equal_torsion_class_diff_max  
 _restr_equal_torsion_class_details

 1  0.50  123.52  0.32  0.62 ?
;

data_restr_equal_torsion_class_average   
    _name                      '_restr_equal_torsion_class_average'
    _category                  'restr_equal_torsion_class'
    _type                      numb
    _list                      yes
    _units                     degrees
    _enumeration_range         0:
    _definition
;         The average torsion angle in the class of torsion angles 
          restrained to be the same after refinement.
;

data_restr_equal_torsion_class_class_id
    _name                      '_restr_equal_torsion_class_class_id'
    _category                  'restr_equal_torsion_class'
    _type                      char
    _list                      yes
    _list_mandatory            yes
    _list_link_parent         '_restr_equal_torsion_class_id'
    _enumeration_default       1
    _definition
;        A character string that identifies the class of torsion
         angles whose properties are described.  
;

data_restr_equal_torsion_class_details
    _name                      '_restr_equal_torsion_class_details'
    _category                  'restr_equal_torsion_class'
    _type                      char
    _list                      yes
    _definition
;        A text description giving details of the class of torsion 
         angles that are restrained to be equal.
;

data_restr_equal_torsion_class_diff_max  
    _name                      '_restr_equal_torsion_class_diff_max'
    _category                  'restr_equal_torsion_class'
    _type                      numb
    _type_conditions           esd
    _list                      yes
    _units                     degrees
    _enumeration_range         0:
    _definition
;         The maximum deviation of a torsion angle in the class from the
          class average after refinement.
;

data_restr_equal_torsion_class_esd
    _name                      '_restr_equal_torsion_class_esd'
    _category                  'restr_equal_torsion_class'
    _type                      numb
    _list                      yes
    _units                     degrees
    _enumeration_range         0:
    _definition
;        The actual estimated standard deviation of the torsion 
         angles in the class from their average after refinement.
         This number is expected to be similar to the value set for
             _restr_equal_torsion_class_target_weight_param
;

data_restr_equal_torsion_class_target_weight_param
    _name              '_restr_equal_torsion_class_target_weight_param'
    _category          'restr_equal_torsion_class'
    _type                      numb
    _list                      yes
    _units                     degrees
    _enumeration_range         0:
    _enumeration_default       0
    _definition
;        The weighting parameter = sqrt(1/weight).
         This is the expectation value of the estimated standard deviation 
         (given in _restr_equal_torsion_class_esd) of the 
         torsion angles in the class from their average after refinement.  
         This value determines the weight assigned to the target.
         If it is zero the torsion angles are constrained to be equal.
         The default value is zero.
;

#
# ----------------------------------------------------------------------------
# RESTRAINT 7. A GROUP OF ATOMS IS RESTRAINED TO LIE ON A PLANE.
# ----------------------------------------------------------------------------
# This restraint contains two categories.
# The first defines the atoms that define each plane, each plane being
# composed of atoms from the same class.
# The second category describes the properties of each plane (class).  
#

######################
#                    #
#  RESTR_PLANE       #
#                    #
######################
#

data_restr_plane_[]
    _name                      '_restr_plane_[]'
    _category                  category_Overview
    _type                      null
    _definition                
;    Items in this category define the atoms that make up each class of plane.
;
    _example                   
;
 loop_ 
 _restr_plane_id
 _restr_plane_atom_site_label 
 _restr_plane_site_symmetry  
 _restr_plane_class_id       
 _restr_plane_target_weight_param
 _restr_plane_displacement   
 _restr_plane_details
1 c1 1_555 1 0.02  0.002(1) 'c1 to c4 lie on one plane'  
2 c2 1_555 1 0.02 -0.003(2) ?
3 c3 1_555 1 0.02 -0.002(1) ?
4 c4 1_555 1 0.02  0.002(2) ?
5 c1 2_655 2 0.003  0.004(1) 'c1, c5, c6 and c7 lie on one plane'
6 c5 1_555 2 0.003 -0.002(2) ?
7 c6 1_555 2 0.003  0.002(3) ?
8 c7 1_555 2 0.003 -0.002(2) ?
;

data_restr_plane_atom_site_label
    _name                      '_restr_plane_atom_site_label'
    _category                  'restr_plane'
    _type                      char
    _list                      yes
    _list_reference            ?
    _list_mandatory            yes
    _list_link_parent          '_atom_site_label'
    _definition                
;       An _atom_site_label of one of the atoms that form the plane
;

data_restr_plane_class_id
    _name                      '_restr_plane_class_id'
    _category                  'restr_plane'
    _type                      char
    _list                      yes
    _list_reference            ?
    _list_mandatory            yes
    _enumeration_default       1
    _definition                
;        A character string that identifies the plane 
         to which this atom is constrained.
;

data_restr_plane_details
    _name                      '_restr_plane_details'
    _category                  'restr_plane'
    _type                      char
    _list                      yes
    _list_reference            ?
    _definition                
;      A text string giving details not described elsewhere.
;

data_restr_plane_displacement
    _name                      '_restr_plane_displacement'
    _category                  'restr_plane'
    _type                      numb
    _type_conditions           esd
    _list                      yes
    _list_reference            ?
    _units                     A
    _units_details             Angstrom
    _enumeration_range         0:
    _definition                
;         The distance between this atom and the best plane through
          all the atoms.
;

data_restr_plane_id
    _name                      '_restr_plane_id'
    _category                  'restr_plane'
    _type                      char
    _list                      yes
    _list_mandatory            yes
    _enumeration_default       '1'
    _definition                
;   A unique identifier for each line in the list.
;

data_restr_plane_site_symmetry
    _name                      '_restr_plane_site_symmetry'
    _category                  'restr_plane'
    _type                      char
    _list                      yes
    _list_reference            ?
    _list_mandatory            yes
    _enumeration_default       '1_555'
    _definition                
;         The site symmetries of the atom that helps to define the plane  
          to which it to be restrained.

               The symmetry code of each atom site as the symmetry-equivalent
               position number 'n' and the cell translation number 'klm'.
               These numbers are combined to form the code n_klm.
               The character string n_klm is composed as follows:

               n refers to the symmetry operation that is applied to the
               coordinates stored in _atom_site_fract_x, _atom_site_fract_y
               and _atom_site_fract_z. It should match a number given in
               _space_group_symop_id.

               k, l and m refer to the translations that are subsequently
               applied to the symmetry-transformed coordinates to generate
               the atom used in calculating the plane. These translations
               (x,y,z) are related to (k,l,m) by the relations
                    k = 5 + x
                    l = 5 + y
                    m = 5 + z
               By adding 5 to the translations, the use of negative numbers
               is avoided.
;
    loop_ _example
          _example_detail        .     'no symmetry or translation to site'
                                 4     '4th symmetry operation applied'
                                 7_645 '7th symm. posn.; +a on x; -b on y'

data_restr_plane_target_weight_param
    _name                      '_restr_plane_target_weight_param'
    _category                  'restr_plane'
    _type                      numb
    _list                      yes
    _units                     A
    _units_detail              Angstrom  
    _enumeration_range         0:
    _enumeration_default       0.
    _definition                
;      The weighting parameter = sqrt(1/weight).
       The expectation value of the distance in Angstroms between this atom 
       and the best plane through all the atoms of the class.
;

#
############################
#                          #
#  RESTR_PLANE_CLASS       #
#                          #
############################
#

data_restr_plane_class_[]
    _name                      '_restr_plane_class_[]'
    _category                  category_overview
    _type                      null
    _definition                
;        Items in thiscategory describe the properties of 
         the different groups of atoms that are restrained 
         to form a plain.
;
    _example
; 
 loop_            
 _restr_plane_class_class_id     
 _restr_plane_class_displacement_esd      
 _restr_plane_class_displacement_max_atom_site_label
 _restr_plane_class_displacement_max_site_symmetry
 _restr_plane_class_displacement_max
 _resrt_plane_class_details

 1  0.032  c2 1_555  0.094     'displacements for plane 1'
 2  0.0021 c1 2_655  0.010     'displacements for plane 2'
;

data_restr_plane_class_class_id
    _name                      '_restr_plane_class_class_id'
    _category                  'restr_plane_class'
    _type                      char
    _list                      yes
    _list_mandatory            yes
    _list_link_parent          '_restr_plane_class_id'
    _enumeration_default       1
    _definition                
;       The class identifier for the plane whose properties are described
;

data_restr_plane_class_details
    _name                      '_restr_plane_class_details'
    _category                  'restr_plane_class'
    _type                      char
    _list                      yes
    _list_reference            '_restr_plane_class_class_id'
    _definition                
;        Text describing any special features of the restraint.
;

data_restr_plane_class_displacement_esd
    _name                      '_restr_plane_class_displacement_esd'
    _category                  'restr_plane_class'
    _type                      char
    _list                      yes
    _list_reference            '_restr_plane_class_class_id'
    _units                     A
    _units_detail              Angstrom  
    _enumeration_range         0:
    _definition                
;      The observed estimated standard deviation of the atoms from this plane.
;

data_restr_plane_class_displacement_max
    _name                      '_restr_plane_class_displacement_max'
    _category                  'restr_plane_class'
    _type                      numb
    _type_conditions           esd
    _list                      yes
    _list_reference            '_restr_plane_class_class_id'
    _units                     A
    _units_detail              Angstrom  
    _enumeration_range         0:
    _definition                
;      The distance in Angstrom from the plane to the atom furthest 
       removed from the plane.
;

data_restr_plane_class_displacement_max_atom_site_label
    _name            '_restr_plane_class_displacement_max_atom_site_label'
    _category                  'restr_plane_class'
    _type                      char
    _list                      yes
    _list_reference            '_restr_plane_class_class_id'
    _list_link_parent          '_atom_site_label'
    _definition                
;         The _atom_site_label of the atom that lies furthest 
          from the plane defined by this class
;

data_restr_plane_class_displacement_max_site_symmetry
    _name            '_restr_plane_class_displacement_max_site_symmetry'
    _category                  'restr_plane_class'
    _type                      char
    _list                      yes
    _list_reference            '_restr_plane_class_class_id'
    _enumeration_default       '1_555'
    _definition                
;         The site symmetries of the atom that helps to define the plane  
          to which it to be restrained.

               The symmetry code of each atom site as the symmetry-equivalent
               position number 'n' and the cell translation number 'klm'.
               These numbers are combined to form the code n_klm.
               The character string n_klm is composed as follows:

               n refers to the symmetry operation that is applied to the
               coordinates stored in _atom_site_fract_x, _atom_site_fract_y
               and _atom_site_fract_z. It should match a number given in
               _space_group_symop_id.

               k, l and m refer to the translations that are subsequently
               applied to the symmetry-transformed coordinates to generate
               the atom furthest from the plane.  These translations
               (x,y,z) are related to (k,l,m) by the relations
                    k = 5 + x
                    l = 5 + y
                    m = 5 + z
               By adding 5 to the translations, the use of negative numbers
               is avoided.
;
    loop_ _example
          _example_detail        .     'no symmetry or translation to site'
                                 4     '4th symmetry operation applied'
                                 7_645 '7th symm. posn.; +a on x; -b on y'

#
# ----------------------------------------------------------------------------
# RESTRAINT 8. ADPs ARE RESTRAINED FOR A RIGID BOND. 
# ----------------------------------------------------------------------------
#  This "rigid bond" restraint restrains the anisotropic displacement
#  parameters of two atoms so that they are equal within a certain
#  _weight_param along the direction of the vector joining the atoms.
#
######################
#                    #
#  RESTR_U_RIGID     #
#                    #
######################
#

data_restr_U_rigid_[]
    _name                     '_restr_U_rigid_[]' 
    _category                  category_overview
    _type                      null
    _definition                
;       The items in this category restrains the anisotropic displacement
        parameters of two atoms to be equal within a certain 
        _weight_param along the direction of the vector joining the atoms.
;
    _example
; 
loop_
_restr_U_rigid_atom_site_label_1  
_restr_U_rigid_site_symmetry_1  
_restr_U_rigid_atom_site_label_2
_restr_U_rigid_site_symmetry_2
_restr_U_rigid_target_weight_param
_restr_U_rigid_U_parallel
_restr_U_rigid_diff
_restr_U_rigid_details
C1 1_555 C2 2_655 0.001 0.0023(2) 0.0006 'C1-C2 is a rigid bond'
;

data_restr_U_rigid_atom_site_label_
    loop_ _name                '_restr_U_rigid_atom_site_label_1'
                               '_restr_U_rigid_atom_site_label_2'
    _category                  'restr_U_rigid'
    _type                      char
    _list                      yes
    _list_mandatory            yes
    _list_link_parent          '_atom_site_label'
    _definition                
;       The _atom_site_labels of the two atoms that define the rigid bond.
;

data_restr_U_rigid_details
    _name                      '_restr_U_rigid_details'
    _category                  'restr_U_rigid'
    _type                      char
    _list                      yes
    _list_reference            'restr_U_rigid_atom_site_label_'
    _definition                
;       Free text information about the rigid bond restraint.
;

data_restr_U_rigid_diff
    _name                      '_restr_U_rigid_diff'
    _category                  'restr_U_rigid'
    _type                      numb
    _type_conditions           esd
    _list                      yes
    _list_reference            'restr_U_rigid_atom_site_label_'
    _units                     A^-2^
    _units_detail              Angstrom^-2^
    _definition                
;        The difference between the components along the bond direction 
         of the atomic displacement parameters, U, of the two atoms.
;

data_restr_U_rigid_site_symmetry_
    loop_ _name                '_restr_U_rigid_site_symmetry_1'
                               '_restr_U_rigid_site_symmetry_2'
    _category                  'restr_U_rigid'
    _type                      char
    _list                      yes
    _list_reference            'restr_U_rigid_atom_site_label_'
    _enumeration_default       '1_555'
    _definition                
;         The site symmetries of the two atoms that define the rigid bond. 

               The symmetry code of each atom site as the symmetry-equivalent
               position number 'n' and the cell translation number 'klm'.
               These numbers are combined to form the code n_klm.
               The character string n_klm is composed as follows:

               n refers to the symmetry operation that is applied to the
               coordinates stored in _atom_site_fract_x, _atom_site_fract_y
               and _atom_site_fract_z. It should match a number given in
               _space_group_symop_id.

               k, l and m refer to the translations that are subsequently
               applied to the symmetry-transformed coordinates to generate
               the atom used in calculating the rigid bond.  These translations
               (x,y,z) are related to (k,l,m) by the relations
                    k = 5 + x
                    l = 5 + y
                    m = 5 + z
               By adding 5 to the translations, the use of negative numbers
               is avoided.
;
    loop_ _example
          _example_detail        .     'no symmetry or translation to site'
                                 4     '4th symmetry operation applied'
                                 7_645 '7th symm. posn.; +a on x; -b on y'

data_restr_U_rigid_target_weight_param
    _name                      '_restr_U_rigid_target_weight_param'
    _category                  'restr_U_rigid'
    _type                      numb
    _list                      yes
    _list_reference            'restr_U_rigid_atom_site_label_'
    _units                     A^-2^
    _units_detail              Angstrom^-2^  
    _enumeration_default       0
    _definition                
;        The weighting parameter = sqrt(1/weight).
         The expectation value of the difference between the components 
         of the atomic displacement parameter, U,
         along the bond direction of the two atoms that define the bond.
         This number is used to assign a weight during refinement.
         A value of zero causes the restraint to become a constraint.
         This item as a default value of zero.
;

data_restr_U_rigid_U_parallel
    _name                      '_restr_U_rigid_U_parallel'
    _category                  'restr_U_rigid'
    _type                      numb
    _list                      yes
    _list_reference            'restr_U_rigid_atom_site_label_'
    _units                     A^-2^
    _units_detail              Angstrom^-2^  
    _enumeration_default       0
    _definition                
;        The average value of the components parallel to the bond of the atomic
displacement parameters of the two atoms that define the bond. 
;

#
# ----------------------------------------------------------------------------
# RESTRAINT 9. ATOMS CANNOT OCCUPY THE SAME POSITION
# ----------------------------------------------------------------------------
# The "anti-bumping" restraint prevents two atoms from occupying the same site.
# It would normally be reported only for those distances 
# in which this restraint was invoked. 

###########################
#                         #
#  RESTR_DISTANCE_MIN     #
#                         #
###########################

data_restr_distance_min_[]
    _name                      '_restr_distance_min_[]'
    _category                  category_overview
    _type                      null
    _definition                
;  Items in this category offer power law and exponential expressions for 
   a function designed to prevent two atoms occupying the same location.
;
    _example
;
   loop_         
 _restr_distance_min_atom_site_label_1  
 _restr_distance_min_site_symmetry_1
 _restr_distance_min_atom_site_label_2
 _restr_distance_min_site_symmetry_2
 _restr_distance_min_A
 _restr_distance_min_B
 _restr_distance_min_C  
 _restr_distance_min_E
 _restr_distance_min_F
 _restr_distance_min_G
 _restr_distance_min_distance
 _restr_distance_min_details
 O1 1_555 O2 1_555 0 . . 1 2.8 0.3 2.75(1) 'using the exponential restraint'
 O2 1_555 O3 2_455 0 0 0 1 2.8 0   2.83(1) 'using the hard sphere model'
;

data_restr_distance_min_A
    _name                      '_restr_distance_min_A'
    _category                  'restr_distance_min'
    _type                      numb
    _list                      yes
    _list_reference            'restr_distance_min_atomi_site_label_'
    _enumeration)range         0:
    _enumeration_default       0
    _definition                
;  The weight associated with the difference between the refined distance D and 
   the prescribed minimum distance (B or F) is given by the expression:

     w = A*(B/D)^C + E*exp((D-F)/G)
   
   A and E are dimensionless weighting parameters.
   Either function could be used alone by setting A or E to zero.
   The default values of A and E are zero.

   If A=0, B and C are undefined, if E=0, F and G are undefined

   A hard sphere contact can be generated by setting E=1, 
   F=prescribed minimum distance and G=0.  In this case G (combined 
   with a non zero E) should be treated as a flag indicating a hard sphere 
   interaction with a target distance of F so as to avoid division by zero.
;

data_restr_distance_min_atom_site_label_
    loop_ _name                      '_restr_distance_min_atom_site_label_1'
                               '_restr_distance_min_atom_site_label_2'
    _category                  'restr_distance_min'
    _type                      char
    _list                      yes
    _list_mandatory            yes
    _list_link_parent          '_atom_site_label'
    _definition                
;      _atom_site_labels for the two atoms that are to be kept apart.
;

data_restr_distance_min_B
    _name                      '_restr_distance_min_B'
    _category                  'restr_distance_min'
    _type                      numb
    _list                      yes
    _list_reference            'restr_distance_min_atomi_site_label_'
    _units                     A
    _units_detail              Angstrom  
    _enumeration_range         0:
    _enumeration_default       0
    _definition                
;  The weight associated with the difference between the refined distance D and 
   the prescribed minimum distance (B or F) is given by the expression:

     w = A*(B/D)^C + E*exp((D-F)/G)

   A and E are dimensionless weighting parameters.
   Either function could be used alone by setting A or E to zero.
   The default values of A and E are zero.

   If A=0, B and C are undefined, if E=0, F and G are undefined

   A hard sphere contact can be generated by setting E=1, 
   F=prescribed minimum distance and G=0.  In this case G (combined 
   with a non zero E) should be treated as a flag indicating a hard sphere 
   interaction with a target distance of F so as to avoid division by zero.
;

data_restr_distance_min_C
    _name                      '_restr_distance_min_C'
    _category                  'restr_distance_min'
    _type                      numb
    _list                      yes
    _list_reference            'restr_distance_min_atomi_site_label_'
    _definition                
;  The weight associated with the difference between the refined distance D and 
   the prescribed minimum distance (B or F) is given by the expression:

     w = A*(B/D)^C + E*exp((D-F)/G)

   A and E are dimensionless weighting parameters.
   Either function could be used alone by setting A or E to zero.
   The default values of A and E are zero.

   If A=0, B and C are undefined, if E=0, F and G are undefined

   A hard sphere contact can be generated by setting E=1, 
   F=prescribed minimum distance and G=0.  In this case G (combined 
   with a non zero E) should be treated as a flag indicating a hard sphere 
   interaction with a target distance of F so as to avoid division by zero.
;

data_restr_distance_min_details
    _name                      '_restr_distance_min_detail'
    _category                  'restr_distance_min'
    _type                      char
    _list                      yes
    _list_reference            'restr_distance_min_atomi_site_label_'
    _definition                
;       A text description of the restraint giving details not 
        given elsewhere.
;

data_restr_distance_min_difference
    _name                      '_restr_distance_min_difference'
    _category                  'restr_distance_min'
    _type                      numb
    _list                      yes
    _list_reference            'restr_distance_min_atomi_site_label_'
    _units                     A
    _units_detail              Angstrom  
    _definition                
;       The difference in Angstroms between the refined distance of approach 
        of the two atoms and the target distance B or F:  

            difference = D - B or D - F
;

data_restr_distance_min_distance
    _name                      '_restr_distance_min_distance'
    _category                  'restr_distance_min'
    _type                      numb
    _list                      yes
    _list_reference            'restr_distance_min_atomi_site_label_'
    _units                     A
    _units_detail              Angstrom
    _enumeration_range         0:
    _definition                
;    The refined distance, D, between the two atoms.
;

data_restr_distance_min_E
    _name                      '_restr_distance_min_E'
    _category                  'restr_distance_min'
    _type                      numb
    _list                      yes
    _list_reference            'restr_distance_min_atomi_site_label_'
    _enumeration_default       0
    _definition                
;  The weight associated with the difference between the refined distance D and 
   the prescribed minimum distance (B or F) is given by the expression:

     w = A*(B/D)^C + E*exp((D-F)/G)

   A and E are dimensionless weighting parameters.
   Either function could be used alone by setting A or E to zero.
   The default values of A and E are zero.

   If A=0, B and C are undefined, if E=0, F and G are undefined

   A hard sphere contact can be generated by setting E=1, 
   F=prescribed minimum distance and G=0.  In this case G (combined 
   with a non zero E) should be treated as a flag indicating a hard sphere 
   interaction with a target distance of F so as to avoid division by zero.
;

data_restr_distance_min_F
    _name                      '_restr_distance_min_F'
    _category                  'restr_distance_min'
    _type                      numb
    _list                      yes
    _list_reference            'restr_distance_min_atomi_site_label_'
    _units                     A
    _units_detail              Angstrom  
    _enumeration_range         0:
    _definition                
;  The weight associated with the difference between the refined distance D and 
   the prescribed minimum distance (B or F) is given by the expression:

     w = A*(B/D)^C + E*exp((D-F)/G)

   A and E are dimensionless weighting parameters.
   Either function could be used alone by setting A or E to zero.
   The default values of A and E are zero.

   If A=0, B and C are undefined, if E=0, F and G are undefined

   A hard sphere contact can be generated by setting E=1, 
   F=prescribed minimum distance and G=0.  In this case G (combined 
   with a non zero E) should be treated as a flag indicating a hard sphere 
   interaction with a target distance of F so as to avoid division by zero.
;

data_restr_distance_min_G
    _name                      '_restr_distance_min_G'
    _category                  'restr_distance_min'
    _type                      numb
    _list                      yes
    _list_reference            'restr_distance_min_atomi_site_label_'
    _units                     A
    _units_detail              Angstrom  
    _definition                
;  The weight associated with the difference between the refined distance D and 
   the prescribed minimum distance (B or F) is given by the expression:

     w = A*(B/D)^C + E*exp((D-F)/G)

   A and E are dimensionless weighting parameters.
   Either function could be used alone by setting A or E to zero.
   The default values of A and E are zero.

   If A=0, B and C are undefined, if E=0, F and G are undefined

   A hard sphere contact can be generated by setting E=1, 
   F=prescribed minimum distance and G=0.  In this case G (combined 
   with a non zero E) should be treated as a flag indicating a hard sphere 
   interaction with a target distance of F so as to avoid division by zero.
;

data_restr_distance_min_site_symmetry_
    loop_ _name                      '_restr_distance_min_site_symmetry_1'
                               '_restr_distance_min_site_symmetry_2'
    _category                  'restr_distance_min'
    _type                      char
    _list                      yes
    _list_reference            'restr_distance_min_atomi_site_label_'
    _definition                
;         The site symmetries of the two atoms to be kept apart. 

               The symmetry code of each atom site as the symmetry-equivalent
               position number 'n' and the cell translation number 'klm'.
               These numbers are combined to form the code n_klm.
               The character string n_klm is composed as follows:

               n refers to the symmetry operation that is applied to the
               coordinates stored in _atom_site_fract_x, _atom_site_fract_y
               and _atom_site_fract_z. It should match a number given in
               _space_group_symop_id.

               k, l and m refer to the translations that are subsequently
               applied to the symmetry-transformed coordinates to generate
               the atom that are to be kept apart.  These translations
               (x,y,z) are related to (k,l,m) by the relations
                    k = 5 + x
                    l = 5 + y
                    m = 5 + z
               By adding 5 to the translations, the use of negative numbers
               is avoided.
;


#
# ----------------------------------------------------------------------------
# RESTRAINT 10. THE SUM OF A GIVEN PARAMETER OF THE SPECIFIED ATOMS IS  
# RESTRAINED 
# ----------------------------------------------------------------------------
# This restraint, which will normally be used to restrain the total 
# occupancy of an atom site, can be used to restrain the value of
#   SUM(over the specified atoms){PARAMETER*COEFFICIENT} 
# where PARAMETER will usually be the occupancy 
# (but other allowed quantities such as x, y and z will be specified 
# in the enumeration list) and COEFFICIENT is a user defined 
# number with a default value of 1.0.
# Two loops are needed to describe this restraint. 
#

########################
#                      #
#  RESTR_PARAMETER     #
#                      #
########################
#

data_restr_parameter_[]
    _name                      '_restr_parameter_[]'
    _category                  category_overview
    _type                      null
    _definition                
;      This restraint, which will normally be used to restrain the total 
       occupancy of an atom site, can be used to restrain the value of
       SUM(over the specified atoms){PARAMETER*COEFFICIENT} 
       where PARAMETER will usually be the value of the occupancy 
       (but other allowed quantities such as x, y and z can be specified 
       in the enumeration) and COEFFICIENT is a user defined 
       number with a default value of 1.0.
       The restraint requires two loops, the first defines the atoms in
       each sum (class) and the second describes the properties of the class.
;
 loop_    _example                   
          _example_detail            
#---------------------------------------------------------
; loop_        
 _restr_parameter_id
 _restr_parameter_class_id
 _restr_parameter_atom_site_label
 _restr_parameter_atom_coefficient
1 1 O1   1 
2 1 O1a  1
3 1 O1b  1
;
;  These examples should be read in conjunction with the examples 
   given for the loop restr_parameter_class.

   In Class 1 the sites O1, O1a and O1b refer to separate sites
   over which oxygen is disordered, but which in total contain 
   0.8 oxygen atoms (as defined by _restr_parameter_class_target).
;
#-----------------------------------------------------------
; loop_        
 _restr_parameter_id
 _restr_parameter_class_id
 _restr_parameter_atom_site_label
 _restr_parameter_atom_coefficient
a 2 Na1  1
b 2 K1   1
c 2 Ca1  1
d 2 Al1  1
;
;
  Class 2 consists of a mixture of Na, K, Ca and Al atoms on the same
  site with the total occupancy set to 1.0 as defined in 
  _restr_parameter_class_target.
;
#------------------------------------------------------------
; loop_        
 _restr_parameter_id
 _restr_parameter_class_id
 _restr_parameter_atom_site_label
 _restr_parameter_atom_coefficient
1 3 Na1  1
2 3 K1   1
3 3 Ca1  2
4 3 Al1  3
;
;
 Class 3 consists of the same atoms as Class 2, but by using coefficients
 equal to the ionic charge, the total charge on the site is
 restrained to 2.0. 
 Note that the parameter restrained is still the occupancy
 but the use of coefficients transforms the restraint from
 occupancy to formal charge.
;
#---------------------------------------------------------------
; loop_        
 _restr_parameter_id
 _restr_parameter_class_id
 _restr_parameter_atom_site_label
 _restr_parameter_atom_coefficient
1 4 O2   1
;
; In Class 4 the y coordinate of O2 is restrained to be close to a 
  pseudo-mirror plane at y = 0.5 (see _restr_parameter_class_target).  
  This example may not have much practical use, but is included 
  to show what can be done with this definition.
;
#----------------------------------------------------------------
; loop_        
 _restr_parameter_id
 _restr_parameter_class_id
 _restr_parameter_atom_site_label
 _restr_parameter_atom_coefficient
1 5 O3   1
2 5 O4   1
;
;
  In Class 5 the positions of O3 and O4 are correlated in such a way that
  these atoms are displaced equal distances from the plane x = 0 
  (i.e., x(O3)+x(O4) = 0)
;
#  ---------------------------- end of examples -------------------

data_restr_parameter_atom_coefficient
    _name                      '_restr_parameter_atom_coefficient'
    _category                  'restr_parameter'
    _type                      numb
    _list                      yes
    _list_reference             '_restr_parameter_id'
    _enumeration_default       1
    _definition                
;         A parameter that scales the qantity being restrained.
          It can be used to convert a constraint on occupance to
          a constraint on ionic charge.
;

data_restr_parameter_atom_site_label
    _name                      '_restr_parameter_atom_site_label'
    _category                  'restr_parameter'
    _type                      char
    _list                      yes
    _list_reference            '_restr_parameter_id'
    _list_link_parent          '_atom_site_label'
    _definition                
;      The _atom_site_label for an atom in this class.
;

data_restr_parameter_class_id
    _name                      '_restr_parameter_class_id'
    _category                  'restr_parameter'
    _type                      char
    _list                      yes
    _list_reference            '_restr_parameter_id'
    _enumeration_default       '1'
    _definition                
;        The identifier of the class of restraint applied to the atoms
;

data_restr_parameter_id
    _name                      '_restr_parameter_id'
    _category                  'restr_parameter'
    _type                      char
    _list                      yes
    _list_mandatory            yes
    _definition                
;     A unique identifier for each line in a loop
;

#
###################################
#                                 #
#     RESTR_PARAMETER_CLASS       #
#                                 #
###################################
#

data_restr_parameter_class_[]
    _name                      '_restr_parameter_class_[]'
    _category                  category_overview
    _type                      null
    _list_reference            '_restr_parameter_class_class_id'
    _definition                
;      This restraint, which will normally be used to restrain the total 
       occupancy of an atom site, can be used to restrain the value of
       SUM(over the specified atoms){PARAMETER*COEFFICIENT} 
       where PARAMETER will usually be the value of the occupancy 
       (but other allowed quantities such as x, y and z can be specified 
       in the enumeration) and COEFFICIENT is a user defined 
       number with a default value of 1.0.
       The restraint requires two loops, the first defines the atoms in
       each sum (class) and the second describes the properties of the class.
;
    _example                   
# ------------------------------------------------------
;
 loop_        
 _restr_parameter_class_class_id
 _restr_parameter_class_parameter_type 
 _restr_parameter_class_target
 _restr_parameter_class_target_weight_param
  _restr_parameter_class_details
 1 occupancy   0.8  0.01   'total occupation is 0.8'
 2 occupancy   1.0  0.001  'total occupation is 1.0'
 3 occupancy   2.0  0.01   'total charge is 2.0'
 4 position_y  0.5  0.002  'keep close to pseudo-mirror plane'
 5 position_x  0    0.01   'correlate position of O3 and O4'
;

    _example_detail   

;  This example gives the properties of the five classes given as examples in 
   restr_parameter.

   The _*_class_id is the _list_reference and is the same as _*_class_id
   in the restr_parameter loop

   The _*_parameter_type indicates the atomic parameter that is restrained.

   _*_target is the target value for the sum of the product of 
   _restr_parameter_atom_coeffcient and the value of the _*_parameter_type 
   for the atom.

   _*_target_weight_sum gives the expectation value of the difference 
   between the target and the refined value of sum(coefficient*parameter)

   _*_details gives a description of the restraint applied
;
# --------------------------------------------------------------

data_restr_parameter_class_class_id
    _name                      '_restr_parameter_class_class_id'
    _category                  'restr_parameter_class'
    _type                      char
    _list                      yes
    _list_mandatory            yes
    _list_link_parent          '_restr_parameter_class_id'
    _enumeration_default       '1'
    _definition                
;        The class id of the restraint described in this category
;

data_restr_parameter_class_details
    _name                      '_restr_parameter_class_details'
    _category                  'restr_parameter_class'
    _type                      char
    _list                      yes
    _list_reference            '_restr_parameter_class_class_id'
    _definition                
;         A text description of the restraint.
;

data_restr_parameter_class_parameter_type
    _name                      '_restr_parameter_class_parameter_type'
    _category                  'restr_parameter_class'
    _type                      char
    _list                      yes
    _list_reference            '_restr_parameter_class_class_id'
   loop_
                        _enumeration    _enumeration_detail  
                       #------------    -------------------
                         'occupancy'   '_atom_site_occupancy'
                         'position_x'  '_atom_site_fract_x'
                         'position_y'  '_atom_site_fract_y'
                         'position_z'  '_atom_site_fract_z'
    _definition                
;        A flag that indicates the nature of the value 
         that is being restrained.
;

data_restr_parameter_class_target
    _name                      '_restr_parameter_class_target'
    _category                  'restr_parameter_class'
    _type                      numb
    _list                      yes
    _list_reference            '_restr_parameter_class_class_id'
    _definition                
;        The target value for the sum of values of the appropriate 
         parameter type multiplied by the _*_target_weight_param.
;

data_restr_parameter_class_target_weight_param
    _name                      '_restr_parameter_class_weight_param'
    _category                  'restr_parameter_class'
    _type                      numb
    _list                      yes
    _list_reference            '_restr_parameter_class_class_id'
    _enumeration_default       0
    _definition                
;          Weighting parameter = sqrt(1/weight).  
           It is the expectation value of the difference between 
           the refined value of the sum(parameter*coefficient) 
           and the _*_target. 
           If this parameter is set to zero, the sum will be constrained
           to refine to the target value. 
           If this item is absent, its value will be taken and zero 
           and the distance will be constrained
;

#
#-------------------------------------------------------------------
# RESTRAINT 11: RIGID BODY
#-------------------------------------------------------------------
# New item in the atom_site category which defines rigid bodies.
#

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

data_atom_site_rigid_body_id 
    _name                      '_atom_site_rigid_body_id'
    _category                  'atom_site'
    _type                      char
    _list                      yes
    _list_reference            '_atom_site_label'
    _definition                
;
      All atoms having the same value of the id are 
      taken as belonging to the same rigid body, and by using 
      different _*_rigid_body_id values an unlimited number of 
      rigid bodies can be defined.  

      The coordinates of the atoms in the atom_site loop belonging 
      to a given rigid body must form a single connected body.

      Because the body is rigid, the target geometry will be 
      the same as the refined geometry.  A program may refine the   
      center of mass and orientation of the rigid body, but these refined 
      parameters do not need to be reported since they can be 
      extracted from the reported atomic coordinates using 
      a user-chosen coordinate system.

      As this is a constraint, no weighting parameter is needed.
;

#-------------------------------------------------------------------
# RESTRAINT 12: GENERAL DESCRIPTION IF FURTHER RESTRAINTS
#-------------------------------------------------------------------

######################
#                    #
#  RESTR             #
#                    #
######################
#
data_restr_[]
    _name                      '_restr_[]'
    _category                  categroy_overview
    _type                      null
    _definition                
;      This category is for describing restraints that cannot be 
       described elsewhere.
;

data_restr_special_details
    _name                      '_restr_special_details'
    _category                  'restr'
    _type                      char
    _definition                
;      Text descring any restraint or constraint that cannot be
       described using any of the the other restraint items.
;

##-------------End of Restraint and Constraint Dictionary ---------

restraints_01_edited.pdf

_______________________________________________
coreDMG mailing list
coreDMG@iucr.org
http://scripts.iucr.org/mailman/listinfo/coredmg

[Send comment to list secretary]
[Reply to list (subscribers only)]