ó
º™xTc           @   s*  d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d  d l m	 Z	 d  d l
 m Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d	 Z d
 Z d Z d Z d „  Z d „  Z d „  Z e d k r&e d e j  d ƒ n  d S(   iÿÿÿÿ(   t   division(   t   monomer_library(   t   reference_model(   t   utils(   t   rotalyze(   t   flexN(   t	   show_diffs7  CRYST1   41.566   72.307   92.870 108.51  93.02  90.06 P 1           4
ATOM   5466  N   ASN C 236      17.899  72.943  29.028  1.00 60.13           N
ATOM   5467  CA  ASN C 236      16.519  72.435  29.114  1.00 60.52           C
ATOM   5468  C   ASN C 236      16.377  70.925  29.327  1.00 60.49           C
ATOM   5469  O   ASN C 236      15.429  70.294  28.863  1.00 60.60           O
ATOM   5470  CB  ASN C 236      15.689  72.896  27.916  1.00 60.55           C
ATOM   5471  CG  ASN C 236      14.357  73.447  28.338  1.00 61.75           C
ATOM   5472  OD1 ASN C 236      14.256  74.609  28.768  1.00 62.86           O
ATOM   5473  ND2 ASN C 236      13.319  72.616  28.247  1.00 61.22           N
ATOM   5474  N   LEU C 237      17.316  70.364  30.068  1.00 60.55           N
ATOM   5475  CA  LEU C 237      17.444  68.931  30.166  1.00 60.48           C
ATOM   5476  C   LEU C 237      17.815  68.555  31.581  1.00 60.06           C
ATOM   5477  O   LEU C 237      17.335  67.547  32.097  1.00 60.41           O
ATOM   5478  CB  LEU C 237      18.518  68.464  29.178  1.00 60.91           C
ATOM   5479  CG  LEU C 237      18.542  67.095  28.491  1.00 62.25           C
ATOM   5480  CD1 LEU C 237      17.407  66.153  28.923  1.00 63.18           C
ATOM   5481  CD2 LEU C 237      18.563  67.309  26.965  1.00 62.89           C
s7  CRYST1   40.688   71.918   93.213 108.16  93.25  90.40 P 1           4
ATOM   5485  N   ASN C 236      16.417  72.834  29.095  1.00  7.17           N
ATOM   5486  CA  ASN C 236      15.051  72.312  29.173  1.00  7.74           C
ATOM   5487  C   ASN C 236      15.000  70.818  29.431  1.00  7.38           C
ATOM   5488  O   ASN C 236      14.047  70.141  29.024  1.00  7.80           O
ATOM   5489  CB  ASN C 236      14.281  72.645  27.887  1.00  8.78           C
ATOM   5490  CG  ASN C 236      12.769  72.657  28.088  1.00 13.44           C
ATOM   5491  OD1 ASN C 236      12.265  73.196  29.082  1.00 20.19           O
ATOM   5492  ND2 ASN C 236      12.032  72.114  27.109  1.00 16.07           N
ATOM   5493  N   LEU C 237      16.010  70.282  30.134  1.00  6.60           N
ATOM   5494  CA  LEU C 237      16.122  68.825  30.270  1.00  7.41           C
ATOM   5495  C   LEU C 237      16.481  68.430  31.697  1.00  6.01           C
ATOM   5496  O   LEU C 237      15.944  67.448  32.224  1.00  6.47           O
ATOM   5497  CB  LEU C 237      17.151  68.239  29.297  1.00  8.10           C
ATOM   5498  CG  LEU C 237      17.384  66.726  29.347  1.00 10.94           C
ATOM   5499  CD1 LEU C 237      16.055  65.956  29.107  1.00 13.10           C
ATOM   5500  CD2 LEU C 237      18.455  66.271  28.343  1.00 11.63           C
s7  CRYST1   40.688   71.918   93.213 108.16  93.25  90.40 P 1           4
ATOM   5485  N   ASN B 246      16.417  72.834  29.095  1.00  7.17           N
ATOM   5486  CA  ASN B 246      15.051  72.312  29.173  1.00  7.74           C
ATOM   5487  C   ASN B 246      15.000  70.818  29.431  1.00  7.38           C
ATOM   5488  O   ASN B 246      14.047  70.141  29.024  1.00  7.80           O
ATOM   5489  CB  ASN B 246      14.281  72.645  27.887  1.00  8.78           C
ATOM   5490  CG  ASN B 246      12.769  72.657  28.088  1.00 13.44           C
ATOM   5491  OD1 ASN B 246      12.265  73.196  29.082  1.00 20.19           O
ATOM   5492  ND2 ASN B 246      12.032  72.114  27.109  1.00 16.07           N
ATOM   5493  N   LEU B 247      16.010  70.282  30.134  1.00  6.60           N
ATOM   5494  CA  LEU B 247      16.122  68.825  30.270  1.00  7.41           C
ATOM   5495  C   LEU B 247      16.481  68.430  31.697  1.00  6.01           C
ATOM   5496  O   LEU B 247      15.944  67.448  32.224  1.00  6.47           O
ATOM   5497  CB  LEU B 247      17.151  68.239  29.297  1.00  8.10           C
ATOM   5498  CG  LEU B 247      17.384  66.726  29.347  1.00 10.94           C
ATOM   5499  CD1 LEU B 247      16.055  65.956  29.107  1.00 13.10           C
ATOM   5500  CD2 LEU B 247      18.455  66.271  28.343  1.00 11.63           C
sJ  CRYST1   40.688   71.918   93.213 108.16  93.25  90.40 P 1           4
ATOM   5485  N   ASN C 270      16.417  72.834  29.095  1.00  7.17           N
ATOM   5486  CA  ASN C 270      15.051  72.312  29.173  1.00  7.74           C
ATOM   5487  C   ASN C 270      15.000  70.818  29.431  1.00  7.38           C
ATOM   5488  O   ASN C 270      14.047  70.141  29.024  1.00  7.80           O
ATOM   5489  CB  ASN C 270      14.281  72.645  27.887  1.00  8.78           C
ATOM   5490  CG  ASN C 270      12.769  72.657  28.088  1.00 13.44           C
ATOM   5491  OD1 ASN C 270      12.265  73.196  29.082  1.00 20.19           O
ATOM   5492  ND2 ASN C 270      12.032  72.114  27.109  1.00 16.07           N
ATOM   5493  N   ALA C 271      16.010  70.282  30.134  1.00  6.60           N
ATOM   5494  CA  ALA C 271      16.122  68.825  30.270  1.00  7.41           C
ATOM   5495  C   ALA C 271      16.481  68.430  31.697  1.00  6.01           C
ATOM   5496  O   ALA C 271      15.944  67.448  32.224  1.00  6.47           O
ATOM   5497  CB  ALA C 271      17.151  68.239  29.297  1.00  8.10           C
c           C   s   t  j j d d d t ƒ S(   Nt   input_stringsh   reference_model
{
  include     scope mmtbx.torsion_restraints.reference_model.reference_model_params
}
t   process_includes(   t   iotbxt   philt   parset   True(    (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/torsion_restraints/tst_reference_model.pyt   get_master_phil\   s    c   )      C   s×  t  j ƒ  } t ƒ  } t j j d |  d | d dT ƒ } | j d | d ƒ } d	 } t j j d
 | ƒ g } | j d | ƒ j	 ƒ  }	 t j
 j d d  d t j t ƒ ƒ j ƒ  }
 g  } t j
 j d d  d t j t ƒ ƒ j ƒ  } | j | ƒ t d |
 d | d |	 j d | ƒ } t | j ƒ d k s(t ‚ g  } t j
 j d d  d t j t ƒ ƒ j ƒ  } | j | ƒ g  } t j
 j d d  d t j t ƒ ƒ j ƒ  } | j | ƒ t j d |
 ƒ } | i d d 6d d 6d d 6d d 6d d 6d d 6d d 6d  d 6d! d" 6d# d$ 6d% d& 6d' d( 6d) d* 6d+ d, 6d- d. 6d/ d0 6k s6t ‚ t j d |
 ƒ } | i d1 d 6d2 d 6d2 d 6d3 d 6d2 d 6d2 d 6d3 d 6d1 d 6d1 d" 6d2 d$ 6d2 d& 6d3 d( 6d2 d* 6d2 d, 6d2 d. 6d2 d0 6k sÊt ‚ | d } t j d | ƒ } | j ƒ  j ƒ  } | j d4 | d5 | d | d6 t d7 t  d8 t  ƒ } t | ƒ d k s@t ‚ | j j! ƒ  } | d  k	 sat ‚ t | ƒ t | ƒ k st ‚ x) | D]! } | j" |	 j j" k s†t ‚ q†Wt# d |
 d9 t ƒ } t  j ƒ  } | j$ d: | ƒ t# d | d9 t ƒ } t  j ƒ  } | j$ d: | ƒ t% | j& ƒ  d; ƒ s)t ‚ t% | j& ƒ  d< ƒ sEt ‚ |
 j' ƒ  } | j( d= | d> t  ƒ |
 j) | ƒ t# d |
 d9 t ƒ } t  j ƒ  } | j$ d: | ƒ t% | j& ƒ  d? ƒ sÁt ‚ | j* d@ } | i d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d" d" 6d$ d$ 6d& d& 6d( d( 6d* d* 6d, d, 6d. d. 6d0 d0 6k sPt ‚ dA } t j j d
 | ƒ g } | j d | ƒ j	 ƒ  } t d |
 d | d | j d | ƒ } | j* } | d@ i d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d" d" 6d$ d$ 6d& d& 6d( d( 6d* d* 6d, d, 6d. d. 6d0 d0 6k s9t ‚ t+ j, j- dB dC dD t. j/ j0 ƒ }  t j
 j dE |  ƒ j ƒ  }
 g  }! |! j |  ƒ | j d | d ƒ } d	 } t j j d
 | ƒ g } | j d | ƒ j	 ƒ  }	 t d |
 dF |! d |	 j d | ƒ } | j } d }" x* | D]" }# |# j1 dG k r|" d 7}" qqW|" dH k sFt ‚ t+ j, j2 dI dJ ƒ scdK GHnš dL } t j j d
 | ƒ g } | j d | ƒ j	 ƒ  }$ |$ j | _3 | j4 ƒ  | j } d }% x* | D]" }# |# j1 dG k rÅ|% d 7}% qÅqÅW|% dM k sýt ‚ t+ j, j- dB dN dD t. j/ j0 ƒ }  t j
 j dE |  ƒ j ƒ  }
 g  }! |! j |  ƒ |
 j5 ƒ  dO d  l6 }& |& j7 dP |
 j8 ƒ  d j9 ƒ  d dQ |
 j8 ƒ  d j9 ƒ  d ƒ }' |& j: j; dR |' ƒ }( |' j< ƒ  d dS k sÓt ‚ d  S(U   Nt   argst   master_philt   input_typest   mtzt   pdbt   cift   sourcesR
   s2   
  reference_model {
    fix_outliers=False
  }
  R   t   source_infot   linest   pdb_hierarchyt   reference_hierarchy_listt   paramst   logi   s    N   ASN C 236     i    s    CA  ASN C 236     i   s    C   ASN C 236     i   s    O   ASN C 236     i   s    CB  ASN C 236     i   s    CG  ASN C 236     i   s    OD1 ASN C 236     i   s    ND2 ASN C 236     s    N   LEU C 237     i   s    CA  LEU C 237     i	   s    C   LEU C 237     i
   s    O   LEU C 237     i   s    CB  LEU C 237     i   s    CG  LEU C 237     i   s    CD1 LEU C 237     i   s    CD2 LEU C 237     i   s    Ns    Cs    Ot   dihedral_proxiest
   sites_cartt   include_hydrogenst   include_main_chaint   include_side_chaint   outliers_onlyt   outsa    C 236  ASN:1.00:1.2:227.3:80.2:::Allowed:t30
 C 237  LEU:1.00:0.0:209.6:357.2:::OUTLIER:OUTLIER
s]    C 236  ASN:1.00:41.4:203.2:43.6:::Favored:t30
 C 237  LEU:1.00:52.8:179.1:57.3:::Favored:tp
