ó
Ú™xTc           @   s„   d  d l  m Z d  d l m Z d  d l m Z d  d l Z d „  Z d „  Z	 d „  Z
 e d k r€ e ƒ  e
 ƒ  e	 ƒ  d	 GHn  d S(
   iÿÿÿÿ(   t   division(   t   null_out(   t   StringIONc          C   su   d d l  m }  d d  l } | j j j d d ƒ } |  j d | j d t d t ƒ  ƒ | j j	 ƒ  d k sq t
 ‚ d  S(	   Niÿÿÿÿ(   t   extend_sidechainst
   pdb_stringsy  
ATOM     65  N   LYS A   7       6.033   4.704   1.582  1.00 17.49           N
ATOM     66  CA  LYS A   7       5.159   5.427   2.499  1.00 18.23           C
ATOM     67  C   LYS A   7       4.673   4.437   3.507  1.00 14.78           C
ATOM     68  O   LYS A   7       4.777   3.208   3.297  1.00 15.83           O
ATOM     69  CB  LYS A   7       3.959   6.057   1.760  1.00 23.56           C
ATOM     70  CG  LYS A   7       4.345   7.215   0.830  1.00 33.58           C
ATOM     71  CD  LYS A   7       3.213   7.570  -0.123  1.00 41.39           C
ATOM     72  CE  LYS A   7       2.976   6.471  -1.165  1.00 48.81           C
t   pdb_hierarchyt   modify_segidst   logsË  ATOM      1  N   LYS A   7       6.033   4.704   1.582  1.00 17.49           N
ATOM      2  CA  LYS A   7       5.159   5.427   2.499  1.00 18.23           C
ATOM      3  C   LYS A   7       4.673   4.437   3.507  1.00 14.78           C
ATOM      4  O   LYS A   7       4.777   3.208   3.297  1.00 15.83           O
ATOM      5  CB  LYS A   7       3.959   6.057   1.760  1.00 23.56           C
ATOM      6  CG  LYS A   7       4.373   7.174   0.814  1.00 33.58           C
ATOM      7  CD  LYS A   7       3.240   7.520  -0.138  1.00 41.39           C
ATOM      8  CE  LYS A   7       3.007   6.412  -1.152  1.00 48.81           C
ATOM      9  NZ  LYS A   7       1.899   6.737  -2.090  1.00 48.81           N
TER
(   t   mmtbx.buildingR   t   iotbx.pdb.hierarchyt   pdbt	   hierarchyt   inputt   extend_protein_modelt   FalseR   t   as_pdb_stringt   AssertionError(   R   t   iotbxt   pdb_in(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/building/tst_extend_sidechains.pyt   exercise_model_only   s    				
c          C   s�  d d l  m }  d d l m } d d  l } d } d } | j j j d | ƒ } | j j ƒ  } t	 | j
 d d ƒ j ƒ  ƒ } | j j ƒ  j d	 ƒ } | j j | ƒ }	 t | d
 ƒ }
 |
 j |	 j d | ƒ ƒ |
 j ƒ  | j d d ƒ } | j d d ƒ } | j | d d ƒ| j ƒ  j | ƒ d } t j j | ƒ rKt j | ƒ n  t ƒ  } |  j d | | d | g d | ƒ d | j ƒ  k s�t ‚ d d l m  } | j j j d | ƒ } | j  d | j d t! ƒ } | j  d | j d t! ƒ } x; t" | j# | j# ƒ D]$ \ } } | j$ | j$ k st ‚ qWd } t | d
 ƒ j d ƒ d } |  j d | | | d | g d | ƒ d | j ƒ  k s‹t ‚ d  S(   Niÿÿÿÿ(   R   (   t
   model_1yjps   tst_extend_sidechains.pdbs   tst_extend_sidechains.mtzR   t   d_ming      ø?sX   not (resname TYR and not (name c or name o or name n or name oxt or name ca or name cb))t   wt   crystal_symmetryt   fractiongš™™™™™¹?t   column_root_labelt   Ft
   FreeR_flags   tst_extend_sidechains_out.pdbt   argss   output_model=%st   outs   1 sidechains extended.(   t   rotalyzet	   file_nameR   t   outliers_onlys   tst_extend_sidechains.fas   >1yjp_new
GNDQQNYs   tst_extend_sidechains_out2.pdbs   2 sidechains extended.(%   t   mmtbx.command_lineR   t   mmtbx.regressionR   R	   R
   R   R   t   xray_structure_simplet   abst   structure_factorst   f_calct   atom_selection_cachet	   selectiont   selectt   opent   writeR   t   closet   generate_r_free_flagst   as_mtz_datasett   add_miller_arrayt
   mtz_objectt   ost   patht   isfilet   removeR   t   runt   getvalueR   t   mmtbx.validationR   R   t   zipt   resultst   rotamer_name(   R   R   R   t   pdb_filet   mtz_fileR   t   xrsR&   t   selR   t   ft   flagst   mtzt   pdb_outR   R   t   pdb_newt   r1t   r2t   o1t   o2t   seq_file(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/building/tst_extend_sidechains.pyt   exercise_cmdline%   sN    	
		"	c       	   C   s#  d d l  m }  d d l m } d d  l } d d  l } | j j j d | ƒ } | j	 j
 d ƒ g } t ƒ  } |  j d | j j ƒ  d | d | ƒ } | d	 k s§ t ‚ d
 | j ƒ  k s¿ t ‚ t ƒ  } |  j d | j j ƒ  d | d t d | ƒ } | d	 k st ‚ d | j ƒ  k st ‚ d  S(   Niÿÿÿÿ(   R   (   R   R   t   GNDQQNYR   t	   sequencesR   i   s/     chain 'A'    3  ASP --> ASP (1 atoms removed)t   truncate_to_cbetas/     chain 'A'    3  ASP --> ASP (3 atoms removed)(   R   R   R"   R   R	   t   iotbx.bioinformaticsR
   R   R   t   bioinformaticst   sequenceR   t   correct_sequencet	   deep_copyR   R6   t   True(   R   R   R   R   RK   R   t	   n_changed(    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/building/tst_extend_sidechains.pyt   exercise_correct_sequenceO   s*    						t   __main__t   OK(   t
   __future__R    t   libtbx.utilsR   t	   cStringIOR   t   os.pathR1   R   RI   RT   t   __name__(    (    (    sR   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/building/tst_extend_sidechains.pyt   <module>   s   		*	