ó
½™xTc           @   sg   d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l m	 Z	 d „  Z
 e d k rc e
 ƒ  n  d S(   iÿÿÿÿ(   t   divisionN(   t   StringIOc          C   s§  t  j j d d ƒ s d GHd  Sd }  t j j |  ƒ } | j d d d g k sT t ‚ t | j	 d ƒ d	 k ss t ‚ d
 d d g } d d d g } d d d g } d } xt
 t g D]} t j j d | d | d | d | d | ƒ } | j d d ƒ d  k st ‚ | j d d ƒ d k s"t ‚ | j d d ƒ d k s@t ‚ | j d d ƒ d k s^t ‚ | j d d ƒ d  k s|t ‚ | j d d ƒ d k sšt ‚ | j d d ƒ d k s³ t ‚ q³ Wd  } d! }	 t j j d" | d# d  ƒ }
 t j j d" |	 d# d  ƒ } |
 j ƒ  | j ƒ  g } x²t
 t g D]¤} t j j d$ | d% d d g d | d& t ƒ  ƒ } | j d d' d( ƒd( k szt ‚ | j d d' d) ƒd( k s›t ‚ | j d d' d* ƒd+ k s¼t ‚ | j d d' d, ƒd, k sÝt ‚ | j d d( ƒ d k sût ‚ | j ƒ  d- k st ‚ | j d d, ƒ d. k s1t ‚ | j d d* ƒ d/ k sOt ‚ | j d ƒ d  d  g k spt ‚ | j d. ƒ d, d  g k s‘t ‚ | j d. ƒ d, k s¬t ‚ | j d ƒ d  k s#t ‚ q#Wd0 | } t d1 d2 ƒ j | ƒ t d3 d2 ƒ j d4 ƒ t d5 d2 ƒ j d6 ƒ t d7 d2 ƒ j d8 ƒ t j j j ƒ  j ƒ  } | j j  j! d1 d3 d5 d7 g ƒ t j j" d9 | d: t ƒ  ƒ \ } } | d; d< k sžt ‚ d= GHd  S(>   Nt   namet   muscles3   Skipping MUSCLE tests: muscle module not available.sÕ  >1MRU_A
GSHMTTPSHLSDRYELGEILGFGGMSEVHLARDLRLHRDVAVKVLRADLARDPSFYLRFRREAQNAAALNHPAIVAVYDT
GEAETPAGPLPYIVMEYVDGVTLRDIVHTEGPMTPKRAIEVIADACQALNFSHQNGIIHRDVKPANIMISATNAVKVMDF
GIARAIADSGNSVTQTAAVIGTAQYLSPEQARGDSVDARSDVYSLGCVLYEVLTGEPPFTGDSPVSVAYQHVREDPIPPS
ARHEGLSADLDAVVLKALAKNPENRYQTAAEMRADLVRVHNGEPPEAPKVLTDAERTSLLSSAAGNLSGPR
>1L3R_E
GNAAAAKKGSEQESVKEFLAKAKEDFLKKWETPSQNTAQLDQFDRIKTLGTGSFGRVMLVKHKESGNHYAMKILDKQKVV
KLKQIEHTLNEKRILQAVNFPFLVKLEFSFKDNSNLYMVMEYVAGGEMFSHLRRIGRFSEPHARFYAAQIVLTFEYLHSL
DLIYRDLKPENLLIDQQGYIQVTDFGFAKRVKGRTWTLCGTPEYLAPEIILSKGYNKAVDWWALGVLIYEMAAGYPPFFA
DQPIQIYEKIVSGKVRFPSHFSSDLKDLLRNLLQVDLTKRFGNLKNGVNDIKNHKWFATTDWIAIYQRKVEAPFIPKFKG
PGDTSNFDDYEEEEIRVSINEKCGKEFTEF
>2A19_B
GAHTVDKRFGMDFKEIELIGSGGFGQVFKAKHRIDGKTYVIKRVKYNNEKAEREVKALAKLDHVNIVHYNGCWDGFDYDP
ETSSKNSSRSKTKCLFIQMEFCDKGTLEQWIEKRRGEKLDKVLALELFEQITKGVDYIHSKKLINRDLKPSNIFLVDTKQ
VKIGDFGLVTSLKNDGKRTRSKGTLRYMSPEQISSQDYGKEVDLYALGLILAELLHVCDTAFETSKFFTDLRDGIISDIF
DKKEKTLLQKLLSKKPEDRPNTSEILRTLTVWKKSPEKNERHTAt   1MRU_At   2A19_Bt   1L3R_Ei    is  t   XXATKGQNEPKKHFMVILSTCYGWSDDt   VTKGNDPKRHYIVLLTGAGSCFGWSDDARYt   GSHXXATKGQNDPKRHYMILSCYGWDDRYt   pdb1t   pdb2t   pdb3i   t    MIATKGQNEPKKHFMVILSTCYGWSDDAKFGGt   pdb_sequencest	   pdb_namest   pdb_offsetst   reference_sequencet   substitute_namesiþÿÿÿi
   i   i   i   i   i   i   i   sÇ  ATOM      2  CA  GLY A   3      -9.052   4.207   4.651  1.00 16.57           C
ATOM      6  CA  ASN A   4      -6.522   2.038   2.831  1.00 14.10           C
ATOM     14  CA  ASN A   5      -3.193   1.904   4.589  1.00 11.74           C
ATOM     22  CA  GLN A   6       0.384   1.888   3.199  1.00 10.53           C
ATOM     22  CA  ALA A   6A      0.384   1.888   3.199  1.00 10.53           C
ATOM     22  CA  GLY A   6B      0.384   1.888   3.199  1.00 10.53           C
ATOM     31  CA  GLN A   7       3.270   2.361   5.640  1.00 11.39           C
ATOM     40  CA  ASN A   8       6.831   2.310   4.318  1.00 12.30           C
ATOM     48  CA  TYR A   9       9.159   2.144   7.299  1.00 15.18           C
s)  ATOM      2  CA  GLY A   4      -9.052   4.207   4.651  1.00 16.57           C
ATOM      6  CA  ASN A   5      -6.522   2.038   2.831  1.00 14.10           C
ATOM     14  CA  ASN A   6      -3.193   1.904   4.589  1.00 11.74           C
ATOM     22  CA  GLN A   7       0.384   1.888   3.199  1.00 10.53           C
ATOM     31  CA  GLN A   8       3.270   2.361   5.640  1.00 11.39           C
ATOM     40  CA  ASN A   9       6.831   2.310   4.318  1.00 12.30           C
ATOM     48  CA  TYR A  10       9.159   2.144   7.299  1.00 15.18           C
t   linest   source_infot   hierarchiest   hierarchy_namest   logt   residt   3t   4t   10t   9t   6Ai   i   i   sZ   %s
TER
ATOM     50  O   HOH     1       0.000   0.000   0.000  1.0  20.0            O
END
s   tmp1.pdbt   ws   tmp2.fas   >tmp2
AVGNNQQNYs   tmp3.fas   >tmp3
NNQQNYs   tmp4.datt   AVNNQQNFt   paramst   outs+   MUSCLE (3.8) multiple sequence alignment


s‹   tmp4            AV-NNQ--QNF
tmp1_A          XXGNNQAGQNY
tmp2            AVGNNQ--QNY
tmp3            ---NNQ--QNY
                   ***  **:t   OK(#   t   libtbxt   envt
   has_modulet   mmtbxt   msat   get_muscle_alignmentt   namest   AssertionErrort   lent
   alignmentst   Falset   Truet   align_pdb_residuest   convert_residue_numbert   Nonet   iotbxt   pdbt   inputt   construct_hierarchyt   align_pdb_hierarchiesR   t   get_residue_positiont   get_resid_array_indext   get_alignment_sizet   get_all_resids_at_indext   get_reference_residt   opent   writet   master_philt   fetcht   extractR   t   seq_filet   extendt   run(   t   fasta_sequencest   clustal_alnR   R   R   R   t   argt   mt	   pdb_str_1t	   pdb_str_2R
   R   R   t   pdb_strR    t   aln_filet	   alignment(    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_msa.pyt   exercise   s|    		"	!!!!!!
$t   __main__(   t
   __future__R    t	   mmtbx.msaR&   t	   iotbx.pdbR2   t   libtbx.load_envR#   t	   cStringIOR   RM   t   __name__(    (    (    sF   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/mmtbx/regression/tst_msa.pyt   <module>   s   	n