Graphen. Seminar Bioinformatik. Franziska Schwabe. 3. Juli 2009. Fakultät Statistik TU Dortmund 1 / 45



Ähnliche Dokumente
Algorithmen und Datenstrukturen 2

Konzepte der Informatik

8 Diskrete Optimierung

1 topologisches Sortieren

Anmerkungen zur Übergangsprüfung

Algorithmische Mathematik

Kombinatorische Optimierung

WS 2009/10. Diskrete Strukturen

Das Briefträgerproblem

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Informatik I WS 07/08 Tutorium 24

Kapitel 6: Graphalgorithmen Gliederung

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Statistische Untersuchungen zu endlichen Funktionsgraphen

Erzeugung zufälliger Graphen und Bayes-Netze

Primzahlen und RSA-Verschlüsselung

Zeichen bei Zahlen entschlüsseln

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Guten Morgen und Willkommen zur Saalübung!

1 Mathematische Grundlagen

3D-Konstruktion Brückenpfeiler für WinTrack (H0)

Information Systems Engineering Seminar

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne

4 Aufzählungen und Listen erstellen

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Programmiersprachen und Übersetzer

Professionelle Seminare im Bereich MS-Office

Anleitung über den Umgang mit Schildern

Einführung in Petri-Netze. Modellierung von Abläufen und Prozessen (1) Abhängigkeitsgraphen: Motivation. Petri-Netze

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege

Anwendungshinweise zur Anwendung der Soziometrie

ANLAUFSTELLEN-LEITLINIEN Nr. 3

Algorithmentheorie Maximale Flüsse

2. Psychologische Fragen. Nicht genannt.

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Software-Engineering SS03. Zustandsautomat

Platinen mit dem HP CLJ 1600 direkt bedrucken ohne Tonertransferverfahren

Lichtbrechung an Linsen

Wie löst man Mathematikaufgaben?

Definition und Begriffe

Expander Graphen und Ihre Anwendungen

Webalizer HOWTO. Stand:

Aufgabensammlung Bruchrechnen

Algorithmen und Datenstrukturen 2

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung

Elternzeit Was ist das?

Komplexe Netzwerke Robustheit

Grundlagen der Theoretischen Informatik, SoSe 2008

Einführung in die Algebra

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Veröffentlichen von Apps, Arbeitsblättern und Storys. Qlik Sense Copyright QlikTech International AB. Alle Rechte vorbehalten.

ratgeber Urlaub - Dein gutes Recht

15 Optimales Kodieren

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Datenstrukturen & Algorithmen

Vorlesung Betriebstechnik/Netzplantechnik Operations Research

Wir arbeiten mit Zufallszahlen

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Statuten in leichter Sprache

WS 2008/09. Diskrete Strukturen

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

sondern alle Werte gleich behandelt. Wir dürfen aber nicht vergessen, dass Ergebnisse, je länger sie in der Vergangenheit

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Stand: Adressnummern ändern Modulbeschreibung

Festigkeit von FDM-3D-Druckteilen

Zypern. Mehrwertsteuererstattungen nach der 13. MwSt-Richtlinie (86/560/EWG)

Lehrer: Einschreibemethoden

BONUS MALUS SYSTEME UND MARKOV KETTEN

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Gemeinsame Erklärung zur inter-kulturellen Öffnung und zur kultur-sensiblen Arbeit für und mit Menschen mit Behinderung und Migrations-Hintergrund.

Graphentheorie Mathe-Club Klasse 5/6

Physik & Musik. Stimmgabeln. 1 Auftrag

Arbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v.

Wasserfall-Ansätze zur Bildsegmentierung

OECD Programme for International Student Assessment

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

WS 2013/14. Diskrete Strukturen

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Kopfzeile. Inhaltsverzeichnis

Professionelle Seminare im Bereich MS-Office

Bilder im Gemeindebrief ansprechend platzieren

Silca Software ERKLÄRUNG. February 2013 Copyright Silca S.p.A. V.2.0

HIER GEHT ES UM IHR GUTES GELD ZINSRECHNUNG IM UNTERNEHMEN

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Übungsblatt: Protein interaction networks. Ulf Leser and Samira Jaeger

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Version White Paper ZS-TimeCalculation und die Zusammenarbeit mit dem iphone, ipad bzw. ipod Touch

