Modelowanie zależności ekspresji genów
Paweł Szlendak
Promotor: dr inż. Robert Nowak
INPUT: zestaw danych
Atrybut A
Atrybut …
Atrybut X
12.4
0
‘istnieje’
23.6
1
‘nie istnieje’
OUTPUT: zależności przyczynowo-skutkowe atrybutów
A
C
D
B
…
X
Występy w poprzednich turniejach
Drużyna
M
Z
F
L
T
Drużyna 1 0
0
1
1
0
Drużyna 2 1
1
0
1
0
Drużyna 3 1
1
1
1
1
…
…
…
…
…
…
M – byli już mistrzami
Z – są zmęczeni sezonem
F – są w formie
L – mają łatwą grupę
T – mają dobrą technikę
BUDOWA STRUKTURY
Z
F
L
M
T
M – byli już mistrzami
Z – są zmęczeni sezonem
F – są w formie
L – mają łatwą grupę
T – grają technicznie
UCZENIE PARAMETRÓW
Z
P(z1) = 0.6
P(f1|z1) = 0.05
P(f1|z0) =0.3
F
L
P(m1|f1, l1) = 0.2
P(m1|f1, l0) = 0.1
M
P(l1) = 0.2
INTERFERENCJA
P(m1|f0, l1) = 0.02
P(m1|l1, f1, z0) = ?
P(m1|f0, l0) = 0.01
T
P(t1|m1) = 0.7
P(t1|m0) = 0.4
Jakie jest prawdopodobieństwo, że Polska
zdobędzie mistrzostwo, wiedząc że mamy łatwą
grupę a zawodnicy są w formie i nie są
zmęczeni?
F
T
M
20% szans, że Polacy zdobędą mistrzostwo
Z
L
Sieć Bayesa to para (G, P) spełniająca warunek
Markova, gdzie P to łączny rozkład
prawdopodobieństwa zmiennych losowych
ze zbioru V, a G = (V, E) to DAG.
Uczenie sieci Bayesa
Budowa grafu
▪ Z wiedzy eksperta
▪ Z danych
Uczenie się parametrów
Interferencja
Problem optymalizacji kombinatorycznej
Search
- zbiór grafów DAG
Na przykład:
|G3| = 25
|G5| = 29000
|G10| = 4.2 x 1018
Score
Algorytm ‘k2’
Gdy znamy potencjalnych kandydatów na
rodziców dla danego węzła
Algorytm ‘dag search’
Każdy węzeł może być rodzicem danego
węzła
void k2(int k, int n, data d, Pred(Xi), ParentSet& PAi ) {
for(i=1; i <= n; i++) {
PAi= Ø;
P = score(d, Xi, PAi);
findmore = true;
//są nieprzejrzane węzły w Pred(Xi)
while (findmore && |PAi| < k) {
Z = node in Pred(Xi) – PAi that maximizes score(d, Xi, PAi u {Z});
Pnew = score(d, Xi, PAi u {Z});
if (Pnew > Pold) {
Pold = Pnew;
PAi = PAi u {Z};
}
else
findmore = false;
}
}
}
}
Kolejność :
Z, F, L, M, T
Score = 5
Z
Z
Score = 7
Graf:
<empty>
Z
Score
=2=3
Score
Score = 4
F
Z
L
F
Score = 3
L
Score = 2
M
Z
Z
F
L
Z
F
T
L
L
F
void dag_search (data d, EdgeSet& E) {
E = Ø;
G = (V, E);
do
if (any DAG in the neighborhood of current DAG increases score(d, G))
modify E according to the one that increases score(d, G) the most;
while (some operation increases score(d, G));
}
Grafy w sąsiedztwie grafu G: grafy otrzymane
przez operacje dodaj krawędź, usuń krawędź,
zmień kierunek krawędzi na grafie G
Zastosowanie sieci Bayesa do
modelowania ekspresji (aktywności)
genów
Technologia microarray DNA
Badany Gen 1
…
Gen M
1
12.3
…
45.6
…
…
…
…
N
18.3
…
23.9
N << M
‘Ciągłe’ wartości ekspresji
genów
Relacje Markova
Kilka podobnie ocenionych sieci,
szukamy stałych Markov blankets
Relacje kolejności
Kilka najwyżej ocenionych sieci,
sprawdzamy czy X jest rodzicem Y we
wszystkich sieciach
Dla każdej pary atrybutów X, Y policzyć:
Obliczyć maksymalne drzewo rozpinające na
grafie pełnym z powyższymi wagami
krawędzi (np. Boost Graph Library)
Ukierunkować krawędzie wedle uznania