【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的质量,参考单一同位素质量表。
测试数据
SKADYEK
测试输出
821.392
背景
氨基酸在形成多肽链的时候,每形成一个肽键,就需脱去一分子水,即含n个氨基酸的肽链脱去n-1分子水。氨基酸脱水后称为残基。肽链的质量为每个残基的质量加上一分子水。
自然界中各元素存在稳定同位素,单一同位素质量是用最主要的同位素质量计算得到的。质量的单位是Dalton(Da),定义为C-12原子核质量的十二分之一。
在本题中为了简化问题,假设多肽链来自蛋白中部,全部形成残基。在实际应用中这种假设很实用,因为常用串联质谱进行研究,需要将蛋白质先打碎成肽段,再进一步碎裂。
思路
由于不用考虑肽链两端未脱水的氨基酸,所以只用把所有残基的质量相加即可,用字典可以很容易的实现质量的查询。
代码
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))