使用 biopython 编写字典以归档

Writing a dictionary to file with biopython

我是 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' object has no attribute '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。