欢迎光临散文网 会员登陆 & 注册

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

2019-02-03 20:37 作者:未琢  | 我要投稿

如果第一次阅读本系列文档请先移步阅读【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)



【ROSALIND】【练Python,学生信】06 DNA序列Hamming距离的计算的评论 (共 条)

分享到微博请遵守国家法律