Menselijke eiwitten worden opgebouwd uit 20 verschillende aminozuren. Dit zijn organische verbindingen die allemaal dezelfde generische chemische structuur hebben die hieronder staat weergegeven. De zijketen R is voor elk van de aminozuren verschillend en de polariteit van deze zijketen bepaalt in grote mate de oplosbaarheid van de aminozuren. De gangbare indeling van de aminozuren in zes grote groepen wordt weergegeven in onderstaande tabel. Deze indeling gebeurt op basis van de algemene structuur van de aminozuren en de chemische eigenschappen van hun R-zijketens. Elk aminozuur wordt doorgaans aangeduid met een hoofdletter (hierbij worden alle letters van het alfabet gebruikt, behalve B, J, O, U, X en Z). In de tabel hebben we dan ook zowel de namen als de corresponderende hoofdletters van de aminozuren opgenomen.
Klasse | Naam | Letters |
---|---|---|
alifatisch | glycine, alanine, leucine, valine, isoleucine | G, A, L, V, I |
hydroxyl | serine, cysteïne, threonine, methionine | S, C, T, M |
cyclisch | proline | P |
aromatisch | fenylalanine, tyrosine, tryptofaan | F, Y, W |
basisch | histidine, lysine, arginine | H, K, R |
zuur | asparaginezuur, glutaminezuur, asparagine, glutamine | D, E, N, Q |
Elke regel van het tekstbestand proteins.txt1 bevat de stringvoorstelling van een eiwitsequentie, die bestaat uit een reeks hoofdletters die de aminozuren voorstellen. Daarna volgt telkens één enkele spatie en een woord dat enkel uit hoofdletters bestaat. Gevraagd wordt:
Bepaal reguliere expressies voor elk van onderstaande verzamelingen. Daarbij staat $$\mathcal{P}$$ voor de verzameling van alle eiwitsequenties. Probeer de reguliere expressies bovendien zo kort mogelijk te houden.
$$\alpha = \{ p \in \mathcal{P}\,|\,$$ $$p$$ is een tryptische peptide $$\}$$
uitleg: een tryptische peptide is een korte eiwitsequentie die eindigt op K of R, en verder geen K of R bevat behalve als die gevold wordt door P
voorbeelden: |
|
|
$$\beta = \{ p \in \mathcal{P}\,|\,$$ in $$p$$ staat na een alifatisch aminozuur nooit een zuur aminozuur (en omgekeerd) $$\}$$
voorbeelden: |
|
|
$$\gamma = \{ p \in \mathcal{P}\,|\,$$ in $$p$$ staan dezelfde aminozuren steeds minstens twee posities uit elkaar $$\}$$
uitleg: er staan dus minstens twee andere aminozuren tussen
voorbeelden: |
|
|
$$\delta = \{ p \in \mathcal{P}\,|\,$$ $$p$$ bevat een alternerende reeks alifatische en zure aminozuren die minstens 7 aminozuren lang is $$\}$$
voorbeelden: |
|
Gebruik een commando uit de grep familie om enkel die regels van het bestand proteins.txt2 te selecteren, waarvan het patroon behoort tot de opgegeven verzameling.
Beschouw de verzamelingen $$\alpha$$, $$\beta$$, $$\gamma$$ en $$\delta$$ zoals hierboven gedefinieerd. Gebruik nu deze verzamelingen om op de volgende manier een boodschap bestaande uit vier woorden te achterhalen:
Het eerste woord staat op unieke regel met het patroon uit de verzameling $$\alpha \cap \beta$$
Het tweede woord staat op unieke regel met het patroon uit de verzameling $$\beta \cap \gamma$$
Het derde woord staat op unieke regel met het patroon uit de verzameling $$\gamma \cap \delta$$
Het vierde woord staat op unieke regel met het patroon uit de verzameling $$\delta \cap \alpha$$
Geef telkens een Unix commando dat elk van deze woorden opzoekt in het bestand en uitschrijft naar standaard uitvoer (zonder het patroon dat aan het woord voorafgaat). Hierbij is het dus niet toegelaten om het woord letterlijk uit te schrijven (bv. echo xxx).