我是使用biopython的新手...我正在尝试使用biopython将字典写入文件。这是我的代码:

with open("file_in.fasta") as original, open("file_out.fasta", "w") as corrected:
    for seq_record in SeqIO.parse(original,'fasta'):
        desc=seq_record.description
        seq_dict={seq_record.id + '_1':seq_record.seq}
        SeqIO.write(seq_dict.values(),corrected,'fasta')


但我收到此错误:AttributeError:'Seq'对象没有属性'id'

最佳答案

考虑到您想要在每行_1的末尾添加>的目的,您不需要字典,您可以直接修改序列记录:

from Bio import SeqIO

with open("file_in.fasta") as original, open("file_out.fasta", "w") as corrected:
    for seq_record in SeqIO.parse(original,'fasta'):
        seq_record.description += '_1'
        seq_record.id = seq_record.description.split()[0]
        SeqIO.write(seq_record, corrected, 'fasta')


像这样修改.description.id很重要

请注意,这对于使用sed之类的unix工具也将是一个简单的任务,除非您也正在做其他事情,否则您实际上并不需要Biopython。

关于python - 用biopython编写字典以归档文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59930581/

10-12 01:26