Замена TabularMSA для Alignment (scikit-bio 0.4.1.dev0)
Я хотел бы прочитать выравнивание PHYLIP (формат FASTA), обновить метки последовательности и записать результаты обратно в файл. Как я могу отредактировать следующие строки, чтобы использовать TabularMSA в scikit-bio 0.4.1.dev0 (вместо выравнивания, которое поддерживалось ранее):
from skbio import Alignment
...
msa_fa = Alignment.read(gene_msa_fa_fp, format='fasta')
msa_fa_update_ids, new_to_old_ids = msa_fa.update_ids(func=id_mapper)
msa_fa_update_ids.write(output_msa_phy_fp, format='phylip')
...
Спасибо!
1 ответ
При чтении файла FASTA в TabularMSA
объект, идентификаторы последовательности хранятся в каждой последовательности metadata
словарь под ключ "id"
, При написании TabularMSA
объект в формате PHYLIP, MSA index
свойство используется для обозначения последовательностей. использование reassign_index
использовать идентификаторы последовательности FASTA в качестве индекса MSA, затем сопоставить их с метками последовательности, которые вы хотите записать, и, наконец, записать в формате PHYLIP:
from skbio import TabularMSA, DNA
msa = TabularMSA.read("aln.fasta", constructor=DNA)
msa.reassign_index(minter='id')
msa.reassign_index(mapping=id_mapper)
msa.write('aln.phy', format='phylip')
Существует множество способов установить индекс, в том числе установить свойство напрямую или использовать reassign_index
либо с mapping
или же minter
параметры.