3
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  |j   |jd tt| tj}tdtj| tjj	sHtj
 td|j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|jd d S xtt| |D ]\}\}}tt|d}	tj|}
tjj|s,|jd| d  d  qtdd	 |	D }t|	}|
jtjjd|| |f  |jdtj| d t|  |jdtj| d |  qW |jd d S )NzRunning Barrnap...   zbarrnap.logzLogging to z...ZbacZeukc                s    g | ]}t  tj|d  qS )z.rna.gff)r   r   label_from_fpath_for_fname).0r   )
output_dirr   r   
<listcomp>$   s    zdo.<locals>.<listcomp>c                s   g | ]\}}|| fqS r   r   )r   r   r   )r   r   r   r   r   r   &   s    c             s   s   | ]
}|V  qd S )Nr   )r   fpathr   r   r   	<genexpr>)   s    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 krd|j d  kr|qS )productpartial)Z
attributes)r   Zgener   r   r   r   6   s    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   