ó
QŽfXc           @   ss   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d Z d Z d „  Z d „  Z	 d „  Z
 d S(   iÿÿÿÿNt   TACGCTTGCATt   ATGCAAGCGTAc         C   sš   g  } x |  D]… } | j  | ƒ r xm | j | ƒ D]Y } xP | j | ƒ D]? }	 x6 | j |	 ƒ D]% }
 | j  |
 ƒ r^ | j |
 ƒ q^ q^ WqH Wq2 Wq q W| S(   N(   t   Filtert   Breakt   append(   t   contigst   coverage_breakert   length_filtert	   n_breakert   pattern_breakert   pattern_filtert   resultt   contigt	   subcontigt   subsubcontigt   subsubsubcontig(    (    sw   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/truspades/moleculo_postprocessing.pyt   SplitAndFilter   s    #c         C   sI   t  |  d | d ƒ } x! | D] } t j | | | ƒ q W| j ƒ  d  S(   Nt   .t   w(   t   opent   SeqIOt   writet   close(   t   output_filet   formatR   t   outputR   (    (    sw   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/truspades/moleculo_postprocessing.pyt   OutputResults   s    c         C   s>  | j  d ƒ | j  d |  ƒ | j  d ƒ t t j t |  d ƒ d ƒ ƒ } t j g  | D] } t j | ƒ ^ qY ƒ } t j	 | | ƒ t
 j | | t t ƒ } t
 j d ƒ } t j | | d d ƒ }	 t j t t d	 ƒ }
 t j d
 ƒ } t | |	 | | |
 | ƒ } t | d | ƒ t | d | ƒ | j  d | d ƒ d  S(   Ns5   ===== Starting postprocessing based on read alignments   Processing scaffolds from s3   Using read alignments to break and filter scaffoldst   rUt   fastaiÜ  id   i2   i–   i   t   fastqs7   ===== Postprocessing finished. Results can be found in s   .fastq(   t   infot   listR   t   parseR   t
   sam_parsert   SamChaint   Samfilet   generate_qualityt   GenerateQualityt   moleculo_filter_contigst   PatternContigFiltert   patternt
   rc_patternt   ContigLengthFiltert   break_by_coveraget   ContigBreakert   PatternBreakert   NBreakerR   R   (   t   contigs_fileR   t	   sam_filest   logR   t   sam_filet   samR
   R   R   R	   R   R   (    (    sw   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/truspades/moleculo_postprocessing.pyt   moleculo_postprocessing$   s    !+(   R&   R+   R   t   sysR$   R!   R(   R)   R   R   R4   (    (    (    sw   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/truspades/moleculo_postprocessing.pyt   <module>   s   		