Замена 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 параметры.

Другие вопросы по тегам