Installation OMNIKEY 3121 USB

Verkehrsstauspiel: Wieviel Prozent der Autos fahren über blau/grün? Jörg Rambau

Mathematik 1: (ohne Taschenrechner) Korrekturanleitung. Kanton St.Gallen Bildungsdepartement. BMS/FMS/WMS/WMI Aufnahmeprüfung Frühling 2015

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Erstellen von x-y-diagrammen in OpenOffice.calc

Algorithmen und Datenstrukturen 2-1. Seminar -

Transkript:

Graphen Seminar Bioinformatik Franziska Schwabe Fakultät Statistik TU Dortmund 3. Juli 2009 1 / 45

Gliederung 1 Graphentheorie Denitionen Spezielle Graphen Algorithmen 2 Das Paket graph Das Paket RBGL Das Paket Rgraphviz 2 / 45

Was sind Graphen? Denition [wikipedia.de] Ein Graph besteht in der Graphentheorie anschaulich aus einer Menge von Punkten, zwischen denen Linien verlaufen. Die Punkte nennt man Knoten oder Ecken, die Linien nennt man meist Kanten, manchmal auch Bögen. Auf die Form der Knoten und Kanten kommt es im allgemeinen dabei nicht an. Knoten und Kanten können auch mit Namen versehen sein, dann spricht man von einem benannten Graphen. Wo werden Graphen verwendet? Bioinformatik Operations Research 3 / 45

Wie sieht ein Graph aus? s p q r 4 / 45

5 / 45

6 / 45

Beispiel GO-Graph Kategorisierung von Gen-Produkten Grundlage: gerichteter azyklischer Graph Kind- und Elter-Objekte in R: GO.db, GOstats 7 / 45

Graphentheorie Denitionen Notation Graph G = (V, E) V : nicht-leere Menge von Knoten (engl. vertex) E: nicht-leere Menge von Kanten (engl. edges) V : Anzahl der Knoten V (G): Knotenset von G oder Menge der Knoten von G G/U beschreibt Graph H mit V (H) = V (G)/V (U) und E(H) = E(G)/F (G, U) mit F (G, U) das Kantenset von der Kanten aus G, die Endpunkte in V (U) haben. Graph H heiÿt Untergraph von G Graph J heiÿt Teilgraph von G, falls V (J) = V (G) und E(J) E(G) 8 / 45

Graphentheorie Denitionen Kanten Kanten stehen für binäre Verbindungen zwischen zwei Knoten. Spezielle Kanten proper edge self-loop: verbindet Knoten mit sich selbst multi edge: mehrere Kanten haben dieselben Endpunkte directed edge: Kante mit zugehöriger Richtung Benennung von Knoten und Kanten Standardknotenbenennung: Eins-zu-eins Abbildung zwischen den ganzen Zahlen von 1 bis V und den Knoten von G Standardkantenbenennung: Benenne die Kante zwischen Knoten 1 und 2 mit 1 und so fortlaufend. Standardbenennung berücksichtigt keine multi edges und keine self-loops. sinnvoll für die Anwendung von Algorithmen auf Graphen 9 / 45

