我正在编写一个脚本,它可以替换 FASTA 比对文件列中的所有氨基酸残基实例。使用 AlignIO,我只能读取一个对齐文件并从中提取信息,但我无法修改它们的序列。此外,MutableSeq 模块只能修改字符串序列,如果我使用 seq 对象输入,它不能修改它。我想找到一个模块或方法来修改对齐文件并保存它,而它在AlignIO的结构中作为后续过程的序列对象。
我的代码仅使用 AlignIO:
alignment = AlignIO.read(input_handle, "fasta")
for record in alignment:
if record.seq[10] == "G":
record.seq[10] = "T"
输出:
record.seq[10] = "T"
TypeError: 'Seq' object does not support item assignment
我的代码同时使用了 AlignIO 和 MutableSeq:
alignment = AlignIO.read(input_handle, "fasta")
for record in alignment[0:1, : ]:
mut_align = MutableSeq(record.seq)
mut_align.__delitem__(10)
mut_align.insert(10, "T")
print(mut_align)
输出:
del self.data[index]
TypeError: 'Seq' object doesn't support item deletion