从 Python 中的 fasta 文件中删除第一条记录
Delete the first record from a fasta file in Python
我有一个以下格式的小 fasta 文件:
>gene_1 + other data
seq 1
>gene_1 + other data
seq2
>gene_1 + other data
seq3
我想删除文件的第一个元素。这是大型 Python 脚本的一部分,一旦我处理了该序列并提取了其中有趣的部分,我想将其从文件中删除。最终,该文件将被清空,因此我可以将其从文件夹中删除。
因为我一直在使用 Biopython,我试图看看我是否可以在 Biopython 中找到一个函数来解决这个问题,但我找不到任何关于如何从 fasta 文件中删除记录的提示。由于 SeqIO 有一种列表,我尝试使用 list.remove(list[0])
方法但它不起作用。对此有什么想法吗?如果有人要我 post 脚本,脚本大约有 200 行长。
谢谢
这里有一些简单的入门知识:
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')
对于冗长的序列或大量的序列来说,这不是最佳选择,我们希望避免将它们全部读入内存,而是一次只处理一个。但这是一个开始的地方。
我有一个以下格式的小 fasta 文件:
>gene_1 + other data
seq 1
>gene_1 + other data
seq2
>gene_1 + other data
seq3
我想删除文件的第一个元素。这是大型 Python 脚本的一部分,一旦我处理了该序列并提取了其中有趣的部分,我想将其从文件中删除。最终,该文件将被清空,因此我可以将其从文件夹中删除。
因为我一直在使用 Biopython,我试图看看我是否可以在 Biopython 中找到一个函数来解决这个问题,但我找不到任何关于如何从 fasta 文件中删除记录的提示。由于 SeqIO 有一种列表,我尝试使用 list.remove(list[0])
方法但它不起作用。对此有什么想法吗?如果有人要我 post 脚本,脚本大约有 200 行长。
谢谢
这里有一些简单的入门知识:
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')
对于冗长的序列或大量的序列来说,这不是最佳选择,我们希望避免将它们全部读入内存,而是一次只处理一个。但这是一个开始的地方。