Wanneer twee aminozuren aaneenschakelen dan vormen ze een peptidebinding, waarbij één enkele watermolecule wordt vrijgegeven (zie linker figuur). Als bijgevolg een reeks aminozuren aaneengeschakeld zijn tot een polypeptide, dan heeft elk paar aangrenzende aminozuren een watermolecule verloren. Dit betekent dat er uit een polypeptide die bestaat uit $$n$$ aminozuren in totaal $$n - 1$$ watermoleculen verwijderd zijn.
Meer algemeen wordt een molecule waaruit een watermolecule verwijderd is een residu genoemd. Alle aminozuren van een eiwit zijn dus residuen, behalve de aminozuren uiterst links en rechts. De buitenste aminozuren zijn speciaal, in die zin dat de ene een "onbegonnen" peptidebinding heeft en de andere een "onafgewerkte" peptidebinding. Samen delen deze twee moleculen één "extra" watermolecule (zie rechter figuur). De massa van een eiwit kan dus berekend worden als de som van de massa's van de residuen, plus de massa van één enkele watermolecule.
Er zijn twee standaardmanieren om de massa van een residu te bereken, waarbij telkens de massa's van de individuele atomen van het residu worden opgeteld. De mono-isotopische massa wordt berekend op basis van het hoofdisotoop (het isotoop dat meest voorkomt) van elk atoom in het aminozuur, terwijl de gemiddelde massa berekend wordt op basis van de gemiddelde massa van elk atoom in de molecule (over alle natuurlijk voorkomende isotopen heen).
In het onderzoeksdomein van de proteomics doen veel toepassingen beroep op massaspectrometrie, een analytische chemische techniek die gebruikt wordt om de massa, de elementaire samenstelling, en de structuur van moleculen te bepalen. Bij massaspectrometrie wordt doorgaans gebruikgemaakt van de mono-isotopische massa eerder dan van de gemiddelde massa, en worden alle aminozuren verondersteld mono-isotopisch te zijn, tenzij dat expliciet anders staat aangegeven.
De standaardeenheid die in de massaspectrometrie gebruikt wordt voor het meten van massa is de atomaire massa-eenheid, ook wel dalton (Da) genoemd. Deze wordt gedefinieerd als één twaalfde van de massa van een neutraal atoom van koolstof-12. De massa van een eiwit is dan de som van de mono-isotopische massa's van de aminozuren plus de massa van één watermolecule (waarvan de mono-isotopische massa 18,01056 Da bedraagt).
In sommige toepassingen van massaspectrometrie wordt de complicatie van het onderscheid tussen residuen en niet-residuen vermeden door enkel rekening te houden met peptiden die ergens uit het midden van een eiwit geknipt werden. Dit is een relatief veilige veronderstelling, omdat peptide-analyse in de praktijk vaak wordt uitgevoerd in tandem massaspectrometrie. In deze speciale klasse van massaspectrometrie wordt een eiwit eerst opgebroken in peptiden, die daarna nog eens opgebroken worden in ionen voorafgaand aan de massa-analyse.
Om de massa van een gegeven eiwit te berekenen, ga je als volgt te werk:
Schrijf een functie massatabel waaraan de locatie (str) van een tekstbestand moet doorgegeven worden. Elke regel van dit tekstbestand moet een hoofdletter bevatten, gevolgd door één of meerdere spaties en een reëel getal. Alle hoofdletters zijn verschillend, en stellen de verschillende aminozuren voor. Het reëel getal stelt telkens de mono-isotopische massa van het aminozuur op dezelfde regel voor. De functie moet een dictionary (dict) teruggeven, waarin elk aminozuur (str) wordt afgebeeld op zijn corresponderende mono-isotopische massa (float).
Schrijf een functie eiwitmassa waaraan twee argumenten moeten doorgegeven worden: een eiwitsequentie en een massatabel. De eiwitsequentie is een string (str) die enkel bestaat uit hoofdletters die gebruikt worden voor de voorstelling van aminozuren. De massatabel wordt voorgesteld als een dictionary (dict) die elk van de hoofdletters voor de aminozuren (str) afbeeldt op de corresponderende mono-isotopische massa (float). Daarnaast heeft de functie ook nog een optionele parameter peptide (bool) die aangeeft of het gegeven eiwit een peptide voorstelt die ergens uit het midden van een eiwit geknipt werd (standaardwaarde: False). De functie moet de massa (float) van het gegeven eiwit als resultaat teruggeven.
Bij onderstaande voorbeeldsessie gaan we ervan uit dat het tekstbestand massa.txt1 zich in de huidige directory bevindt.
>>> tabel = massatabel('massa.txt2')
>>> tabel['A']
71.03711
>>> tabel['E']
129.04259
>>> eiwitmassa('SKADYEK', tabel)
839.40248
>>> eiwitmassa('SKADYEK', tabel, peptide=True)
821.3919199999999