ó
&WMPc           @   s;   d  d l  Z  d  d l Z d  d l Z d d d „  ƒ  YZ d S(   iÿÿÿÿNt   R4c           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c   	      C   sh   d | GHt  j d | d | d | d | d | d | d | d | ƒ \ } } d GH| GHd  S(   Ns
   Auto_Run! s   python s   /CISA4/Auto_Run.py s   /CISA4/Roundt    s   Done!(   t   commandst   getstatusoutput(	   t   selft   thrt   countt   CISA_St	   current_pt   makeblastdbt   blastnt   st   o(    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA4/Controllor_R4.pyt	   run_Blast   s    	Q c         C   s@   d | GHt  j d | d | d | ƒ \ } } d GH| GHd  S(   Ns	   Filter1! s   python s   /CISA4/Filter1.py s   /CISA4/Rounds   Done!(   R   R   (   R   R   R   R   R   R   (    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA4/Controllor_R4.pyt
   run_Filter	   s    	) c         C   sP   d | GHt  j d | d | d | d | d | ƒ \ } } d GH| GHd  S(   Ns   Connect_Remove.py! s   python s   /CISA4/Connect_Remove.py s   /CISA4/RoundR   s   Done!(   R   R   (   R   R   R   R   R   R   (    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA4/Controllor_R4.pyt   run_C_R   s    	9 c         C   sP   d | GHt  j d | d | d | d | d | ƒ \ } } d GH| GHd  S(   Ns	   Trim.py! s   python s   /CISA4/Trim.py s   /CISA4/RoundR   s   Done!(   R   R   (   R   R   R   R   R   R   (    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA4/Controllor_R4.pyt   run_Trim   s    	9 c         C   s  t  | ƒ } t ƒ  } d } xH t re | j ƒ  } | s: Pn  | j ƒ  j d d ƒ } t | ƒ | | <q W| j ƒ  t | j ƒ  d d „  d t ƒ} x | D] } | | 7} q˜ Wd | GH| d }	 d } x1 | D]) }
 | |
 7} | |	 k rÌ d	 |
 GHPqÌ qÌ Wd
 t | ƒ GHd | d GHd  S(   Ni    s   
t    t   keyc         S   s   |  S(   N(    (   t   x(    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA4/Controllor_R4.pyt   <lambda>   s    t   reverses   whole:%di   s   N50: %ds   Number of contigs: %ds    Length of the longest contig: %d(	   t   opent   dictt   Truet   readlinet   replacet   lent   closet   sortedt   values(   R   t   fft   ft   dt   genomet   ht   seqt   d_st   valuet   n5t   row(    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA4/Controllor_R4.pyt   N50   s.    		 
!	

	c   
      C   ss  d GHxbt  rid } d } t j j d | ƒ sD t j d | ƒ n  |  j | | | | | | ƒ |  j | | | ƒ |  j | | | ƒ |  j | | | ƒ t j j	 d | d ƒ } t j j	 d t
 t | ƒ d ƒ d ƒ } | | k rPt d d ƒ }	 |	 j d	 t
 t | ƒ d ƒ d
 ƒ |	 j ƒ  |  j d t
 t | ƒ d ƒ d ƒ Pn  t
 t | ƒ d ƒ } q Wd GHd  S(   Ns   CISA4...i    s   CISA4/Roundt   Contigs_s   .fai   t   info2t   ws   Round4_result=s   
s   CISA4 Done!(   R   t   ost   patht   existst   makedirsR   R   R   R   t   getsizet   strt   intR   t   writeR   R)   (
   R   R   R   R   R   R	   R
   t   sizet   size1R    (    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA4/Controllor_R4.pyt   Start-   s(    	 *%
%(   t   __name__t
   __module__R   R   R   R   R)   R7   (    (    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA4/Controllor_R4.pyR       s   					(    (   R   R-   t   filecmpR    (    (    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA4/Controllor_R4.pyt   <module>   s   