ó
gbc           @   s~   d  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 e
 f d     YZ d	   Z d
   Z d S(   s   


i˙˙˙˙(   t   _default_raw_parser(   t   fastaIterator(   t   fnaTag(   t   LocationNt   QualitySequencec           B   s°   e  Z d d e d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z d   Z d   Z e e e d d  Z e e e d d  Z RS(   c         K   sE   t  j |  |  | |  _ | |  _ | |  _ d | |  _ | |  _ d S(   sT   
        
        @param id:
        @param seq:
        @param definition:
        t    N(   t   listt   __init__t   _infot
   definitiont   idt   _rawinfot
   _rawparser(   t   selfR
   t   seqR	   t   rawinfot	   rawparsert   info(    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyR      s    			c         C   s   |  j  S(   s   
        Sequence definition getter
        
            @return: the sequence definition
            @rtype: str
            
        (   t   _definition(   R   (    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyt   getDefinition   s    c         C   s   | |  _  d  S(   N(   R   (   R   t   value(    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyt   setDefinition(   s    c         C   s   |  j  S(   N(   t   _id(   R   (    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyt   getId+   s    c         C   s   | |  _  d  S(   N(   R   (   R   R   (    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyt   setId.   s    c         C   sÍ   | |  j  k rź t j |  j |  } | j |  j  } | d  k	 r° | j d  } d |  j d | j d  !|  j | j	 d  |  _ y t
 |  } Wn n X| |  j  | <qÉ t |  n |  j  | } | S(   Ni   R   i    (   R   t   ret   compileR   t   searchR   t   Nonet   groupt   startt   endt   evalt   KeyError(   R   t   keyt   pt   mt   v(    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyt   getKey1   s    4c         C   sA  t  | t  r | j |   St  | t  r8 |  j |  St  | t  rW t j |  |  St  | t  r4t j |  |  } t	 |  j
  } | j d  k	 rŚ | j d } n d } | j d  k	 rË | j d } n t |   } | j d  k	 rň | j } n d } d | | | f | d <t |  j | |  j |  j |  j |  St d  d  S(   Ni   s
   [%d,%d,%s]t   cuts(   key must be an integer, a str or a slice(   t
   isinstanceR   t   extractSequencet   strt   _getKeyt   intR   t   __getitem__t   slicet   dictR   R   R   t   stopt   lent   stepR   R
   R	   R   R   t	   TypeError(   R   R"   t   subseqR   R   R0   R2   (    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyR-   C   s*    %c         C   s   | |  j  | <d  S(   N(   R   (   R   R"   R   (    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyt   __setitem___   s    c         C   s)   t  | t  r |  j | =n	 t |  d  S(   N(   R(   R*   R   R3   (   R   R"   (    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyt   __delitem__b   s    c         C   s   t  j |   S(   N(   R   t   __iter__(   R   (    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyR7   h   s    c         C   s   | |  j  k S(   N(   R   (   R   R"   (    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyt   __contains__k   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyt   getTagsn   s    c         C   s^   |  d d d  } t  |  j | |  j |  j |  j |  j  } | j j d t  | j d <| S(   s   
        
        Ni˙˙˙˙t   complemented(   R   R
   R	   R   R   R   t   gett   False(   R   t   cseqt   rep(    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyt
   complementq   s    *s   Sequence Definitions   Sequence identifierN(   t   __name__t
   __module__R   R    R   R   R   R   R   R&   R-   R5   R6   R7   R8   R9   R?   t   propertyR	   R
   (    (    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyR      s   	
											
c         C   sK   d j  g  |  D] } | j   ^ q  } g  | j   D] } t |  ^ q5 S(   NR   (   t   joint   stript   splitR,   (   t   seqarrayt   xt   text(    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyt   _qualityJoinSeq   s    (c         c   s)   x" t  |  t t t  D] } | Vq Wd  S(   N(   R   R   R   RI   (   t   filet   q(    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyt   qualityIterator   s    (   t   __doc__t   obitoolsR    t   obitools.fastaR   t   obitools.fnaqualR   t   obitools.locationR   R   R   R   RI   RL   (    (    (    s7   lib/python2.7/site-packages/obitools/fnaqual/quality.pyt   <module>   s   r	