Alle praktische functies in een cel worden uitgevoerd door eiwitten. Het zijn echter de domeinen die de structurele en functionele eenheden van een eiwit vormen: in termen van de primaire structuur van een eiwit is een domein een interval van aminozuren dat autonoom kan evolueren en functioneren.
Elk domein correspondeert doorgaans met één enkele functie van het eiwit (bv. binden van het eiwit aan DNA, aanmaken of verbreken van specifieke chemische bindingen, …). Sommige eiwitten zoals myoglobine en het cytochroomcomplex hebben slechts één enkel domein, maar de meeste zijn multifunctioneel en beschikken daarvoor over meerdere domeinen. Het is zelfs mogelijk om verschillende domeinen kunstmatig samen te voegen tot een eiwitmolecule met bepaalde eigenschappen. Dit wordt dan een chimeereiwit genoemd.
Net zoals soorten kunnen ook eiwitten evolueren, waardoor ze homologe groepen vormen die eiwitfamilies genoemd worden. Eiwitten uit dezelfde familie delen meestal dezelfde verzameling domeinen, waardoor ze gelijkaardige functies uitoefenen.
Een onderdeel van een domein dat essentieel is voor de functie wordt een motief genoemd. Deze term wordt ook gebruikt bij nucleïnezuren, alhoewel daar ook vaak andere termen gehanteerd worden (blokken, handtekeningen, vingerafdrukken, …). Meestal zijn eiwitmotieven evolutionair gezien zeer geconserveerd, wat betekent dat ze in verschillende soorten voorkomen zonder dat er veel verschillen optreden.
Eiwitten worden geïdentificeerd in laboratoria over de hele wereld en verzameld in vrij toegankelijke databanken. UniProt1 is één van die centrale opslagplaatsen voor eiwitten, die gedetailleerd informatie beschrijft over hun functies, domeinstructuur en post-translationele modificaties. Aan de hand van UniProt kan je dan bijvoorbeeld zoeken naar gelijkaardige eiwitten, taxonomische analyses uitvoeren of referenties opzoeken in de literatuur.
Om alle alternatieve vormen van een eiwitmotief te kunnen voorstellen, wordt het motief genoteerd aan de hand van een verkorte notatie. Hierbij stelt elke hoofdletter een specifiek aminozuur voor. Als een reeks hoofdletters tussen vierkante haakjes staan, dan komt dit overeen met één enkel aminozuur uit de reeks. Het motief [AC][DEF]G zal dus matchen met de zes eiwitsequenties: ADG, AEG, AFG, CDG, CEG en CFG. Als een reeks hoofdletters tussen accolades staan, dan komt dit overeen met één enkel aminozuur dat niet in de reeks voorkomt. Het motief {AC} kan dus elk aminozuur voorstellen, behalve A of C. De kleine letter x wordt gebruikt voor "een willekeurig aminozuur" dat niet nader gespecifieerd is.
Een motief wordt dus genoteerd als een opeenvolging van groepen, waarbij elke groep behoort tot één van de vier types die hieronder nog eens worden samengevat in tabelvorm. We zeggen dat een gegeven eiwitsequentie matcht met een gegeven motief, als het aantal aminozuren van het eiwit gelijk is aan het aantal groepen in het motief, en elk aminozuur matcht met zijn overeenkomstige groep. Op die manier zien we bijvoorbeeld dat de eiwitsequentie NFSD matcht met het N-glycosylatiemotief dat genoteerd wordt als N{P}[ST]{P}.
type | voorbeeld | matcht met |
---|---|---|
hoofdletter | A | het aminozuur A |
kleine letter x |
x | één enkel aminozuur |
reeks hoofdletters tussen vierkante
haakjes |
[ACD] | het aminozuur A, C of D |
reeks hoofdletters tussen accolades |
{ACD} | één enkel aminozuur, behalve A, C of D |
Gevraagd wordt:
Schrijf een functie groepen waaraan een motief moet doorgegeven worden. De functie moet teruggeven uit hoeveel groepen het motief bestaat.
Schrijf een functie match waaraan twee argumenten moeten doorgegeven worden: een eiwitsequentie en een motief. De functie moet een Booleaanse waarde teruggeven die aangeeft of de gegeven eiwitsequentie matcht met het gegeven motief.
>>> groepen('N{P}[ST]{P}')
4
>>> groepen('{TCGFSM}{E}[GYD]xSx[YTA]N[AVWMYGCHD]P')
10
>>> match('NFSD', 'N{P}[ST]{P}')
True
>>> match('MFSD', 'N{P}[ST]{P}')
False
>>> match('NPSD', 'N{P}[ST]{P}')
False
>>> match('NFAD', 'N{P}[ST]{P}')
False
>>> match('NFSP', 'N{P}[ST]{P}')
False
>>> match('QDNPYIEEIR', '{TCGFSM}{E}[GYD]xSx[YTA]N[AVWMYGCHD]P')
False