Bachelorarbeit - Semantic Scholar

Werbung
Bachelorarbeit
V ISUALISIERUNG VON P ROTEIN -P ROTEIN
I NTERAKTIONS -N ETZWERKEN
Jens Pöthig
Humboldt Universität zu Berlin
Institut für Informatik
29. Juni 2009
1
Inhaltsverzeichnis
1 Einleitung
3
2 Grundlagen
2.1 Protein-Protein-Interaktionen . . . .
2.2 Datenquellen . . . . . . . . . . . . .
2.3 PPI Datenbank . . . . . . . . . . . .
2.4 Anwendungssoftware . . . . . . . . .
2.5 Netzwerkmetriken/Zentralitätsmaße
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
4
4
5
6
8
3 Implementierung
3.1 Zielstellung der Arbeit . . . . . . . .
3.2 Voraussetzungen . . . . . . . . . . .
3.3 Komponenten . . . . . . . . . . . . .
3.4 Realisierung . . . . . . . . . . . . . .
3.4.1 Grafische Benutzeroberfläche
3.4.2 Controller . . . . . . . . . . .
3.4.3 Hilfskomponenten . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
9
9
9
11
11
14
14
4 Ergebnisse
17
5 Ausblick
20
6 Verzeichnisse
22
A Anhang
24
A.1 SQL Anfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
A.2 R-Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
A.3 Verwendete Software . . . . . . . . . . . . . . . . . . . . . . . . . 25
2
1
Einleitung
Neben den Nucleinsäuren, Polysacchariden und Lipiden gehören Proteine zu der
wichtigsten Gruppe der organischen Biomoleküle und bilden einen integralen
Bestandteil der in lebenden Organismen stattfindenden Prozesse[1]. Sie bestehen aus einer Sequenz von Aminosäuren, wobei die genaue Reihenfolge als Primärstruktur bezeichnet wird. Helix- und blattartige Verbindungen dieser Peptidketten bilden die Sekundärstruktur, räumliche Faltungen die Tertiärstruktur[2].
In Organismen erfüllen Proteine eine Vielzahl von Funktionen. Hierzu gehören unter anderem die enzymatische Katalyse (nahezu alle Enzyme sind Proteine, die die chemische Umsetzung von Stoffen in Organismen steuern), die
Erzeugung und Übertragung von Nervenimpulsen (spezifische Reize von Nervenzellen werden durch Rezeptorproteine vermittelt) sowie die Kontrolle von
Wachstum und Differenzierung (Proteine regeln die koordinierte und zeitlich
abgestimmte Expression von Geninformationen).
Die medizinische Forschung beschäftigt sich fortwährend mit der Entschlüsselung der Erbinformation einer Vielzahl von Lebewesen. Nach dem aktuellen
Stand sind im menschlichen Organismus etwa 25000 Gene für die Kodierung
von Proteinen verantwortlich[3]. Die Bioinformatik bietet eine Reihe von Möglichkeiten die Funktionen dieser Proteine vorherzusagen[4]. Das geschied zum
Beispiel durch die Integration und Analyse von heterogenen Datenquellen (Genexpressionsdaten, Daten aus Text-Mining, Proteininteraktionsdaten), die RNA
Strukturanalyse, sowie den Vergleich und die Klassifikation von 3D Proteinstrukturen unter Verwendung vielfältigster Algorithmen und Modelle.
Neben der Analyse von DNA- und Aminosäure-Sequenzen sowie der Molekülstrukturanalyse (Folding) ist die Betrachtung von Protein - Protein - Interaktionsnetzwerken ein vielversprechender Forschungszweig[5, 6]. Da es die
Technik ermöglicht in kürzester Zeit die Erbinformation verschiedener Spezies zu sequenzieren, wächst die dem wissenschaftlichen Umfeld zur Verfügung
stehende Datenbasis stetig. Sind innerhalb einer Spezies Annotationen vorhanden, tragen Proteininteraktionsdaten entscheidend dazu bei, über Orthologien
auf die Funktionen von Proteinen einer anderen Spezies zu schließen, die Annotationen zu übertragen und somit den Informationsgehalt zu steigern[7]. Die
Erkenntnisse, die bei diesem Prozess gewonnen werden dienen vor allem dem
tieferen Verständnis der äußerst komplexen biochemischen Vorgänge in Organismen und im Zuge dessen der anwendungsspezifischen Entwicklung von Medikamenten bzw. der Verfeinerung von neuartigen Therapiemöglichkeiten[8].
3
2
2.1
Grundlagen
Protein-Protein-Interaktionen
Für die Steuerung nahezu aller biochemischen Prozesse in Organismen sind
nachweislich Proteinkomplexe verantwortlich. Wenn sich also mehrere Proteine zu einem Komplex verbinden spricht man von Protein-Protein-Interaktion
(PPI). Je nach Struktur und Art der Verbindungen haben die Komplexe direkte oder transiente Auswirkungen auf die zellulären Vorgänge. PPIs spielen eine
entscheidende Rolle bei vielen bekannten Polypeptiden, wie das Hämoglobin
oder auch die RNA Polymerase, komplexere Strukturen finden sich bei verschiedenen metabolischen Enzymen und dem DNA Replikationskomplex einiger Bakterien.
PPIs können unterschiedliche Effekte hervorrufen. Zum einen werden die kinetischen Eigenschaften von Proteinen verändert, was eine Änderung der Substratbindung oder auch eine Modifizierung der katalytischen Eigenschaften mit
sich zieht. Weiterhin bestimmen PPIs die Art und Weise des zellulären Metabolismus (substrate channeling). Andere Teile des Wirkungsspektrums von PPIs
ist die Schaffung von Bindungsstellen auf biomolekularer Ebene (ADP/ATP Bindungen), oder auch die Inaktivierung anderer Proteine (Inhibitorwirkung).
Die zur Bestimmung von Protein-Protein-Interaktionen verwendeten Verfahrenstechniken lassen sich in drei Hauptgruppen unterteilen. Es kommen biochemische, literaturbasierte und genetische Methoden zur Anwendung. Biochemische Ansätze beinhalten unter anderem die Protein Affinitäts Chromatographie
oder auch das Cross-Linking. Zu den literaturbasierten Verfahren zählen das
Protein Probing oder auch das Phage Display. Genetische Methoden nutzen zur
Erforschung von PPIs Extragenic Suppressors oder auch Synthetic Lethal Effects.
Insbesondere kann durch wissenschaftliche Analysen und Verfahren ein Wirkungszusammenhang zwischen Proteinen und Krankheiten hergestellt werden.
Da PPIs von äußeren und inneren Faktoren beeinflusst werden ist die Erfassung und Beschreibung der Zusammenhänge ein an Bedeutung gewinnender
Forschungszweig.
2.2
Datenquellen
Durch die fortwährende Verbesserung der Sequenzierungstechniken der Erbinformation verschiedenster Spezies wächst die dem wissenschaftlichen Umfeld
zur Verfügung stehende Datenbasis stetig. Erklärtes Ziel ist es, das immense
Datenvolumen leicht abrufbar und dadurch besser handhabbar zu machen. Im
Zuge dessen ist eine Vielzahl von Datenbanken entstanden, welche mehrere Verfahren zur Datenverarbeitung nutzen wodurch sie sich in Typ und Quantität der
Annotationen unterscheiden und jeweils ihre eigenen Funktionsmerkmale besitzen. Die Verfahren sind unter anderem die manuelle Annotation durch fachkundige Datenbankkuratoren, Textmining von spezifischen Artikeln der wissenschaftlichen Literatur und auch die computergestützte Vorhersage von Annotationen.
Diese Datenbanken stellen eine wertvolle Quelle für die systematische Analyse der molekularen Netzwerke dar.
4
Wichtige, öffentlich verfügbare Datenbanken sind unter anderem die Human Protein Reference Database (HPRD), welche neben experimentell ermittelten Annotationen auch Interaktionen mit Nukleinsäuren und kleinen Molekülen
enthält. Die Molecular INTeraction Database (MINT) legt ein besonderes Augenmerk auf Proteininteraktionen von Säugetieren, beinhaltet unter anderem
auch Nicht-Proteine und RNA Transcripts und stellt für jede Interaktion einen
Konfidenzwert bereit. Die Biomolecular Interaction Network Database (BIND)
klassifiziert die Einträge in 3 Kategorien: binäre molekulare Interaktionen, molekulare Komplexe und Pathways, wobei die Daten aus der Literatur gewonnen wurden. Ein Beispiel für die manuelle Datenbearbeitung durch die Kuratoren ist die vom munich information center for protein sequences stammende
Datenbank MIPS, sowie die Database of Interacting Proteins (DIP). Die MIPS
Datenbank stellt Interaktionsdaten von Säugetieren zur Verfügung, die der wissenschaftlichen Literatur entnommen sind. Wenn verfügbar, sind Daten zum Experimenttyp, Art der Interaktion und Bindungsregionen vorhanden. Weiterhin
können Interaktionsdaten von der Biological General Repository for Interaction
Datasets (BioGRID) Datenbank akquiriert werden. Hier sind PPIs von 6 verschiedenen Spezies erfasst, die sowohl mit high-throughput als auch gezielten
Studien gewonnen wurden.
2.3
PPI Datenbank
Im Rahmen dieser Forschungsarbeit ist eine MySQL Datenbank entstanden,
die PPI-Netzwerkdaten von 7 verschiedenen Quellen (BIND1 , BioGRID2 , DIP3 ,
HPRD4 , IntAct5 , MINT6 und MIPS7 ) integriert um eine möglichst breite Informationsbasis zu schaffen. Folgende Spezies sind erfasst: Caenorhabditis elegans,
Drosophila melanogaster, Homo sapiens, Mus musculus, Rattus norvegicus und
Saccharomyces cerevisiae.
Die Datenbank unterliegt einem fortwährenden Entwicklungsprozess und
besteht im aktuellen Zustand aus 32 Tabellen.
Wie in den Artikeln von Jäger und Leser beschrieben, soll in einem in der
Arbeitsgruppe laufenden Projekt versucht werden, bisher unbekannte Funktionen von Proteinen mit einer sehr hohen Genauigkeit vorherzusagen und somit
die Annotierung zu verbessern.
Für die Bachelorarbeit liegt, wie in Abbildung 1 zu sehen, der Fokus zunächst
auf nur 8 der 32 Tabellen, da hierdurch die integralen Bestandteile der ProteinProtein-Interaktionsnetzwerke modelliert werden.
Die Proteintabelle liefert alle wichtigen Merkmale eines Proteins. Dazu gehören neben dem Proteinnamen auch die UniPROT Kennung sowie die GENE Id
und weitere Attribute. Über den künstlichen Schlüsselwert „protein_id“ wird
eine Verbindung zur Interaktionstabelle hergestellt. Hier sind neben den Interaktionspartnern auch Informationen zu der jeweiligen Interaktion vermerkt. So
1 http://www.bind.ca/
Biomolecular Interaction Network Database
General Repository for Interaction Datasets
3 http://dip.doe-mbi.ucla.edu/ Database of Interacting Proteins
4 http://www.hprd.org/ Human Protein Reference Database
5 http://www.ebi.ac.uk/intact
6 http://mint.bio.uniroma2.it/ Molecular INTeraction database
7 http://mips.gsf.de/genre/proj/yeast/ munich information center for protein sequences
2 http://www.thebiogrid.org/
5
Abbildung 1: Datenbankschema
können zum Beispiel anhand des Attributs „disease_ppi“ diejenigen Interaktionen ausgemacht werden, welche mit einer Krankheit assoziiert sind. Über
eine Fremdschlüsselbeziehung kann die entsprechende Datenbankquelle (z.B.
BioGRID) bestimmt werden. Im Rahmen der Bachelorarbeit sind vor allem solche PPIs von Interesse, die mit Krankheiten in Beziehung stehen. So fungiert
die Tabelle „gad_rel“ als Bindeglied um die Proteine mit den Daten der Tabelle „gad“ zu verbinden. GAD steht hier für die Genetic Association Database. Eine weitere Datenquelle für Informationen über Krankheitsbeziehungen ist
die OMIM (Online Mendelian Inheritance in Man) Datenbank. So lassen sich
über die „omim_rel“ Tabelle die Proteine mit den Phenotypbeschreibungen aus
der „omim_disease“ Tabelle zusammenführen. Die „gad_omim“ Tabelle stellt ein
Mapping zwischen den beiden Quellen her.
2.4
Anwendungssoftware
Die wissenschaftliche Erforschung der biomolekularen Prozesse von Organismen erfordert die Verwendung geeigneter Werkzeuge, die die (Bio-)Informatik
zur Verfügung stellen kann. So ergeben sich mehrere Anwendungsszenarien,
bei denen Softwaretools zur Anwendung kommen.
Neben der Software zur Akquirierung des Datenmaterials aus Experimenten, zur Aufbereitung für die Datenbanken und individueller Forschungssoftware wird auch universelle Software benötigt um den Datenbestand besser zu
verstehen.
Im wissenschaftlichen Umfeld hat sich hier vor allem das freie OpenSource
Softwarepaket Cytoscape etabliert. Es bietet überaus vielfältige Visualisierungs-,
Modellierungs- und Analysemöglichkeiten und eignet sich deshalb sehr gut zur
Unterstützung des Forschungsprozesses.
6
Cytoscape ist in der Lage verschiedenste biomolekulare Interaktionsnetzwerke zu verarbeiten und eignet sich besonders gut für die Forschungsarbeit im
Verbund mit großen Protein-Protein oder auch Protein-DNA Datenbanken. Die
Visualisierung der Netzwerke kann auf Basis der zur Verfügung stehenden Attribute individualisiert werden.
Cytoscape basiert auf Java und gibt Softwareentwicklern die Möglichkeit
über eine gut dokumentierte API, Plugins zu implementieren, die den Funktionsumfang von Cytoscape enorm erweitern. Derzeit werden auf der offiziellen Cytoscape Website 76 Plugins aus 7 verschiedenen Kategorien angeboten.
Cytoscape hat eine breite Community und wird ständig weiterentwickelt. Die
Visualisierung von Netzwerken kann einen guten Aufschluss über die Struktur
und die Zusammenhangskomponenten geben. Darüber hinaus werden so für
den Forscher Netzwerkmerkmale sichtbar, die zuvor in den Rohdaten verborgen
lagen.
„Graphics reveal data. Indeed graphics can be more precise and revealing
than conventional statistical computations.“ Edward R. Tufte, The Visual Display
of Quantitative Information.
Cytoscape hält eine breite Palette von Layoutalgorithmen bereit, welche nach
bestimmten Kriterien die Knoten und Kanten des Netzwerks anordnen.
Force-directed/spring embedded Layout Wie der Name schon sagt, werden
beim Force-directed oder auch spring-embedded Layout die Kanten des Netzwerks als Federn modelliert. So entsteht ein dynamisches System, bei dem versucht wird ein Gleichgewicht herzustellen. Verbundene Knoten ziehen sich an,
nicht verbundene stoßen sich ab. Siehe hierzu Abbildung 12.
Group Attributes Layout Der Anwender kann bei diesem Layout eines der zur
Verfügung stehenden Knotenattribute wählen und dementsprechend entstehen
diverse Kreise, die wie die Bezeichnung des Layouts vorgibt, das Netzwerk anhand des gewählten Attributs gruppiert. (vgl. Abb. 13)
Modifizierung der Knoten- und Kantendarstellung Cytoscape bietet dem
Benutzer die Möglichkeit jede Darstellungsoption der visuellen Repräsentation
des Netzwerks anhand von gegebenen Netzwerkattributen zu verändern. Dazu
wird der VizMapper verwendet. Es werden 3 verschiedene Möglichkeiten der
Einflussnahme, im Folgenden Mappings genannt, angeboten. Das kontinuierliche Mapping erlaubt die Modifikation einer Darstellungsoption auf Basis eines
nummerischen Attributintervalls. Es eignet sich zum Beispiel für die Anpassung
der Darstellungsgröße der Netzwerkknoten. Beim diskreten Mapping kann für
jeden einzelnen Attributwert die Option angepasst werden. Dieses Mapping bietet sich vor allem für Attribute an, deren Wertebereich ein überschaubares Maß
besitzt. Das sogenannte Passthrough Mapping erlaubt dem Anwender die Netzwerkattribute direkt an die Visualisierung weiterzugeben. So können Knoten
und Kantenbezeichnungen aus den Netzwerkattributen übernommen werden.
7
2.5
Netzwerkmetriken/Zentralitätsmaße
Die aus der PPI Datenbank des Lehrstuhls extrahierten Netzwerke sind im Wesentlichen im biologischen Kontext attribuiert. Darüber hinaus erweist es sich
als sinnvoll, die strukturinhärenten Netzwerkmerkmale mit den Mitteln der Graphentheorie zu bestimmen und das Netzwerk mit den gewonnenen Metadaten
anzureichern. Dieses Vorgehen ermöglicht, die Visualisierungsfähigkeiten von
Cytoscape zu erweitern, da durch die weiteren Attribute und die Anwendung
des VizMappers (siehe Abschnitt „Modifizierung der Knoten- und Kantendarstellung“) direkt auf die visuelle Repräsentation des Netzwerks Einfluss genommen
werden kann. Im Rahmen der Bachelorarbeit werden die folgenden 4 Maßzahlen verwendet.
degree centrality Die degree centrality eines Knotens ist eine grundlegende
Struktureigenschaft von Netzwerken. Sie gibt Auskunft über die Anzahl der mit
dem Knoten verbundenen Kanten. Je höher die degree centrality, desto vernetzter ist der betreffende Knoten. Für einen Graph G := (V, E) mit n Knoten ist die
degree centrality CD (v) eines Knotens v
CD (v) =
deg(v)
n−1
betweenness centrality Die betweenness centrality ist ein Maß für die Wichtigkeit eines Knotens im Netzwerk. Je öfter sich der betreffende Knoten auf den
kürzesten Pfaden zwischen zweier anderer Knoten befindet, desto höher ist sein
betweenness centrality Wert. Für einen Graph G := (V, E) ; die Knoten s,t,v;
σst der Summe der kürzesten Pfade zwischen s und t und σst (v) der Summe
der kürzesten Pfade von s und t auf denen v liegt ist die betweenness centrality
des Knotens v
X
CB (v) =
s6=t6=v∈V,s6=t
σst (v)
σst
closeness centrality Die closeness centrality ist eine weitere nützliche Maßzahl für Netzwerkknoten. Sie ist definiert durch das Inverse des mittleren geodätischen Abstandes des entsprechenden Knotens.
n−1
t∈V |v dG (v, t)
CC (v) = P
PageRank Der PageRank gibt Auskunft über die Stärke der Bedeutung eines
Knotens für das gesamte Netzwerk. Diese Maßzahl ist besonders populär im
Kontext der Websuchmaschienen, hier insbesondere Google. Auch hier gilt, je
höher der PageRank eines Knotens, desto wichtiger ist er für das Gesammtnetzwerk.
8
3
Implementierung
3.1
Zielstellung der Arbeit
Im Rahmen der Forschungsarbeit am Lehrstuhl werden verschiedene, dem wissenschaftlichem Umfeld zur Verfügung stehende Datenquellen zu einer integrierten Datenbank zusammengefasst, welche Protein – Protein – Interaktionsnetzwerke modelliert. Zur Analyse und Visualisierung der Netzwerkstrukturen
wird unter anderem auch das Softwarepaket Cytoscape verwendet. Dieses wiederum soll nun im Rahmen dieser Bachelorarbeit um einige Funktionalitäten
erweitert werden um den Forschungsprozess effizienter unterstützen zu können. Das Cytoscape Plugin soll die folgenden Funktionen implementieren:
• Anbindung von Cytoscape an die PPI Datenbank des Lehrstuhls
• Suche nach Proteininteraktionen, die mit einer bestimmten Krankheit in
Beziehung stehen
• Extraktion von Interaktionsnetzwerken aus der Datenbank
• Attribuierung des Netzwerks mit Metriken (Zentralitätsmaße)
• Import und Visualisierung von eben diesen Interaktionsnetzwerken in Cytoscape
3.2
Voraussetzungen
An das Zielsystem, auf dem das Plugin betrieben werden soll, werden einige
Anforderungen gestellt. Um die uneingeschränkte Nutzung des Plugins zu gewährleisten muss das Zielsystem in der Lage sein, mit einem MySQL Server 5.1
oder höher zu kommunizieren. Das heißt, die Quelldatenbank muss entweder
lokal oder über das Netzwerk erreichbar sein. Cytoscape Version 2.5 oder höher
muss installiert sein. Eine lauffähige Version der Statistiksoftware R–2.8.0 oder
höher mit installierter Library igraph v0.5.2 oder höher ist ebenfalls essenziell
für den reibungslosen Programmablauf.
3.3
Komponenten
Im Laufe des evolutionären Softwaredesigns haben sich für die Plugin Implementierung 3 Hauptkomponenten herausgebildet. Die grafische Benutzeroberfläche (GUI), die dem Benutzer die Dateneingabe und Programmablaufsteuerung ermöglicht. Der Controller, der im Hintergrund für den Datenaustausch
unter den Komponenten zuständig ist und schließlich die Gruppe der Hilfskomponenten (im Folgenden Prozessoren genannt) welche ganz bestimmte Aufgaben während des Programmablaufs übernehmen.
9
Abbildung 2: Klassendiagramm des CyPPI Plugins
10
3.4
3.4.1
Realisierung
Grafische Benutzeroberfläche
Die GUI stellt ein aus Java Swing Elementen komponiertes Framework zur Verfügung, dass sich durch seine Simplizität leicht erweitern lässt. Die Hauptkomponente ist ein JFrame Gerüst, das eine JTabbedPane beinhaltet. Hier können
beliebig viele Registerkarten, in diesem Fall JPanels, eingefügt werden, die bestimmte Programmfunktionen bereitstellen. Die aktuelle Plugin-Version implementiert 4 solcher Registerkarten:
• configure database settings
• SQL editor
• database information
• disease search
Jede Registerkarte arbeitet unabhängig von den anderen, ist aber in der Lage
über den Controller zu kommunizieren. So ist es möglich zwischen den Tabs zu
wechseln, ohne dass der jeweilige innere Anwendungszustand verändert wird.
Operationen, die einen Datenbankzugriff oder länger andauernde Berechnungen initiieren werden jeweils als SwingWorker Threads ausgeführt. Durch dieses Konzept wird der Event Dispatcher Thread (EDT) in dem die GUI ausgeführt
wird stark entlastet, was dazu führt, dass die Benutzeroberfläche zu jedem Zeitpunkt responsiv bleibt.
Es folgt eine genauere Darstellung der Programmfunktionen.
configure database settings Nach der Initialisierung des Plugins ist dies die erste Registerkarte,
die dem Benutzer zur Verfügung steht. Alle anderen Tabs sind gesperrt, da die Anwendungslogik
zunächst valide Benutzerdaten für die Datenbankverbindung benötigt. Nach der Eingabe der Daten in die entsprechenden Textfelder wird durch
einen Klick auf „Ok“ ein Array zusammen mit
einem Identifier im Controller abgelegt und die
restlichen Tabs werden aktiviert. Weiterhin wird
geprüft, ob sich im Homeverzeichnis des Benutzers unter „/.cytoscape/“ bereits das Verzeichnis
„CyPPi_data“ für die temporären Dateien befindet.
Ist das nicht der Fall wird es angelegt und entsprechende Schreibrechte vergeben.
Abbildung 3: Registerkarte configure database settings
11
SQL editor Das Plugin implementiert einen SQL
Editor. Dieser ist über die ebenso benannte Registerkarte zu erreichen. Das dargestellte Fenster ist
horizontal zweigeteilt und bietet dem Benutzer im
oberen Bereich ein Eingabefeld für SQL Anfragen.
Die Reichhaltigkeit der erlauben Ausdrücke ist einzig durch die dem Benutzer von der Datenbank erteilten Rechte limitiert. Anfragen werden durch Betätigung des „Ok“ Buttons an den Server übermittelt. Ein neuer SQLProcessor wird instanziiert, führt
die an ihn übergebene Anfrage aus und liefert das
Ergebnis in Form einer HashMap zurück. Im unteren Bereich des Fensters befindet sich eine Tabelle, die dem Benutzer das Anfrageergebnis darstellt.
So wird die HashMap direkt an das Datenmodell Abbildung 4: Registerkarte SQL
der Tabelle übergeben und die Tabellenansicht neu editor
aufgebaut.
Neben der Editorfunktionalität steht dem Anwender ein weiteres, äußerst
nützliches Feature zur Verfügung. Zur ordnungsgemäßen Nutzung sind jedoch
einige Kenntnisse der Anfragesprache SQL und ein genaues Wissen über die
Datenbank erforderlich. Die Anwendungslogik orientiert sich sehr stark an den
Strukturen, die von der PPI Datenbank des Lehrstuhls vorgegeben werden. Ein
mögliches Szenario gestaltet sich wie folgt. Der Anwender extrahiert mit der
Anfrage eine Liste von Proteinen, die sich durch bestimmte, vom Anwender
vorgegebene Eigenschaften qualifizieren. Die Ergebnismenge wird im unteren
Bereich dargestellt und der neue Button „Generate Network“ wird aktiv. Betätigt der Anwender den Button wird er durch ein Dialogfenster aufgefordert, die
Tabellenspalte zu spezifizieren, welche die sogenannten Protein IDs (vgl. Abbildung 1, Proteintabelle, „protein_id“) enthält. Im Controller wird nun diese
Proteinliste abgelegt und der NetworkGenerator wird instanziiert. Dieser bereitet die Protein- und Interaktionsdaten für die Berechnung der Metriken und den
Import in Cytoscape vor und initiiert weitere Bearbeitungsschritte. Die genaue
Funktionsweise wird im Abschnitt 3.4.3 dargelegt. Dieses Verfahren ermöglicht
dem Anwender nach eigenen Kriterien Protein-Protein-Interaktionsnetzwerke
aus der Datenbank in Cytoscape zu importieren.
12
database information Da die PPI Datenbank des
Lehrstuhls einem stetigen Entwicklungsprozess unterliegt und demzufolge strukturelle Änderungen
nicht ausgeschlossen sind, hat sich im Zuge des
evolutionären Designs des Plugins gezeigt, dass
sich die Arbeit mit der Software effizienter gestaltet, wenn sich der Benutzer einen Überblick über
den aktuellen Datenbankzustand und im speziellen über die Tabellenstrukturen verschaffen kann.
Diesen Zweck erfüllt die Registerkarte „database
information“. Durch klicken des Buttons "get database information"wird eine Anfrage an den Systemkatalog der Zieldatenbank gesendet. Als Ergebnis erscheinen im oberen Bereich des Fensters alAbbildung 5: Registerkarte data- le, dem angemeldeten Benutzer zur Verfügung stebase information
henden Datenbanktabellen. Durch einen Klick auf
eine Tabellenzeile werden genauere Informationen
zu dem gewählten Eintrag abgerufen und im unteren Bereich des Fensters dargestellt. Mit diesem einfachen Hilfsmittel erschließt sich schnell die gesamte
Datenbankstruktur. Durch die Separierung der Registerkarten ist es möglich,
während der Konstruktion einer Anfrage im „SQL editor“ Informationen zu weiteren Tabellen abzurufen.
disease search Im Rahmen der Forschungsarbeit
der Arbeitsgruppe am Lehrstuhl sind vor allem
Protein-Protein-Interaktionsnetzwerke von besonderem Interesse, die mit bestimmten Krankheiten
in Verbindung gebracht werden können. Aus diesem Grund implementiert die Registerkarte „disease search“ eine speziell auf die PPI Datenbank angepasste Suchmaske. Es stehen zwei Arten der Suche zur Verfügung. Zum einen kann nach Proteinen gesucht werden, die mit einer OMIM (Online Mendelian Inheritance in Man) Kennung versehen sind, zum Anderen ist es möglich eine Freitextsuche durchzuführen, die darüber hinaus auf den
Phenotypbeschreibungen der GAD (Gene Association Database) Daten beruht. Eine detailliertere Beschreibung der zugrundeliegenden Anfragen befin- Abbildung 6: Registerkarte didet sich im Anhang. Hat sich der Anwender für eine sease search
Suchmethode entschieden und die Anfrage durch
betätigen des „search“ Buttons abgeschickt, erscheint in der Mitte des Fensters
eine tabellarische Ansicht des Suchergebnisses. Hier werden der Proteinname,
die UniProt sowie OMIM Kennung, eine Phenotypbeschreibung und die Quelle
des jeweiligen Ergebnisses ausgegeben. Wünscht der Anwender die Visualisierung der Daten in Cytoscape kann, wie in der Registerkarte „SQL editor“, der
Button „generate network“ betätigt werden.
Zur Bestimmung des jeweiligen Suchergebnisses sind 2 komplexe SQL Anfragen nötig. Bei der Suche nach OMIM Kennnummern werden die Tabellen
13
„protein“, „omim_disease“ und „omim_rel“ angesprochen. Der Suchstring wird
als Selektionskriterium auf die Attribute „omim_id“ aus „omim_disease“ und
„omim_genotype“ aus „omim_rel“ angewendet. Die entsprechenden Tupel werden über die Joinbedingungen: Übereinstimmung der „omim_id“ in „omim_disease“
und „omim_rel“, sowie der Übereinstimmung der „omim_id“ mit der „org_specific_id“
aus der „protein“ Tabelle mit den Tupeln der „protein“ Tabelle verbunden.
Diese Teilanfrage wird über eine Union mit dem Ergebnis der anderen Teilanfrage verschmolzen. Diese Anfrage wiederum bezieht die Daten aus den Tabellen „protein“, „gad“, „gad_omim“ und „gad_rel“. Die Tupel werden aus der
„gad_omim“ Tabelle anhand der OMIM Kennung selektiert und entlang des Pfades „gad_omim“–“gad_rel“–“protein“ über die entsprechenden Schlüsselwerte
zur Ergebnismenge konstruiert.
Bei der Freitextsuche sind die SQL Anfragen dahingehend modifiziert, dass
der Suchstring als Selektionskriterium auf die Attribute „broad_phenotype“ der
„gad“ Tabelle und „phenotype_description“ der „omim_disease“ Tabelle angewendet werden. Diese Attribute enthalten textuelle Beschreibungen und werden mit einer gewissen Unschärfe zur Bestimmung der Ergebnismenge verwendet. Das bedeutet, dass der Suchstring von beliebigen Zeichenketten eingerahmt
sein kann.
Die SQL Anfragen befinden sich im Anhang.
3.4.2
Controller
Neben der GUI wird beim Start des Plugins der Controller initialisiert. Er stellt
das zentrale Kommunikationsmedium der einzelnen Komponenten dar. Um für
zukünftige Entwicklungen die Limitationen möglichst gering zu halten, ist die
Speicherstruktur als assoziative Objekt HashMap implementiert. Der Controller
stellt mehrere Methoden bereit, die den Zugriff und die Manipulation der Daten
erlauben. Des Weiteren ist der Controller in der Lage, die Spalteninhalte einer
JTable zu extrahieren.
3.4.3
Hilfskomponenten
Die Gruppe der Hilfskomponenten ist die Toolbox des Plugins. Jede der Komponenten erfüllt einen bestimmten Zweck und operiert weitgehend autonom.
Das erleichtert die Weiterentwicklung und erhöht die Wiederverwendbarkeit
der Komponenten. Sie beinhalten den Hauptteil der Anwendungslogik und stehen allen Plugin Komponenten über bestimmte Schnittstellen zur Verfügung.
RProcessor Der RProcessor bildet die Schnittstelle zwischen dem Plugin und
der Statistiksoftware R. Diese Komponente ist in der Lage, adaptiv auf die Laufzeitumgebung des Zielsystems zu reagieren. Unter Unix wird vorausgesetzt, R
durch einen Shellaufruf zu starten. Sollte Windows detektiert werden, ist der
Rprocessor fähig, aus der Windows Registry alle benötigten Parameter zu akquirieren und die entsprechenden Anwendungspfade zu setzten. Wird an einer
Objektinstanz die Methode setExecScript aufgerufen wird aus dem Quellcode
heraus ein R-Skript generiert und im Arbeitsverzeichnis des Plugins zur weiteren Verarbeitung abgelegt. Das Skript bestimmt den Programmablauf innerhalb
von R. Zuerst wird die Bibliothek igraph geladen, welche für die Graphanalysen
14
benötigt wird. Danach wird das Arbeitsverzeichnis gesetzt und die vorbereiteten
Quelldateien geladen. In R wird nun ein iGraph Objekt erzeugt, die Zentralitätsmaße Betweenness, Closeness und PageRank werden berechnet uns schließlich
werden die Daten im GraphML Format in das Arbeitsverzeichnis exportiert. Im
Anhang befindet sich das implementierte R-Skript.
SQLProcessor Für die Anbindung des Plugins an eine MySQL Datenbank ist
der SQLProcessor zuständig. Zur Verbindung wird der JDBC Datenbanktreiber
von Java verwendet. Bei Instantiierung wird mit den Verbindungsdaten, die der
Controller bereitstellt der Kontakt zur Zieldatenbank aufgebaut. Der SQLProcessor stellt zwei Methoden bereit, die mit der SQL Anfrage als Argument, eine
Interaktion zwischen Plugin und Server ermöglichen. Die Methoden unterscheiden sich im Rückgabeformat, so kann die Ergebnismenge als HashMap oder
als mehrdimensionales Array angefordert werden. Darüber hinaus ist der SQLProcessor in der Lage, die Anfragebearbeitung serverseitig abzubrechen, was
bei vom Nutzer konstruierten Anfragen, die auch nach langer Bearbeitungszeit
kein Ergebnis liefern durchaus von Nutzen sein kann.
NetworkGenerator Der NetworkGenerator ist die zentrale Komponente des
Plugins welche es ermöglicht aus der PPI Datenbank Interaktionsnetzwerke
zu extrahieren und für die weitere Bearbeitung zur Verfügung zu stellen. Als
Inputformat wird ein String aus Schlüsselwerten der Datenbank verwendet,
der vom Controller bereitgestellt werden muss. Der NetworkGenerator nutzt
als Hauptdatenstruktur das HashSet und macht sich hierbei die Eigenschaft
der Duplikatfreiheit zunutze. Die Anwendungslogik ist speziell auf die Datenbankstruktur des Lehrstuhls angepasst und als mehrstufiger Prozess realisiert.
Zunächst werden Netzwerkdaten vorbereitet und anschließend weiterverarbeitet. Die Vorbereitungsphase umfasst das Abrufen der vom Benutzer erstellten
Liste der Schlüsselwerte für die Proteine. Diese Liste wird in eine SQL Anfrage
integriert, welche aus der Interaktionstabelle alle passenden Einträge zurückliefert. Das Anfrageergebnis wird in Proteinschlüsselwerte und Interaktionsschlüsselwerte zerlegt und in den entsprechenden HashSets („prot_ids“ und
„interaction_ids“) gespeichert. An diesem Punkt ist die Vorbereitungsphase
beendet und dem NetworkGenerator stehen alle Daten für weitere Berechnungen zur Verfügung. Wird nun die Methode „processWithRandImport“ aufgerufen initiiert das zwei Subroutinen. Zunächst die „generateProteinDataset“
Methode, welche alle Einträge der Proteintabelle selektiert, die Proteine mit den
Schlüsselwerten aus der „prot_ids“ Liste enthalten. Die Methode „generateInteractionDataset“
erzeugt auf gleichem Weg eine Ergebnismenge, die zu dem Schlüsselwerten der
„interaction_ids“ Liste passt. Beide Ergebnismengen werden durch die Verwendung des IOProcessors im Arbeitsverzeichnis des Plugins als Datei im CSV
Format abespeichert. Diese Dateien dienen als Input für die Berechnungen mit
R.
15
XMLtoCytoConverter Der XMLtoCytoConverter stellt das Bindeglied zwischen
den Quelldaten des Netzwerks und dem Netzwerkmodell von Cytoscape dar.
Nachdem die Netzwerkdaten mit R verarbeitet wurden liegen sie im Arbeitsverzeichnis im GraphML Dateiformat vor. Anders als andere Dateiformate für Graphen, die eigene Syntax verwenden, basiert GraphML auf dem XML Standard.
Mit GraphML lassen sich unter anderem gerichtete und ungerichtete Graphen,
Daten zur visuellen Repräsentation sowie anwendungsspezifische Attributdaten
modellieren. Die von R ausgegebene Datei weist folgende Struktur auf:
Abbildung 7: XML Struktur der Datei
Wird nun an einer Objektinstanz des Konverters die Methode „convertXMLtoCyto“
mit dem Dateinamen der Quelldaten und der Netzwerkbezeichnung für Cytoscape aufgerufen werden ein Netzwerkmodell (CyNetwork) und die Netzwerkattribute (CyAttributes) initialisiert und mithilfe des JDOM XML Parsers
die Datei zur weiteren Verarbeitung vorbereitet. Die Knoten- und Kantenelemente werden in separaten Listen gesammelt und daraufhin die Subroutinen
„createCyNodes“ und „createCyEdges“ aufgerufen, die jeweils iterativ die Elemente der übergebenen Listen auswerten, dem CyNetwork Knoten(CyNode) und
Kanten (CyEdge) hinzu fügen und diese mit CyAttributes versehen.
16
4
Ergebnisse
Der Prototyp des implementierten Plugins (CyPPI plugin) für Cytoscape erfüllt,
die im Rahmen der Bachelorarbeit aufgestellten Zielstellungen. Durch die Verwendung des Java JDBC Datenbanktreibers ist es möglich, eine Kommunikationsverbindung des CyPPI plugins mit jeder beliebigen MySQL Datenbank aufzubauen. Die Datenbank kann lokal oder auch über die Netzwerkverbindung
ansprechbar sein. Der implementierte SQL Editor erlaubt dem Benutzer die Interaktion mit der Datenbank, ungeachtet der zugrunde liegenden Tabellenstrukturen. Die Möglichkeiten des Benutzers werden ausschließlich durch das Rechtemanagement des Servers restringiert. Die weiteren Komponenten des CyPPI
plugins sind jedoch im Kern auf die Struktur der vom Lehrstuhl zur Verfügung
gestellten PPI Datenbank zugeschnitten.
Die Vorstellung der Ergebnisse erfolgt im Folgenden exemplarisch anhand
der Visualisierung des PPI Netzwerks für Lungenkrebs mit der OMIM Kennung
#211980.
Nachdem sich der Benutzer über das CyPPI plugin mit der Datenbank des
Lehrstuhls verbunden hat wird die Registerkarte „disease search“ aufgerufen.
Dort wird mithilfe der Suchoption „OMIM - search“ nach der Kennung „211980“
gesucht, da Lungenkrebs in der Online Mendelian Inheritance in Man Datenbank unter dieser ID gelistet wird.
Abbildung 8: Suchergebnis für die OMIM ID 211980
Die Suchanfrage liefert insgesamt 6 Proteine zurück, die mit dieser Krankheit assoziiert sind. Nun werden die Netzwerkgenerierung, die Berechnung der
Zentralitätsmaße sowie der Import in Cytoscape initiiert. Nach einem kurzen
Moment stehen die Daten in Cytoscape zur Verfügung, ein Networkview wird
erzeugt und das PPI Netz ist sichtbar.
Durch die Berücksichtigung aller Interaktionspartner erster Ordnung (nächste Nachbarn) besteht das Netzwerk nunmehr aus 599 Konten und 846 Kanten.
Die initiale Darstellung durch Cytoscape erfolgt in Form des GridLayouts.
17
Abbildung 9: Initiale Netzwerkdarstellung von Cytoscape
Durch die Bearbeitung mit R wurden dem Netzwerk im Zuge des Imports
folgende Zusatzattribute hinzugefügt:
• betweenness centrality
• betweenness centrality (normalisiert)
• closeness centrality
• degree centrality
• PageRank
Diese Metainformationen über die Netzwerkstruktur
können nun zur Verbesserung der Visualisierung verwendet werden. Im vorliegenden Fall wird die visuelle
Repräsentation mit den Attributen Cy_closeness und
Cy_pagerank modifiziert um bedeutende Knoten (Proteine) hervorzuheben.
Da es sich um nummerische Werte handelt, eignet
sich im VizMapper die Option des Continous Mapping.
Der Grafische Explorer erleichtert hierbei die Justierung der Farb- und Größenskale. Darüber hinaus werden die Knoten mit der UniProt Id beschriftet und im
Tooltip eines jeden Knotens wird der Proteinname angezeigt. Das vorläufige Ergebnis der Visualisierung gibt
mehr Aufschluss über die Graphenstruktur (vgl. Abb.
11).
Abbildung 10: VizMapper
Optionspanel
18
Abbildung 11: Modifikation der Darstellung des Netzwerks
Im nächsten Schritt werden Layoutalgorithmen ausgeführt um die Positionierung der Knoten und Kanten zu verbessern. Mit dem Force-directed Layout
werden die Netzwerkstrukturen besonders deutlich dargestellt. Somit ändert
sich die zunächst gitterförmige Anordnung in die folgende:
Abbildung 12: Anwendung des Force-directed Layouts (mit Detaildarstellung)
19
Durch die zusätzlichen Metainformationen lässt sich ein weiterer, äußerst
nützlicher Layoutalgorithmus anwenden. Das Group Attributes Layout bildet
anhand der Wertemenge des gewählten Attributs Gruppen von Kotenmengen
und verteilt diese auf der sichtbaren Fläche. Beispielhaft wurde in der nächten
Abbildung das Layout mit der degree centrality durchgeführt. Dadurch werden
die entsprechenden Proteingruppen gut sichtbar.
Abbildung 13: Anwendung des Group Attributes Layout
5
Ausblick
Das im Rahmen der Bachelorarbeit stellt einen Prototyp dar. Es wurde versucht
das Modell-View-Controller (MVC) Konzept zu berücksichtigen. Hierbei handelt es sich um ein Strukturkonzept des Softwaredesigns. Das Modell repräsentiert die zugrunde liegende Datenstruktur, die View oder auch Sicht ist für
die Darstellung der Daten des Modells verantwortlich, der Controller steuert
den Programmablauf und kann die Daten des Modells verändern. Das Plugin
realisiert dieses Konzept nur rudimentär, weshalb es im nächsten Entwicklungszyklus anzuraten ist, die Komponenten dahingehend anzupassen. Das würde
die Wartbarkeit und Wiederverwendbarkeit der bestehenden und zukünftigen
Pluginkomponenten steigern.
Ein nützliches und bereits partiell implementiertes Feature ist die Berücksichtigung eines Konfidenzlevels bei der Netzwerkgenerierung. Die aktuelle Pluginversion stellt lediglich die Eingabemaske zur Verfügung, welche jedoch keine
Funktionalität bereitstellt. Das Konfidenzlevel soll bei der Netzwerkgenerierung
die Akquirierung der Interaktionen limitieren. Dies soll nach der Maßgabe geschehen, dass nur solche Interaktionen selektiert werden, die in einer Mindestanzahl von Datenbankquellen zu finden sind. Ein Konfidenzlevel von 3 bedeutet also, dass eine Interaktion und demzufolge auch die Interaktionspartner in
mindestens 3 Quelldatenbanken gelistet sein müssen um in das Zielnetzwerk
aufgenommen zu werden. Das wiederum führt zu kleineren Netzwerken, die
auf einer breiteren Wissensbasis beruhen.
20
Zur Effizienzsteigerung des Arbeitsablaufs könnte weiterhin die automatischen Anpassung der Visualisierungsoptionen verbessert werden. Der von Cytoscape bereitgestellte VizMapper verfügt über eine gut dokumentierte API, die
es ermöglicht, während des Datenimports die Visualisierungseigenschaften festzulegen. So könnten von vornherein die Knoten des Netzwerks mit Beschriftungen versehen werden, oder auch die Kanten anhand der Datenbankquelle nach
einer bestimmten Vorgabe eingefärbt werden.
21
6
Verzeichnisse
Abbildungsverzeichnis
1
2
3
4
5
6
7
8
9
10
11
12
13
Datenbankschema . . . . . . . . . . . . . . . . . . . . . . . . .
Klassendiagramm des CyPPI Plugins . . . . . . . . . . . . . . .
Registerkarte configure database settings . . . . . . . . . . . . .
Registerkarte SQL editor . . . . . . . . . . . . . . . . . . . . . .
Registerkarte database information . . . . . . . . . . . . . . . .
Registerkarte disease search . . . . . . . . . . . . . . . . . . . .
XML Struktur der Datei . . . . . . . . . . . . . . . . . . . . . .
Suchergebnis für die OMIM ID 211980 . . . . . . . . . . . . . .
Initiale Netzwerkdarstellung von Cytoscape . . . . . . . . . . .
VizMapper Optionspanel . . . . . . . . . . . . . . . . . . . . . .
Modifikation der Darstellung des Netzwerks . . . . . . . . . . .
Anwendung des Force-directed Layouts (mit Detaildarstellung)
Anwendung des Group Attributes Layout . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
6
10
11
12
13
13
16
17
18
18
19
19
20
Literatur
[1] C HRISTEN, Philipp ; JAUSSI, Rolf: Biochemie. Springer, 2005 (SpringerLehrbuch XVI). – 635 S. – ISBN: 978-3-540-21164-8
[2] U ETZ, Peter ; P OHL, Ehmke:
Protein-Protein- und Protein-DNAInteraktionen. In: Wink et al., Molekulare Biotechnologie, Wiley-VCH (2004)
[3] S ULTAN, Marc ; S CHULZ, Marcel H. ; R ICHARD, Hugues ; M AGEN, Alon ;
K LINGENHOFF, Andreas ; S CHERF, Matthias ; S EIFERT, Martin ; B ORODINA,
Tatjana ; S OLDATOV, Aleksey ; PARKHOMCHUK, Dmitri ; S CHMIDT, Dominic
; O’K EEFFE, Sean ; H AAS, Stefan ; V INGRON, Martin ; L EHRACH, Hans ;
YASPO, Marie-Laure: A global view of gene activity and alternative splicing
by deep sequencing of the human transcriptome. In: Science 321 (2008),
Aug, Nr. 5891, 956–960. http://dx.doi.org/10.1126/science.1160342.
– DOI 10.1126/science.1160342
[4] T RAJANOSKI, Z.: GEN-AU Projekt: Bioinformatik Integrationsnetzwerk. In:
Interuniversitäre Forschungsprojekte (WS 05/06), S. 23–24
[5] S CHMITT, Stefan ; KUHN, Daniel ; K LEBE, Gerhard: A New Method to Detect Related Function Among Proteins Independent of Sequence and Fold
Homology. In: Journal of Molecular Biology 323 (2002), Nr. 2, 387 - 406.
http://dx.doi.org/DOI:10.1016/S0022-2836(02)00811-2. – DOI DOI:
10.1016/S0022–2836(02)00811–2. – ISSN 0022–2836
[6] ORF: ORF ON Science – Neues Verständnis für Proteinfunktionen. http:
//science.orf.at/science/news/24146
[7] M ATHIVANAN, Suresh ; P ERIASWAMY, Balamurugan ; G ANDHI, TKB ; KAN DASAMY , Kumaran ; S URESH , Shubha ; M OHMOOD , Riaz ; R AMACHANDRA ,
22
YL ; PANDEY, Akhilesh: An evaluation of human protein-protein interaction data in the public domain. In: BMC Bioinformatics 7 (2006), Nr. Suppl 5, S. S19. http://dx.doi.org/10.1186/1471-2105-7-S5-S19. – DOI
10.1186/1471–2105–7–S5–S19. – ISSN 1471–2105
[8] C LARKE, Paul A. ; P OELE, Robert te ; W OOSTER, Richard ; W ORKMAN, Paul:
Gene expression microarray analysis in cancer biology, pharmacology, and
drug development: progress and potential. In: Biochemical Pharmacology 62 (2001), Nr. 10, 1311 - 1336. http://dx.doi.org/DOI:10.1016/
S0006-2952(01)00785-7. – DOI DOI: 10.1016/S0006–2952(01)00785–7.
– ISSN 0006–2952
23
A
Anhang
A.1
SQL Anfragen
SQL Anfrage für die Suche nach einer OMIM ID.
SELECT DISTINCT p . protein_name , p . p r i m a r y _ u n i p r o t _ i d ,
p . o r g _ s p e c i f i c _ i d , omdis . p h e n o t y p e _ d e s c r i p t i o n , " omim " AS Source
FROM p r o t e i n p , omim_disease omdis , omim_rel omrel
WHERE ( omdis . omim_id = SUCHSTRING or omrel . omim_genotype = SUCHSTRING)
AND omrel . omim_id = omdis . omim_id
AND ( omdis . omim_id = p . o r g _ s p e c i f i c _ i d
or omrel . omim_genotype = p . o r g _ s p e c i f i c _ i d )
UNION
SELECT DISTINCT p . protein_name , p . p r i m a r y _ u n i p r o t _ i d ,
p . o r g _ s p e c i f i c _ i d , g . broad_phenotype , " gad " AS Source
FROM p r o t e i n p , gad_omim gom , gad g , g a d _ r e l gr
WHERE gom . omim_id = SUCHSTRING
AND gom . gad_id = g . gad_id
AND gr . gad_id = g . gad_id
AND gr . gene_id = p . gene_id ;
SQL Anfrage für die Freitextsuche
SELECT DISTINCT p . protein_name , p . p r i m a r y _ u n i p r o t _ i d ,
p . o r g _ s p e c i f i c _ i d , g . broad_phenotype , " gad " AS Source
FROM p r o t e i n p , gad g , g a d _ r e l gr
WHERE g . broad_phenotype LIKE "%SUCHSTRING%"
AND g . gad_id = gr . gad_id
AND gr . gene_id = p . gene_id
UNION
SELECT DISTINCT p . protein_name , p . p r i m a r y _ u n i p r o t _ i d ,
p . o r g _ s p e c i f i c _ i d , omdis . p h e n o t y p e _ d e s c r i p t i o n , " omim " AS Source
FROM p r o t e i n p , omim_disease omdis
WHERE omdis . p h e n o t y p e _ d e s c r i p t i o n LIKE "%SUCHSTRING%"
AND omdis . omim_id = p . o r g _ s p e c i f i c _ i d ;
24
A.2
R-Skript
library ( igraph )
setwd ( "<u s e r . home>/ . c y t o s c a p e / CyPPi _ data " )
network <− read . csv ( " Cy_raw_ i n t e r a c t i o n d a t a . c s v " , header=TRUE , sep=" \ t " )
nodes <− read . csv ( " Cy_raw_ p r o t e i n d a t a . c s v " , header=TRUE , sep=" \ t " )
g <− graph . data . frame ( network , d i r e c t e d=FALSE , v e r t i c e s=nodes )
V( g ) $Cy_ degree _ c e n t r a l i t y <− degree ( g ) / ( vcount ( g)−1)
E ( g ) $Cy_ betweenness _ c e n t r a l i t y _ edge <− edge . betweenness ( g )
V( g ) $Cy_ betweenness _ c e n t r a l i t y <− betweenness ( g )
V( g ) $Cy_ betweenness _ c e n t r a l i t y _ normalized <− 2∗betweenness ( g ) / ( ( vcount ( g)−1)∗( vcount ( g) −2))
V( g ) $Cy_ c l o s e n e s s <− c l o s e n e s s ( g )
V( g ) $Cy_ pagerank <− page . rank ( g ) $ v e c t o r
write . graph ( g , " Cy_ p r o c e s s e d _ Network . graphml " , " graphml " )
q()
A.3
Verwendete Software
• Cytoscape
• Eclipse IDE
• Microsoft Office
• JUDE Professional (Trail)
• TeXnicCenter
25
Herunterladen