ó
Î™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 Z d	 Z d
 „  Z d „  Z d „  Z e d k rÆ e	 ƒ  Z e ƒ  d e j ƒ  GHd GHn  d S(   iÿÿÿÿ(   t   division(   t   flex(   t
   group_args(   t   base_pairing(   t   user_plus_sys_time(   t   individual_sitesNs  CRYST1   23.136   23.980   28.180  90.00  90.00  90.00 P 1
ATOM   1240  P    DG B  40       0.649   2.161 -36.081  0.50 17.21           P
ATOM   1241  OP1  DG B  40       1.754   3.055 -35.664  0.50 19.03           O
ATOM   1242  OP2  DG B  40      -0.231   2.567 -37.203  0.50 13.93           O
ATOM   1243  O5'  DG B  40       1.316   0.741 -36.417  0.50 17.66           O
ATOM   1244  C5'  DG B  40       2.224   0.095 -35.507  0.50 17.29           C
ATOM   1245  C4'  DG B  40       2.673  -1.267 -36.015  0.50 18.14           C
ATOM   1246  O4'  DG B  40       1.657  -2.274 -35.767  0.50 18.54           O
ATOM   1247  C3'  DG B  40       2.981  -1.325 -37.503  0.50 18.42           C
ATOM   1248  O3'  DG B  40       4.381  -1.282 -37.640  0.50 18.86           O
ATOM   1249  C2'  DG B  40       2.435  -2.669 -37.974  0.50 19.35           C
ATOM   1250  C1'  DG B  40       1.386  -3.034 -36.928  0.50 20.27           C
ATOM   1251  N9   DG B  40       0.023  -2.677 -37.316  0.50 21.30           N
ATOM   1252  C8   DG B  40      -0.406  -1.445 -37.759  0.50 21.71           C
ATOM   1253  N7   DG B  40      -1.676  -1.380 -38.029  0.50 22.28           N
ATOM   1254  C5   DG B  40      -2.128  -2.655 -37.739  0.50 21.94           C
ATOM   1255  C6   DG B  40      -3.437  -3.178 -37.849  0.50 20.86           C
ATOM   1256  O6   DG B  40      -4.476  -2.610 -38.224  0.50 22.01           O
ATOM   1257  N1   DG B  40      -3.477  -4.511 -37.466  0.50 20.98           N
ATOM   1258  C2   DG B  40      -2.385  -5.232 -37.045  0.50 21.41           C
ATOM   1259  N2   DG B  40      -2.658  -6.493 -36.734  0.50 22.19           N
ATOM   1260  N3   DG B  40      -1.143  -4.774 -36.928  0.50 20.66           N
ATOM   1261  C4   DG B  40      -1.093  -3.469 -37.297  0.50 20.70           C
TER
END
s  CRYST1   23.136   23.980   28.180  90.00  90.00  90.00 P 1
ATOM   1240  P    DG B  40       0.612   2.104 -36.129  0.50 17.21           P
ATOM   1241  OP1  DG B  40       1.718   3.006 -35.787  0.50 19.03           O
ATOM   1242  OP2  DG B  40      -0.331   2.457 -37.202  0.50 13.93           O
ATOM   1243  O5'  DG B  40       1.193   0.664 -36.476  0.50 17.66           O
ATOM   1244  C5'  DG B  40       2.139   0.076 -35.623  0.50 17.29           C
ATOM   1245  C4'  DG B  40       2.467  -1.338 -36.039  0.50 18.14           C
ATOM   1246  O4'  DG B  40       1.323  -2.180 -35.893  0.50 18.54           O
ATOM   1247  C3'  DG B  40       2.890  -1.504 -37.491  0.50 18.42           C
ATOM   1248  O3'  DG B  40       4.284  -1.545 -37.594  0.50 18.86           O
ATOM   1249  C2'  DG B  40       2.227  -2.815 -37.926  0.50 19.35           C
ATOM   1250  C1'  DG B  40       1.572  -3.325 -36.650  0.50 20.27           C
ATOM   1251  N9   DG B  40       0.318  -4.068 -36.831  0.50 21.30           N
ATOM   1252  C8   DG B  40       0.099  -5.410 -36.618  0.50 21.71           C
ATOM   1253  N7   DG B  40      -1.128  -5.780 -36.836  0.50 22.28           N
ATOM   1254  C5   DG B  40      -1.761  -4.618 -37.199  0.50 21.94           C
ATOM   1255  C6   DG B  40      -3.099  -4.399 -37.545  0.50 20.86           C
ATOM   1256  O6   DG B  40      -4.016  -5.216 -37.606  0.50 22.01           O
ATOM   1257  N1   DG B  40      -3.326  -3.075 -37.841  0.50 20.98           N
ATOM   1258  C2   DG B  40      -2.364  -2.095 -37.807  0.50 21.41           C
ATOM   1259  N2   DG B  40      -2.755  -0.882 -38.105  0.50 22.19           N
ATOM   1260  N3   DG B  40      -1.117  -2.287 -37.484  0.50 20.66           N
ATOM   1261  C4   DG B  40      -0.884  -3.558 -37.193  0.50 20.70           C
TER
END
c         C   s’   t  j j d t ƒ j d |  j ƒ  ƒ d } | j d t ƒ } d  } | rs t  j j	 d | j
 d t ƒ d t ƒ } n  t d | j j d	 | d
 | ƒ S(   Nt   logt   raw_recordsi    t   show_summaryt   geometryt   show_energiest   normalizationt   pht   grmt   xrs(   t   mmtbxt   utilst   process_pdb_file_srvt   Falset   process_pdb_filest
   splitlinest   xray_structuret   Nonet
   restraintst   managert   geometry_restraints_managert   TrueR   t   all_chain_proxiest   pdb_hierarchy(   t   pdb_strR   t   ppfR   t   restraints_manager(    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/real_space/tst_flipbase.pyt   get_pdb_inputsA   s    c         C   s>   |  j  d d ƒ j ƒ  } | j d d ƒ } | j ƒ  | j ƒ  S(   Nt   d_ming333333ó?t   resolution_factorg      Ð?(   t   structure_factorst   f_calct   fft_mapt   apply_sigma_scalingt   real_map_unpadded(   R   R$   R%   (    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/real_space/tst_flipbase.pyt   get_mapO   s    
c          C   s_  t  d t d t ƒ }  t d |  j ƒ } |  j j ƒ  } |  j j d d d | j ƒ  ƒ t  d t	 d t
 ƒ } | j j d d ƒ | j j ƒ  } | j d | ƒ } | j ƒ  j ƒ  GHt j | ƒ d	 k sÊ t ‚ t j | ƒ d
 k så t ‚ d } d } d! } t }	 d	 }
 t d |  j ƒ } | j ƒ  } xª| j j ƒ  D]™} | j j ƒ  | k rRq1n  d GHxp| j ƒ  D]b} | j ƒ  | k r‚qdn  d GH| j ƒ  r³| r³d } t | d ƒ ‚ n  x| j ƒ  D]} | rç| | j j ƒ  k rçqÀn  t j | d d ƒ| j | j  ƒ  j! ƒ  | j  ƒ  j" ƒ  ƒ | j# | ƒ } | j  ƒ  j! ƒ  } d j$ d d ƒ GHxQ t% |
 ƒ D]C } d | d
 GHt& j' d | d | d | j d | j( d | ƒ }	 qaWd j$ d d ƒ GH|	 j) } qÀWqdWq1W|	 sãt d ƒ ‚ n  | j d | ƒ } | j ƒ  j ƒ  GHt j | ƒ d k  s!t ‚ t j | ƒ d k  s<t ‚ |	 j* j d d  d | j ƒ  ƒ d! S("   s*   
  Exercise refine "easy" with DNA/RNA.
  R   R   R   t	   file_names
   answer.pdbt   crystal_symmetrys   poor.pdbt   otheri   i   t   Bi(   t   chains   res#s>   Specified residue has alternate conformations. Please specify s   alt_loc on the command linet   anglei´   s   real-space refinement BEGINiO   t   *s!   real-space refinement cycle %i...t   map_dataR   R   R   t	   selections   real-space refinement FINISHEDs   Specified residue not foundgìQ¸…ë±?g¸…ëQ¸ž?s   refined.pdbN(+   R    t   pdb_str_answerR   R(   R   t   deep_copy_scatterersR   t   write_pdb_fileR*   t   pdb_str_poorR   t	   distancest   min_max_meant   as_tupleR   t   maxt   AssertionErrort   meanR   t
   sites_cartt   chainst   idt   stript   residue_groupst   resseq_as_intt   have_conformerst   RuntimeErrort   atom_groupst   altlocR   t	   flip_baset   set_selectedt   atomst   extract_i_seqt   extract_xyzt   replace_sites_cartt   centert   rangeR   t   easyR   R   R   (   t   pi_goodR0   t   xrs_goodt   pi_poort   xrs_poort   dR-   t   res_numt   alt_loct   erot   n_refine_cyclest
   target_mapR<   t   cht   rgt   st   residueR   t   selet   it   xrs_refined(    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/real_space/tst_flipbase.pyt   exerciseU   sr      			 t   __main__s   Time: %6.2ft   OK(   t
   __future__R    t   scitbx.array_familyR   t   libtbxR   t   mmtbx.secondary_structureR   t   libtbx.utilsR   t   mmtbx.refinement.real_spaceR   R   R2   R5   R    R(   R`   t   __name__t   timert   elapsed(    (    (    sV   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/refinement/real_space/tst_flipbase.pyt   <module>   s    			A	