汉明距离的定义:对于两条长度相等的字符串来说,汉明距离指的是它们之间不相同的字符数。对于两条DNA,则是它们之间的点突变数目。
**给定:**两条长度相等的DNA序列(不超过1kb)。
**需得:**计算汉明距离。
示例数据
1
2
|
GAGCCTACTAACGGGAT
CATCGTAATGACGGCCT
|
示例结果
Python实现
Counting_Point_Mutations.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import sys
def hamm(s1, s2):
return sum([a != b for a, b in zip(s1, s2)])
def test():
s1 = 'GAGCCTACTAACGGGAT'
s2 = 'CATCGTAATGACGGCCT'
return hamm(s1, s2) == 7
if __name__ == '__main__':
if not test():
print("hamm: Failed")
sys.exit(1)
lines = []
with open('rosalind_hamm.txt') as fh:
lines = fh.readlines()
mutations = hamm(lines[0], lines[1])
print(mutations)
|
汉明距离的计算:
- zip()函数,将两条序列对应的元素打包成一个个元组;
- 通过列表展开式判断对应元素是否不同;
- sum()函数计算不相同的字符数,即为汉明距离。
学生信欢迎关注我的知乎,请“点赞”为爱发电,只“收藏”不点赞都是耍流氓。
文章作者
公众号:简说基因, 知乎:简佐义
上次更新
2020-12-05
许可协议
本站文章皆为原创,转载需注明作者及文章链接,谢谢!