用于对齐的 TabularMSA 替换 (scikit-bio 0.4.1.dev0)

Posted

技术标签:

【中文标题】用于对齐的 TabularMSA 替换 (scikit-bio 0.4.1.dev0)【英文标题】:TabularMSA replacement for Alignment (scikit-bio 0.4.1.dev0) 【发布时间】:2016-01-12 22:16:10 【问题描述】:

我想读取 PHYLIP 比对(FASTA 格式),更新序列标签并将结果写回文件。如何编辑以下行以在 scikit-bio 0.4.1.dev0 中使用 TabularMSA(而不是之前支持的 Alignment):

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"。当以 PHYLIP 格式编写 TabularMSA 对象时,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')

有多种方法可以设置索引,包括直接设置属性或使用带有mappingminter 参数的reassign_index

【讨论】:

这个解决方案对我来说效果很好,唯一需要修改的是“DNA”到“蛋白质”,因为我正在处理蛋白质序列。谢谢!

以上是关于用于对齐的 TabularMSA 替换 (scikit-bio 0.4.1.dev0)的主要内容,如果未能解决你的问题,请参考以下文章

python-docx对替换后的文字设置英文字体中文字体字号大小对齐方式

如何设置一个tab为4个空格

第24讲:Python字符串大小写转换对齐子串的替换

内联函数,宏定义,内存对齐,类型转换

Word中怎样快速对齐图片?这样操作,效率提升10倍

format格式