ó
z™xTc           @   sU   d  d l  m Z d  d l m Z d „  Z d „  Z d e f d „  ƒ  YZ d „  Z d S(	   iÿÿÿÿ(   t   division(   t   bioinformaticsc         C   s    d d  l  } | j j |  ƒ d S(   Niÿÿÿÿi   (   t   os.patht   patht   splitext(   t   filenamet   os(    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/bioinformatics/alignment_as_hsearch.pyt   get_extension   s    c         C   s›   t  |  t ƒ rC t |  ƒ } | j ƒ  } | j ƒ  t d |  ƒ } nB |  j ƒ  } y |  j } Wn t k
 ru d  } n Xt d | ƒ } t	 j
 d | d | ƒ S(   NR   t   datat	   extension(   t
   isinstancet   strt   opent   readt   closeR   t   namet   AttributeErrort   NoneR   t   any_alignment_string(   t   sourcet   infileR   R	   R   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/bioinformatics/alignment_as_hsearch.pyt   any_alignment   s    

t   Resultc           B   s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   s)   
  Homology search from alignment file
  c         C   s   | |  _  d  |  _ d  S(   N(   t	   alignmentR   t	   max_count(   t   selfR   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/bioinformatics/alignment_as_hsearch.pyt   __init__'   s    	c         C   s)   | d  k r d  |  _ n | d |  _ d  S(   Ni   (   R   R   (   R   R   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/bioinformatics/alignment_as_hsearch.pyt   restrict-   s    c      
   c   sM  |  j  j d |  j !} |  j  j d |  j !} y |  j  j d |  j !} Wn t k
 r_ | } n X|  j  j d } xÖ t | | | ƒ D]Â \ } } } | j d ƒ } d t | ƒ k  s¹ t	 ‚ t | ƒ d k rÞ | d }	 d }
 n | d  \ }	 }
 t
 j d d d |	 |
 f g d	 | | g d
 d ƒ } t
 j d |	 d |
 d | d | ƒ Vqƒ Wd  S(   Ni   i    t   _t    i   t   namest   targets   %s_%st
   alignmentst   programs	   <unknown>t
   identifiert   chaint
   annotationR   (   R   R   R   R    t   descriptionsR   t   zipt   splitt   lent   AssertionErrorR   t   clustal_alignmentt   homology_search_hit(   R   R   R    R%   t   baset   nt   seqt   desct   piecest   pdbR#   R   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/bioinformatics/alignment_as_hsearch.pyt   hits6   s.    
"
				c         C   s/   |  j  d  k r  |  j j ƒ  d S|  j  d Sd  S(   Ni   (   R   R   R   t   multiplicity(   R   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/bioinformatics/alignment_as_hsearch.pyt   __len__[   s    (   t   __name__t
   __module__t   __doc__R   R   R2   R4   (    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/bioinformatics/alignment_as_hsearch.pyR   "   s
   				%c         C   s   t  d |  ƒ } t d | ƒ S(   NR   R   (   R   R   (   R   R   (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/bioinformatics/alignment_as_hsearch.pyt   parsed   s    N(	   t
   __future__R    t   iotbxR   R   R   t   objectR   R8   (    (    (    sW   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/bioinformatics/alignment_as_hsearch.pyt   <module>   s
   		B