Я пишу сценарий, который может заменить все экземпляры аминокислотного остатка в столбце файла выравнивания 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