gpt4 book ai didi

python - 是否有一个函数可以根据比对参数计算比对序列的分数?

转载 作者:太空狗 更新时间:2023-10-29 22:08:27 24 4
gpt4 key购买 nike

我尝试对已经对齐的序列进行评分。让我们说

seq1 = 'PAVKDLGAEG-ASDKGT--SHVVY----------TI-QLASTFE'
seq2 = 'PAVEDLGATG-ANDKGT--LYNIYARNTEGHPRSTV-QLGSTFE'

给定参数

substitution matrix : blosum62
gap open penalty : -5
gap extension penalty : -1

我确实看过 biopython 食谱,但我能得到的只是替换矩阵 blogsum62,但我觉得它必须已经有人实现了这种库。

那么谁能推荐任何可以解决我的问题的库或最短代码?

提前致谢

最佳答案

杰萨达,

Blosum62 矩阵(注意拼写 ;)在 Bio.SubsMat.MatrixInfo 中,是一个元组解析为分数的字典(所以 ('A', 'A') 值 4 分).它没有间隙,它只是矩阵的一个三角形(所以它可能是 ('T', 'A') 但不是 ('A', 'T')。Biopython 中有一些辅助函数,包括 Bio.Pairwise 中的一些,但这是我想出的答案:

from Bio.SubsMat import MatrixInfo

def score_match(pair, matrix):
if pair not in matrix:
return matrix[(tuple(reversed(pair)))]
else:
return matrix[pair]

def score_pairwise(seq1, seq2, matrix, gap_s, gap_e):
score = 0
gap = False
for i in range(len(seq1)):
pair = (seq1[i], seq2[i])
if not gap:
if '-' in pair:
gap = True
score += gap_s
else:
score += score_match(pair, matrix)
else:
if '-' not in pair:
gap = False
score += score_match(pair, matrix)
else:
score += gap_e
return score

seq1 = 'PAVKDLGAEG-ASDKGT--SHVVY----------TI-QLASTFE'
seq2 = 'PAVEDLGATG-ANDKGT--LYNIYARNTEGHPRSTV-QLGSTFE'

blosum = MatrixInfo.blosum62

score_pairwise(seq1, seq2, blosum, -5, -1)

这会为您的对齐返回 82。几乎肯定有更漂亮的方法来完成所有这些,但这应该是一个好的开始。

关于python - 是否有一个函数可以根据比对参数计算比对序列的分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5686211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com