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