
6bc           @   s  d  d l  Z  d  d l m Z m Z d  d l m Z d  d l m Z e e j  Z	 y e
 Wn e e f Z
 n Xd f  d     YZ d  d l m Z e e j  Z	 i  Z g  Z d   Z d   Z d	   Z d
   Z d e f d     YZ e d  Z d   Z e j e d  Z d   Z d   Z d   Z d   Z d   Z d   Z  e! d  Z" d   Z# e! d  Z$ e% d  Z& d   Z' d   Z( d   Z) d   Z* d S(   iN(   t   qconfigt   qutils(   t
   get_logger(   t
   val_to_strt   Fieldsc        H   B   s	  e  Z d  Z d Z d Z d Z d e e j  f Z	 d Z
 d Z d e e j  f Z d Z d	 Z d
 Z d Z d Z d Z d Z d Z d e j Z d Z d e j Z d Z d Z d Z d Z d Z d Z d Z d Z  d Z! d Z" d e e j#  f Z$ d Z% d Z& d  Z' d! Z( d" Z) d# Z* d$ Z+ d% Z, e d& Z- e d' Z. e d( Z/ e d) Z0 d! Z1 e d* Z2 e d+ Z3 e d, Z4 e d- Z5 d" Z6 d# Z7 d. Z8 d/ Z9 d0 Z: d1 Z; d2 Z< e d3 Z= d4 Z> d5 Z? e d6 Z@ e d7 ZA e d8 ZB e d9 ZC e d: ZD e d; ZE e d< ZF e d= ZG e d> ZH e d? ZI d@ ZJ dA ZK dB ZL dC ZM d. ZN dD ZO dE ZP dF ZQ dG ZR dH ZS dI ZT dJ ZU dK ZV dL ZW dM ZX e dN ZY e dO ZZ dP Z[ dQ Z\ dR Z] dS Z^ dT Z_ dU Z` dV Za dW Zb dX Zc dY Zd dZ Ze d[ Zf d\ Zg d] Zh d^ Zi d_ e j Zj d` e j Zk da e j Zl db e j Zm dc e j Zn dd e j Zo de Zp df Zq dg Zr dh Zs di Zt e dj Zu e dk Zv dl Zw dm e e jx  f Zy dn Zz do Z{ dp Z| dq Z} dr Z~ ds Z dt Z du Z dv Z dw Z dx Z dy Z dz Z d{ Z d| Z d} Z d~ Z d Z d Z d Z d Z d e e j#  f Z d Z d Z d Z d Z d Z e e	 e e e
 e e} e~ e e e ed e ej e e e eg e em e e e e e e e e" e e% e e, e( e) e* eN e9 e: e? e> eS eJ eK e] e^ e_ e\ eW eX e` ea e{ e| ew ey ez eb ec ee ef ek el e e eh ei en eo ep eq er et gH Z e e e e e e e e e e e  e! e" e$ e e e e e e e e e e g Z e2 e3 e4 e5 g Z e@ eA eB eC eD eE eF eG eH eI g
 Z e e1 g Z e6 e7 e< e= e8 e9 e: e; e? e> eS eT eU eY eZ eV g Z e e e Z e e e Z e eO eP eQ eR e[ g Z e ep eq er es et eu ev g Z d e] e^ e_ e` ea eb ec ed ej e ee ek e ef el e eg em eh en ei eo e{ e| g f d e e e e e e e  e! e" e$ g
 f d e, e- e. e/ e0 e1 e2 e3 e4 e5 e6 e7 e< e= e8 e9 e: e? e> eS g f d eO eP eQ eR g f d eW eT eX eU eY eZ eV e\ e[ g	 f d e e	 e
 e e e e e e e e g f d ep eq er es et eu ev g f d ew ey ez g f d e e g f d e} e~ e e e e e e e e e e e e e e e e e g f g
 Z e e
 e eb ec e e e e, e1 e7 eW eX e\ e] e^ e_ e e e e! e` ea e{ e| ef ei ew ey ez e" e% ep et g" Z d d d     YZ i e
 e e e e e eb ec e ed e ej e e ee ef ek el e e e] e_ e` ea ew ey ez e{ e e e e ep eq e" e$ g$ e j 6e eg e em eN e( e) e* e+ e, e1 e< e= eJ eK eL eM e[ e\ e| e e e  e! er es et eh ei en eo e^ eU eX eT eW eY eZ eV g' e j 6e} e~ e e e	 e e? e> e e g
 e j 6Z xD g  e D] \ Z Z e d k r|	e ^ q|	D] Z e d j e  q	WRS(   s       s     t   Assemblys	   # contigss   # contigs (>= %d bp)s   Largest contigs   Total lengths   Total length (>= %d bp)s   Total length (>= 1000 bp)s   Total length (>= 10000 bp)s   Total length (>= 50000 bp)t   N50t   auNt   auNGt   auNAt   auNGAs   N%dt   L50s   L%ds   GC (%)s   # mappeds
   Mapped (%)s   # properly paireds   Properly paired (%)s   # singletonss   Singletons (%)s   # misjoint matess   Misjoint mates (%)s   Avg. coverage depths   Coverage >= %dx (%%)s   Coverage >= 1x (%)s   Coverage >= 5x (%)s   Coverage >= 10x (%)s   # misassembliess   # misassembled contigss   Misassembled contigs lengths"   Misassemblies inter-contig overlaps   # large blocks misassembliess   # large relocationss   # large translocationss   # large inversionss   # large i/s translocationss   # relocationss   # translocationss   # inversionss   # interspecies translocationss   # local misassembliess   # scaffold gap ext. mis.s   # scaffold gap loc. mis.s.   # misassemblies caused by fragmented references   # possibly misassembled contigss   # possible misassembliess   # possible TEss   # structural variationss   # contig misassembliess   # c. relocationss   # c. translocationss   # c. inversionss    # c. interspecies translocationss   # scaffold misassembliess   # s. relocationss   # s. translocationss   # s. inversionss    # s. interspecies translocationss   # unaligned contigss   Unaligned lengths   # ambiguously mapped contigss)   Extra bases in ambiguously mapped contigss   # fully unaligned contigss   Fully unaligned lengths   # partially unaligned contigss   Partially unaligned lengths   # unaligned mis. contigss   # mismatchess   # indelss   Indels lengths   # mismatches per 100 kbps   # indels per 100 kbps   # indels (<= 5 bp)s   # indels (> 5 bp)s   # N'ss   # N's per 100 kbps   Genome fraction (%)s   Duplication ratios   Avg contig read supports   # genomic featuress	   # operonss   Largest alignments   Total aligned lengtht   NG50t   NA50t   NGA50t   LG50t   LA50t   LGA50s   NG%ds   NA%ds   NGA%ds   LG%ds   LA%ds   LGA%ds   K-mer-based compl. (%)s   K-mer-based cor. length (%)s   K-mer-based mis. length (%)s   K-mer-based undef. length (%)s   # k-mer-based misjoinss   # k-mer-based translocationss    # k-mer-based 100kbp relocationss   # predicted genes (unique)s   # predicted genes (>= %d bp)s   # predicted rRNA geness   Complete BUSCO (%)s   Partial BUSCO (%)s   Reference lengths   Estimated reference lengths   Reference fragmentss   Reference GC (%)s   Reference genomic featuress   Reference operonss   # total readss   # lefts   # rights   # reference mappeds   Reference mapped (%)s   # reference properly paireds   Reference properly paired (%)s   # reference singletonss   Reference singletons (%)s   # reference misjoint matess   Reference misjoint mates (%)s   Reference avg. coverage depths   Reference coverage >= %dx (%%)s   Reference coverage >= 1x (%)s   Reference coverage >= 5x (%)s   Reference coverage >= 10x (%)s   # similar correct contigss   # similar misassembled blockss   Genome statisticss   Reads mappingt   Misassembliest	   Unalignedt
   Mismatchess   Statistics without references   K-mer-based statisticss   Predicted geness   Similarity statisticss   Reference statisticst   Qualityc           B   s   e  Z d  Z d Z d Z RS(   s   More is betters   Less is bettert   Equal(   t   __name__t
   __module__t   MORE_IS_BETTERt   LESS_IS_BETTERt   EQUAL(    (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyR   5  s   s   Less is better(    (   R   R   (   R   R   t   TABt   HALF_TABt   NAMEt   CONTIGSt   tupleR    t   contig_thresholdst   CONTIGS__FOR_THRESHOLDSt
   LARGCONTIGt   TOTALLENt   TOTALLENS__FOR_THRESHOLDSt   TOTALLENS__FOR_1000_THRESHOLDt   TOTALLENS__FOR_10000_THRESHOLDt   TOTALLENS__FOR_50000_THRESHOLDR   R   R   R	   R
   t   x_for_additional_Nxt   NxR   t   Lxt   GCt   MAPPED_READSt   MAPPED_READS_PCNTt   PROPERLY_PAIRED_READSt   PROPERLY_PAIRED_READS_PCNTt
   SINGLETONSt   SINGLETONS_PCNTt   MISJOINT_READSt   MISJOINT_READS_PCNTt   DEPTHt   coverage_thresholdst   COVERAGE__FOR_THRESHOLDSt   COVERAGE_1X_THRESHOLDt   COVERAGE_5X_THRESHOLDt   COVERAGE_10X_THRESHOLDt
   MISASSEMBLt
   MISCONTIGSt   MISCONTIGSBASESt   MISINTERNALOVERLAPt   LARGE_MIS_EXTENSIVEt   LARGE_MIS_RELOCATIONt   LARGE_MIS_TRANSLOCATIONt   LARGE_MIS_INVERTIONt   LARGE_MIS_ISTRANSLOCATIONSt   MIS_ALL_EXTENSIVEt   MIS_RELOCATIONt   MIS_TRANSLOCATIONt   MIS_INVERTIONt   MIS_ISTRANSLOCATIONSt   MIS_EXTENSIVE_CONTIGSt   MIS_EXTENSIVE_BASESt	   MIS_LOCALt   MIS_SCAFFOLDS_GAPt   MIS_LOCAL_SCAFFOLDS_GAPt   MIS_FRAGMENTEDt   CONTIGS_WITH_ISTRANSLOCATIONSt   POSSIBLE_MISASSEMBLIESt   POTENTIAL_MGEt   STRUCT_VARIATIONSt   CTG_MIS_ALL_EXTENSIVEt   CTG_MIS_RELOCATIONt   CTG_MIS_TRANSLOCATIONt   CTG_MIS_INVERTIONt   CTG_MIS_ISTRANSLOCATIONSt   SCF_MIS_ALL_EXTENSIVEt   SCF_MIS_RELOCATIONt   SCF_MIS_TRANSLOCATIONt   SCF_MIS_INVERTIONt   SCF_MIS_ISTRANSLOCATIONSt	   UNALIGNEDt   UNALIGNEDBASESt	   AMBIGUOUSt   AMBIGUOUSEXTRABASESt   MISLOCALt   UNALIGNED_FULL_CNTGSt   UNALIGNED_FULL_LENGTHt   UNALIGNED_PART_CNTGSt   UNALIGNED_PART_LENGTHt   UNALIGNED_MISASSEMBLED_CTGSt
   MISMATCHESt   INDELSt   INDELSBASESt	   SUBSERRORt   INDELSERRORt   MIS_SHORT_INDELSt   MIS_LONG_INDELSt   UNCALLEDt   UNCALLED_PERCENTt   MAPPEDGENOMEt   DUPLICATION_RATIOt   AVE_READ_SUPPORTt   GENESt   OPERONSt	   LARGALIGNt   TOTAL_ALIGNED_LENR   R   R   R   R   R   t   NGxt   NAxt   NGAxt   LGxt   LAxt   LGAxt   KMER_COMPLETENESSt   KMER_CORR_LENGTHt   KMER_MIS_LENGTHt   KMER_UNDEF_LENGTHt   KMER_MISASSEMBLIESt   KMER_TRANSLOCATIONSt   KMER_RELOCATIONSt   PREDICTED_GENES_UNIQUEt   genes_lengthst   PREDICTED_GENESt	   RNA_GENESt   BUSCO_COMPLETEt
   BUSCO_PARTt   REFLENt	   ESTREFLENt   REF_FRAGMENTSt   REFGCt	   REF_GENESt   REF_OPERONSt   TOTAL_READSt
   LEFT_READSt   RIGHT_READSt   REF_MAPPED_READSt   REF_MAPPED_READS_PCNTt   REF_PROPERLY_PAIRED_READSt   REF_PROPERLY_PAIRED_READS_PCNTt   REF_SINGLETONSt   REF_SINGLETONS_PCNTt   REF_MISJOINT_READSt   REF_MISJOINT_READS_PCNTt	   REF_DEPTHt   REF_COVERAGE__FOR_THRESHOLDSt   REF_COVERAGE_1X_THRESHOLDt   REF_COVERAGE_5X_THRESHOLDt   REF_COVERAGE_10X_THRESHOLDt   SIMILAR_CONTIGSt   SIMILAR_MIS_BLOCKSt   ordert   reads_ordert   classic_misassemblies_ordert   ctg_scf_misassemblies_ordert   prefix_misassemblies_ordert   suffix_misassemblies_ordert   misassemblies_ordert   misassemblies_order_advancedt   unaligned_ordert   kmers_ordert   grouped_ordert   main_metricsR   R   R   R   t   quality_dictt   namet   vt   metricst   extend(    (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyR      s  






















				$												$		+2c         C   s   g  | D] } |  |  ^ q S(   N(    (   t   funct   datat   this(    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   _mapmeu  s    c          C   sK   t  t t j  }  g  } x, |  D]$ } x | D] } | j |  q, Wq W| S(   N(   R   t   take_tuple_metric_apartR   R   t   append(   t   listst	   m_metricst   lt   m(    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   get_main_metricsy  s    c         C   s|   g  } t  |  t  ro t t d j |  d  j d   } x; t |  D]! \ } } | j |  d |  qG Wn	 |  g } | S(   Nt    i   t   ,i    (   t
   isinstanceR    R   t   intt   joint   splitt	   enumerateR   (   t   fieldR   t
   thresholdst   it   feature(    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyR     s    %	c         C   sA   x4 t  j j   D]# \ } } |  t  j | k r | Sq Wt  j j S(   N(   R   R   t   itemsR   R   (   t   metrict   qualityR   (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   get_quality  s    t   Reportc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s    i  |  _  |  j t j |  d  S(   N(   t   dt	   add_fieldR   R   (   t   selfR   (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   __init__  s    	c         C   si   y) | t  j j   k s( t d |   Wn, | t  j j   k sX t d |   n X| |  j | <d  S(   Ns   Unknown field: %s(   R   t   __dict__t
   itervaluest   AssertionErrort   valuesR   (   R   R   t   value(    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyR     s
    ))c         C   sx   y) | t  j j   k s( t d |   Wn, | t  j j   k sX t d |   n X|  j j | g   j |  d  S(   Ns   Unknown field: %s(   R   R   R   R   R   R   t
   setdefaultR   (   R   R   R   (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   append_field  s
    ))c         C   sk   y) | t  j j   k s( t d |   Wn, | t  j j   k sX t d |   n X|  j j | d   S(   Ns   Unknown field: %s(   R   R   R   R   R   R   t   gett   None(   R   R   (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt	   get_field  s
    ))(   R   R   R   R   R   R   (    (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyR     s   			c         C   sr   | r% t  j r% t j t  j  } n  |  t k rA t j |   n  t j t j	 j
 |   | f t t j |     S(   N(   R    t	   referenceR   t   name_from_fpatht   assembly_fpathsR   t   reportsR   t   ost   patht   abspathR   t   label_from_fpath(   t   assembly_fpatht   ref_name(    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyR     s
    c         C   sB   |  t  k r t  j |   n  |  t j   k r> t j |   n  d  S(   N(   R   t   removeR   t   keyst   pop(   R   (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   delete  s    c            sM  t  |  d t  s% d |  f g }  n  g  } g      f d   } t d  d  d  d   f d  } |   x |  D] \ } } g  } | j | | f  x | D]{ } t  | t  rxc t | d  D]; \ }	 }
 | | | d t d | d d |
 d	 |	 d
   q Wq | | | d
   q Wqo Wt  |  d t  sE| d \ } } | S| Sd  S(   Ni    R   c             s  t  j r  j t j  d  St t d d   }  |  j t j  rt	 } x< t D]4 } t | d   }  |  j t j
  rR t } PqR qR W| r  j t j t j t j t j g  n  t  j s j t j t j t j t j g  | r j t j t j t j t j g  qqn  d  S(   Ni    R   (   R    t   report_all_metricsR   R   R   R   R   R   R   t   FalseRp   t   TrueR   R   Rx   R{   t   is_combined_refR   R   Rw   Rz   R   R   Ry   R|   (   t   reportt   anyone_alignedR   (   R   t   required_fields(    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   define_required_fields  s"    	(	%c            s  t  |  } g  } xt t D]l }	 t |	 d | }
 |
 j |  } | rx | j | rn | t |  k  rn | | n d   q | j |  q Wt t d   |   s |   k r| d  k r | n | t	 |  } |  j i | d 6| d 6| d 6| t
 j k d 6 n  d  S(   NR   c         S   s
   |  d  k	 S(   N(   R   (   R   (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   <lambda>  s    t
   metricNameR   R   t   isMain(   R   R   R   R   R   t   lenR   t   listt   filterR   R   R   (   t   rowsR   t   are_multiple_thresholdst   patternR   R   R   R   R   R   R   R   t   metric_name(   R   (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   append_line  s    2$"	i   R   R   R   R   R   (   R   R    R   R   R   R   R   (   R   R   t   tableR   R   t
   group_nameR   R   R   R   R   (    (   R   R   sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyR     s(    (c         C   s   t  |  d t  S(   Ni    (   R   R    (   R   (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   is_groupped_table  s    c         C   s@   g  } t  |   r6 x' |  D] \ } } | | 7} q Wn |  } | S(   N(   R   (   R   t   all_rowsR   R   (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   get_all_rows_out_of_table  s    c         C   sF  d g t  | d d  d } xp | D]h } x_ t | d g g  | d D] } t |  ^ qG  D]) \ } } t | | t  |   | | <qa Wq& Wt |  d  } t j r | j d t j d  | j d  n  xc | D][ } | j d	 j d
   t	 | | d g g  | d D] } t |  ^ q D  d  q W| j
   d  S(   Ni    R   i   R   t   wsM   All statistics are based on contigs of size >= %d bp, unless otherwise noted sP   (e.g., "# contigs (>= 0 bp)" and "Total length (>= 0 bp)" include all contigs).
s   
s     c         s   s%   |  ] \ } } d  | | f Vq d S(   s   %-*sN(    (   t   .0t   colwidtht   cell(    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pys	   <genexpr>,  s    (   R   R   R   t   maxt   openR    t
   min_contigt   writeR   t   zipt   close(   t   fpathR   t	   colwidthst   rowR   R   R  t   txt_file(    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   save_txt  s    .%	Gc         C   sp   t  |  d  } xP | D]H } | j d j | d g g  | d D] } t |  ^ q=  d  q W| j   d  S(   NR  s   	R   R   s   
(   R  R	  R   R   R  (   R  R   t   tsv_fileR  R   (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   save_tsv2  s
    -c         C   sR   y t  |   } Wn; t k
 rM y t |   } WqN t k
 rI d  } qN Xn X| S(   N(   R   t
   ValueErrort   floatR   (   t   valt   num(    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   parse_number<  s    c         C   s   t  |  t  s t  |  t  r' |  } n t  |  t  r t |  j    d k r |  j   } t |  d k r t | d  t | d  } } | d  k s | d  k r d  } q | | f } q t | d  } n |  } | S(   Ni    i   i   (   R   R   R  t
   basestringR   R   R  R   (   R  R  t   tokenst   xt   y(    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   get_num_from_table_valueJ  s    	'!	c         C   s  t  |  d  } | j d  | j d  | j d  | j d  | j d t j d  t | d d	  } | j d
 t |  d  | j d  x| D]} | d	 } d | k r | d n	 t j j } | s | t j j	 t j j
 g k rt t |  } n!t | d  }	 |	 d  k r4t t |  } n t t |  }
 d  } | t j j	 k rtt d   |
 D  } n  | t j j
 k rt d   |
 D  } n  t g  |
 D] }	 |	 | k r|	 ^ q d k rt t |  } nE g  | D]8 } t |  | k rd t |  d n	 t |  ^ q} d j | d g |  } x* d j   D] } | j | d |  } qNW| j d d  } | j d d  } | j d d  } | j t j  rd | j   } n  | j t j  rd | j   } n  | j d d  } | j d d  } | d  7} | j | d!  q W| j d"  | j d#  | j d$  | j d%  | j   t j j |   d& k rn  d  S('   NR  s&   \documentclass[12pt,a4paper]{article}
s   \begin{document}
s   \begin{table}[ht]
s   \begin{center}
sZ   \caption{All statistics are based on contigs of size $\geq$ %d bp, unless otherwise noted sZ   (e.g., "\# contigs ($\geq$ 0 bp)" and "Total length ($\geq$ 0 bp)" include all contigs).}
i    R   s   \begin{tabular}{|l*{s   }{|r}|}
s   \hline
R   c         s   s!   |  ] } | d  k	 r | Vq d  S(   N(   R   (   R  t   n(    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pys	   <genexpr>~  s    c         s   s!   |  ] } | d  k	 r | Vq d  S(   N(   R   (   R  R  (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pys	   <genexpr>  s    t   HIGHLIGHTEDSTARTt   HIGHLIGHTEDENDs    & R   s   \ % $ # _ { } ~ ^s   \s   >=s   $\geq$s   <=s   $\leq$t   >s   $>$s   \hspace{5mm}s   \hspace{2mm}s   {\bf t   }s
    \\ \hlines   
s   \end{tabular}
s   \end{center}
s   \end{table}
s   \end{document}
s
   report.tex(   R  R	  R    R  R   R   R   R   R   R   R   R   R  R   R  t   minR   R   t   replacet
   startswithR   t   lstripR   R  R   R   t   basename(   R  R   t   is_transposedt   tex_filet   rows_nR  R   R   t   cellsR  t   numst   bestR   t   esc_char(    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   save_tex_  sd    
"1B

c   
      C   s;  t  j s d  St |  } d g t | d d  d } x` | D]X } xO t | d g t t | d   D]) \ } } t | | t |   | | <qj Wq? Wt  j r d t  j d } n d } g  } xJ | D]B } | j	 g  | d g t t | d  D] } d | ^ q  q Wd	 d
 l
 m }	 |	 j |  | | |  d  S(   Ni    R   i   R   sM   All statistics are based on contigs of size >= %d bp, unless otherwise noted sP   
(e.g., "# contigs (>= 0 bp)" and "Total length (>= 0 bp)" include all contigs).R   s   %si(   t   plotter(   R    t
   draw_plotsR  R   R   R   R   R  R  R   t
   quast_libsR/  t   draw_report_table(
   t   report_nameR   R   t   column_widthsR  R   R  t
   extra_infot   table_to_drawR/  (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   save_pdf  s"    	1%	

	7c         C   s  t  |  } | s" t j d  n  t j j |  |  d } t j j |  |  d } t j j |  |  d } t |  }	 t | |	  t | |	  t	 | |	  t
 | |  | d t j j |  d t j j |  }
 d  } | s t j d |
  n  | r| st j d  n  t |  }	 |	 d	 d
 t j k rJt j d  qi |	 d	 d
 d
 6g  t d t |	   D] } |	 | d
 ^ qrd 6g } x t t |	 d	 d   D]l } g  } x6 t d t |	   D] } | j |	 | d |  qW| j i |	 d	 d | d
 6| d 6 qWt j j |  |  d } t j j |  |  d } t j j |  |  d } t |  }	 t | |	  t | |	  t	 | |	 d t | d t j j |  d t j j |  } | st j d |  qn  |
 | f S(   Ns     Creating total report...s   .txts   .tsvs   .texs   , s   , and s       saved to s'     Transposed version of total report...i    R   sM   transposed version can't be created! First column have to be assemblies namesi   R   R'  (   R   t   loggert   infoR   R   R   R  R  R  R.  R7  R&  R   R   R   t   warningt   rangeR   R   R   (   t   output_dirpathR3  t   transposed_report_nameR   t   silentt   tabt   report_txt_fpatht   report_tsv_fpatht   report_tex_fpathR   t   reports_fpathst   transposed_reports_fpathsR   t   transposed_tableR   t   j(    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   save  sR    7!.c         C   sB   | s  t  j   t  j d  n  t |  t j t j t j d | S(   Ns   Summarizing...R>  (	   R8  t   print_timestampR9  RG  R    t   report_prefixt   transposed_report_prefixR   R   (   R<  R>  (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt
   save_total  s    
c         C   s!   t  |  d t j d t j  d  S(   Nt   misassemblies_reportt   _misassemblies(   RG  R    RJ  R   R   (   R<  (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   save_misassemblies  s    c         C   s   t  |  d d t j  d  S(   Nt   unaligned_reportR   (   RG  R   R   (   R<  (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   save_unaligned   s    c         C   s   t  |  d d t j  d  S(   Nt   reads_reportR   (   RG  R   R   (   R<  (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt
   save_reads  s    c         C   s   t  |  d d t j  d  S(   Nt   kmers_reportR   (   RG  R   R   (   R<  (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt
   save_kmers  s    (+   R   R1  R    R   t   quast_libs.logR   t   quast_libs.qutilsR   t   LOGGER_DEFAULT_NAMER8  R  t   strt   bytesR   R   R   R   R   R   R   t   objectR   R   R   R   R   R   R   R  R  R  R  R  R   R.  R7  RG  R   RK  RN  RP  RR  RT  (    (    (    sB   /home/psgendb/BIRCHDEV/install/quast-5.2.0/quast_libs/reporting.pyt   <module>   sH    I						I				
		I	5			