ó
&WMPc           @   s;   d  d l  Z  d  d l Z d  d l Z d d d „  ƒ  YZ d S(   iÿÿÿÿNt   R3c           B   sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c   	      C   sz   d t  | ƒ GHt j d | d | d t  | ƒ d t  | ƒ d | d | d | d | ƒ \ } } | GHd GHd  S(   Ns
   Auto_Run! s   python s   /CISA3/Auto_Run.py s   /CISA3/Roundt    s   Done!(   t   strt   commandst   getstatusoutput(	   t   selft   countt   CISA_St	   current_pt   makeblastdbt   blastnt   my_thrt   st   o(    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA3/Controllor_R3.pyt	   run_Blast   s    ]c         C   sT   d t  | ƒ GHt j d | d | d t  | ƒ d | ƒ \ } } | GHd GHd  S(   Ns	   Filter1! s   python s   /CISA3/Filter1.py s   /CISA3/RoundR   s   Done!(   R   R   R   (   R   R   R   R   R   R   R   (    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA3/Controllor_R3.pyt
   run_Filter
   s    7c         C   sj   d t  | ƒ GHt j d | d | d t  | ƒ d t  | ƒ d | d | ƒ \ } } | GHd GHd  S(   Ns   Connect_Remove.py! s   python s   /CISA3/Connect_Remove.py s   /CISA3/RoundR   s   Done!(   R   R   R   (   R   R   R   R   R   R   R   (    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA3/Controllor_R3.pyt   run_C_R   s    Mc         C   sj   d t  | ƒ GHt j d | d | d t  | ƒ d t  | ƒ d | d | ƒ \ } } | GHd GHd  S(   Ns	   Trim.py! s   python s   /CISA3/Trim.py s   /CISA3/RoundR   s   Done!(   R   R   R   (   R   R   R   R   R   R   R   (    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA3/Controllor_R3.pyt   run_Trim   s    Mc         C   sˆ   t  d t | ƒ d ƒ } d } xW | D]O } d | k s' d | k rK q' n  t | j ƒ  d ƒ } | | k r' | } q' q' W| j ƒ  | S(   Ns   CISA3/Rounds   /Repeat_Region.txti    t   >t   #iýÿÿÿ(   t   openR   t   intt   splitt   close(   R   R   t   frt   repeat_vt   datat   temp_v(    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA3/Controllor_R3.pyt   get_repeat_data   s      
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/CISA3/Controllor_R3.pyt   <lambda>,   s    t   reverses   whole:%di   s   N50: %ds   Number of contigs: %ds    Length of the longest contig: %d(	   R   t   dictt   Truet   readlinet   replacet   lenR   t   sortedt   values(   R   t   fft   ft   dt   genomet   ht   seqt   d_st   valuet   n5t   row(    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA3/Controllor_R3.pyt   N50"   s.    		 
!	

	c         C   sÕ  d GHt  | d ƒ } | j ƒ  j d d ƒ } | j d } d } x‰t rËd }	 d }
 t j j d t | ƒ ƒ s‹ t j	 d t | ƒ ƒ n  |  j
 | | | | | | ƒ |  j | | | | ƒ |  j | | | | ƒ |  j | | | | ƒ t j j d t | ƒ d	 ƒ }	 t j j d t | d ƒ d	 ƒ }
 |	 |
 k r¾|  j | ƒ } t  d
 d ƒ } | j d t | d ƒ d ƒ | j d t | ƒ d ƒ | j ƒ  |  j d t | d ƒ d	 ƒ Pn  | d 7} qC Wd GHd  S(   Ns   CISA3...s   /CISA2_thr.outs   
R   i   i    s   CISA3/Roundt   Contigs_s   .fat   info1t   ws   Round3_result=s   Repeat_region=s   CISA3 Done!(   R   R$   R%   R   R#   t   ost   patht   existsR   t   makedirsR   R   R   R   t   getsizeR   t   writeR3   (   R   R   R   R	   R
   t   my_fR   R   R   t   sizet   size1R*   (    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA3/Controllor_R3.pyt   Start:   s6    	  $
(	   t   __name__t
   __module__R   R   R   R   R   R3   R@   (    (    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA3/Controllor_R3.pyR       s   							(    (   R   R7   t   filecmpR    (    (    (    sG   /woldlab/castor/home/georgi/programs/CISA1.3/src/CISA3/Controllor_R3.pyt   <module>   s   