Eiwitten (proteïnen) zijn niet alleen belangrijke bouwstenen van de spieren in ons lichaam, maar zijn ook de “werkpaarden” in onze cellen, zij versnellen bijvoorbeeld biochemische reacties. Eiwitten zijn ketens opgebouwd uit combinaties van 20 aminozuren. We spreken van een eiwit als een aminozuurketen minimaal 100 aminozuren lang is, bij kortere ketens spreken we van peptiden. Ieder eiwit of peptide heeft een specifiek gewicht. Dit gewicht wordt meestal uitgedrukt in de eenheid Dalton. Het gewicht van één aminozuur kan berekend worden uit de structuurformule. Bij het vormen van een aminozuurketen komt steeds één H2O (18.0153 Dalton) vrij per gevormde covalente binding tussen twee aminozuren.
Daarom worden de massa’s van de aminozuren vaak gegeven als de som van alle atomen, verminderd met 18.0153. De massa van een peptide is de som van de massa’s van de aminozuren zoals weergegeven in de massatabel + de massa van één H2O (18.0153 Dalton).
Massatabel:
aminozuur | massa |
---|---|
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 |
Schrijf een functie is_aminozuur_sequentie die een aminozuursequentie als input heeft en boolean True als output als de input een aminozuursequentie is, dwz slechts bestaat uit hoofdletters van de 20 aminuzuren, en False als het geen aminozuursequentie is.
Schrijf een functie peptide_of_eiwit die een aminozuursequentie als input heeft en boolean True als output heeft als het een peptide is en False als het een eiwit is.
Schrijf een functie aantal_aminozuren die een aminozuursequentie als input heeft en een tuple als output waar op iedere positie staat hoeveel aminozuren van die soort aanwezig zijn in de sequentie. De aminozuren staan in alfabetische volgorde, dus de eerste positie in de tuple geeft het aantal A’s de tweede het aantal C’s, de derde het aantal D’s etc.
Schrijf een functie massa_aminozuren die een tuple inleest met aantal aminozuren per soort en de massa berekent van het peptide of eiwit dat wordt ingegeven. Deze functie heeft een tuple met integers als input en een floating point getal als output.
Schrijf een functie info_sequentie die gebruikt maakt van bovenstaande functies die een aminozuur-sequentie als input heeft en als output een string variabele. De string heeft de boodschap “Dit is een peptide van x aminozuren en een massa van y Dalton” als het een peptide is waarbij x het aantal aminozuren is en y de massa of de boodschap “Dit is een eiwit van x aminozuren en een massa van y Dalton” als het een eiwit is waarbij x het aantal aminozuren is en y de massa, en “Dat is geen aminozuursequentie” als de input geen aminozuursequentie is.
>>> is_aminozuursequentie("DIEFRVLHQ")
True
>>> is_aminozuursequentie("ABCDEFGHILJKLMNOPQRSTUV")
False
>>> peptide_of_eiwit("DIEFRVLHQ")
True
>>> peptide_of_eiwit("MEKFLKYEIKVNNEQARANPNYGIFEVGPLESGFVITIGNAMRRVLLSCIPGASVFALSISGAKQEFAAVEGMKEDVTEVVLNFKQLVVKISDLLFEDGEMVEPPLERWPLLTVTAEKAG")
False
>>> aantal_aminozuren("DIEFRVLHQ")
(0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0)
>>> massa_aminozuren((0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0))
1155.60837
>>> info_sequentie("DIEFRVLHQ")
"Dit is een peptide van 9 aminozuren en een massa van 1155.60837 Dalton"
>>> info_sequentie("ABCDEFGHILJKLMNOPQRSTUV")
"Dat is geen aminozuursequentie"