Graphentheorie Denitionen Kantenfolge Eine Kantenfolge W = v 0, e 1, v 1,..., v n 1, e n, v n ist eine Abfolge von Knoten und Kanten, sodass die Endpunkte von Kante e i v i 1 und v i für i = 1,..., n sind. Länge der Kantenfolge = { Anzahl der abgelaufenen Kanten ungewichtete Kanten Summe der Kantengewichte gewichtete Kanten geschlossene Kantenfolge v 0 = v n Knoten v heiÿt erreichbar von Knoten u Kantenfolge W von u zu v Ein Graph G heiÿt verbunden Zwischen je zwei Knoten besteht eine Kantenfolge. 10 / 45

Graphentheorie Denitionen Kantenfolge Sind alle Kanten paarweise verschieden, so heiÿt die Kantenfolge Pfad. Sind alle Knoten paarweise verschieden, so heiÿt die Kantenfolge Weg. Ein Weg mit v 0 = v n heiÿt geschlossener Weg oder Kreis. 11 / 45

Graphentheorie Spezielle Graphen Spezielle Graphen Sind in einem Graphen G = (V, E) die Kanten gerichtete Kanten (directed edges), so heiÿt der Graph G gerichteter Graph oder Digraph. Ein Graph G (bzw. Digraph G) zusammen mit einer Abbildung c : E R heiÿt ein (kanten-) gewichteter Graph (bzw. (kanten-) gewichteter Digraph). Ein Graph G heiÿt zusammenhängend, wenn es zwischen je zwei Knoten von G eine Kantenfolge gibt. Maÿ: Konnektivität k(g) = minimale Anzahl der Kanten, deren Beseitigung einen unverbundenen Graphen verursacht k(g) = l Graph G heiÿt l-verbunden oder l-zusammenhängend. 12 / 45

Graphentheorie Spezielle Graphen Bipartite Graphen Die Knoten des bipartiten Graphen G = (V, E) können in zwei Sätze U und W geteilt werden, so dass jede Kante in E eine ungerichtete Beziehung zwischen einem Knoten in U und einem Knoten in W darstellt. Es existieren keine Kanten zwischen den Elementen innerhalb von U oder W allgemein gebräuchliche Darstellung: Die n = U kreuz m = W Adjazenzmatrix A mit A i,j = { 1 es gibt Kante e von ui nach w j 0 sonst i = 1,..., n; j = 1,..., m. Gewichtungen oder Richtungen der Kanten können einfach eingepasst werden. 13 / 45

Graphentheorie Spezielle Graphen Beispiel für einen bipartiten Graphen PubMed und LocusLink PubMed: Datenbank für medizinische und biologische Paper LocusLink: Gen-Datenbank PM = Knotenmenge LL = Knotenmenge Verbindung durch Kante besteht: Gen kommt in Paper vor Adjazenzmatrix A mit Spalte = Paper und Zeile = Gen 14 / 45

Graphentheorie Spezielle Graphen Hypergraphen eng verbunden mit bipartiten Graphen generalisieren das Graphkonzept für die Spezialisierung von Beziehungen der Form eine zu vielen und viele zu vielen Ein Hypergrah ist deniert durch das Paar (V, E), wobei V ein Knotenmenge und E eine Menge von Hyperkanten zwischen den Knoten. Jede Hyperkanten verbindet gleichzeitig mehrere Knoten. Gerichtete Azyklische Graphen Gerichtete Graphen ohne Kreise wichtige Klasse der gerichteten Graphen sind die Basis graphischer Modelle Beispiel in strukturierenden Konzepten: GO 15 / 45

Graphentheorie Spezielle Graphen Zufallsgraphen wichtig für statistisches Testen Generierung von Zufallsgraphen in Bioconductor: festgesetzte Menge an Knoten zufällig generierte Kanten Allgemein gebräuchliches Vorgehen: 1 Festsetzen der Anzahl an Konten 2 Festsetzen der erforderlichen Anzahl von Kanten 3 Graph wird durch Ziehen von Kanten ohne Zurücklegen aus einer Menge von ( n 2) = n(n 1)/2 möglichen Kanten generiert. Zufallsgraphen können auch in Form von der Ausgangs- und Eingangsgrad Verteilungen der Knoten modelliert werden. Ein dritter Typ von Zufallsgraphen wird generiert durch die Annahme der Existenz einiger Knoteneigenschaften, die die Anwesenheit und möglicherweise das Gewicht der Kanten zwischen ihnen bestimmen. 16 / 45

Graphentheorie Algorithmen Erforschung und zugehörige Algorithmen Strategien, um Eigenschaften der Knoten oder Wege von speziellem Interesse zu entdecken Vorgehen: Start bei einem bestimmten Knoten und passiere alle Kanten und die übrigen Knoten auf spezielle Art und Weise 1 Breadth First Search (BSF): Besuch aller angrenzenden Knoten, bevor deren Nachfolger besucht werden. 2 Depth First Search (DFS): Ausgehend von einem Knoten wird der Knoten besucht, der tiefer im Graphen liegt. 17 / 45

Graphentheorie Algorithmen Zusammenhängende Untergruppen Bedürfnis nach einem Begri für zusammenhängende Untergruppen 1 n-cliquen 2 k-plex 3 k-kern 4 λ-menge G s bezeichnet im folgenden einen Untergraphen von G = (V, E) mit Knoten V s und Kanten E s, deniert als Elemente aus E mit beiden Endknoten in V s. 18 / 45

Graphentheorie Algorithmen n-cliquen Subgraph mit Knoten V s so, dass der Abstand d(v, u) zwischen Knoten u und v die Forderung d(v, u) n für alle Knoten v, u V s erfüllt k-plex Maximaler Untergraph, in dem jeder Knoten nicht weniger als v s k benachbarte Knoten hat deg s (u) bezeichne den Grad des Knoten u innerhalb des Untergraphs V s deg s (u) v s k u V s 19 / 45

Graphentheorie Algorithmen k-kern ähnlich wie ein k-plex deniert Hauptunterschied: Minimale Anzahl an Kanten, die im Graphen existieren müssen, ist speziziert stattdessen: Maximalanzahl nicht notwendig λ-menge Suche nach Regionen, in denen die Konzentration von Kanten zwischen den Knoten höher ist als die Konzentration von Kanten von dieser Region aus zum Rest des Graphen. λ(w, u) bezeichne die Minimalanzahl zu entfernender Kanten, so dass kein Weg zwischen den Knoten u und v besteht. Für Graph G = (V, E) ist W /V eine λ-menge, falls für alle u, v, w W und l V /W : λ(u, v) λ(w, l). Die Elemente einer λ-menge müssen nicht benachbart sein. 20 / 45

Wünsche 1 Erzeuge Datenstrukturen, die Graphen repräsentieren und leicht im bioinformatischen Arbeiten und in statistischer Software verwendet werden können. 2 Finde Algorithmen, für die Analyse von Graphen Beispiele: Kürzester-Weg, Schnittmengen Bestimmung, Zusammenhangsmaÿe, Spaltung. 3 Gebraucht werden Methoden für Layout, Benennung und Visualisierung von Graphenstrukturen. Biconductor Pakete 1 graph 2 RBGL 3 Rgraphviz 21 / 45

Das Paket graph Was kann graph? Inhalt: fundamentalen Klassen und Methoden zur Handhabung von Graphen RBGL und Rgraphviz beruhen auf den von graph erzeugten Datenstrukturen Graphen haben verschiedene aber äquivalente Darstellungen Eignung einer Darstellungsform ist abhängig von Faktoren wie: Gröÿe des Graphen, erwünschte Anwendung von Interesse: Abdeckung extremer Bereiche der Graphengröÿe Graphendarstellung in R: Auistung seiner Knoten und Kanten Alternative Darstellung: Adjazenzmatrix (besonders geeignet für Digraphen) graph beinhaltet auch Möglichkeiten, die Darstellung ineinander umzurechnen 22 / 45

Das Paket graph Arbeiten mit graph R-Code library("graph") e <- c("s", "p", "q", "r") k <- list(s=list(edges=c("p","q")), p=list(edges=c("p","q")), q=list(edges=c("p","r")), r=list(edges=c(ÿ"))) g <- new("graphnel", nodes = e, edgel = k, edgemode= "directed") 23 / 45

Das Paket graph Wie sieht ein Graph aus? s p q r 24 / 45

Das Paket graph g A graphnel graph with directed edges Number of Nodes = 4 Number of Edges = 7 nodes(g) "s" "p" "q" "r" edges(g) $s "p" "q" $p "p" "q" $q "p" "r" $r "s" 25 / 45

Das Paket graph Graph a e b f c g d 26 / 45

Das Paket graph Nachbarschaft und Erreichbarkeit adjacent = angrenzend adj(g2, "c") $c "a" "b" "d" accessible = erreichbar acc(g2, c("b", "f")) $b a c b 3 1 2 $f g 1 27 / 45

Das Paket graph Abbildung: KEGG 28 / 45

Das Paket graph R-Code data("integrinmediatedcelladhesion") class(imcagraph) s <- acc(imcagraph, "SOS") Ergebnisse Protein Anzahl überwundener Kanten Ha-Ras 1 Raf 2 MEKI 3... 29 / 45

Das Paket graph Ausgänge R-Code deg <- degree(imcagraph)$outdegree deg[which.max(deg)] Ergebnis ITGB hat 6 ausgehende Kanten 30 / 45

Das Paket graph Sicherung Funktionen die Manipulationen durchführen, die den Graphen nachhaltig verändern, werden an einer Kopie durchgeführt. clearnode combinenodes 31 / 45

Das Paket graph Zufallsgraphen Generierung in R Beispiel randomegraph randomnodegraph randomgraph nodenames <- sapply(0:99, function(i) sprintf("n%02d",i)) rg <- randomegraph(nodenames, edges = 50) 32 / 45

Das Paket graph N00 N01 N02 N03 N04 N05 N06 N07 N08 N09 N10 N11 N12 N13 N14 N15 N16 N17 N18 N19 N20 N21 N22 N23 N24 N25 N26 N27 N28 N29 N30 N31 N32 N33 N34 N35 N36 N37 N38 N39 N40 N41 N42 N43 N44 N45 N46 N47 N48 N49 N50 N51 N52 N53 N54 N55 N56 N57 N58 N59 N60 N61 N62 N63 N64 N65 N66 N67 N68 N69 N70 N71 N72 N73 N74 N75 N76 N77 N78 N79 N80 N81 N82 N83 N84 N85 N86 N87 N88 N89 N90 N91 N92 N93 N94 N95 N96 N97 N98 N99 33 / 45

Das Paket RBGL Was kann RBGL? BFS und DFS Kürzeste Wege Minimale Bäume Aussagen zur Konnektivität Maximaluss Algorithmen viele weitere Funktionen 34 / 45

Das Paket RBGL Kürzester Weg set.seed(123) rg2 <- randomegraph(nodenames, edges = 100) fromnode <- "N43" tonode <- "N81" sp <- sp.between(rg2, fromnode, tonode) sp[[1]]$path [1] "N43" "N08" "N88" "N73" "N50" "N89" [7] "N64" "N93" "N32" "N12" "N81" sp[[1]]$length [1] 10 35 / 45

Das Paket Rgraphviz Was kann Rgraphviz? verschiedene Layouts Allgemeine Eigenschaften von Graphen, wie Gröÿe und Hintergrundfarbe Eigenschaften der Knoten, wie Beschriftungen, Füll- und Rahmenfarbe Eigenschaften der Kanten, wie Beschriftungen, Linienstil und Farben Eigenschaften können für einzelne Knoten und Kanten oder für alle gewählt werden 36 / 45

Das Paket Rgraphviz 3 Layout Typen 1 dot layout hierarchisches Layout für gerichtete Graphen 2 neato layout möglichst keine Überlappung und dieselbe Länge der Kanten 3 twopi layout zyklische Anordnung um ein Zentrum 37 / 45

Das Paket Rgraphviz dot layout N00 N01 N03 N05 N06 N10 N04 N08 N02 N09 N07 38 / 45

Das Paket Rgraphviz neato layout N10 N09 N04 N06 N03 N00 N01 N02 N07 N08 N05 39 / 45

Das Paket Rgraphviz twopi layout N04 N05 N07 N02 N00 N08 N09 N06 N10 N03 N01 40 / 45

Das Paket Rgraphviz Farbspiel nodea <- list(fillcolor = "lightblue") edgea <- list(color = "goldenrod") attrs <- getdefaultattrs(list(node=nodea, edge =edgea)) plot(g, attrs = attrs) 41 / 45

Das Paket Rgraphviz Graph mit Farben s p q r 42 / 45

Das Paket Rgraphviz Veränderung der Knoten- und Kanteneigenschaften globa <- list(node = list(width = "3", height = "1", shape = "box")) nodea <- list(label = c(p = "YNL201C", q = "PpH3", r = "YBL046W", s = ßpt5"), shape = c(p = " ellipse", q = "circle")) edgea <- list(label = c("p~q" = ÿtrong", "r~s" = "weak"), color = c("p~q" = "red", "r~s" = "blue")) plot(g, attrs = globa, edgeattrs = edgea, nodeattrs = nodea) 43 / 45

Das Paket Rgraphviz Graph mit Knoten- und Kanteneigenschaften Spt5 YNL201C strong weak Pph3 YBL046W 44 / 45

Literatur Literatur Battista,G. D., Eads, R., Tamassia, R., et al.(1999): Graph Drawing: Algorithms for the visualisation of graphs., Prentice Hall, Upper Saddle River Genry, J.Carey, V.Ganser, E.(2004): Laying out pathways with Rgraphvi.z, R News, 4(2): 14-18, URL http://cran.r-project.org/doc/rnews Gentlemann, R., Carey, V., et al.(2005): Bioinformatics and Computational Biology Solutions Using R and Bioconductor, Springer- Verlag, Berlin. 45 / 45