从Python

时间:2017-09-25 13:36:44

标签: python python-2.7 biopython

我有一个小型的fasta文件,格式如下:

>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行。 感谢。

1 个答案:

答案 0 :(得分: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')

对于冗长序列或大量序列,我们希望避免将它们全部读入内存而不是一次只处理一个序列,这不是最佳选择。但这是一个开始的地方。