ó
’™xTc           @   s­   d  d l  m Z d  d l m Z m Z m Z d  d l m Z d  d l m Z d  d l	 Z
 d  d l m Z d  d l m Z d „  Z d	 „  Z d
 „  Z e d k r© e ƒ  n  d S(   iÿÿÿÿ(   t   division(   t   crystalt   sgtbxt   xray(   t   geometry_restraints(   t   flexN(   t	   show_diff(   t   StringIOc          C   s7  t  j d t j d1 d ƒ d t j t  j d d2 d3 d4 f ƒ t  j d d5 ƒ g ƒ ƒ }  t j t j	 d d d	 g d t
 j d ƒ d d d d ƒ t j	 d d d	 g d d d d ƒ f ƒ } t j t j d d	 d d	 d g d t
 j d ƒ t
 j ƒ  t
 j d ƒ t
 j d ƒ f d d d d ƒ t j d d	 d d	 d g d t
 j d ƒ t
 j ƒ  t
 j d  ƒ t
 j d! ƒ f d d d d" ƒ f ƒ } t j t j d d	 d d	 g d t
 j d ƒ t
 j ƒ  t
 j d  ƒ f d d# d d ƒ t j d d	 d d	 g d t
 j d$ ƒ t
 j ƒ  t
 j d  ƒ f d d% d d& ƒ t j d d d	 d g d t
 j d' ƒ t
 j ƒ  t
 j d( ƒ f d d) d d& ƒ f ƒ } t j t j d d6 d7 d8 g d t
 j d ƒ t
 j d  ƒ t
 j d$ ƒ f d* d9 ƒ f ƒ } t j j j ƒ  } t j j j | |  d+ | d, | d- | d. | ƒt ƒ  } | j d/ | ƒ t | j ƒ  d0 ƒ s3t ‚ d  S(:   Nt   crystal_symmetryg
×£p=
@gáz®Gá@iZ   ix   t   P6222t
   scattererst   Sii   g       @g      @t   Ogžï§ÆK7É?gžï§ÆK7É¿g_Ò­£ªê?t   i_seqsi    t   rt_mx_jis   x-y,x,z-2/3t   distance_idealgš™™™™™ù?t   weightgš™™™™™	@g333333û?gÍÌÌÌÌÌü?t   sym_opss   1+y,1-x+y, z-1/3s   1-x,y-x,1/3-zt   angle_idealiâÿÿÿi   s   -y,x-y,z-1/3s   x-y,x,1/3+zi   ig   s   y+1,-x+y+1,z-1/3in   i   s   y,-x+y,z+2/3s   -x+y,-x,z+1/3i–   t   weightst   bond_proxiest   angle_proxiest   dihedral_proxiest   bond_similarity_proxiest   outs�  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
  Si  O  2_554  1.6000  0.5590  -0.0160
  Si  O  1      1.7000  0.7454  -2.3838

loop_
  _restr_angle_atom_site_label_1
  _restr_angle_atom_site_label_2
  _restr_angle_atom_site_label_3
  _restr_angle_site_symmetry_1
  _restr_angle_site_symmetry_2
  _restr_angle_site_symmetry_3
  _restr_angle_target
  _restr_angle_target_weight_param
  _restr_angle_diff
  O   Si  O   2_554  1  4_554  103.0000  0.7071   1.6926
  O   Si  O   3_664  1  4_554  110.0000  0.4472  -1.3127
  Si  O   Si  3      1  5      150.0000  0.4472   3.0700

loop_
  _restr_torsion_atom_site_label_1
  _restr_torsion_atom_site_label_2
  _restr_torsion_atom_site_label_3
  _restr_torsion_atom_site_label_4
  _restr_torsion_site_symmetry_1
  _restr_torsion_site_symmetry_2
  _restr_torsion_site_symmetry_3
  _restr_torsion_site_symmetry_4
  _restr_torsion_angle_target
  _restr_torsion_weight_param
  _restr_torsion_diff
  O  Si  O  Si  3_664  1  2_554  7_655  -30.0000  0.7071   6.9078
  O  Si  O  Si  3_664  1  4_554  2       90.0000  0.5774  11.7036

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
  1  1.0000  1.6160  0.0000  0.0000

loop_
  _restr_equal_distance_atom_site_label_1
  _restr_equal_distance_atom_site_label_2
  _restr_equal_distance_site_symmetry_2
  _restr_equal_distance_class_id
  Si  O  2_554  1
  Si  O  4_554  1
  Si  O  3_664  1

(   g
×£p=
@g
×£p=
@gáz®Gá@iZ   iZ   ix   g      à?g      à?gUUUUUUÕ?(   gžï§ÆK7É?gžï§ÆK7É¿g_Ò­£ªê?(   i    i   (   i    i   (   i    i   (   i   i   i   (   R   t	   structureR   t   symmetryR   t   xray_scatterert	   scattererR   t   shared_bond_simple_proxyt   bond_simple_proxyR   t   rt_mxt   shared_dihedral_proxyt   dihedral_proxyt   shared_angle_proxyt   angle_proxyt   shared_bond_similarity_proxyt   bond_similarity_proxyt   iotbxt   cift   modelt   blockt
   restraintst   add_to_cif_blockR   t   showR   t   getvaluet   AssertionError(   t   quartzR   R   R   R   t	   cif_blockt   s(    (    sL   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cif/tests/tst_restraints.pyt#   exercise_geometry_restraints_as_cif
   s’    																9c    	   	   C   s  d d  l  }  |  j j d ƒ s' d GHd  Sd d l m } d d  l } | j j ƒ  } | j d | ƒ j	 d  } | j
 d | ƒ j	 d  } | j d | ƒ j	 d  } t j j j ƒ  } t j j j | | d | d | d	 | ƒt ƒ  } | j d
 | ƒ t | j ƒ  d ƒ st ‚ d  S(   Niÿÿÿÿt   smtbxs>   Skipping exercise_adp_restraints_as_cif(): smtbx not available(   t   adp_restraintst   xray_structurei   t   rigid_bond_proxiest   adp_similarity_proxiest   isotropic_adp_proxiesR   s  loop_
  _restr_U_rigid_atom_site_label_1
  _restr_U_rigid_atom_site_label_2
  _restr_U_rigid_target_weight_param
  _restr_U_rigid_U_parallel
  _restr_U_rigid_diff
  O1  C1  0.0100  0.0176   0.0006
  O1  C2  0.0100  0.0194  -0.0053
  O1  C3  0.0100  0.0177   0.0013

loop_
  _restr_U_similar_atom_site_label_1
  _restr_U_similar_atom_site_label_2
  _restr_U_similar_weight_param
  O1  C1  0.0400
  O1  C6  0.0400
  O2  C2  0.0800

loop_
  _restr_U_iso_atom_site_label
  _restr_U_iso_weight_param
  O1  0.1000
  O2  0.2000
  O3  0.2000

(   t   libtbx.load_envt   envt
   has_modulet   smtbx.refinement.restraintsR4   t   smtbx.developmentt   developmentt   sucroset   rigid_bond_restraintst   proxiest   adp_similarity_restraintst   isotropic_adp_restraintsR&   R'   R(   R)   R*   R+   R   R,   R   R-   R.   (	   t   libtbxt   smtbx_adp_restraintsR3   t   xsR6   R7   R8   R0   R1   (    (    sL   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cif/tests/tst_restraints.pyt   exercise_adp_restraints_as_cif‘   s.    					c           C   s   t  ƒ  t ƒ  d GHd  S(   Nt   OK(   RG   R2   (    (    (    sL   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cif/tests/tst_restraints.pyt   runÄ   s    t   __main__(   t
   __future__R    t   cctbxR   R   R   R   t   cctbx.array_familyR   t   iotbx.cif.restraintsR&   t   libtbx.test_utilsR   t	   cStringIOR   R2   RG   RI   t   __name__(    (    (    sL   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/cif/tests/tst_restraints.pyt   <module>   s   	‡	3	