Python 如何从几个蛋白质序列中提取多态性位置?
我有几个fasta蛋白质比对(~5000),我想确定多态性位置加上序列间变化的氨基酸残基。我自己也试过写代码,但很难(我是编程新手),我也看过BioPython,但还没有发现任何东西。我想要像这样的东西: 蛋白质比对:Python 如何从几个蛋白质序列中提取多态性位置?,python,alignment,Python,Alignment,我有几个fasta蛋白质比对(~5000),我想确定多态性位置加上序列间变化的氨基酸残基。我自己也试过写代码,但很难(我是编程新手),我也看过BioPython,但还没有发现任何东西。我想要像这样的东西: 蛋白质比对: > sp1 MQGAAYMQAAAYYMQA > sp2 MQGAARMQGAAYYMQA > sp3 MQGAARMQGAAYYMQM > sp4 MQGAARMQGAAYYMQA > sp5 MQGAARMQAAAYYMQA
> sp1 MQGAAYMQAAAYYMQA
> sp2 MQGAARMQGAAYYMQA
> sp3 MQGAARMQGAAYYMQM
> sp4 MQGAARMQGAAYYMQA
> sp5 MQGAARMQAAAYYMQA
^ ^ ^
在上面的示例中,对齐有3个多态位置(用^
标记)。第一个位于第6位,第二个位于第9位,第三个位于第16位。多态位点的一个常见符号可以是:R6Y,这意味着在第6个位置上发生了从R到Y的变化。变化的方向(R->Y或Y->R)基于该位置上最常见的字母。因此,在这种情况下,R的频率最高,可以推断方向是R->Y
如您所见,第6位和第16位有单一变化(不同的字母频率为1)。但是,第9个位置有两个序列(sp1和sp5)随变化而变化。我想区分这两种多态性。因此,在这种情况下,我希望输出如下:
输出:
# Alignment #1
# Single polymorphisms:
# R6Y: sp1
# A16M: sp3
# Non-single polymorphisms:
# G9A: sp1, sp5
我希望这有助于澄清(如果有点太长,请道歉)
非常感谢您的建议,谢谢 这里有一个函数可以找到两个等位基因之间的差异。第一个应该是由每个位置最频繁的字母组成的规范多晶型(
mqgaarmqgaaymqa
)
示例:
>>> polymorphic_positions('MQGAARMQGAAYYMQA', 'MQGAARMQGAAYYMQM')
['A16M']
>>> polymorphic_positions('MQGAARMQGAAYYMQA', 'MQGAARMQAAAYYMQA')
['G9A']
以下是一些参考资料:
>>> polymorphic_positions('MQGAARMQGAAYYMQA', 'MQGAARMQGAAYYMQM')
['A16M']
>>> polymorphic_positions('MQGAARMQGAAYYMQA', 'MQGAARMQAAAYYMQA')
['G9A']