Seminar GC MCODE Molecular Complex Detection Vorstellung eines Graphclustering-Algorithmus für biomolekulare Netzwerke MCODE Gliederung − − − Einführung, Grundlagen Anwendungsgebiete, Zielstellung MCODE im Detail − Der Algorithmus Komlexitätsbetrachtung Stärken und Schwächen bunte Bilder MCODE in Cytoscape Evaluation und Parametereinfluss MCODE Einführung fortschrittiche Technologien führten zu genaueren biologischen Interaktions Netzwerken wachsende Daten benötigen Theorie zur automatisierten Analyse, also GraphClustering-Algorithmen Quelle: mkbergman.com MCODE Einführung Gary Bader (Toronto) Christopher Hogue (Ottawa) MCODE findet dichte Regionen in Graphen diese könnten biomolekulare Komplexe darstellen arbeitet lokal Quelle: images.the-scientist.com MCODE Einführung benötigt nur Informationen über Dichte in direkter Nachbarschaft Vorteil: directed mode getestet va. an Modelorganismus Saccaromyces cerevisiae (Hefe) BIND (www.bind.ca, heute BOND) Quelle: en.wikipedia.org MCODE Zielsetzung biologische Datenbanken vorallem ProteinInteraktionsnetzwerke Cytoscape-Plugin (cytoscape.org) (un-)gewichtet (un-)gerichtet scale-free NW Quelle: cytoscape.org MCODE Der Algorithmus arbeitet in (2 bis) 3 Einzelschritten − − − 1 - Vertex weighting 2 - molecular complex prediction 3 - optional: post-processing Ausgangspunkt: Graph : G = V , E ∣ E∣ Dichte = ∣ Emax ∣ Nachbarschaft des Knotens si : Ni = V i , Ei i ∣ 2∗∣ E clustering coefficient : C i = ∣ V i ∣∣ V i ∣ −1 Quelle: en.wikipedia.org MCODE Der Algorithmus k-Core, G' = (V', E') E '={e∈E,∣Ee∣≥k } --> rekursiv! vorgeschlagen 1984 zur vereinfachten Darstellung und Analyse großer Graphen core-clustering coefficient von Knoten i= 'i , E i ∪i Dichte des größten k-Cores in N 'i= V wirkt stärker als Ci effektiv auf scale-free networks MCODE Der Algorithmus (1) vertex weighting jeder Knoten bekommt Wert Wert ist Produkt aus core-clustering-coef. und höchsten k-core-level von N for all v in G do N = direkte Nachbarschaft von v K = höchster k-Core Teilgraph aus N k = k-Wert von K d = maximale Dichte von K bei const k setze Wert von v = k * d end_for; MCODE Der Algorithmus (2) molecular complex prediction nimmt bewerteten Graph aus (1) als Input beginnt bei höchst bewertetem , noch ungeclustertem Knoten nimmt alle Nachbarn in den Cluster deren Wert>VWP*s (vertex weighting percentage) rekursiv hard partioning (überlappung erst in (3)) MCODE Der Algorithmus (2) for all v in G do s = höchster, unbearbeiteter Knoten; c = new complex (s); if (s unbearbeitet) then for all unmarked v aus N(s) do if (Wert_v > (1-vwp)*Wert_s) then add_complex (c, v); call RECURSION(G,W,vwp, v); end_if; end_for; end_if; end_for; MCODE Der Algorithmus (3) post-processing entferne Cluster die nicht mindestens einen 2-Core enthalten (z.Bsp. Ketten) fluff-option (real 0.0 – 1.0): nimmt Nachbarn hinzu, deren Dichte größer als ein Schwellwert ist markiert Knoten nicht als „gesehen“ ->soft partioning möglich haircut-option: 2-kern auf dem Ergebnis, entfernt also alle Knoten vom Grad 1 rekursiv MCODE Der Algorithmus (3) for all Clusters c do if (c kein 2-Core) then filter(c); if (haircut) then 2-Core(c); if (fluff) then for all Knoten u von c do for all v aus N(u)\c do if (dichte_v > fluff_schwelle) then füge v zu c hinzu; end_if; end_for; end_for; end_if; end_for; MCODE Komplexitätsbetrachtung Zeitkomplexität (gesamt) : O(|E|*|V|*h³) geht also polynomial mit dem Knotengewicht der durschnittlichen Nachbarschaft k-Core finden (festes k) --> O(n²) − höchsten k-Core identifizieren --> O(n³) − rekursives entfernen von Knoten mit grad <k damit ist n=h=Gewicht der durchschnittlichen N. innere Schleife: 2mal pro Kante --> O(2|E|h³) äußere Schleife: 1mal pro Knoten --> O(|V|*2|E|*h³) = O(|V||E|h³) (1) ist der „teuerste“ Schritt, aber muss i.d.R. nur einmal ausgeführt werden MCODE Komplexitätsbetrachtung (2) läuft in O(|V|) (3) liegt in O(|C|*|cmax|²) − − − |C| #Cluster |cmax| #Knoten im größten Cluster kommt von der Suche nach 2-Cores in allen Clustern also können viele Parameter nach einmaligem vertex weighting in O(|V|) getestet werden! MCODE Stärken directed mode Parameter Test nach einmaligem vertex weighting günstig lokale Arbeitsweise spätere Graphmodifizierung erfordert nur kleine Anpassungen in die Knotenwerte threshold --> es müssen nicht alle Daten zwingend in Clustern liegen fluff --> einfaches soft-partitioning haircut --> erhöht Relevanz der Daten Rating MCODE Schwächen vertex weighting auch noch relativ teuer unheimlich teuer (Bsp. s.cerevisiae vollst. |V| =79083, |E|=5817) kein direktes Softpartitioning, dadurch gewisse Anforderungen an Ausgangsgraph Parameterwahl erfordert mehr Vorkenntnisse als bei vergleichbaren Algos (Größe der kCores etc) manuelle Parameter-Justierung an neue Daten notwendig wenig effizient auf nicht skalen-invarianten Graphen MCODE in Cytoscape MCODE in Cytoscape MCODE in Cytoscape Clustering von Clustern Clustering von Clustern Clustering von Clustern Clustering von Clustern Clustering von Clustern Clustering von Clustern Clustering von Clustern Wirkung Sizethreshold Wirkung Sizethreshold Wirkung Sizethreshold Wirkung Sizethreshold Wirkung Sizethreshold MCODE Evaluation/Parametereinfluss findet MCODE auch tatsächlich biologisch relevante Daten? wie müssen Parameter justiert werden dafür? wie genau kann das werden? Findet MCODE eher zu viel oder zu wenig? Oder gar völlig falsche Cluster? Ursachen mögliche Lösungsansätze Arbeitshinweise MCODE Evaluation/Parametereinfluss Annahme: GC findet viele falsche Cluster MCODE: haircut, fluff und sizethreshold Test an >800 Parameterkombinationen ∣P∩M∣² OverlapScore = ∣P∣∗∣M∣ Daten: Gavin e.a. threshold 0 bedeutet 1 Protein für match treshhold 1 --> alle Proteine gleich MCODE Evaluation/Parametereinfluss threshold w=0,2 Optimum: − − nah an y=x y groß − − − − haircut = false fluff = true vwp = 0,05 fluuf d.t < 0,1 hier: (63,88) für optimum bleibt bis w = 0,5 stabil MCODE Evaluation/Parametereinfluss Misses und Hits MCODE Evaluation/Parametereinfluss stärkster Faktor: VWP MCODE Evaluation/Parametereinfluss Hits (DNA Reperaturmechanismen) MCODE Evaluation/Parametereinfluss Hits (Zellteilung, Cytokinese) MCODE Evaluation/Parametereinfluss Einfluss der complex size Parameters MCODE Evaluation/Parametereinfluss Beispiel für directed mode MCODE Evaluation/Parametereinfluss Beispiel für directed mode MCODE Evaluation/Parametereinfluss MCODE zum Finden von Cluster-Interaktion MCODE Beispiel MCODE Beispiel MCODE Beispiel MCODE Beispiel MCODE Beispiel MCODE Beispiel