【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距離。
?
測試數(shù)據(jù)
GAGCCTACTAACGGGAT
CATCGTAATGACGGCCT
測試輸出
7
?
背景
點突變是最常見的DNA變異種類,表現(xiàn)為單個位點堿基對的改變。由同一個祖先序列進化產生的同源序列通常包含部分相同序列,計算不相同的位點數(shù)可以告訴我們點突變發(fā)生的最小次數(shù)。Hamming距離用來衡量兩個等長字符串在對應位置上不同字符的數(shù)目,即通過替換字符的方式將字符串x變成y所需要的最小的替換次數(shù),適于表示兩個DNA序列的相似性。
?
思路
x、t是等長序列,因此只需依次比較s[i]、t[i]是否相同,把不同的數(shù)目記錄下來即為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)
標簽: