ó
gbc           @   s:  d  Z  d d l m Z d d l m Z m Z d d l m Z d d l m Z d d l	 m
 Z
 d d l m Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z e d k r6e e g d e ƒZ e ƒ  \ Z Z e j d k rç e e ƒ Z n e e j ƒ Z e e e ƒ Z x. e e ƒ D] Z e
 e ƒ Z e e ƒ GHqWn  d S(   s+   
Created on 30 dec. 2009

@author: coissac
iÿÿÿÿ(   t   getOptionManager(   t   fastqSolexaIteratort   formatFastq(   t   QSolexaReverseAssemble(   t   QSolexaRightReverseAssemble(   t   buildConsensus(   t   chainc         C   s8   |  j  d d d d d d d d d	 d
 d d  d d ƒd  S(   Ns   -rs   --reverse-readst   actiont   storet   destt   reverset   metavars
   <FILENAME>t   typet   stringt   defaultt   helps)   Filename containing reverse solexa reads (   t
   add_optiont   None(   t   optionManager(    (    s5   lib/python2.7/site-packages/obitools/solexaPairEnd.pyt   addSolexaPairEndOptions   s    c         c   sO  g  } x' t  d ƒ D] } | j |  j ƒ  ƒ q Wg  | D] } t | ƒ ^ q7 } i  } x( | D]  } | j | d ƒ d | | <q\ Wt | j ƒ  ƒ } g  | D] } | | | k r™ | ^ q™ } t | ƒ d k sÙ t d ƒ ‚ | d } | d d k sÿ t d ƒ ‚ | d } t | |  ƒ }	 x0 |	 D]( }
 |
 d | !} |
 | } | | f VqWd  S(   Ni
   i    i   s   To many sequence lengthi   t    (	   t   xranget   appendt   nextt   lent   gett   maxt   valuest   AssertionErrorR   (   t   entriest   firstt   it   xt   lenst   clent   freqt   kt   lreadt   seqst   st   dt   r(    (    s5   lib/python2.7/site-packages/obitools/solexaPairEnd.pyt   cutDirectReverse   s$    )


c         c   s,   x% |  D] } | j  ƒ  } | | f Vq Wd  S(   N(   R   (   t   directR
   R(   R)   (    (    s5   lib/python2.7/site-packages/obitools/solexaPairEnd.pyt   seqPairs2   s    c         C   s5   |  d d d k p3 |  d t  |  d ƒ d d k S(   Ni    t   -i   (   R   (   t   ali(    (    s5   lib/python2.7/site-packages/obitools/solexaPairEnd.pyt   checkAlignOk7   s    c         c   s‰   t  ƒ  } t ƒ  } xp |  D]h \ } } | | _ | | _ | ƒ  } d | _ t | ƒ s| | | _ | | _ | ƒ  } d | _ n  | Vq Wd  S(   Nt   leftt   right(   R   R   t   seqAt   seqBt	   directionR/   (   t	   sequencest   lat   raR(   R)   R.   (    (    s5   lib/python2.7/site-packages/obitools/solexaPairEnd.pyt   buildAlignment=   s    									t   __main__t   entryIteratorN(   t   __doc__t   obitools.optionsR    t   obitools.fastqR   R   t   obitools.alignR   R   t   obitools.tools._solexapairendR   t	   itertoolsR   R   R*   R,   R/   R8   t   __name__t   optionParsert   optionsR+   R
   R   R5   R.   t	   consensus(    (    (    s5   lib/python2.7/site-packages/obitools/solexaPairEnd.pyt   <module>   s,   	
					