你好。我正在编写一个函数来查找对齐的相同列,然后将这些列存储在字典中,这样键应该是列(作为字符串),而值是一个包含列索引的列表。我有点困难。我当前的代码只能进行一个对齐:
from Bio.Align import MultipleSeqAlignment
from Bio.Alphabet import IUPAC, Gapped, generic_dna
from Bio.Seq import Seq
from Bio.SeqRecord import SeqRecord
align1 = MultipleSeqAlignment([
SeqRecord(Seq("ACTGCTAGCTAG", generic_dna), id="Alpha"),
SeqRecord(Seq("ACT-CTAGCTAG", generic_dna), id="Beta"),
SeqRecord(Seq("ACTGCTAGDTAG", generic_dna), id="Gamma"),
])
print align1.format("phylip")
我不知道怎么从这里开始。在
输出应该是一个字典,包含相同列的对齐方式作为键,相同列的索引作为值。在
您可以使用
align1[:,index]
访问列。在要创建字典,请使用以下循环:
由于我的分数太低,无法对上面user1的响应进行投票,但这是访问MSA列的正确方法。在
使用AlignIO读取对齐:
然后按照user1的帖子中的描述创建字典。在
然后,您可以访问MSA的列,从而:
其中第一个索引(0:1)将给出路线的第一条线,第二个索引(0:10)将给出路线的前10个位置。在
相关问题 更多 >
编程相关推荐