a
    b
                     @   sh   d dl mZ d dlZd dlmZ d dlmZmZmZ d dl	m
Z
 d dlmZmZmZ dd Zd	d
 ZdS )    )with_statementN)join)	reportingqconfigqutils)	parse_gff)run_parallelcall_subprocessis_non_empty_filec                 C   sL   t tjddd}t|rd S t|dd|dt|| gt|dt|dd d S )	NZbarrnapbinz--quietz-kz	--threadswa)stdoutstderr)r   r   LIBS_LOCATIONr
   r	   stropen)contigs_fpath	gff_fpath	log_fpaththreadskingdomZbarrnap_fpath r   @/home/psgendb/BIRCHDEV/pkg/quast-5.2.0/quast_libs/run_barrnap.pyrun   s    r   c                    s  |   |d tt| tj}tdtj| tj	sHt
 td|d d  tjrndnd fdd	| D } fd
d	t| |D }tt|tj tdd |D s|d d S tt| |D ]\}\}}tt|d}	t|}
tj|s*|d| d  d  qtdd	 |	D }t|	}|
tjjd|| |f  |dt| d t|  |dt| d |  q|d d S )NzRunning Barrnap...   zbarrnap.logzLogging to z...ZbacZeukc                    s    g | ]}t  t|d  qS )z.rna.gff)r   r   label_from_fpath_for_fname).0r   )
output_dirr   r   
<listcomp>$       zdo.<locals>.<listcomp>c                    s   g | ]\}}|| fqS r   r   )r   r   r   )r   r   r   r   r   r   &   r    c                 s   s   | ]
}|V  qd S )Nr   )r   fpathr   r   r   	<genexpr>)   r    zdo.<locals>.<genexpr>z6Failed predicting the location of ribosomal RNA genes.ZrrnazFailed running Barrnap for z. See z for information.c                 S   s(   g | ] }d |j v rd|j d  v r|qS )productpartial)Z
attributes)r   Zgener   r   r   r   6   r    z%s + %s partz  z  Ribosomal RNA genes = z  Predicted genes (GFF): zDone.)print_timestampinfominlenr   max_threadsmaxospathisdirmakedirsr   
prokaryotezipr   r   any	enumerater   r   r   getisfileerror	add_fieldFieldsZ	RNA_GENESr   index_to_strr   )contigs_fpathsr   loggern_jobsZ
gff_fpathsZbarrnap_argsindexr   r   genesreport
part_countZtotal_countr   )r   r   r   r   r   do   s6    




 r@   )
__future__r   r+   Zos.pathr   
quast_libsr   r   r   Zquast_libs.genes_parserr   quast_libs.qutilsr   r	   r
   r   r@   r   r   r   r   <module>   s   