老师给出了两个DNA序列,分别是人类的致盲蛋白质序列和果蝇的致盲蛋白质序列,也给出了匹配评分矩阵,比如A与T匹配,得分-5,A与A匹配得分10,诸如此类。
有了上篇文章的四个模块,简直就是手到擒来:
def protein_alignment(scoring_matrix):
human_protein = read_protein('HumanEyelessProtein.txt')
fruitfly_protein = read_protein('FruitflyEyelessprotein.txt')
alignment_matrix = compute_alignment_matrix(seq_x=human_protein, seq_y=fruitfly_protein, scoring_matrix=scoring_matrix, global_flag=False)
score, align_human, align_fruitfly = compute_local_alignment(seq_x=human_protein, seq_y=fruitfly_protein, scoring_matrix=scoring_matrix, alignment_matrix=alignment_matrix)
return score, align_human, align_fruitfly
稍微写的有点啰嗦,如果函数直接传入参数的话,代码其实是很简单的。这里是为了区分开,一目了然。
蛋白质序列和得分矩阵在github中有。
局部匹配结果得分700多,应该是个很大的数值了,具体的验证稍后给