t   xray_structuret   quiets\    C 236  ASN:1.00:1.2:227.3:80.2:::Allowed:t30
 C 237  LEU:1.00:52.8:179.1:57.3:::Favored:tp
t   ref1s~   
  reference_model.reference_group {
    reference= chain B and resseq 246:247
    selection= chain C and resid 236:237
  }
  t   relative_paths   phenix_regression/pdb/1ywf.pdbt   testt	   file_namet   reference_file_listg      ð?i�  t   namet   ksdssps3   Skipping KSDSSP tests: ksdssp module not available.sG   
    reference_model {
      secondary_structure_only = True
    }
    i¶  s!   phenix_regression/ncs/rnase-s.pdbiÿÿÿÿt	   referencet   movingt   matchg\�Âõ(\ï?(   R   s   pdbR   (=   t	   cStringIOt   StringIOR   R	   R   t   process_command_line_inputst   fetchR
   R   t   extractR   t   inputt   NoneR   t   split_linest   model_raw_recordst   construct_hierarchyt   reference_raw_recordst   appendR   t   lent   reference_dihedral_proxiest   AssertionErrort   reference_raw_records_alt_seqt   reference_raw_records_matcht   build_name_hasht   build_element_hasht   get_complete_dihedral_proxiest   atomst   extract_xyzt   build_dihedral_hasht   FalseR   t	   deep_copyt   limitR   t   show_old_outputR   t   getvaluet   extract_xray_structuret   set_rotamer_to_referencet   adopt_xray_structuret	   match_mapt   libtbxt   envt   find_in_repositoriest   ost   patht   isfilet   weightt
   has_moduleR   t   get_reference_dihedral_proxiest   reset_i_seq_if_necessaryt   ccp4io_adaptbxt   SecondaryStructureMatchingt   modelst   chainst   SSMAlignmentt   residue_groupst
   GetQvalues()   R   t   mon_lib_srvt   ener_libR   R   t   input_objectst	   work_philt   master_phil_str_overridest   phil_objectst   work_paramsR   R   t   tmp_hierarchyt   rmt    reference_hierarchy_list_alt_seqt"   reference_hierarchy_list_ref_matcht   i_seq_name_hasht   i_seq_element_hasht   ref_pdb_hierarchyR   t   sites_cart_reft   dihedral_hashR;   t   rdpt   r1t   out1t   r2t   out2R"   t   out3RM   t   work_params_altt   pdb_fileR(   t   standard_weightt   dpt   work_params_sst	   ss_weightRX   t   ssmt	   alignment(    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/torsion_restraints/tst_reference_model.pyt   exercise_reference_modelf   s,   								;1
			W(			W(			
	
	c         C   sc   t  j  ƒ  } d d  l } | j j j ƒ  } | j j j ƒ  } t |  | | ƒ d t  j  ƒ  | GHd  S(   Niÿÿÿÿs   OK. Time: %8.3f(   t   timet   mmtbx.monomer_libraryR   t   serverR`   R}   (   R   t   t0t   mmtbxR_   R`   (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/torsion_restraints/tst_reference_model.pyt   run+  s    t   __main__R   i   (!   t
   __future__R    R‚   R   t(   mmtbx.torsion_restraints.reference_modelR   t   mmtbx.torsion_restraintsR   t   mmtbx.validation.rotalyzeR   t   cctbx.array_familyR   t
   iotbx.philR	   t   iotbx.utilst	   iotbx.pdbt   libtbx.test_utilsR   t   libtbx.load_envRN   R.   t   sysRQ   R~   R6   R8   R=   R>   R   R}   Rƒ   t   __name__t   argv(    (    (    sZ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/torsion_restraints/tst_reference_model.pyt   <module>   s*   $	
	Å	