Bio.SeqIO.parse()一次性迭代器
2023-11-10 17:41 丨o聽乄雨o丨 阅读(35) 评论(0) 编辑 收藏 举报Bio.SeqIO.parse()是一次性迭代器,当用下列语句迭代过一次后,再迭代就为空:
1 import Bio 2 filename = "test.fasta" 3 seqs = Bio.SeqIO.parse(filename, "fasta") 4 # 第一次迭代,会正常输出seq id 5 for seq in seqs: 6 print(seq.id)
7 # 第二次迭代,就不会有输出了,因为seqs已经迭代到了末尾 8 for seq in seqs: 9 print(seq.seq)
解决方法为,在读取序列数据时,将seqs转为列表:
1 import Bio 2 filename = "test.fasta" 3 seqs = list(Bio.SeqIO.parse(filename, "fasta")) 4 # 这样再进行多次迭代,也不会影响数据的分析了 5 # 第一次迭代,会正常输出seq id 6 for seq in seqs: 7 print(seq.id) 8 9 # 第二次迭代,会正常输出seq id 10 for seq in seqs: 11 print(seq.seq) 12 13 ...
作者:丨o聽乄雨o丨
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。