在python代码中,我直接调用SeqIO.parse命令(),运行良好:
from Bio import SeqIO
a = SeqIO.parse("a.fasta", "fasta")
records = list(a)
for asq in SeqIO.parse("a.fasta", "fasta"):
print("Q")
但在这里,我首先存储SeqIO.parse命令()变量(?)调用,然后尝试在我的循环中使用它,它不会运行:
from Bio import SeqIO
a = SeqIO.parse("a.fasta", "fasta")
records = list(a)
for asq in a:
print("Q")
这是因为函数| |的输出SeqIO.parse命令(“a.fasta”,“fasta”)| |存储在“a”中与我直接调用它时不同吗? 这里“a”的身份到底是什么。它是一个变量吗?是物体吗?函数实际返回什么?你知道吗
SeqIO.parse()
返回一个普通的python生成器。Biopython模块的这一部分是用纯python编写的:一旦对生成器进行了迭代,就会发现它已耗尽。您不能倒带生成器,但如果不介意将其全部放在内存中,您可以将内容存储在
list
或dict
中(如果需要随机访问,则很有用)。您可以使用SeqIO.to_dict(a)
将记录id作为键,序列作为值存储在字典中。当然,只需重新构建再次调用SeqIO.parse()
的生成器就可以避免将文件内容转储到内存中。你知道吗相关问题 更多 >
编程相关推荐