
yZc           @   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 d 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 d d  Z d   Z e j d d  Z d   Z d   Z d d  Z d   Z d   Z d   Z  e! d  Z" d   Z# e! d  Z$ d   Z% e& d  Z' d   Z( d   Z) d S(   iN(   t   qconfigt   qutils(   t
   get_logger(   t
   val_to_strt   Fieldsc        /   B   s  e  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 Z d Z d Z d Z d Z e d Z e d Z e d Z e d Z d Z d Z d Z d Z  d Z! d Z" e d Z# d Z$ d Z% d Z& d Z' d  Z( d Z) d! Z* d" Z+ d# Z, d$ Z- d% Z. d& Z/ d' Z0 d( Z1 d) Z2 d* Z3 e d+ Z4 e d, Z5 d- Z6 d. Z7 d/ Z8 d0 Z9 d1 Z: d2 Z; d3 Z< d4 Z= d5 Z> d6 Z? d7 Z@ d8 ZA d9 ZB d: ZC d; ZD d< ZE d= ZF d> ZG d? ZH d@ ZI dA ZJ dB ZK dC e e jL  f ZM dD ZN dE ZO dF ZP dG ZQ dH ZR dI ZS dJ ZT dK ZU e e e e e	 e
 eN eO e eQ e e? e eE e eB e eH e e e e) e  e$ e. e% e& e8 e9 e: e7 e2 e3 e; e< eK eM e= e> e@ eA eF eG eC eD eI eJ g/ ZV e e e e e e e e e" e# e e  e! e$ e. e/ e0 e4 e5 e1 g ZW e e* e+ e, e- e6 g ZX dL ZY dM ZZ dN Z[ dO Z\ dP Z] dQ Z^ dR Z_ dS Z` dT Za dU Zb dV Zc dW Zd dX Ze dY Zf dZ Zg d[ Zh d\ Zi d] Zj d^ Zk d_ Zl d` Zm da Zn db Zo dc Zp dd Zq e eY eZ e[ e\ e] e^ e_ e` ea eb ec ed ee ef eg eh ei ej ek el em en eo ep eq g Zr de e8 e9 e: e; e< e= e> e? eE e@ eF eA eG eB eH eC eI eD eJ g f df e e e e e e e e" e# e e  e$ e. g f dg e* e+ e, e- g f dh e/ e0 e1 e2 e3 e4 e5 e6 e7 g	 f di e e e	 e
 e e e e e e g
 f dj eK eM g f dk eT eU g f dl eN eO eP eQ eR eS g f g Zs e e	 e
 e= e> e e e e e e2 e3 e7 e8 e9 e: e; e< eA eD eK eM g Zt dm dp dn     YZu i e	 e
 e e e e e= e> e e? e eE e@ eA eF eG e8 e: e; e< eK eM g eu jv 6e eB e eH e) e e e e e" e# e% e& e' e( e6 e7 eC eD eI eJ e9 e0 e3 e/ e2 e4 e5 e1 g eu jw 6eN eO e e e eQ e$ eT eU g	 eu jx 6Zy xD g  es D] \ Zz Z{ ez dq k rTe{ ^ qTD] Z| ey do j} e|  qvWRS(r   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   N75t   L50t   L75s   GC (%)s   # misassembliess   # misassembled contigss   Misassembled contigs lengths"   Misassemblies inter-contig overlaps   # relocationss   # translocationss   # inversionss   # interspecies translocationss   # local misassembliess!   # scaffold gap size misassembliess.   # misassemblies caused by fragmented references   # possibly misassembled contigss   # possible misassembliess   # structural variationss   # 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   # geness	   # operonss   Largest alignments   Total aligned lengtht   NG50t   NA50t   NGA50t   LG50t   LA50t   LGA50t   NG75t   NA75t   NGA75t   LG75t   LA75t   LGA75s   # predicted genes (unique)s   # predicted genes (>= %d bp)s   Reference lengths   Estimated reference lengths   Reference fragmentss   Reference GC (%)s   Reference geness   Reference operonss   # similar correct contigss   # similar misassembled blockss	   Contigs #s
   Min contigs
   Max contigs   Not corrected N50s   Genome sizes   Assembly sizes   Chaff basess   Missing reference basess   Missing assembly basess   Missing assembly contigss   Duplicated reference basess   Compressed reference basess   Bad trims   Avg idyt   SNPss   Indels < 5bps   Indels >= 5t
   Inversionst
   Relocationt   Translocations   Corrected contig #s   Corrected assembly sizes   Min correct contigs   Max correct contigs   Corrected N50s   Genome statisticst   Misassembliest	   Unalignedt
   Mismatchess   Statistics without references   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(    (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyR      s   s   Less is better(    (   R   R   (~   R   R    t   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	   t   GCt
   MISASSEMBLt
   MISCONTIGSt   MISCONTIGSBASESt   MISINTERNALOVERLAPt   MIS_ALL_EXTENSIVEt   MIS_RELOCATIONt   MIS_TRANSLOCATIONt   MIS_INVERTIONt   MIS_ISTRANSLOCATIONSt   MIS_EXTENSIVE_CONTIGSt   MIS_EXTENSIVE_BASESt	   MIS_LOCALt   MIS_SCAFFOLDS_GAPt   MIS_FRAGMENTEDt   CONTIGS_WITH_ISTRANSLOCATIONSt   POSSIBLE_MISASSEMBLIESt   STRUCT_VARIATIONSt	   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   R   R   R   R   R   R   t   PREDICTED_GENES_UNIQUEt   genes_lengthst   PREDICTED_GENESt   REFLENt	   ESTREFLENt   REF_FRAGMENTSt   REFGCt	   REF_GENESt   REF_OPERONSt   SIMILAR_CONTIGSt   SIMILAR_MIS_BLOCKSt   ordert   misassemblies_ordert   unaligned_ordert   GAGE_NUMCONTIGSt   GAGE_MINCONTIGt   GAGE_MAXCONTIGt   GAGE_N50t   GAGE_GENOMESIZEt   GAGE_ASSEMBLY_SIZEt   GAGE_CHAFFBASESt   GAGE_MISSINGREFBASESt   GAGE_MISSINGASMBLYBASESt   GAGE_MISSINGASMBLYCONTIGSt   GAGE_DUPREFBASESt   GAGE_COMPRESSEDREFBASESt   GAGE_BADTRIMt   GAGE_AVGIDYt	   GAGE_SNPSt   GAGE_SHORTINDELSt   GAGE_LONGINDELSt   GAGE_INVERSIONSt   GAGE_RELOCATIONt   GAGE_TRANSLOCATIONt   GAGE_NUMCORCONTIGSt   GAGE_CORASMBLYSIZEt   GAGE_MINCORCONTIGt   GAGE_MAXCORCOTINGt   GAGE_CORN50t
   gage_ordert   grouped_ordert   main_metricsR   R!   R"   R#   t   quality_dictt   namet   vt   metricst   extend(    (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyR      sB  






!$		*			!			(2c         C   s   g  | D] } |  |  ^ q S(   N(    (   t   funct   datat   this(    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   _mapme  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(    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   get_main_metrics  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(    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/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   (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   get_quality4  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   (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/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(    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyR   A  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   (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   append_fieldI  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   (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt	   get_fieldP  s
    ))(   R   R    R   R   R   R   (    (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/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(    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyR   X  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   (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   delete`  s    c   
      C   s(  t  |  d t  s% d |  f g }  n  g  } t d  d  d  d  d  } x |  D] \ } } g  } | j | | f  x | D]{ } t  | t  r xc t | d  D]; \ } }	 | | | d t d | d d |	 d | d	 | q Wqv | | | d	 | qv WqJ Wt  |  d t  s | d \ } } | S| Sd  S(
   Ni    R   c         S   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 | d k r t	 j
 r |
 j t j  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   (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   <lambda>{  s    R   t
   metricNameR   R   t   isMain(   R   R   R   R   R   t   lenR   t   listt   filterR    t   is_combined_refR   R_   R   R   (   t   rowsR   t   are_multiple_thresholdst   patternR   R   R   R   R   R   t   reportR   t   metric_name(    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   append_linen  s     2("	i   R   R   R   R   R   (   R   R'   t   FalseR   R   R   t   True(
   Rg   R   t   tableR   t
   group_nameR   R   R   R   R   (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyR   h  s"    (c         C   s   t  |  d t  S(   Ni    (   R   R'   (   R   (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/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   (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   get_all_rows_out_of_table  s    c   	      C   sd  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  | r | j d | d	  n  | 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   Suggestion: sq    continuous fragments of N's of length >= 10 bp. You may consider rerunning QUAST using --scaffolds (-s) option!
s   
s     c         s   s%   |  ] \ } } d  | | f Vq d S(   s   %-*sN(    (   t   .0t   colwidtht   cell(    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pys	   <genexpr>  s    (   R   R   R   t   maxt   openR    t
   min_contigt   writeR   t   zipt   close(	   t   fpathR   t#   potential_scaffolds_assemblies_infot	   colwidthst   rowR   R   R   t   txt_file(    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/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   (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   save_tsv  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(    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/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(    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   get_num_from_table_value  s    	'!	c         C   si  t  |  d  } | j d  | j d  | j d  | j d  | j d t j d  t | d d	  } | j d
 t |  d  | j d  xr| D]j} | 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 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 re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(    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pys	   <genexpr>  s    c         s   s!   |  ] } | d  k	 r | Vq d  S(   N(   R   (   R   R   (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pys	   <genexpr>  s    t   HIGHLIGHTEDSTARTt   HIGHLIGHTEDENDs    & R   s   \ % $ # _ { } ~ ^s   \s   >=s   $\geq$s   <=s   $\leq$t   >s   $>$s   \hspace{5mm}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   t   basename(   R   R   t   is_transposedt   tex_filet   rows_nR   R   R   t   cellsR   t   numst   bestR   t   esc_char(    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   save_tex  s`    
"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  (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   save_pdf7  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 |  }	 d }
 t j r t	 t j  d k r d t j d d	 }
 q t	 t j  t	 |	 d d
  k r d }
 q d d j t j  d }
 n  t
 | |	 |
  t | |	  t | |	  t | |  | d t j j |  d t j j |  } d  } | st j d |  n  | rx| st j d  n  t |  }	 |	 d d t j k rt j d  qxi |	 d d d 6g  t d t	 |	   D] } |	 | d ^ qd
 6g } x t t	 |	 d d
   D]l } g  } x6 t d t	 |	   D] } | j |	 | d
 |  qXW| j i |	 d d
 | d 6| d
 6 q6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 |  } | sxt j d |  qxn  | | f S(   Ns     Creating total report...s   .txts   .tsvs   .texR   i   s	   assembly i    s	    containsR   s   all assemblies contains   assemblies s   , s    contains   , and s       saved to s'     Transposed version of total report...R   sM   transposed version can't be created! First column have to be assemblies namesR   (   R   t   loggert   infoR   R   R   R   R    t   potential_scaffolds_assembliesR   R   R   R  R  R   R   R   R%   t   warningt   rangeR   R   (   t   output_dirpathR  t   transposed_report_nameRg   t   silentt   tabt   report_txt_fpatht   report_tsv_fpatht   report_tex_fpathR   R   t   reports_fpathst   transposed_reports_fpathsR   t   transposed_tableR   t   j(    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   saveO  s`    	#	7!.c         C   s.   t  |  t j t j t j t j t j  d  S(   N(   R  R    t   gage_report_prefixt   report_prefixt   transposed_report_prefixR   R   (   R  (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt	   save_gage  s    c         C   sB   | s  t  j   t  j d  n  t |  t j t j t j d | S(   Ns   Summarizing...R  (	   R  t   print_timestampR  R  R    R  R   R   Rg   (   R  R  (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt
   save_total  s    
c         C   s!   t  |  d t j d t j  d  S(   Nt   misassemblies_reportt   _misassemblies(   R  R    R   R   Rh   (   R  (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   save_misassemblies  s    c         C   s   t  |  d d t j  d  S(   Nt   unaligned_reportR   (   R  R   Ri   (   R  (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   save_unaligned  s    (    (*   R   R  R    R   t   quast_libs.logR   t   quast_libs.qutilsR   t   LOGGER_DEFAULT_NAMER  R   t   strt   bytesR   R   R   R   R   R   R   t   objectR   R   R   R   Rg   R   R   R   R   R   R   R   R   R  R  R  R!  R   R#  R&  R(  (    (    (    sC   /home/birch/BIRCH/local/install/quast-4.6.3/quast_libs/reporting.pyt   <module>   sD   						2			
		G	=		