def partial_genes_extract(contigs_path, outdir):
contigs = SeqIO.to_dict(SeqIO.parse(contigs_path, "fasta"))
partial_genes = []
with open(outdir+'prodigal_output.gff') as f:
for rec in GFF.parse(f, base_dict=contigs):
for feature in rec.features:
extract_seq = str(feature.extract(rec.seq))
if feature.qualifiers['partial'][0] in ['11', '01', '10'] and len(extract_seq) > 110:
subrecord = SeqRecord.SeqRecord(Seq.Seq(extract_seq),
id='gene_'+str(len(partial_genes))+'_len_'+str(len(extract_seq)) +
'_conf_'+str(feature.qualifiers['conf'][0]),
description='patrial gene')
partial_genes.append(subrecord)
return partial_genes
评论列表
文章目录