2017-09-25 94 views
0

我有以下格式的小FASTA文件:从FASTA文件删除第一条记录在Python

>gene_1 + other data 
seq 1 
>gene_1 + other data 
seq2 
>gene_1 + other data 
seq3 

我想删除的文件的第一个元素。这是一个庞大的Python脚本的一部分,一旦我已经使用该seq,并提取了它的有趣部分,我想从文件中删除它。最终,文件将被清空,因此我可以从文件夹中删除它。 因为我一直在使用Biopython,所以我试图查看是否可以在Biopython中找到一个函数,但是我找不到有关如何从fasta文件中删除记录的任何提示。由于SeqIO有一个列表,我尝试了list.remove(list[0])方法,但它不起作用。对此有何想法?我遇到某人要求我发布剧本,剧本约200行。 谢谢。

回答

0

这里的东西简单,让你开始:

import sys 
from Bio import SeqIO 

filename = sys.argv[1] 

sequences = [] 

for not_first, record in enumerate(SeqIO.parse(filename, 'fasta')): 
    if not_first: 
     sequences.append(record) 

SeqIO.write(sequences, 'truncated-' + filename, 'fasta') 

这不是最佳的,我们要避免读取他们都到内存中,而是只处理一次一个漫长的序列也不需要大数量的序列。但这是一个开始的地方。

+0

Yeap我正在考虑这些条款。我认为biopython可能会对此有所帮助。我使用列表(SeqIO.parse),但它没有列出的所有功能。非常感谢你的帮助。 – Ana