Bioinformatics
Moore’s law: computer met meer capaciteitskracht voor dezelfde kostà toename van
rekenkracht met prijs (slimmer omgaan met bepaalde algorithmes).
à referentiegenoom: kijken naar is er een verschil met genoom van individu.
2: Computer science background
1. Databases
File-based storage: structuur is volledig gebaseerd op de creator
à verschillende datasets kunnen afwijken van elkaar
Relational databases: Een relationele database organiseert gegevens in tabellen die met
elkaar in verbinding (relatie) kunnen staan.
n Tabellen: hierin worden gegevens opgeslagen
n Rijen: elke rij vertegenwoordigt één specifiek item of persoon (bijv. één
specifieke student).
n Kolommen: Elke kolom bevat een specifiek kenmerk van dat item
n Keys:
à primary key (PK): Een unieke identificatie voor elke rij
à Foreign key (FK): Een sleutel die verwijst naar de Primary Key van een andere
tabel om een koppelvlak te maken.
n Relationships: De lijnen tussen tabellen geven aan hoe gegevens samenhangen
n Structured Query Language (SQL): De standaardtijd/taal die gebruikt wordt om
gegevens op te vragen, in te voeren, te wijzigen of te verwijderen uit een
relationele database.
Populaire relationale databasesysteem-voorbeelden: MySQL; PostgreSQL, SQLite, Oracle
NoSQL databases
NoSQL ("Not Only SQL") databases zijn ontworpen om gegevens te verwerken die niet
netjes in traditionele rijen en kolommen passen (zoals grote hoeveelheden
ongestructureerde tekst, JSON-documenten, netwerken/grafen of real-time datastreams).
Belangrijkste kenmerken:
- Schema flexibility
- Veriety of data models
- Scalability (makkelijk servers aan toe te voegen)
- Performance (geoptimaliseerd voor grote heoveelheden data te verwerken)
- Unstructured and semi-structured data
- Distributed architecture: gebouwd om over meerdere computers/ servers tegelijk
te draaien
- Specific use cases: ideaal voor specifieke toepassingen
, 2. Algorithms
à Input: data en de definitie van een probleem
à proces: het algoritme (de logische stappen die de computer uitvoert)
à output: de oplossing van het probleem
Algoritme= een proces of een reeks regels die stap voor stap worden gevolgd bij
berekeningen of het oplossen van een probleem.
à is een stappenplan om een probleem op te lossen
n Traditionele algoritmes
à Dit zijn procedures en regels die expliciet door een software engineer
geschreven zijn.
à de programmeur bedenkt vooraf elke stap en instructie
n Zelflerende algoritmes
à recente ontwikkeling: Tegenwoordig gebruiken we ook "zelflerende" of
"machine learning" algoritmes (onderdeel van kunstmatige intelligentie / AI).
à In plaats van dat een programmeur alle regels handmatig typt, leert de
computer zelf patronen te herkennen op basis van grote hoeveelheden
voorbeelddatasets.
Aannames in algoritmes (assumptions)
à Zowel recepten als algoritmes zijn gebaseerd op bepaalde aannames (assumptions).
Voorwaarde voor correctheid: Een algoritme kan pas een correct resultaat garanderen
als al deze aannames daadwerkelijk geldig zijn.
Voorbeeld: Als een algoritme aanneemt dat een DNA-sequentie alleen de letters A, C, G en
T bevat, kan het fout gaan wanneer er een onbekende letter (zoals 'N') in de data staat.
Het translatieprobleem & de basisprocedure
Het doel is om een gegeven DNA-sequentie alle mogelijke eiwitsequenties te
voorspellen
n Input: Een DNA-sequentie en een genetische codetabel (codontabel).
n Output: Alle (6) mogelijke eiwitsequenties die door translatie van deze DNA-
sequentie kunnen ontstaan.
De basisprocedure:
1. Neem telkens 3 DNA-letters (een codon) en zoek de bijbehorende AZ-code op in
de codontabel
2. Voeg het AZ toe aan de keten en schuif 3 posities op naar rechts
3. Herhaal dit tot het einde van de sequentie bereikt is
,De 6 reading frames
(3 mogelijke van forward strand (5’à 3’) en 3 mogelijke van reverse complement (3’à
5’))
à de uiteindelijke output van het algoritme bestaat uit 6 mogelijke AZ sequenties
Pairwise sequence alignment Algorithm
Een pairwise sequence alignment algorithm vergelijkt twee
biologische sequenties (zoals eiwitten of DNA) door ze onder elkaar
te leggen om overeenkomsten, verschillen en evolutie op te sporen.
3. Principles of classification
Classificatieprobleem: Veel bio-informaticavragen vallen onder klassificatie; een
algoritme krijgt een object met bepaalde eigenschappen en moet daar een klasse-label
(class label) aan toewijzen.
Toepassingen:
- Search: bepalen of een sequentie wel of niet bij een specifieke eiwitfamilie hoort
- Prediction: ziekterisico voorspellen op basis van DNA
- Identificatie: een obekend organisme identificeren
- Diagnose: bepalen of een patiënt ziek of gezond is
Vb: een algoritme krijgt een afbeelding van een dier (object) en moet beslissen of het label
“kat” of “hond” is.
The confusion matrix
De confusion matrix is een tabel die de voorspellingen
van het algoritme (predicted class) vergelijkt met de
werkelijke werkelijkheid (actual class).
1. True positives (TP=5): Het algoritme zei "kat" en
het wás ook echt een kat. (Correct positief)
2. True negatives (TN= 13): Het algoritme zei "andere" en het was ook géén kat.
(Correct negatief)
3. False positives (FP=2): Type I fout: Het algoritme zei "kat", maar het was eigenlijk
iets anders. (Vals alarm / Fout-positief)
4. False Negatives (FN= 3): Type II fout: Het algoritme zei "andere", maar het was
stiekem tóch een kat. (Gemiste detectie / Fout-negatief)
Type I fout= incorrectly labelling a healthy individual as sick
Type II fout= not recognizing a true diseased individual
Met de waarden uit de confusion matrix worden formule-gebaseerde maten berekend
om te zien hoe goed het algoritme presteert:
n Accuracy (nauwkeurigheid):
, n Sensitivity (gevoeligheid):
Het percentage van de werkelijke positieve gevallen dat door het algoritme
correct is opgemerkt. Hoge gevoeligheid betekent dat er weinig echte gevallen
gemist worden (lage Type II-fout).
n Specificiteit:
Het percentage van de werkelijke negatieve gevallen dat correct als negatief is
geïdentificeerd. Hoge specificiteit betekent dat er weinig valse alarmen zijn (lage
Type I-fout).
ROC analysis = geen leerstof!
4. Graph theory
Basiselementen van een graph
Graph: Een netwerkweergave van relaties tussen een verzameling elementen.
- Nodes (knooppunten): De elementen in het netwerk (in het
voorbeeld de cirkels 1 t/m 6). In de bio-informatica kunnen dit
bijvoorbeeld genen, eiwitten of metabolieten zijn.
- Edges: De verbindingen tussen de knooppunten (de lijnen, zoals de
rode lijn tussen 6 en 4). Dit geeft een relatie of interactie aan.
Simple undirected graph: Een graaf waarbij de
verbindingen geen richting hebben (geen
pijlpunten); een relatie geldt in beide richtingen.
Directed graph: de edges have orientations (wordt
aangeduid met pijltjes)
Adjacency matrix (aangrenzendheidsmatrix)
Een computer kan een visueel netwerk niet direct
"zien", dus wordt het opgeslagen als een matrix:
- Opbouw: Een tabel met evenveel rijen als
kolommen (hier 6 × 6, voor knopen 1 t/m 6).
- Werking: 1= verbinding tusse, de 2 knopen; 0= geen
verbinding
Adjacency list (aangrezendheidslijst)
Een alternatieve manier om een graaf op te slaan in de computer
is de adjacency list:
Opbouw: Voor elke knoop (links) wordt een lijst bijgehouden van
alle knopen waarmee hij direct verbonden is (rechts).
Moore’s law: computer met meer capaciteitskracht voor dezelfde kostà toename van
rekenkracht met prijs (slimmer omgaan met bepaalde algorithmes).
à referentiegenoom: kijken naar is er een verschil met genoom van individu.
2: Computer science background
1. Databases
File-based storage: structuur is volledig gebaseerd op de creator
à verschillende datasets kunnen afwijken van elkaar
Relational databases: Een relationele database organiseert gegevens in tabellen die met
elkaar in verbinding (relatie) kunnen staan.
n Tabellen: hierin worden gegevens opgeslagen
n Rijen: elke rij vertegenwoordigt één specifiek item of persoon (bijv. één
specifieke student).
n Kolommen: Elke kolom bevat een specifiek kenmerk van dat item
n Keys:
à primary key (PK): Een unieke identificatie voor elke rij
à Foreign key (FK): Een sleutel die verwijst naar de Primary Key van een andere
tabel om een koppelvlak te maken.
n Relationships: De lijnen tussen tabellen geven aan hoe gegevens samenhangen
n Structured Query Language (SQL): De standaardtijd/taal die gebruikt wordt om
gegevens op te vragen, in te voeren, te wijzigen of te verwijderen uit een
relationele database.
Populaire relationale databasesysteem-voorbeelden: MySQL; PostgreSQL, SQLite, Oracle
NoSQL databases
NoSQL ("Not Only SQL") databases zijn ontworpen om gegevens te verwerken die niet
netjes in traditionele rijen en kolommen passen (zoals grote hoeveelheden
ongestructureerde tekst, JSON-documenten, netwerken/grafen of real-time datastreams).
Belangrijkste kenmerken:
- Schema flexibility
- Veriety of data models
- Scalability (makkelijk servers aan toe te voegen)
- Performance (geoptimaliseerd voor grote heoveelheden data te verwerken)
- Unstructured and semi-structured data
- Distributed architecture: gebouwd om over meerdere computers/ servers tegelijk
te draaien
- Specific use cases: ideaal voor specifieke toepassingen
, 2. Algorithms
à Input: data en de definitie van een probleem
à proces: het algoritme (de logische stappen die de computer uitvoert)
à output: de oplossing van het probleem
Algoritme= een proces of een reeks regels die stap voor stap worden gevolgd bij
berekeningen of het oplossen van een probleem.
à is een stappenplan om een probleem op te lossen
n Traditionele algoritmes
à Dit zijn procedures en regels die expliciet door een software engineer
geschreven zijn.
à de programmeur bedenkt vooraf elke stap en instructie
n Zelflerende algoritmes
à recente ontwikkeling: Tegenwoordig gebruiken we ook "zelflerende" of
"machine learning" algoritmes (onderdeel van kunstmatige intelligentie / AI).
à In plaats van dat een programmeur alle regels handmatig typt, leert de
computer zelf patronen te herkennen op basis van grote hoeveelheden
voorbeelddatasets.
Aannames in algoritmes (assumptions)
à Zowel recepten als algoritmes zijn gebaseerd op bepaalde aannames (assumptions).
Voorwaarde voor correctheid: Een algoritme kan pas een correct resultaat garanderen
als al deze aannames daadwerkelijk geldig zijn.
Voorbeeld: Als een algoritme aanneemt dat een DNA-sequentie alleen de letters A, C, G en
T bevat, kan het fout gaan wanneer er een onbekende letter (zoals 'N') in de data staat.
Het translatieprobleem & de basisprocedure
Het doel is om een gegeven DNA-sequentie alle mogelijke eiwitsequenties te
voorspellen
n Input: Een DNA-sequentie en een genetische codetabel (codontabel).
n Output: Alle (6) mogelijke eiwitsequenties die door translatie van deze DNA-
sequentie kunnen ontstaan.
De basisprocedure:
1. Neem telkens 3 DNA-letters (een codon) en zoek de bijbehorende AZ-code op in
de codontabel
2. Voeg het AZ toe aan de keten en schuif 3 posities op naar rechts
3. Herhaal dit tot het einde van de sequentie bereikt is
,De 6 reading frames
(3 mogelijke van forward strand (5’à 3’) en 3 mogelijke van reverse complement (3’à
5’))
à de uiteindelijke output van het algoritme bestaat uit 6 mogelijke AZ sequenties
Pairwise sequence alignment Algorithm
Een pairwise sequence alignment algorithm vergelijkt twee
biologische sequenties (zoals eiwitten of DNA) door ze onder elkaar
te leggen om overeenkomsten, verschillen en evolutie op te sporen.
3. Principles of classification
Classificatieprobleem: Veel bio-informaticavragen vallen onder klassificatie; een
algoritme krijgt een object met bepaalde eigenschappen en moet daar een klasse-label
(class label) aan toewijzen.
Toepassingen:
- Search: bepalen of een sequentie wel of niet bij een specifieke eiwitfamilie hoort
- Prediction: ziekterisico voorspellen op basis van DNA
- Identificatie: een obekend organisme identificeren
- Diagnose: bepalen of een patiënt ziek of gezond is
Vb: een algoritme krijgt een afbeelding van een dier (object) en moet beslissen of het label
“kat” of “hond” is.
The confusion matrix
De confusion matrix is een tabel die de voorspellingen
van het algoritme (predicted class) vergelijkt met de
werkelijke werkelijkheid (actual class).
1. True positives (TP=5): Het algoritme zei "kat" en
het wás ook echt een kat. (Correct positief)
2. True negatives (TN= 13): Het algoritme zei "andere" en het was ook géén kat.
(Correct negatief)
3. False positives (FP=2): Type I fout: Het algoritme zei "kat", maar het was eigenlijk
iets anders. (Vals alarm / Fout-positief)
4. False Negatives (FN= 3): Type II fout: Het algoritme zei "andere", maar het was
stiekem tóch een kat. (Gemiste detectie / Fout-negatief)
Type I fout= incorrectly labelling a healthy individual as sick
Type II fout= not recognizing a true diseased individual
Met de waarden uit de confusion matrix worden formule-gebaseerde maten berekend
om te zien hoe goed het algoritme presteert:
n Accuracy (nauwkeurigheid):
, n Sensitivity (gevoeligheid):
Het percentage van de werkelijke positieve gevallen dat door het algoritme
correct is opgemerkt. Hoge gevoeligheid betekent dat er weinig echte gevallen
gemist worden (lage Type II-fout).
n Specificiteit:
Het percentage van de werkelijke negatieve gevallen dat correct als negatief is
geïdentificeerd. Hoge specificiteit betekent dat er weinig valse alarmen zijn (lage
Type I-fout).
ROC analysis = geen leerstof!
4. Graph theory
Basiselementen van een graph
Graph: Een netwerkweergave van relaties tussen een verzameling elementen.
- Nodes (knooppunten): De elementen in het netwerk (in het
voorbeeld de cirkels 1 t/m 6). In de bio-informatica kunnen dit
bijvoorbeeld genen, eiwitten of metabolieten zijn.
- Edges: De verbindingen tussen de knooppunten (de lijnen, zoals de
rode lijn tussen 6 en 4). Dit geeft een relatie of interactie aan.
Simple undirected graph: Een graaf waarbij de
verbindingen geen richting hebben (geen
pijlpunten); een relatie geldt in beide richtingen.
Directed graph: de edges have orientations (wordt
aangeduid met pijltjes)
Adjacency matrix (aangrenzendheidsmatrix)
Een computer kan een visueel netwerk niet direct
"zien", dus wordt het opgeslagen als een matrix:
- Opbouw: Een tabel met evenveel rijen als
kolommen (hier 6 × 6, voor knopen 1 t/m 6).
- Werking: 1= verbinding tusse, de 2 knopen; 0= geen
verbinding
Adjacency list (aangrezendheidslijst)
Een alternatieve manier om een graaf op te slaan in de computer
is de adjacency list:
Opbouw: Voor elke knoop (links) wordt een lijst bijgehouden van
alle knopen waarmee hij direct verbonden is (rechts).