【ROSALIND】【練Python,學生信】20 計算多肽鏈的質量

如果第一次閱讀本系列文檔請先移步閱讀【ROSALIND】【練Python,學生信】00 寫在前面 ?謝謝配合~

題目:
計算多肽鏈的質量
Given: A protein string P of length at most 1000 aa.
所給:一條不超過1000 aa長的氨基酸序列P。
Return: The total weight of P. Consult the monoisotopic mass table.
需得:P的質量,參考單一同位素質量表。
?
測試數(shù)據(jù)
SKADYEK
測試輸出
821.392
?
背景
氨基酸在形成多肽鏈的時候,每形成一個肽鍵,就需脫去一分子水,即含n個氨基酸的肽鏈脫去n-1分子水。氨基酸脫水后稱為殘基。肽鏈的質量為每個殘基的質量加上一分子水。
自然界中各元素存在穩(wěn)定同位素,單一同位素質量是用最主要的同位素質量計算得到的。質量的單位是Dalton(Da),定義為C-12原子核質量的十二分之一。
在本題中為了簡化問題,假設多肽鏈來自蛋白中部,全部形成殘基。在實際應用中這種假設很實用,因為常用串聯(lián)質譜進行研究,需要將蛋白質先打碎成肽段,再進一步碎裂。
?
思路
由于不用考慮肽鏈兩端未脫水的氨基酸,所以只用把所有殘基的質量相加即可,用字典可以很容易的實現(xiàn)質量的查詢。
?
代碼
mass_table = {
??? 'A':? 71.03711, 'C':? 103.00919, 'D':? 115.02694, 'E':? 129.04259,
??? 'F': 147.06841, 'G':?? 57.02146, 'H':? 137.05891, 'I':? 113.08406,
??? 'K': 128.09496, 'L':? 113.08406, 'M':? 131.04049, 'N':? 114.04293,
??? 'P':? 97.05276, 'Q':? 128.05858, 'R':? 156.10111, 'S':?? 87.03203,
??? 'T': 101.04768, 'V':?? 99.06841, 'W':? 186.07931, 'Y':?? 163.06333
}
?
f = open('rosalind_prtm.txt', 'r')
seq = f.read().replace('\n', '')
f.close()
i = 0
mass = 0
while i < len(seq):
??? mass = mass + mass_table[seq[i]]
??? i += 1
print(round(mass,3))