ó
šxTc        '   @   sÐ  d  d l  m Z d  d l  m Z d  d l  m Z d  d l m Z e j j ƒ  e j	 j ƒ  Z
 dŽ Z e j j ƒ  e j	 j ƒ  Z d� Z d� Z i e j d	 6e j d
 6e j d 6e j d 6e j d 6e j d 6e j d 6e j d 6e j d 6e j d 6e j d 6e j d 6e j d 6e j d 6e j d 6e j d 6e j  d 6e j! d 6e j" d  6e j# d! 6Z$ d" d‘ f f Z% g  e D] Z& e$ j' e& e% ƒ ^ qnZ( d’ Z) i i d& d" 6d	 6i d& d" 6d& d' 6d
 6i d& d" 6d& d( 6d# d) 6d# d* 6d 6i d& d" 6d& d( 6d$ d+ 6d# d, 6d# d- 6d 6i d& d" 6d$ d( 6d$ d. 6d$ d/ 6d$ d0 6d$ d1 6d$ d2 6d 6i  d 6i d& d" 6d& d( 6d# d3 6d$ d/ 6d$ d0 6d# d4 6d 6i d& d" 6d& d5 6d& d6 6d& d. 6d 6i d& d" 6d& d( 6d& d+ 6d& d7 6d# d8 6d 6i d& d" 6d& d( 6d& d. 6d& d/ 6d 6i d& d" 6d& d( 6d9 d: 6d& d7 6d 6i d& d" 6d& d( 6d# d) 6d# d; 6d 6i d& d" 6d& d( 6d< d+ 6d 6i d& d" 6d& d( 6d$ d+ 6d# d, 6d# d4 6d 6i d& d" 6d& d( 6d& d+ 6d# d= 6d$ d2 6d# d> 6d# d? 6d 6i d& d" 6d# d@ 6d 6i d& d" 6d# dA 6d& d6 6d 6i d& d" 6d& d5 6d& d6 6d 6i
 d& d" 6d$ d( 6d$ d. 6d$ d/ 6d# dB 6d$ d1 6d$ dC 6d$ dD 6d$ dE 6d$ dF 6d  6i d& d" 6d$ d( 6d$ d. 6d$ d/ 6d$ d0 6d$ d1 6d$ d2 6d# dG 6d! 6Z* i  Z+ g  e D] Z& e* j' e& e+ ƒ ^ q’Z, i dH d	 6dI d
 6dJ d 6dK d 6dL d 6dM d 6dN d 6dO d 6dP d 6dO d 6dQ d 6dR d 6dS d 6dT d 6dU d 6dV d 6dW d 6dX d 6dY d  6dZ d! 6Z- d[ Z. g  e D] Z& e- j' e& e. ƒ ^ qOZ/ i d\ d	 6d\ d
 6d\ d 6d] d 6d^ d 6d_ d 6d] d 6d` d 6da d 6d` d 6d^ d 6db d 6d] d 6dc d 6da d 6d\ d 6d] d 6d^ d 6dd d  6d^ d! 6Z0 d[ Z1 g  e D] Z& e0 j' e& e1 ƒ ^ qZ2 de e3 f df „  ƒ  YZ4 dg e3 f dh „  ƒ  YZ5 e5 di dj dk e dl e
 dm e/ dn e2 do e j6 dp e dq dr e d[ ds d& ƒ dt e du e) dv e( dw e, dx e j7 dy e j8 dz dq d{ e j9 g d| e. d} e1 d~ e% d d€ d� d‚ ƒ Z: e: g Z; e5 di dƒ dk d“ dl d” dm d• dn d– do dˆ „  dt d— du d˜ dv d™ dw dš dx d� dy e j= dz d[ ƒ Z> e5 di d‰ dk d› dl dœ dm d� dn dž do dŠ „  dt dŸ du d  dv d¡ dw d¢ dx d� dy e j= dz d[ ƒ Z? d‹ dŒ „ Z@ d� S(£   iÿÿÿÿ(   t   residue_substitution(   t   residue_topology(   t   rsam(   t   amino_acid_codess    DAs    DCs    DGs    DTt   At   Ct   Gt   Ts    N  s    CA s    C  s    O  s    OXTt   Dt   Et   Ft   Ht   It   Kt   Lt   Mt   Nt   Pt   Qt   Rt   St   Vt   Wt   Ys    CB gš™™™™™õ?g      ø?gq=
×£põ?g333333û?s    SG s    CG s    OD1s    OD2s    CD s    OE1s    OE2s    CD1s    CD2s    CE1s    CE2s    CZ s    ND1s    NE2s    CG1s    CG2s    CE s    NZ gÍÌÌÌÌÌü?s    SD s    ND2g333333÷?s    NE s    NH1s    NH2s    OG s    OG1s    NE1s    CE3s    CZ2s    CZ3s    CH2s    OH gö(\�ÂEV@g
×£p=J^@g33333£`@g\�Âõ(db@g®Gáz¦d@g®GázÄR@gÍÌÌÌÌdc@g=
×£pe`@g®GázFb@g…ëQ¸¦b@g¤p=
×ƒ`@g¸…ëQÈ\@g®GázDb@gfffffÆe@gö(\�ÂEZ@gHáz®Ç]@gš™™™™I]@g�Âõ(\‡i@g®Gáz¦f@i    i   i	   i   i   i   i   i   i
   i   t   TopologyCachec           B   s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   s<   
    Caches topology-related instances for quick access
    c         C   s   i  |  _  i  |  _ d  S(   N(   t   sidechain_atom_fort   mainchain_distance_for(   t   self(    (    s8   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/mmt.pyt   __init__  s    	c         C   s   |  j  j | t j d | ƒ ƒ S(   Nt   topology(   R   t
   setdefaultR   t   SidechainAtom(   R   t	   sidechain(    (    s8   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/mmt.pyt   get_sidechain_atom_for  s    	c      	   C   s4   |  j  j | t j d | d |  j d | ƒ j ƒ ƒ S(   NR   t   namesR    (   R   R   R   t   MainchainDistanceR!   R"   (   R   R    (    (    s8   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/mmt.pyt   get_mainchain_distance_for'  s
    		c         C   s   t  j d | d | ƒ S(   Nt   sourcet   target(   R   t   SidechainCorrespondence(   R   R%   R&   (    (    s8   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/mmt.pyt   get_mapping_between2  s    (   t   __name__t
   __module__t   __doc__R   R!   R$   R(   (    (    (    s8   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/mmt.pyR     s
   			t   MacromoleculeTypec        
   B   sP   e  Z d  Z g  d d d d d
 d d d d „	 Z d „  Z d „  Z d d	 „ Z RS(   s8   
    Provides access to macromolecule-specific data
    t   Xt   UNKi    g333333û?c         C   sÖ   | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _	 |	 |  _
 |
 |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ t ƒ  |  _ d  S(   N(   t   namet   one_letter_codest   three_letter_codest   molecular_weightst   hydrogen_countst   condensation_weight_losst   specific_volumet   consecutivityt   mainchain_atom_namest   mainchain_atom_radiit   sidechain_topologiest   sidechain_atom_radii_dictst   secondary_structure_analysert   similarity_matrix_suitet
   min_lengtht   sidechain_completiont   unknown_one_lettert   unknown_three_lettert   unknown_molecular_weightt   unknown_hydrogen_countt   unknown_sidechain_topologyt   unknown_atom_radiusR   t   topology_cache(   R   R/   R0   R1   R2   R3   R6   R7   R8   R9   R:   R;   R<   R=   R>   R?   R@   RA   RB   RC   RD   R4   R5   (    (    s8   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/mmt.pyR   =  s.    																						c         C   s   t  t |  j |  j ƒ ƒ S(   N(   t   dictt   zipR1   R0   (   R   (    (    s8   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/mmt.pyt   one_letter_forw  s    c         C   s   t  t |  j |  j ƒ ƒ S(   N(   RF   RG   R0   R1   (   R   (    (    s8   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/mmt.pyt   three_letter_for|  s    gÍÌÌÌÌÌì?c         C   s†   | j  ƒ  } t | ƒ |  j k  r% t St | ƒ } t |  j ƒ } t g  | D]% } | j ƒ  d j | k rJ | ^ qJ ƒ } | | | k S(   Ni    (   t   residue_groupst   lenR=   t   Falset   setR1   t   atom_groupst   resname(   R   t   chaint
   confidencet   residuest	   all_countt   known_codest   rgt   known_count(    (    s8   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/mmt.pyt   recognize_chain_type�  s    5(    N(   R)   R*   R+   t   NoneR   RH   RI   RW   (    (    (    s8   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/mmt.pyR,   8  s   #		R/   t   proteinR0   R1   R2   R3   R6   t   pre_bond_atomi   t   post_bond_atomt   distance_cutoffR7   R8   R9   R:   R;   R<   R=   R>   RA   RB   RC   R4   i   R5   g®Gáz®ç?t   solventR-   t   HOHt   WATt   0WOc         C   s   t  S(   N(   RL   (   t   leftt   right(    (    s8   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/mmt.pyt   <lambda>´  s    t   unknownc         C   s   t  S(   N(   RL   (   Ra   Rb   (    (    s8   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/mmt.pyRc   Ä  s    gÍÌÌÌÌÌì?c         C   s1   x* t  D]" } | j d |  d | ƒ r | Sq Wt S(   NRP   RQ   (   t   KNOWNRW   t   UNKNOWN(   RP   RQ   t   mmt(    (    s8   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/mmt.pyt	   determineÏ  s    N(   s    DAs    DCs    DGs    DT(   R   R   R   R   (   s    N  s    CA s    C  s    O  s    OXT(    (   gš™™™™™õ?g      ø?g      ø?gq=
×£põ?gq=
×£põ?(   R-   R-   R-   (   R^   R_   R`   (    (    (    (    (    (    (    (    (    (    (    (    (    (    (A   t   phaserR    R   R   R   t	   iotbx.pdbR   t)   one_letter_given_three_letter_modified_aat   keyst   one_letter_given_three_lettert   PROTEIN_THREE_LETTERt   NUCLEIC_THREE_LETTERt   valuest   PROTEIN_ONE_LETTERt   NUCLEIC_ONE_LETTERt   PROTEIN_MAINCHAIN_ATOMSt   ALAt   CYSt   ASPt   GLUt   PHEt   GLYt   HISt   ILEt   LYSt   LEUt   METt   ASNt   PROt   GLNt   ARGt   SERt   THRt   VALt   TRPt   TYRt-   PROTEIN_COMMON_RESIDUE_SIDECHAIN_TOPOLOGY_FORt   PROTEIN_UNKNOWN_TOPOLOGYRO   t   gett   PROTEIN_SIDECHAIN_TOPOLOGIESt%   PROTEIN_MAINCHAIN_VAN_DER_WAALS_RADIIt0   PROTEIN_COMMON_SIDECHAIN_VAN_DER_WAALS_RADII_FORt-   PROTEIN_UNKNOWN_SIDECHAIN_VAN_DER_WAALS_RADIIt%   PROTEIN_SIDECHAIN_VAN_DER_WAALS_RADIIt!   PROTEIN_COMMON_RESIDUE_WEIGHT_FORt   PROTEIN_UNKNOWN_RESIDUE_WEIGHTt   PROTEIN_RESIDUE_WEIGHTSt"   PROTEIN_COMMON_RESIDUE_H_COUNT_FORt   PROTEIN_UNKNOWN_RESIDUE_H_COUNTt   PROTEIN_RESIDUE_H_COUNTSt   objectR   R,   t   StructuralConsecutivityt   DSSPInterfaceRY   t   ProteinSidechainCBCompletiont   PROTEINRe   RX   Rd   t   SOLVENTRf   Rh   (    (    (    s8   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/phaser/mmt.pyt   <module>   s            


















"    "
"
"$Z	

											