【ROSALIND】【练Python,学生信】06 DNA序列Hamming距离的计算

如果第一次阅读本系列文档请先移步阅读【ROSALIND】【练Python,学生信】00 写在前面 谢谢配合~

题目:
计算Hamming距离
Given: Two DNA strings s and t of equal length (not exceeding 1 kbp).
所给:2条等长DNA序列,不超过1kbp。
Return: The Hamming distance dH(s,t).
需得:两条序列的Hamming距离。
测试数据
GAGCCTACTAACGGGAT
CATCGTAATGACGGCCT
测试输出
7
背景
点突变是最常见的DNA变异种类,表现为单个位点碱基对的改变。由同一个祖先序列进化产生的同源序列通常包含部分相同序列,计算不相同的位点数可以告诉我们点突变发生的最小次数。Hamming距离用来衡量两个等长字符串在对应位置上不同字符的数目,即通过替换字符的方式将字符串x变成y所需要的最小的替换次数,适于表示两个DNA序列的相似性。
思路
x、t是等长序列,因此只需依次比较s[i]、t[i]是否相同,把不同的数目记录下来即为Hamming距离。
代码
f = open('rosalind_hamm.txt','r')
lines = f.readlines()
f.close()
s1 = lines[0].strip()
s2 = lines[1].strip()
hd = 0
for i in range(len(s1)):
if s1[i] != s2[i]:
hd += 1
print(hd)