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

Re: Restraints dictionary submitted for approval

Dear Colleagues,

atom_site_rigid_body_id seems intended to allow a given atom
to be part of only a single rigid body.  Should we not also
allow for the possibility of hinge points in which a single atom
may be part of two rigid bodies being joined?  The current
definition only allows for two rigid bodies linked by a bond,
rather than by a common atom.  If we do this, this will require
another category organized by the rigid body id with pointers
to the atoms in the body, rather than the current approach of
pointers from atom_site to the rigid bodies.

I would suggest an atom_site_rigid_bodies catgeory, with
_atom_site_rigid_bodies_id and atom_site_rigid_bodies_label
to give the rigid body id and atom site label pairs involved.

Regards,
   Herbert







=====================================================
  Herbert J. Bernstein, Professor of Computer Science
    Dowling College, Kramer Science Center, KSC 121
         Idle Hour Blvd, Oakdale, NY, 11769

                  +1-631-244-3035
                  yaya@dowling.edu
=====================================================

On Tue, 8 Jun 2010, James Hester wrote:

> Dear COMCIFS members,
> 
> Ilia Guzei and David Brown have submitted the dictionary appended below for approval by COMCIFS. 
> The dictionary defines items for reporting restraints and constraints applied during structure
> refinement.  They have consulted with the principal writers of refinement software as well as with
> the Core Dictionary Maintenance Group who have approved the attached document.  The dictionary
> contains comments that explain the philosophy behind the dictionary as well as identifying the
> different restraints and constraints that are covered.
> 
> I suggest that voting members of COMCIFS register their vote to approve/reject as soon as is
> practicable, but in any case no more than 6 weeks from today's date.
> 
> James Hester
> 
> ##############################################################################
> #                                                                            #
> #           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-06-03                                                                 #
> # This dictionary has been approved by the core dictionary maintenance group #
> # The items described below have been preseneted for final approvcal 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                   #
> # --------------------------------------------------------                   #
> # 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.      #
> #                                                                            #
> # 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.                                                #
> #                                                                            #
> # 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.        #
> #                                                                            #
> # Attention is drawn to existing items in the core dictionary that flag      #
> # whether items have been restrained or constrained.                         #
> # _atom_site_refinement_flags_adp                                            #
> # _atom_site_refinement_flags_occupation                                     #
> # _atom_site_refinement_flags_posn                                           #
> # _atom_site_restraints                                                      #
> #                                                                            #
> ##############################################################################
> 
> 
> data_on_this_dictionary
>   _dictionary_name            cif_core_restraints.dic
>   _dictionary_version         0.2
>   _dictionary_update          2010-06-03
>   _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
> 
> 2010-01-14 IDB: Run through vcif by Brian McMahon and corrections made.
> esd replaced by su in _type_conditions
> 
> 2010-06-03 IDB: U-ISO, U-SIMIILAR
> ;
> 
> #
> # This dictionary describes 14 restraints some of which are also constraints.
> #
> # 1.  Rigid body
> # 2.  Other restraint or constraint
> # 3.  Angle
> # 4.  Distance
> # 5.  Minimum approach of two atoms
> # 8.  Angles restrained to be equal
> # 7.  Distances restrained to be equal
> # 8.  Torsion angles restrained to be equal
> # 9.  Restrained parameter
> # 10. Atoms lie on a plane
> # 11. Torsion angle
> # 12. Isotropic atom
> # 13. Rigid bond
> # 14. Similar atomic displacement parameters
> 
> #
> #-------------------------------------------------------------------
> # RESTRAINT 1: 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 2. GENERAL RESTRAINT
> #-------------------------------------------------------------------
> #  A general description of constraints and restraints not covered
> #  by other CIF items.
> #
> #
> ######################
> #                    #
> #  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.
>      See also _atom_site_restraints.
> ;
> 
> #
> # ----------------------------------------------------------------------------
> # RESTRAINT 3. 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           su
>   _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 4. 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           su
>   _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 5. 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 6. 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           su
>   _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 7. 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           su
>   _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 8. 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           su
>   _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 9. 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_target_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 10. A GROUP OF ATOMS IS RESTRAINED TO LIE ON A PLANE.
> # ----------------------------------------------------------------------------
> # This restraint contains two categories.
> # The first lists 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           su
>   _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           su
>   _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 11. 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           su
>   _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 12: THE ATOMIC DISPLACEMENT PARAMETER IS RESTRAINED TO BE ISOTROPIC
> #-------------------------------------------------------------------
> #
> #####################
> #                   #
> #  RESTR_U-ISO      #
> #                   #
> #####################
> 
> data_restr-U-iso_[]
>   _name                        '_restr-U-iso_[]'
>   _category                  category_overview
>   _type                      null
>   _list_reference            '_restr_U_iso_atom_site_label'
>   _definition
> ;           This restraints attempts to make an anisotropic
>           atomic displaecement isotropic within the range of the
>           weighting parameter.
>           It corresponds to SHELX ISO.
> ;
> loop_
>   _example
> ;loop_
> _restr_U_iso_atom_site_label
> _restr_U_iso_weight_param
> Na1     0.003
> O3      0.008
> O8      0.008
> ;
> 
> data_restr_U_iso_atom_site_label
>   _name                      '_restr_U_iso_atom_site_label'
>   _category                  'restr_U_iso'
>   _type                      char
>   _list                      yes
>   _list_reference            '_restr_U_iso_atom_site_label'
>   _list_mandatory            yes
>   _list_link_parent          '_atom_site_label'
>   _definition
> ; Label of the atom whose atomic displacement parameters are to be restrained.
> ;
> 
> data_restr_U_isotropic_weight_param
>   _name                      '_restr_U_iso_weight_param'
>   _category                  'restr_U_iso'
>   _type                      numb
>   _list                      yes
>   _list_reference            '_restr_U_iso_atom_site_label'
>   _units                     A^-2^
>   _units_detail              'reciprocal Angstrom squared'
>   _enumeration_range         0:
>   _enumeration_default       0
>   _definition
> ;            The expectation value of the difference between
>            the refined and the isotropic equivalent of the
>            anisotropic atomic displacement parameters.
>            The default value of zero indicates a constraint.
> ;
> 
> #
> # ----------------------------------------------------------------------------
> # RESTRAINT 13. 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           su
>   _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 14.  TWO ATOMS ARE RESRAINED TO HAVE THE SAME ADPs
> #--------------------------------------------------------------------
> #
> #####################
> #                   #
> #  RESTR_U-SIMILAR  #
> #                   #
> #####################
> 
> data_restr_U_similar_[]
>   _name                      '_restr_U_similar_[]'
>   _category                  category_overview
>   _type                      null
>   _definition
> ;          This category forces the atomic displacement ellipsoids
>          of atom 2 to be equal to that of atom 1 within the range
>          of the weighting parameter.
>          This is the same as SHELX  SIMU
> ;
> loop_
> _example
> ;loop_
> _restr_U_similar_atom_site_label_1
> _restr_U_similar_atom_site_label_2
> _restr_U_similar_weight_param
> C1      C2      0.08
> C2      C3      0.08
> ;
> 
> data_restr_U_similar_atom_site_label_1
>   _name                      '_restr_U_similar_atom_site_label_1'
>   _category                  'restr_U_similar'
>   _type                      char
>   _list                      yes
> loop_
>   _list_reference            '_restr_U_similar_atom_site_label_1'
>                              '_restr_U_similar_atom_site_label_2'
>   _list_mandatory            yes
>   _list_link_parent          '_atom_site_label'
>   _definition
> ;       Atom site label of first atom, the atom whose
>       atomic displacement parameters are used as the target.
> ;
> 
> data_restr_U_similar_atom_site_label_2
>   _name                      '_restr_U_similar_atom_site_label_2'
>   _category                  'restr_U_similar'
>   _type                      char
>   _list                      yes
>  loop_
>   _list_reference            '_restr_U_similar_atom_site_label_1'
>                              '_restr_U_similar_atom_site_label_2'
>   _list_mandatory            yes
>   _list_link_parent          '_atom_site_label'
>   _definition
> ;        Atom site label of second atom, the atom whose
>        atomic displacement parameters are to be restrained
>        to be the same at atom 1.
> ;
> 
> data_restr_U_similar_weight_param
>   _name                      '_restr_U_similar_weight_param'
>   _category                  'restr_U_similar'
>   _type                      numb
>   _list                      yes
> loop_
>   _list_reference            '_restr_U_similar_atom_site_label_1'
>                              '_restr_U_similar_atom_site_label_2'
>   _units                     A^-2^
>   _units_detail              'reciprocal Angstrom squared'
>   _enumeration_range         0:
>   _enumeration_default       0
>   _definition
> ;         The expectation value of the difference between the
>         anisotropic atomic displacement parameters
>         of the two atoms.
>         The default value of zero represents a constraint.
> ;
> 
> ##-------------End of Restraint and Constraint Dictionary ---------
> --
> T +61 (02) 9717 9907
> F +61 (02) 9717 3145
> M +61 (04) 0249 4148
> 
>
_______________________________________________
comcifs mailing list
comcifs@iucr.org
http://scripts.iucr.org/mailman/listinfo/comcifs

Reply to: [list | sender only]