Protein
1 problem from Rosalind — Bioinformatics Stronghold. Press Run on any block to execute it in your browser.
PRTM — Calculating Protein Mass
solvedbrowser + CLI Problem statement Open in the workbench Download .bl
Monoisotopic masses, which is what a high-resolution instrument reports when it can resolve individual isotope peaks; low-resolution and high-mass measurements give average masses instead, differing by roughly 0.06 percent. Everything in the mass-spectrometry chapter rests on this sum.
# Rosalind: PRTM — Calculating Protein Mass
# https://rosalind.info/problems/prtm/
#
# Given: A protein string P of length at most 1000 aa.
# Return: The total weight of P, using the monoisotopic mass table.
let protein_string = "SKADYEK"
let monoisotopic = {
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
}
let result = range(0, len(protein_string))
|> map(|i| monoisotopic[substr(protein_string, i, 1)])
|> sum()
println("Result: " + str(round(result, 3)))
println("Expected: 821.392")
fn test_prtm_protein_mass() {
assert round(result, 3) == 821.392, "PRTM: got " + str(result)
}