Design und Implementierung einer Datenbank für das Projekt ALPiC

Werbung
Technische Fakultät
Universität Bielefeld
Design und Implementierung
einer Datenbank
für das Projekt ALPiC
Projektleiter: Prof. Dr. Karsten Niehaus
Betreuer: Dr. Dieter Kapp
Dr.-Ing. Frank Zöllner
Dipl. Inform. Marko Tscherepanow
Bachelorarbeit von Sebastian Janowski
15. Juli 2005
Zusammenfassung
Die Bachelorarbeit behandelt das Thema Design und Implementierung einer
”
Datenbank für das Projekt ALPiC“. Die in dieser Bachelorarbeit entwickelte
Datenbank soll in das Laborinformationssystem des Projektes ALPiC integriert werden und die Experimentdaten der Laborversuche verwalten und organisieren. Das Projekt ALPiC ist ein interdisziplinäres Forschungsprojekt,
dessen Ziel es ist, eine automatische Lokalisation von Proteinen in lebenden
Zellen durchzuführen.
In dieser Arbeit wird auf das Projekt ALPiC, sowie auf den Aufbau des
Laborinformationssystems und die dafür entwickelte Datenbank eingegangen. Bei der Implementierung der Datenbank werden die Anforderungen,
das Datenbankdesign, die verwendete Datenbank, sowie der physische Datenbankentwurf und dessen Implementierung vorgestellt.
Neben der Datenbank wurden in dieser Bachelorarbeit Anwendungsprogramme entwickelt, welche eine automatische Datenbankimplementierung
und eine Experimentsuche durchführen. Mit diesen Programmen soll den
Anwendern eine schnelle und mühelose Datenbankimplementierung und Datensuche ermöglicht werden. Weiterhin wurde ein Modul entwickelt, welches
den Laborgeräten und Laborprogrammen zur Kommunikation mit der Datenbank verhilft.
In dieser Arbeit soll der Prozess des Datenbankentwurfs und die dafür
implementierten Programme vorgestellt und erläutert werden.
Inhaltsverzeichnis
1 Einführung
1.1 Das Projekt ALPiC . . . . . . . . . . . . . . . . . . . . . . .
1.2 Ziel der Bachelorarbeit . . . . . . . . . . . . . . . . . . . . . .
1
1
3
2 Laborinformationssysteme
2.1 Grundlegender Aufbau eines Laborinformationssystems . . . .
2.2 Das ALPiC -Laborinformationssystem . . . . . . . . . . . . . .
5
5
7
3 Datenbanken & Datenbankentwurf
9
3.1 Einführung in Datenbanken . . . . . . . . . . . . . . . . . . . 9
3.2 Motivation für eine Datenbank . . . . . . . . . . . . . . . . . . 10
3.3 Datenbankentwurf . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Implementierung einer Datenbank
4.1 Anforderungen . . . . . . . . . .
4.2 Datenbankdesign . . . . . . . . .
4.3 Auswahl einer Datenbank . . . .
4.4 Physischer Datenbankentwurf . .
4.5 Datenbankschnittstellen . . . . .
4.5.1 LabVIEW . . . . . . . . .
4.5.2 DatabaseContentCreator .
4.5.3 ExperimentSearcher . . . .
für das
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
Projekt ALPiC
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
5 Zusammenfassung und Ausblick
A Anhang
A.1 ER-Diagramm des Datenbankmodells . . . . . . . . . . . . .
A.2 DDL-Statements für die Datenbankimplementierung . . . . .
A.3 Einbindung von C-Funktionen in LabVIEW . . . . . . . . .
A.4 Technische Details über die Programme ExperimentSearcher
und DatabaseCreator . . . . . . . . . . . . . . . . . . . . . .
Literatur
13
13
14
19
20
22
23
24
25
30
31
. 31
. 32
. 35
. 35
37
1
Einführung
In der Einführung wird das Projekt ALPiC vorgestellt. Neben den Zielen
dieses Forschungsprojektes werden die Methoden für eine Proteinlokalisation
erklärt und erläutert. Im Anschluss werden die Ziele dieser Bachelorarbeit
präsentiert.
1.1
Das Projekt ALPiC
Das Projekt ALPiC Automatic Localisation of the Proteom in Living Cells“
”
ist ein interdisziplinäres Forschungsprojekt der Arbeitsgruppe Angewand”
te Informatik“, Lehrstuhl für Genetik und der Firma Olympus BioSystems
[3]. Ziel dieses Projektes ist die automatische Lokalisation von unbekannten
Proteinen in lebenden Zellen sowie die Entwicklung von Algorithmen und
Methoden zur qualitativen Analyse.
Die Proteinlokalisation spielt eine wichtige Rolle in der Aufklärung der
Proteinfunktion und deren Einordnung in das metabolische System der Zelle.
Es ist im weitesten Sinne nicht möglich, alleine von der DNA-Sequenz auf
die Funktion der Proteine zu schließen. Auch die Proteinstruktur gibt keine
genaue Aussage über die Funktion des Proteins. Das Wissen um die Funktion
eines Proteins, kann wichtige Fragestellungen in der Medizin und Biologie
klären. Die Erkenntnisse können einen wesentlichen Beitrag zur Entwicklung
von neuen Wirkstoffen gegen Krankheiten leisten.
Die Proteomanalytik der Forschungsgruppe ALPiC wird im Labor der
Universität Bielefeld durchgeführt. Die Proteinlokalisation ist ein komplizierter Prozess, der von vielen Faktoren abhängt. Zum Gelingen eines Versuchs,
sind diverse Versuchsschritte notwendig, die exakt auf einander abgestimmt
sein müssen. Im folgenden Abschnitt wird das Prinzip der Proteinlokalisation
beschrieben (siehe Abb. 1).
Durch den Einsatz von Reporterproteinen, konnten Proteinwirkungen
und -wechselwirkungen in ihrem Funktionsumfang eingegrenzt werden. Dabei
werden die Gene der Reporterproteine mit den zu untersuchenden Proteingenen fusioniert. Die Fluoreszenz von Reporterproteinen, wie z.B. dem GFP
(Green Fluorescent Protein), ergab die Möglichkeit, in vivo Untersuchungen
durchzuführen und eine Lokalisation im natürlichen Lebensraum der Zelle.
Abbildung 2 zeigt eine Zelle mit injizierten Fusionsproteinen und die von
den Reporterproteinen ausgehende Fluoreszenz.
Das Einschleusen der zu untersuchenden Proteine und der Reporterproteine, wird mit Hilfe eines Konstrukts realisiert. Bei einem Konstrukt handelt
es sich um einen Vektor (kleiner DNA-Ring), welcher die zu untersuchende DNA gekoppelt mit Reporterproteingenen enthält. Ein Vektor ist ein so
1
Abbildung 1: Eine grafische Darstellung eines typischen Versuchablaufs im
Labor. Die Versuchsdarstellung zeigt die Art und Weise, wie die zu untersuchenden Proteine mit Reporterproteinen fusioniert und in die Zelle transferiert werden. Ergebnis des Versuchs ist die von den Fusionsproteinen ausgehende Fluoreszenz, die unter dem Mikroskop wahrgenommen werden kann.
genanntes Transportvehikel zur Übertragung fremder Nukleinsäure in eine
Empfängerzelle. Durch den Einbau eines fremden Gens in den Vektor wird
ein rekombinantes DNA-Molekül erzeugt, welches sich autonom in der Wirtszelle replizieren kann [2].
Das Einschleusen des Konstrukts in die Wirtszelle kann mit diversen
Methoden durchgeführt werden. In den meisten Fällen ist die Transfektionsmethode der Wahl die Lipofektion [11]. Bei der Lipofektion bilden sich
Lipid-DNA-Komplexe mit denen die Wirtszellen transfiziert werden. Die exprimierten Fusionsproteine können dann anhand der Fluoreszenz lokalisiert
werden.
Zusätzlich kann die Anfärbung von Zellorganellen mit Fluoreszenzfarbstoffen ermöglicht werden. Fluoreszenzfarbstoffe färben spezifisch Organellen an und ermöglichen den Informationsgewinn über Form, Größe, Verteilung und Volumenanteil in dem verwendeten Zellsystem. In Verbindung mit
den Fusionsproteinen, ermöglicht die Anfärbung eine Kolokalisation von angefärbten Organellen und dem zu untersuchenden Fusionsprotein.
Falls nötig oder gewünscht, werden Wirkstoffe in die Zelle injiziert, welche
Einfluss auf die Proteinfunktionen nehmen. Auch das Sichtbarmachen der
Proteine mit Hilfe von Antikörpern, ist ein mögliches Szenario, das nur selten
im Labor praktiziert wird.
2
Abbildung 2: Die Abbildung zeigt eine Zelle mit injizierten Fusionsproteinen.
Anhand der Fluoreszenz kann das zu untersuchende Protein bei der Membran
gefunden werden. Mit dieser Erkenntnis kann die Funktion des Proteins näher
charakterisiert werden.
Die Grundlage für die Proteinlokalisation bilden Zelllinien des asiatischen
Falters Spodoptera frugiperda (SF9). Die Zellen sind wegen ihres optimalen Wachstums, der hohen Transfektionsfähigkeit und Proteinexpression ausgewählt worden.
Eine Automatisierung der Proteomanalytik ist aufgrund des Untersuchungsumfangs im Hinblick auf die Größe einer Genombibliothek unumgänglich. Eine Genombibilothek umfasst zu viele zu untersuchende Proteine, als
dass sie in vollem Umfang ohne automatische Unterstützung untersucht werden könnten. Es ist daher geplant, eine vollautomatisierbare Screeningplattform einzurichten, welche die Proteinlokalisation im Hochdurchsatz durchführt. Dementsprechend steigt im Hochdurchsatz die Anzahl der Experimentdaten und Mikroskopbilder. Zur Verwaltung und Organisation dieser Daten,
ist geplant, eine Datenbank in den Laborbetrieb zu integrieren.
1.2
Ziel der Bachelorarbeit
Das Ziel dieser Arbeit ist die Integration einer Datenbank in den Laborbetrieb. Die Datenbank soll die Verwaltung und Organisation der Experimentdaten unterstützen. Die im Labor entstandenen Experimentdaten sollen in
der Datenbank auf strukturierte Weise gespeichert werden.
Weiterhin war die Implementierung von Algorithmen zur Kommunikation
mit der Datenbank Teil dieser Arbeit. Mit Hilfe dieser Algorithmen, sollen die
in dem Labor benutzten Geräte (Kamera, Mikroskop) ihre anfallenden Expe3
rimentdaten in der Datenbank speichern. Auch die vom Benutzer definierten
Versuchseinstellungen sollen in Verbindung mit den Laborgeräteeinstellungen in dieser gespeichert werden.
Zusätzlich wurde im Rahmen dieser Arbeit ein Benutzerprogramm implementiert, das den Zugriff auf die Experimentdaten ermöglicht. Über die
Programmoberfläche ist dem Benutzer die Möglichkeit gegeben, nach Experimenten in der Datenbank zu suchen. Die Visualisierung eines Experiments
erfolgt über eine grafische Oberfläche. Diese stellt alle relevanten Informationen bezüglich des Experiments und die dazugehörigen Mikroskopbilder
dar.
4
2
Laborinformationssysteme
Im Labor der Forschungsgruppe ALPiC wird für die Proteomanalyse ein Laborinformationssystem eingesetzt, welches die Wissenschaftler bei der Arbeit
unterstützt. Das folgende Kapitel erklärt allgemein, wie ein Laborinformationssystem aufgebaut ist. Im Anschluss wird das Laborinformationssytsem
der ALPiC -Forschungsgruppe und die Komponenten, die in das Laborinformationssystem integriert werden sollen, vorgestellt.
2.1
Grundlegender Aufbau eines Laborinformationssystems
Unter einem Laborinformationssystem (LIM: laboratory information management system) ist ein EDV-System zu verstehen, das die Verwaltung und
Organisation des Laborbetriebs unterstützt. Da die Arbeitsabläufe in jedem
Labor unterschiedlich sein können, kann von vorneherein nicht gesagt werden, welche Aufgaben ein solches System erfüllen muss. Aus diesem Grund
ist auch eine Standardsoftware-Lösung in den meisten Fällen nicht geeignet.
Eine exakte Abbildung des Laborbetriebs kann nur durch eine Individualentwicklung erreicht werden.
Trotz diverser Unterschiede im Aufbau eines solchen Systems, gibt es
einen LIM-Kernbereich, der in den meisten Fällen gleich aussieht (siehe
Abb. 3). Als erstes werden die zu untersuchenden Komponenten ausgewählt.
In einer Experimentplanung wird festgelegt, mit welchen Methoden diese
Komponenten bestimmt und untersucht werden. Im Weiteren werden die
jeweiligen Analyseverfahren den Komponenten zugewiesen. Bei der Untersuchung der Komponenten, unterlaufen diese diversen Analyseschritten. Am
Ende der Untersuchungen, werden die Ergebnisse zusammengefasst und freigegeben.
Neben den oben genannten Aufgaben, können auch Verwaltungsaufgaben in ein LIM integriert werden, wie z.B. die Verwaltung der Laborgeräte
(Kalibrierung, Wartung) oder die Verwaltung der Mitarbeiterdaten.
Um die Effektivität eines LIMs zu steigern, sollte es in der Lage sein, Daten mit anderen EDV-Systemen oder Laborgeräten auf elektronische Weise
auszutauschen. Dieses betrifft z.B. die automatische Datenübernahme von
Analysegeräten, Mikroskopen oder Kameras. Weiterhin ist es von Vorteil,
wenn eine Koppelung mit bestehenden Informationssystemen möglich ist.
LIMs wie die von der Universität Wien, Heidelberg und Stuttgart arbeiten
nach einem bestimmten Grundprinzip. Fast immer ist ein mehrbenutzerfähiges LIM im Einsatz, das mehreren Benutzern ermöglicht, von verschiedenen
Arbeitsplätzen mit dem System zu arbeiten. Weiterhin muss eine jederzeitige
5
Abbildung 3: Trotz Unterschiede im Aufbau eines Laborinformationssystems,
ist das Grundprinzip fast immer gleich. Am Anfang wird ein Experimentplan definiert. Die zu untersuchenden Komponenten werden festgelegt. Anschließend werden den Komponenten Analyseverfahren zugeordnet. Nach der
Durchführung der notwendigen Analyseschritte, werden die Ergebnisse zusammengefasst und freigegeben.
Verfügbarkeit und Sicherheit der Daten gewährleistet werden. Diese Anforderungen legen den Einsatz von Client-Server-Systemen und die Datenverwaltung mittels einer Datenbank nahe.
Ein Client-Server-System besteht aus einem Client, der eine Verbindung
mit einem Server aufbaut. Der Client bietet die Benutzeroberfläche oder die
Benutzerschnittstelle der Anwendung an. Der Server stellt die Funktionalität zur Verfügung. Vorteil eines solchen Systems ist die bessere Nutzung
der Hardware und vor allem, dass auf diese Weise mehrere Benutzer mit
denselben Datenbeständen arbeiten können. Die Datenspeicherung erfolgt
auf dem Server mittels einer Datenbank.
Ein existierendes System, welches die Anforderungen des jetzigen Laborbetriebs in der ALPiC -Forschungsgruppe im weitesten Sinne erfüllt, ist das
Projekt Open Microscopy Enviroment (OME) [9]. Ergebnis des Projekts ist
ein Programmpaket, welches im Zusammenhang mit einer Datenbank, die
Verwaltung und Analyse von Mikroskopbildern und Experimentdaten übernimmt. Ziel dieses Projekts ist es, multidimensionale Mikroskopbilder zu
speichern und zu analysieren. Die Analyse beinhaltet eine Zelllokalisation,
wie auch eine phenotypische Lokalisation. Über die OME-Programme kann
der Benutzer seine Experimente definieren, das Mikroskop entsprechend der
Versuche konfigurieren und anfallende Daten verwalten.
6
Die Architektur basiert auf einem Client-Server-Modell. Die Daten und
Metadaten werden in einer Datenbank auf einem Server gespeichert. Der
Zugriff auf die Daten erfolgt über eine Benutzeroberfläche auf einem Client.
Die Integration dieses Systems in den jetzigen Laborbetrieb hat sich
durchaus schwierig gestaltet. Aufgrund von Portierungsproblemen war es
nicht möglich, die Programmpakete mit dem jetzigen System zu verbinden.
Dementsprechend wurde beschlossen, das momentan eingesetzte Laborinformationssystem durch eine Individualentwicklung zu erweitern.
2.2
Das ALPiC -Laborinformationssystem
Das zurzeit eingesetzte Laborinformationssystem besteht aus einem Mikroskop, gekoppelt mit einer Kamera. Gesteuert werden die Laborgeräte durch
einen zentralen PC, welcher mit Hilfe eines LabVIEW 1 -Programms die Steuerung ermöglicht. Die resultierenden Mikroskopbilder werden in Form von
TIFF-Dateien lokal auf der Festplatte des zentralen PCs gespeichert.
Geplant ist, das jetzige Laborinformationssystem um eine Datenbank und
Pumpe zu erweitern (Abb. 4 zeigt grafisch das geplante Laborinformationssystem). Das Laborinformationssystem soll mehrbenutzerfähig werden und den
permanenten Zugriff auf die Experimentdaten ermöglichen. Für die Erfüllung
dieser Anforderungen ist der Aufbau eines Client-Server-Systems in Verbindung mit einer Datenbank geplant.
In dem erweiterten System sollen alle Laborgeräte durch einen zentralen
PC gesteuert und angesprochen werden. Das LabVIEW -Programm soll neben der Ansteuerung der Laborgeräte dem Benutzer die Möglichkeit geben,
biologische Experimente zu definieren und festzulegen [7]. Zur Definition der
Experimente gehört die Wahl der Einstellungen der Laborgeräte, die Wahl
der im Experiment benutzten biologischen Komponenten und der zeitliche
Ablauf eines Experiments. Diese Einstellungen sollen über das in LabVIEW
geschriebene Anwendungsprogramm vorgenommen werden.
Neben der Kamera und dem Mikroskop soll zusätzlich eine Pumpe in das
Laborinformationssystem integriert werden. Die Aufgabe der Pumpe ist es,
die biologischen Komponenten in den vorgesehenen Volumen in eine Mikrotiterplatte zu pipettieren.
In dem erweiterten System sollen die Funktionen und Aufgaben der Kamera und des Mikroskops unverändert bleiben. Die Kamera soll weiterhin mit
Hilfe des Mikroskops die Expression der Fusionsproteine in der Mikrotiterplatte dokumentieren. Die entstandenen Bilder sollen anschließend in Form
1
LabVIEW ist eine graphische Programmiersprache, die für die Steuerung von technischen Geräten entwickelt wurde [6].
7
Abbildung 4: Eine grafische Darstellung des geplanten ALPiC Laborinformationssystems und der Datenfluß zwischen den einzelnen
Komponenten.
von TIFF-Dateien zurück zum zentralen PC gesendet werden, wo sie lokal
auf der Festplatte gespeichert werden.
Nach Beendigung eines Experiments, soll das LabVIEW -Programm die
Versuchseinstellungen und Laborgeräteeinstellungen in die Datenbank schreiben. Die Bilder sollen durch das LabVIEW -Programm in einen geschützten Bereich der Festplatte verlegt werden, wo sie vor unberechtigtem Zugriff
geschützt sind.
Bei Experimenten soll das LabVIEW -Programm die Planung unterstützen, indem es dem Benutzer Laborgeräteeinstellungen oder Versuchseinstellungen vorschlägt, die in der Datenbank vorhanden sind. Entsprechen
diese Vorschläge den neuen Experimentdefinitionen, sollen diese aus der Datenbank geladen und für ein neues Experiment verwendet werden. Gibt es
keine gespeicherten Einträge, welche für ein neues Experiment benutzt werden können, muss der Benutzer seine Experimentplanung per Hand in der
LabVIEW -Anwenderoberfläche anlegen.
Der Zugriff, die Visualisierung und die Suche von Experimentdaten soll
mittels des Programms ExperimentSearcher auf einem Client geschehen. Der
Zugriff auf die Mikroskopbilder soll mit Hilfe der in der Datenbank gespeicherten Informationen ermöglicht werden. Diese Informationen lassen die
Generierung des Pfades für jedes einzelne Mikroskopbild zu. Somit können
jedem Experiment die passenden Mikroskopbilder zugeordnet werden. Der
Aufruf der Bilder soll über den direkten Pfadzugriff erfolgen.
8
3
Datenbanken & Datenbankentwurf
In diesem Kapitel werden die Vorteile und Motivationen für den Einsatz einer Datenbank beschrieben. Vorab wird erwähnt, was genau eine Datenbank
ausmacht und wie diese arbeitet. Anhand der Anforderungen des ALPiC Laborinformationssystems wird dargestellt, in welchen Bereichen eine Datenbank den Laborbetrieb unterstützen kann. Der grundlegende Datenbankentwurfsprozess wird detailliert am Ende dieses Kapitels beschrieben und
erläutert.
3.1
Einführung in Datenbanken
Datenbanken sind im übertragenen Sinn Aufbewahrungsorte für Informationen. Eine Datenbank hat die Aufgabe, Informationen langfristig und sicher
aufzubewahren. Dabei sollen die Daten in strukturierter Weise gespeichert
werden.
Datenbanken laufen für den Benutzer unsichtbar im Hintergrund. Wenn
Anwender Daten integrieren oder auslesen wollen, geschieht das über ein
Benutzerprogramm, über das der Anwender die Daten eingibt bzw. angezeigt bekommt. Dieses Programm sendet die Daten zur Speicherung an die
Datenbank am Server bzw. holt sie dort ab. Der interne Ablauf einer Datenintegration bleibt dem Anwender verborgen. Die Integration oder das
Herauslesen von Daten kann auch direkt über eine Schnittstelle geschehen.
Meistens benutzen technische Geräte oder Anwendungsprogramme solch eine
Schnittstelle, um ihre Daten in der Datenbank zu speichern oder aus dieser
herauszulesen.
Jede Datenbank verwendet Basisfunktionalitäten, welche die einheitliche
Verwaltung aller Daten, eine Integritätssicherung und eine Datensicherung
garantieren (Basisfunktionalitäten basieren auf den Cood´schen Regeln [1]).
Auch der Zugriff auf die Daten durch mehrere Personen zum selben Zeitpunkt
wird von einem Datenbankmanagementsystem ermöglicht. Wenn gewünscht,
kann der Zugriff auf die gespeicherten Informationen verwehrt und somit
irrtümlicher Veränderung, Zerstörung oder unberechtigtem Zugriff vorgebeugt werden.
Der Zugriff auf die Daten kann durch verschiedene Arten von Programmen geschehen. Dementsprechend werden die Daten in einem Format gespeichert, dass für viele Zugriffsarten offen ist. Die am weitesten verbreitete
Speicherform, ist die Speicherung in Tabellenformen in SQL-Datenbanken.
Die am häufigsten eingesetzten Datenbanken arbeiten nach dem relationalem Modell und stellen für den Zugriff auf die Daten die genormte Sprache
SQL zur Verfügung. Einige bekannte Anbieter relationaler Datenbanksyste9
me sind IBM (Produktname: DB2), Oracle, Microsoft (Produktname: SQL
Server), Sybase (Produktname: SQL Anywhere) und MySQL.
In relationalen Datenbanken werden die Informationen in Form von Tabellen und Relationen gespeichert. Das relationale System unterstützt die
gängigen Datenformate, wie Zahlen und Zeichenketten. Jedoch kann das System keine Multimediadateien effizient speichern und verwalten. Multimediadateien sind komplexe Objekte, die nur von der Anwendung interpretiert
werden können, die diese Dateien auch nutzt. Im relationalen System kann
der Pfad der Datei gespeichert oder aus den gespeicherten Informationen
der Pfad erstellt werden, um eine Verwaltung von komplexen Objekten zu
ermöglichen.
Im Hinblick auf das Problem der Speicherung von Multimediadaten wurden objektrelationale bzw. objektorientierte Datenbanken entwickelt. Diese sind in der Lage komplexe Multimediadaten effizient zu verwalten, ohne
selbst den Inhalt interpretieren zu müssen.
3.2
Motivation für eine Datenbank
Es ist geplant, die Proteomanalyse im Hochdurchsatz durchzuführen. Dementsprechend entstehen viel mehr Daten, als dass es jetzt der Fall ist. Zudem
sollen auch die Einstellungen der Laborgeräte und die Versuchsdurchführung
dokumentiert werden. Diese Daten in Verbindung mit den Mikroskopbildern
müssen sicher und strukturiert gespeichert und verwaltet werden. Die Integration einer Datenbank ist angesichts der geplanten Hochdurchsatzanalyse
und der Anzahl neuer Daten unumgänglich. Es wäre möglich, die Daten weiterhin lokal auf der Festplatte zu speichern. Jedoch wäre die Verwaltung und
Organisation dieser Daten sehr aufwendig. Allein die Suche nach bestimmten
Experimenten würde angesichts der hohen Datenanzahl schwierig ausfallen.
Ein weiteres Problem wäre die Datenredundanz. Die Geräte- und Versuchseinstellungen werden sich nach einer gewissen Zeit wiederholen. Wenn diese
für jedes Experiment mitgespeichert werden, entsteht eine hohe Anzahl von
redundanten Datenbeständen. Mit Hilfe einer Datenbank können bestehende
Einstellungen immer wieder verwendet werden und müssen nicht jedes Mal
neu gespeichert werden.
Weiterhin ist geplant, ein mehrbenutzerfähiges LIM aufzubauen. Ohne
eine Datenbank wäre ein solches Projekt nicht möglich. Der gleichzeitige
Zugriff durch mehrere Benutzer auf gleiche Datenbestände kann sich durchaus schwierig gestalten. Jeder Benutzer müsste sich alle Daten lokal auf die
Festplatte speichern, um auf den gleichen Datenbeständen arbeiten und auf
diese zugreifen zu können. Bei einer Datenbank ermöglicht das Transaktionsmanagement des Datenbankmanagementsystems (DBMS) den Zugriff durch
10
mehrere Benutzer auf die Datenbestände.
3.3
Datenbankentwurf
Der Datenbankentwurfsprozess besteht aus mehreren Phasen (siehe Abb. 5,
[4]). In der ersten Phase werden die Erwartungen der Benutzer sowie die beabsichtigten Nutzungsarten der Datenbank definiert und analysiert. Die Anforderungen jeder Komponente, die mit der Datenbank interagieren soll, muss
in dem Analysevorgang erfasst und analysiert werden. Die Analyse beinhaltet die Transaktionsarten und deren Häufigkeit sowie den Informationsfluss
innerhalb des Systems. Auch die Ein- und Ausgabedaten für die Transaktionen werden spezifiziert. Das Ergebnis dieser Phase ist eine ausführliche und
vollständige Beschreibung der Benutzeranforderungen.
Abbildung 5: In der Abbildung werden die einzelnen Phasen in einem Datenbankentwurfsprozess dargestellt.
In der zweiten Phase wird ein konzeptueller Datenbankentwurf angefertigt. Das Ziel dieser Phase ist die Erstellung eines konzeptuellen Schemas für
die Datenbank, welches unabhängig von einem bestimmten Datenbankmodell
ist. Meistens wird das Schema mit einem ER-Modell (Entity-RelationshipModell) beschrieben. Das ER-Modell beschreibt das konzeptuelle Schema in
Form eines Diagramms. Es ist eine kompakte Beschreibung der Datenanforderungen und beinhaltet ausführliche Beschreibungen der Entitätstypen, Beziehungen und Einschränkungen. Dieses Konzept enthält keine Implementierungsdetails und ist somit leicht zu verstehen. Für die Beschreibung des konzeptuellen Datenbankschemas der ALPiC -Datenbank, wurde ein ER-Modell
aufgestellt.
In der dritten Phase geht es um die Auswahl eines Datenbankmanagementsystems. Die Wahl eines DBMS hängt von mehreren Faktoren ab. Auf
der einen Seite spielen technische Faktoren eine Rolle und auf der anderen
wirtschaftliche.
11
Als erstes muss geprüft werden, ob das ausgewählte DBMS für die Aufgaben geeignet ist. Bei der Wahl des DBMS, sollte entschieden werden, welcher
Datenbanktyp am geeignetsten für die Speicherung der anfallenden Daten ist
(relational, objektrelational oder andere). Auch die verfügbaren Benutzerund Programmierschnittstellen können Einfluss auf die Wahl haben. Weiterhin ist zu prüfen, ob das DBMS einen Client-Server-Betrieb unterstützt und
ob eine Einbindung in andere DBMS möglich ist.
Die wirtschaftlichen Faktoren betreffen z.B. die Software- und Hardwarebeschaffungskosten, sowie Wartungskosten.
In der vierten Phase wird das konzeptuelle Schema aus Phase zwei auf
das Datenbankmodell des gewählten DBMS abgebildet. Das Resultat dieser
Phase sollten DDL-Statements (Data-Definition-Language) in der Sprache
des gewählten DBMS sein.
In der fünften Phase werden die spezifischen Speicherstrukturen und Zugriffspfade für die Datenbank gewählt. Jedes DBMS bietet eine Vielzahl
von Optionen für die Dateiorganisation und Zugriffspfade an. Mit Hilfe dieser Optionen kann Einfluss auf die Reaktionszeit, Speicherplatznutzung und
den Transaktionsdurchsatz genommen werden. Die Optionen beinhalten verschiedene Arten der Indexierung, des Clusterings zusammenhängender Datensätze, wie auch die Verknüpfung zusammenhängender Datensätze über
Zeiger und verschiedene Hashing-Methoden. Das Resultat dieser Phase ist
eine erste Festlegung der Speicherstrukturen und Zugriffspfade auf die Datenbank.
In der letzten Phase wird die Datenbank implementiert, getestet und
schließlich für die Anwendung installiert. Hierbei werden alle Transaktionen
und Anwendungen getestet. Falls es nötig ist, kann in dieser Phase eine Änderung am physischen Datenbankentwurf und der Indexierung durchgeführt
werden.
12
4
Implementierung einer Datenbank für das
Projekt ALPiC
Dieses Kapitel behandelt den Datenbankentwurf und die Implementierung
einer Datenbank für das Projekt ALPiC. Die einzelnen Phasen des Datenbankentwurfs wurden in Kapitel 3 erläutert und erklärt. Im folgenden Kapitel
wird beschrieben, wie der Datenbankentwurf und die Implementierung der
verwendeten Datenbank aussehen.
4.1
Anforderungen
Die Datenbank soll alle relevanten Experimentdaten beinhalten. Zu den relevanten Daten zählen biologische Einstellungen und Komponenten, die technischen Einstellungen der Laborgeräte, der zeitliche Ablauf eines Experiments
und die Resultate in Form von Bildern.
Die Erfassung und Analyse der Anforderungen wurde mittels der jetzigen und geplanten Laborversuche durchgeführt. In der Datenbank sollen alle
biologischen Komponenten, die im Versuch gebraucht wurden gespeichert
werden. Dieses betrifft:
• die InsertDNA in Verbindung mit Accessionnummer, Länge und Herkunftsorganismus
• die benutzten Reportergene
• den Vektor
• das benutzte Konstrukt
• den Versuchsorganismus mit Namen und Stamm
• die benutzte Transfektionsmethode, mit genauem Ablauf, eventuellen
Abweichungen und den genauen Volumina für die verwendeten Komponenten
• eventuelle Zusätze, wie z.B. Farbstoffe, Wirkstoffe oder primäre und
sekundäre Antikörper. Zusätzlich muss für jeden einzelnen Zusatz angegeben werden, in welchen Volumen und wie lange es verwendet wurde.
Bei der Speicherung in die Datenbank, müssen auch die Zusammenhänge
der Komponenten untereinander berücksichtigt werden. So muss vermerkt
werden, wie genau das benutzte Konstrukt aufgebaut ist.
13
Ein Konstrukt besteht aus einem Vektor und einem bzw. mehreren Reportergenen, die mit der InsertDNA fusioniert wurden. Bei der Fusion von
Reportergenen und der InsertDNA wird meistens ein Spacer (kurze funktionslose DNA-Sequenz) zwischen die beiden Komponenten gelegt, damit das
Reportergen die Funktion des zu untersuchenden Proteins nicht beeinflusst.
Diese Informationen müssen für jedes Experiment gespeichert werden.
Zusätzlich sollen der Experimentator, das Datum, die Ziele und die Erkenntnisse gespeichert werden. Falls es einen Folgeversuch gibt, soll dieser in
dem Experiment vermerkt werden.
Neben den biologischen Details eines Experiments, spielen auch die technischen Einstellungen der Kamera und des Mikroskops eine wichtige Rolle.
Bei dem Mikroskop ist die Wahl der richtigen Anregungsfilter, Sperrfilter und
der Objektive für das Gelingen eines qualitativen Bildes ausschlaggebend. Zudem kommen noch die Einstellungen der Lichtquelle. Auch die Kameraeinstellungen, wie z.B. die Belichtungszeit oder das binning 2 sollen gespeichert
werden.
Weiter wird von der Datenbank gefordert, dass sie eine C- und JAVASchnittstelle zur Verfügung stellt. Diese Schnittstellen sollen es anderen Programmen und technischen Geräten ermöglichen, in die Datenbank zu schreiben und aus ihr zu lesen.
4.2
Datenbankdesign
Nachdem die Erfassung und Analyse der Anforderungen abgeschlossen war,
konnte ein erstes Datenmodell erstellt werden. Für die Beschreibung des
Datenmodells wurde ein Entity-Relationship-Model (ER-Modell) aufgestellt.
Das Er-Modell beschreibt das konzeptuelle Schema der Datenbank in Form
eines Diagramms, in dem alle relevanten Informationen als Entitys dargestellt
werden (für das bessere Verständnis des ER-Modells wird anstatt des englischen Begriffs Entity“ der Begriff Objekt“ benutzt). Weiterhin zeigt das
”
”
ER-Modell die Beziehung zwischen den Objekten und deren Eigenschaften.
Folgend wird das Datenbankmodell anhand des ER-Diagramms beschrieben
(das komplette ER-Modell ist im Anhang (A.1) abgebildet).
Das zentrale Objekt im konzeptuellen Schema der Datenbank, ist das
Objekt Versuch“. Das Objekt besitzt die Attribute Datum, Zeit, Ziel und
”
Erkenntnisse. Diese Daten werden mit einem eindeutigen Schlüssel für jedes
Experiment angelegt.
Das Objekt Versuch“ verweist auf weitere Objekte, die das Experiment
”
2
Das Attribut binning legt fest, aus wie vielen Pixel ein Bildpunkt besteht. Diese Einstellung spielt bei der Analyse der Bilddaten eine Rolle.
14
in allen Zügen wiederspiegeln. Abbildung 6 zeigt den grundlegenden Aufbau des Datenbankmodells. Jeder Versuch beinhaltet Daten für die Laborgeräteeinstellungen, die Experimenteinstellungen und eventuell auch Daten
für biologische Zusätze. Wenn nach einem Experiment Folgeversuche durchgeführt werden, verweist das Objekt auf sich selber. Der Folgeversuch wird
als ein normales Experiment in der Datenbank hinterlegt und die Versuchsnummer (ein eindeutiger Schlüssel für das Experiment) wird in dem vorangegangenen Versuch gespeichert. Jedes Experiment kann maximal einen
Folgeversuch haben.
Abbildung 6: Dieses ER-Modell zeigt den grundlegenden Aufbau des Datenbankmodells. Jeder Versuch beinhaltet Informationen über die benutzten
Laboreinstellungen, Experimenteinstellungen, sowie Komponenten und eventuell auch Informationen über biologische Experimentzusätze.
Die Objekte, die die technischen Details wiederspiegeln, sind in Abbildung 7 dargestellt. Im Modell von oben nach unten betrachtet, ist das Objekt
Bildart“ das erste Objekt, auf das Versuch“ verweist. In dem Objekt sind
”
”
alle möglichen Bildarten hinterlegt, welche die Kamera verwenden kann. Zum
Beispiel können das ganz normale Einzelbilder, z-Stapelbilder, Zeitreihenbilder oder andere Bildarten sein. Das Objekt Versuch“ speichert nicht die
”
Bezeichnung des Bildes, sondern immer nur den eindeutigen Schlüssel bil”
dID“, welcher auf die Bezeichnung verweist. Falls kein passender Wert für
das Experiment in dem Objekt hinterlegt ist, muss ein neuer in dem Objekt
angelegt werden.
Für ein Experiment ist immer nur eine Bildart erlaubt. Theoretisch können
die Bildarten während eines Experiments variieren und miteinander kombi15
niert werden. Doch nach Gesprächen mit den biologischen Experten aus der
Forschungsgruppe, konnte dieser Fall ausgeschlossen werden; dieses Szenario
findet im Laborbetrieb nicht statt. Die Bildart wird für jedes Experiment am
Anfang festgelegt, um alle biologischen Reaktionen mit diesen Einstellungen
zu dokumentieren.
Als nächstes verweist das Objekt Versuch“ auf das Objekt Mikrotiter”
”
platte“. Die Referenz auf dieses Objekt zeigt, welche Art von Mikrotiterplatten in diesem Experiment benutzt wurde. Hierbei gilt das gleiche Prinzip
wie bei dem Objekt Bildart“. Es wird lediglich der Schlüssel plattenID“
”
”
gespeichert und nicht die Bezeichnung oder das Format. Da pro Versuch immer nur eine Mikrotiterplatte benutzt wird, gilt die Verbindung auch nur für
eine Referenz.
Die nächste Referenz vom Objekt Versuch“ bezieht sich auf die Einstel”
lungen der Laborgeräte. Von diesem Objekt aus, sind die Objekte Kame”
raeinstellungen“ und Mikroskopeinstellungen“ zu erreichen. Die Verweise
”
auf beide Objekte werden in dem zentralen Objekt Einstellungen“ hinter”
legt. Dieses hat den Vorteil, dass das Objekt Versuch“ nur einen einzigen
”
Schlüssel für das Objekt Einstellungen“ benutzen muss, um auf alle relevan”
ten Einstellungen zugreifen zu können. Anderenfalls müsste in dem Objekt
Versuch“, jeweils ein Schlüssel für das Objekt Kameraeinstellungen“ und
”
”
für das Objekt Mikroskopeinstellungen“ hinterlegt werden.
”
Die Attribute des Objektes Kameraeinstellungen“ beziehen sich auf die
”
Belichtungszeit der Kamera und auf das binning.
In einem Experiment benutzt das Mikroskop verschiedene Anregungsfilter, Sperrfilter und Objektive. Diese Attribute sind in dem Objekt Filter“
”
hinterlegt. In jeder Mikroskopeinstellung kann jeweils von jedem Attribut
nur eins benutzt werden. Eine weitere Referenz von dem Objekt Mikrosko”
peinstellungen“ weist auf das Objekt Lichtquelle“. Hierbei können mehrere
”
Lichtquellen in einem Experiment verwendet werden. Für jede Lichtquelle
muss die Lichtart und die Lichtintensität angegeben werden. Die Referenz
zeigt weiterhin, dass mehr als nur eine Lichtquelle für einen Versuch benutzt
werden darf. Üblich sind max. zwei Lichtquellen. Da aber nicht abzusehen
ist, inwieweit sich die Mikroskoptechnik ändert, gibt es im Datenbankmodell
keine Beschränkungen für die Anzahl der Lichtquellen.
Die Abbildung 7 zeigt auch, dass für jedes Experiment ein Experimentator
mit Namen und Titel angegeben werden muss.
Die biologischen Details werden in Abbildung 8 dargestellt. Die Abbildung zeigt, dass jeder Versuch auf einem bestimmten Organismus ausgeführt
wird. Aus der Referenz wird ersichtlich, aus welcher Familie dieser Organismus stammt und wie dieser bezeichnet wird. Die Referenz zum Objekt
Transfektion“ enthält alle relevanten Informationen zu den benutzten Kom”
16
Abbildung 7: Dieses ER-Modell zeigt, wie und wo die technischen Einstellungen für die Laborgeräte hinterlegt werden.
ponenten und dem Transfektionsablauf. Für den Transfektionsablauf wurde
ein eigenes Objekt angelegt. In dem Objekt Transfektionsmethode“ werden
”
alle durchgeführten Transfektionsmethoden notiert. Die genaue Bezeichnung,
der genaue Versuchsablauf und eventuelle Abweichungen sind in diesem Objekt enthalten. Mit Hilfe des eindeutigem Schlüssels methodenID“ kann für
”
jedes Experiment festgelegt werden, welche Methode in diesem Experiment
verwendet wurde. Falls diese Methode noch nicht in der Datenbank vorhanden ist, muss diese neu angelegt werden.
Bei einer Transfektion wird ein Konstrukt in die Zelle injiziert. Dieser
Sachverhalt wird durch die Referenz vom Objekt Transfektion“ zum Objekt
”
Konstrukt“ verdeutlicht. Das Konstrukt beinhaltet alle nötigen Informatio”
nen zur Beschreibung des eingesetzten Konstrukts. Es verweist zum Vektor,
zu den Reportergenen und zur InsertDNA. Jedes Konstrukt darf nur aus
einem Vektor bestehen.
Ein Konstrukt enthält mindestens ein Reportergen. Es kann aber auch
mehrere enthalten. In der Regel werden aber maximal zwei Reportergene eingesetzt. Eine wichtige Referenz ist die vom Objekt Reportergen“ zum Ob”
jekt InsertDNA“. Diese Verbindung besagt, auf welche Weise das Reporter”
gen mit der InsertDNA fusioniert wurde. Es kann auf drei verschiedene Arten
fusioniert sein. Es ist entweder N- oder C-terminal mit der InsertDNA fusio17
niert, oder es liegt in der InsertDNA. Zudem ist auch die Anzahl der Spacer
wichtig, die zwischen dem Reportergen und der InsertDNA liegen. All diese
Informationen werden mit Hilfe dieser Abhängigkeit angegeben. Als letztes
verweist das Konstrukt auf die InsertDNA. Durch diese Referenz wird für jeden Versuch definiert, welche InsertDNA in diesem Versuch benutzt wurde.
Es muss die Accessionnummer und die Länge des Inserts angegeben werden
und aus welchem Organismus die zu untersuchende DNA stammt.
Abbildung 8: Dieses ER-Modell zeigt die Objekte, die die biologischen Experimentinformationen enthalten.
Der dritte und letzte große Abschnitt auf den das Objekt Versuch verweisen kann, bezieht sich auf die Experimentzusätze (siehe Abb. 9). Ein Versuch
kann biologische Zusätze enthalten. Falls es Zusätze enthält, beziehen sich die
Referenzen entweder auf das Objekt Farbstoffe“, das Objekt Wirkstoffe“
”
”
oder auf das Objekt Antikörper“. In der Erfassung der Anforderungen wur”
de beschlossen, dass bei einem Versuch nur ein Farbstoff verwendet werden
darf. Bei dem Farbstoff muss angegeben werden, in welchem Volumen dieser eingesetzt wurde und wie lange dieser in der Zelle aktiv war. Dieses gilt
auch für die Wirkstoffe. Zusätzlich können die zu untersuchenden Proteine mit Antikörpern detektiert werden. Für diesen Fall wurde das Objekt
primäre Antikörper“ angelegt. Wenn eine Referenz vom Objekt Versuch“
”
”
auf das Objekt primäre Antikörper“ besteht, muss angegeben werden, in
”
18
welchem Volumen es eingesetzt wurde. Auch die Wirkungsdauer muss angegeben werden. Weil eine Antikörperdetektion nicht ohne sekundäre Antikörper funktioniert, verweist das Objekt primäre Antikörper“ auf das Ob”
jekt sekundäre Antikörper“. Diese Abhängigkeit zeigt, dass durchaus mehre”
re sekundäre Antikörper mit dem primären Antikörper interagieren können.
Eigentlich müssten noch die Signalmoleküle mit angegeben werden, welche
mit den sekundären Antikörpern gekoppelt sind. Jedoch wurde in der Analyse
der Anforderung beschlossen, kein zusätzliches Objekt für die Signalmoleküle
anzulegen. Aus der Bezeichnung des sekundären Antikörpers kann auf das
Signalmolekül geschlossen werden.
Abbildung 9: Dieses ER-Modell zeigt alle Objekte, die die biologischen
Zusätze betreffen.
4.3
Auswahl einer Datenbank
Als Datenbankmanagementsystem wurde MySQL gewählt. Es ist geplant,
ein mehrbenutzerfähiges LIM mittels eines Client-Server-Modells aufzubauen. MySQL unterstützt dieses Modell und bietet mehreren Benutzern die
Möglichkeit, auf gleichen Datenbeständen zu arbeiten. Es kann auf verschiedenen Arten von Plattformen eingesetzt werden, wie z.B. Windows, Linux
und Solaris. MySQL kann laut Herstellerangabe [8] eine hohe Anzahl von
Datenbeständen verwalten. Für den Hochdurchsatz im Labor, ist dies eines
der wichtigsten Kriterien. Das MySQL-DBMS bietet für jede unterstützte
Programmiersprache Schnittstellen an, mit denen es möglich ist, mit der Datenbank zu kommunizieren. Somit kann LabVIEW mittels der in dieser Ar19
beit entwickelten Algorithmen eine Verbindung zur Datenbank aufbauen. Das
Benutzerprogramm ExperimentSearcher für die Experimentsuche kann dieses mittels der JDBC-Schnittstelle tun. Ein weiterer Grund für die Wahl des
MySQL-Programmpackets, ist die freie Verfügbarkeit dieser Software. MySQL ist ein kostenloses und stabiles Open-Source-Programm. Es ist leicht
zu verstehen und für die Integration des Systems in das LIM, muss keine
zusätzliche Hardware beschafft werden.
MySQL ist ein relationales System. In dem Kapitel Einführung in Daten”
banken“ wurde erwähnt, dass relationale Datenbanken nur normale Datentypen wie Zahlen und Zeichenketten verwalten können. Komplexe Objekte,
wie die im Labor aufgenommen Bilder, stellen ein Problem dar. Diese können
in der Datenbank nicht verwaltet werden. Dieses Problem wird gelöst, indem
der Zugriff und Aufruf der Bilder auf andere Weise realisiert wird. Anhand
von Experimentinformationen in der Datenbank wird ein Pfad für das Verzeichnis generiert, in dem die Bilder liegen. Anwenderprogramme können
dann mittels des Pfades auf die Bilder zugreifen.
Die Bilder werden in einem geschützten Bereich der Festplatte gespeichert, wo sie vor unberechtigtem Zugriff geschützt sind. Die Speicherung
erfolgt mittels einer Baumstruktur. Der oberste Knoten dieses Baumes ist
das Jahr. Folgend kommen der Monat, der Tag und der Experimentator. Als
letzter Knoten wird ein Verzeichnis mit dem eindeutigen Schlüssel für das
Experiment angelegt. Jedes Experimentbild wird in dieser Baumstruktur gespeichert.
Ein Versuch soll mit Datum, Experimentator und vielen weiteren Informationen in der Datenbank gespeichert werden. Während der Speicherung
wird jedem Versuch ein eindeutiger Schlüssel zugewiesen. Diese Informationen ermöglichen die Rekonstruktion der Bildpfade. Somit können jedem Experiment die richtigen Bilder zugeordnet werden.
4.4
Physischer Datenbankentwurf
Nachdem ein konzeptuelles Datenbankschema aufgebaut wurde, konnte der
Datenbankentwurf mittels Tabellen und Abhängigkeiten realisiert werden.
Die Tabellen für das relationale Schema wurden nach den folgenden vier
Richtlinien entworfen [4].
1. Ein Relationsschema ist so zu entwerfen, dass sich seine Bedeutung
leicht erklären lässt. Es sollen keine Attribute aus mehreren Entitätstypen und Relationstypen kombiniert werden.
2. Ein Relationsschema ist so zu entwerfen, dass in den Relationen keine
Einfügungs-, Lösch- oder Modifikationsanomalien auftreten.
20
3. Es sollten so weit wie möglich, null-Werte in den Relationen vermieden
werden. Um null-Werte in den Relationen zu vermeiden, wurden z. B.
die Farbstoffe aus der Tabelle Versuch“ entfernt. Da nur in unter 7%
”
der Versuche Farbstoffe einem Experiment zugefügt werden, wurde eine
zusätzliche Tabelle angelegt. Diese gibt Auskunft über die Farbstoffzugabe. Somit wird vermieden, dass bei 93% der Versuche ein null-Wert
gespeichert wird. Dieser Sachverhalt gilt auch für die primären Antikörper und Folgeversuche.
4. Es dürfen durch Verbundoperationen keine unechten Tupel entstehen.
Die entstandenen Tabellen wurden mit Hilfe einer Normalisierung verfeinert. Ziel einer Normalisierung ist die Vermeidung von Redundanzen durch
Aufspalten der Relationsschemata. Bei der Normalisierung dürfen keine semantischen Informationen verloren gehen.
In der ersten Normalform wurden für alle nicht atomaren und mehrwertigen Attribute eigene Tabellen angelegt. Nicht atomare Attribute sind mehrere Tupel in einer Tabelle. Dies betrifft z. B. die Tabelle primäre Antikörper“.
”
Primäre Antikörper können mit mehreren sekundären Antikörpern gekoppelt
sein. Dementsprechend können in der Tabelle primäre Antikörper“ mehre”
re Tupel für sekundäre Antikörper vorhanden sein. Durch eine zusätzliche
Tabelle für die primären und sekundären Antikörper, wird dieses Problem
gelöst.
Mit Hilfe der zweiten Normalform wurden partielle Abhängigkeiten zwischen Schlüsseln des Relationsschemas und weiteren Attributen verhindert.
Mittels der dritten Normalform wurden die transitiven Normalformen
eliminiert. So wurde z.B. in der Tabelle Wirkstoffe“ die Proportionierung
”
in ein neues Relationsschema verlagert und der Schlüssel propID“ in die
”
Tabelle Wirkstoffe kopiert. Eigentlich müssten die transitiv abhängigen Attribute aus der Tabelle Mikroskopeinstellungen auch in eine eigene Tabelle
verlagert werden. Jedoch ist die mögliche Anzahl von Mikroskopeinstellungen begrenzt. Es lohnt sich nicht, aus der Tabelle drei einzelne zu erstellen.
Die Verbundoperationen für das Zusammenfügen der Einstellungen würden
mehr Aufwand bereiten, als das Beibehalten dieser Tabelle.
Theoretisch könnten die Relationsschemata noch weiter normalisiert werden. Jedoch wird in der Regel nach der dritten Normalform aufgehört, um
viele kleine Tabellen zu vermeiden. Deshalb wurde auch in diesem Fall auf
die Normalisierung mittels der vierten Normalform verzichtet.
Nachdem die Relationsschemata erstellt wurden, konnten DDLs-Statements (Data-Definition-Language) für das MySQL System aufgestellt werden
[10]. DDL-Statements beschreiben, wie genau ein Relationsschema aufgebaut
21
ist und welche Besonderheiten es aufweist. Alle Tabellen wurden analysiert
und entsprechend deren Anforderungen, spezifische DDL-Statements erstellt.
Als Beispiel wird die DLL für das Relationsschema Wirkstoffe“ beschrie”
ben und erklärt.
• create table Wirkstoffe(wirkID int unsigned not null auto increment,
primary key (wirkID), bezeichnung varchar(30) not null,propID int unsigned not null, foreign key (propID) references Proportionierung (propID);
Jedes mal, wenn ein neuer Wirkstoff in das Relationsschema integriert
wird, wird dieser mit einem eindeutigen Schlüssel versehen. Der Schlüssel
wird automatisch durch MySQL verliehen und darf nicht fehlen. Bei der Bezeichnung der Wirkstoffe, wird ein Speicher für 30 Zeichen zur Verfügung
gestellt. Weiterhin wird gefordert, dass ein Wirkstoff eine Bezeichnung zugewiesen bekommt. Dieses Tupel darf nicht leer sein. Als letztes Tupel muss
die Proportionierung für den Wirkstoff angegeben werden. Dabei wird auf
die Tabelle Proportionierung“ verwiesen. Mittels dem Fremdschlüssel pro”
”
pID“ kann in der Tabelle Proportionierung“ auf die richtigen Volumina zu”
gegriffen werden. Bei jedem Tupel in der Tabelle wird festgelegt, aus was
für Datentypen dieser bestehen soll. Zum Beispiel sind beim Tupel für den
eindeutigen Schlüssel propID“ nur positive Zahlen erlaubt.
”
Jedes Relationsschema hat seine eigenen Anforderungen und Besonderheiten, mit denen die Integration von falschen Werten verhindert werden soll.
Alle benutzten DDL-Statements sind im Anhang (A.2) aufgelistet.
Im nächsten Schritt sollten die Datenbankimplementierung und das Datenbank-Tuning stattfinden. Leider konnte diese Phase während der Bachelorarbeit aus zeitlichen Gründen nicht mehr ausgeführt werden. Sie wird jedoch
nach der Bachelorarbeit ausgeführt.
4.5
Datenbankschnittstellen
Zur Implementierung von Anwendungen, verfügen Datenbanken im Allgemeinen über mindestens eine Programmierschnittstelle, die als eine Bibliothek von Datenstrukturen und Funktionen zur Verfügung gestellt wird. Diese
Funktionen ermöglichen die Kommunikation mit dem Datenbanksystem, die
Definition und Ausführung von Anfragen, sowie die Verarbeitung von Ergebnissen.
Die MySQL-Datenbank bietet für jede unterstützte Programmiersprache Bibliotheken an, die die Kommunikation mit der Datenbank ermöglichen. Für die in dieser Bachelorarbeit implementierten Programme, waren
22
die Schnittstellen für die Programmiersprache C und Java von Relevanz.
Das LabVIEW -Programm soll mittels der C-Schnittstelle und die Programme, für die Implementierung der Datenbank und für die Experimentsuche,
mittels der JAVA-Schnittstelle (JDBC) mit der Datenbank kommunizieren.
4.5.1
LabVIEW
Der SQL/CLI-Standard definiert eine Datenbankschnittstelle für verschiedene Programmiersprachen, so u.a. auch für die Programmiersprache C. In C
wurden Funktionen geschrieben, welches LabVIEW den Zugriff auf die Datenbank ermöglicht. Die in LabVIEW geschriebene Benutzeroberfläche für
die Experimentplanung kann mittels dieser Funktionen, Daten in die Datenbank schreiben oder herauslesen. Das Modul stellt folgenden Funktionen zur
Verfügung:
1. void init connect();
2. char* query(char *tupel, char *table, char *join);
3. void insert(char *table, char *attributes, char *column);
4. void update(char *update table, char *attrib to change, char *new value,
char *term attrib, char *term attrib value);
5. void disconnect();
Die erste Funktion ermöglicht den Aufbau einer Verbindung zur Datenbank. Der Name der Datenbank, des Anwenders und dessen Passwort,
werden intern in der Funktion festgelegt. Um eine Verbindung mit der Datenbank herzustellen, muss LabVIEW lediglich diese Funktion aufrufen. Die
Verbindung wird mittels der im Quellcode gesetzten Attribute und den SQLConnect-Funktionen hergestellt.
Die zweite Funktion ermöglicht das Herauslesen von Daten aus der Datenbank. Als erstes Argument muss das Tupel angegeben werden, welches
herausgelesen werden soll. Bei dem ersten Argument können mehrere Werte in Form des Datentyps String übergeben werden. Diese müssen lediglich
durch ein Komma getrennt sein. Als zweites Argument muss die Tabelle angegeben werden, welche das Tupel beinhaltet. Mit dem dritten und letzten
Argument wird festgelegt, welche zwei Tabellen miteinander verbunden werden sollen. Das dritte Argument muss eine Verbundoperation in Form von
einer Zeichenkette sein. Der Verbund einer Tabelle hat den Vorteil, dass alle
gewünschten Attribute aus einer Tabelle gelesen werden können, anstatt sie
23
aus mehreren Tabellen zu generieren. Somit muss die Funktion nur einmal
aufgerufen werden. Das Resultat wird als Datentyp String zurückgegeben.
Die dritte Funktion ermöglicht die Integration von Daten in die Datenbank. Bei der Nutzung dieser Funktion muss als erstes die Tabelle angegeben
werden, in welche die Daten integriert werden sollen. Das zweite Attribut erwartet die zu integrierenden Daten. Es kann aus einem oder auch mehreren
Werten bestehen. Wenn es mehrere Werte sind, die integriert werden sollen,
müssen diese jeweils durch ein Komma getrennt sein. Für das dritte und letzte Argument muss die Spalte, bzw. die Spalten angegeben werden, in welche
die Attribute integriert werden sollen.
Die vierte Funktion ermöglicht die Aktualisierung von Attributen in der
Datenbank. Für die Aktualisierung eines Attributes sind mehrere Argumente
nötig. Das erste Argument legt die Tabelle fest, in der das Attribut aktualisiert werden soll. Das zweite und dritte Argument legen die Spalte und
dessen neuen Inhalt fest. Die Bedingung für die Aktualisierung wird durch
das vierte und fünfte Argument festgelegt. Für alle Tupel in der gewählten
Tabelle, die die Bedingung erfüllen, werden die neuen Werte gesetzt.
Die fünfte und letzte Funktion schließt die Verbindung zur Datenbank.
Bei allen Funktionen ist eine Fehlerabfrage eingebaut. Falls aus unersichtlichen Gründen eine Funktion nicht korrekt ausgeführt wird, wird der Fehler
aufgefangen und in Form von einer SQL-Fehlermeldung wiedergeben. Diese Fehlermeldung gibt den genauen Grund für die misslungene Ausführung
wieder. Die Fehlerabfrage ermöglicht eine erfolgreiche Transaktion oder einen
erfolgreichen Abbruch. Ein erfolgreicher Abbruch sollte die Eigenschaft besitzen, dass keine Spuren von misslungenen Transaktionen in der Datenbank
hinterlassen werden.
Informationen und Anleitungen zur Anbindung der C-Funktionen in LabVIEW sind dem Anhang (A.3) zu entnehmen.
4.5.2
DatabaseContentCreator
Mit Hilfe des Programms DatabaseContentCreator (DCC) wird die in dieser
Bachelorarbeit entwickelte Datenbank implementiert. Für eine erfolgreiche
Implementierung ist es notwendig, dass auf dem vorgesehenen Server mindestens eine MySQL-Version 4.1 installiert ist.
Das Programm stellt eine grafische Oberfläche zur Verfügung, die dem Benutzer ermöglicht, die Datenbank mit dem entwickelten konzeptuellen Schema auf einen beliebigen Server anzulegen. Jedoch muss der Benutzer die
nötigen Rechte besitzen, um die Datenbank in MySQL anlegen zu dürfen.
Der Benutzer muss sich mit Namen und Passwort anmelden. Zusätzlich
muss er den Ort angeben (host), wo die Datenbank implementiert werden soll.
24
Sind diese Angaben korrekt, kann der Benutzer mit dem von ihm gewählten
Datenbanknamen die Datenbank anlegen. Falls Probleme während der Implementierung auftreten, werden die Fehler auf der grafischen Oberfläche dargestellt. Bei der Fehlerwidergabe des Programms wird die SQL-Fehlermeldung
dargestellt.
Nach erfolgreicher Implementierung der Datenbank können Benutzer angelegt werden. Für das Anlegen eines Benutzers muss dessen Name, sein
Passwort und der Ort (host) angegeben werden, von dem aus er auf die Datenbank zugreifen will. Bei der Rechtevergabe können zwei Optionen gewählt
werden. Entweder der Benutzer kriegt alle zur Verfügung stehenden Rechte (MySQL-Anweisung: grant all ) oder nur Leserechte (MySQL-Anweisung:
grant select). Zumindest ein Benutzer sollte alle Rechte erlangen. Falls nötig,
können mit dem Zugang dieses Benutzers Modifikationen an der Datenbank
ausgeführt werden.
Informationen über technischen Details sind dem Anhang (A.4) zu entnehmen.
4.5.3
ExperimentSearcher
Für die Suche von Experimentdaten in der Datenbank wurde das Programm
ExperimentSearcher entwickelt. Das Anwendungsprogramm bietet dem Benutzer die Möglichkeit, über eine grafische Oberfläche nach Experimenten
zu suchen und diese darzustellen. Bei der Suche nach Experimenten in der
Datenbank kann der Benutzer seine Suche spezifizieren, indem er Kriterien
angibt, welche das Experiment erfüllen muss. Zum Beispiel kann der Benutzer angeben, dass nur die Experimente angezeigt werden sollen, welche vom
Experimentator Karsten Niehaus“ getätigt und auf dem Versuchsorganis”
mus E. coli“ durchgeführt wurden. Bei der Angabe der Kriterien, die das
”
Experiment erfüllen muss, hilft das Programm dem Benutzer einen korrekten
Wert für das Suchkriterium auszuwählen. Beim Starten des Programms werden für jedes Suchkriterium alle vorkommenden Werte aus der Datenbank
gelesen. So werden z.B. für das Suchkriterium Experimentator“ alle Expe”
rimentatoren aus der Datenbank gelesen, die ein Experiment durchgeführt
haben. Während des Eintippens des Experimentatorennamens durchsucht
das Programm jeden aus der Datenbank gelesenen Experimentatorennamen
auf das Vorkommen der bisher eingetippten Zeichenkette. Wird diese Zeichenkette in einem Namen gefunden, wird dieser als Vorschlag angezeigt.
Falls einer der Vorschläge dem vorgesehenen Namen entspricht, kann dieser
mit der Maus oder der Tastatur ausgewählt werden. Wird ein Wert eingetippt, der mit keinem Wert aus der Datenbank übereinstimmt, wird das Feld
rot markiert. Eine Suche kann erst dann wieder erfolgen, wenn dieses Feld
25
einen korrekten Wert enthält. Dadurch wird verhindert, dass vom Anwender
Werte eingetragen werden, die auf kein Experiment zutreffen können.
Anspruchsvollere Suchanfragen können mit Hilfe des QueryCreators durchgeführt werden. Das Aufrufen des QueryCreators erfolgt durch die Funktionstaste F1. Dabei muss der Eingabezeiger der Tastatur in dem Textfeld
sein, auf welches sich der QueryCreator beziehen soll. Ist der Eingabezeiger
in dem Textfeld Reportergene“ und die Funktionstaste F1 wird betätigt,
”
öffnet sich der QueryCreator für das Suchkriterium Reportergene“. In dem
”
QueryCreator können die Werte mit den boolschen Operatoren AND, NOT
und OR beliebig verknüpft werden. Zum Beispiel kann der Benutzer angeben, dass nur Experimente angezeigt werden sollen, welche das Reportergen
GFP oder YFP benutzt haben.
Für jedes Suchkriterium werden nur die boolschen Operatoren zur Verfügung gestellt, welche auch Sinn machen. Für das Kriterium Reporterpro”
teine“ werden die boolschen Operatoren AND, NOT und OR angeboten. Ein
Versuch kann ein oder mehrere Reporterproteine verwenden. Deswegen steht
auch der AND-Operator zur Verfügung. Beim Suchkriterium Experimen”
tator“ ist das nicht der Fall. Ein Experiment kann immer nur durch einen
Experimentator durchgeführt werden, weshalb auch der AND-Operator hier
keinen Sinn macht.
Das Feld Versuch/e“ ermöglicht den Zugriff auf ein Experiment mittels
”
seines eindeutigen Schlüssels. Falls der Versuch 23 gesehen werden möchte,
muss in diesem Feld die 23 eingetippt werden. Bei dem Zugriff auf mehrere
Experimente, müssen die Schlüssel durch ein Komma getrennt sein.
Wenn alle Suchkriterien festgelegt wurden, generiert das Programm anhand der eingegeben Suchkriterien eine komplexe SQL-Anfrage, welche die
passenden Experimente in der Datenbank sucht. Bei der SQL-Anfrage handelt es sich um eine verschachtelte Anfrage mit Mengenvergleichen [10]. Es
wird lediglich eine Anfrage getätigt, die alle Suchkriterien beinhaltet. Die
SQL-Anfrage besteht, abhängig von den Suchkriterien, aus einer gewissen
Anzahl von SubQuerys, die von innen nach außen abgearbeitet werden. Wenn
eine SubQuery bzw. die Query keine entsprechenden Werte findet, wird die
SQL-Anfrage beendet.
Experimente, welche den Suchkriterien entsprechen, werden in Form einer
Liste dargestellt. In dieser Liste sind alle wichtigen Informationen zum Experiment enthalten. Dem Benutzer ist an dieser Stelle die Möglichkeit gegeben,
bis zu maximal 17 Experimente darzustellen. Mittels des select all“-Knopfs
”
können alle Experimente ausgewählt werden. Einzelne Experimente können
mit Hilfe der Maus und der Funktionstaste STRG“ ausgewählt werden. Falls
”
keins der Experimente den Erwartungen entspricht, kann auf die Suchmaske
zurückgekehrt werden, um die Suchkriterien zu verändern.
26
Bei der Visualisierung der Experimentdaten, werden alle Informationen
aus der Datenbank gelesen. Diese Informationen werden auf vier Feldern dargestellt (siehe Abb. 10). Auf dem ersten Feld sind die biologischen Details
dargestellt. Hier stehen die benutzten Komponenten, die Transfektionsmethode, die Ziele, Erkenntnisse und weitere Details. Die Erkenntnisse kann
der Benutzer eintragen oder aktualisieren, indem er die Funktionstaste F1
betätigt. Es erscheint ein Textfeld, in dem der Benutzer seine Erkenntnisse eintragen bzw. verändern kann. Tut er dies, werden die Daten sofort zur
Datenbank gesendet, wo der Eintrag aktualisiert wird.
Im zweiten Feld sind die technischen Details abgebildet. Hier werden die
Informationen über die benutzten Laborgeräteeinstellungen dargestellt.
Im dritten Feld, wird das eingesetzte Konstrukt grafisch dargestellt. Für
die Darstellung des Bildes, werden die Informationen über die InsertDNA,
die Reportergene, Spacer und den Vektor verwendet. Eine JAVA-Klasse baut
mit Hilfe dieser Informationen eine Grafik auf. Die Grafik zeigt, wie genau
das Konstrukt aufgebaut ist. Es stellt die Fusionsart der zu untersuchenden
Proteingene mit den Reportergenen und Spacern dar, sowie deren Position
im Vektor.
Das vierte Feld visualisiert die im Versuch gemachten Bilder. Mit Hilfe
des JAI-Packets (Java Advanced Imaging) ist Java in der Lage, TIFF-Bilder
zu öffnen und zu visualisieren. Die im Feld dargestellten Bilder sind nur eine
Vorschau auf das eigentliche Bild. Die Bilder sind soweit runterskaliert, dass
sie in dem Feld abgebildet werden können. Mit einem Mausklick auf den
increase“-Knopf, wird das Bild in Originalgröße und Auflösung dargestellt.
”
Bei mehreren Bildern für ein Experiment, können durch das Betätigen der
next“- und previous“-Knöpfe diese angezeigt werden.
”
”
Die Bilder werden aus dem geschützten Verzeichnis geladen. Dabei generiert das Programm den Pfad des Verzeichnisses, wo die Bilder zum angewählten Experiment liegen. Die Generierung des Pfades erfolgt durch das
Datum, den Experimentator und den eindeutigen Schlüssel des Experiments.
Die Bilder werden durch das LabVIEW -Programm anhand einer Baumstruktur in dem Verzeichnis gespeichert. Der oberste Knoten dieser Baumstruktur ist das Jahr, eine Ebene tiefer folgt der Monat. Eine weitere Ebene
tiefer, folgt der Tag. Auf diese Ebene folgt der Experimentator und als letztes
der Schlüssel des Experiments. In dem Verzeichnis sind alle Bilder hinterlegt,
welche in dem jeweiligen Experiment aufgenommen wurden.
Mit Hilfe des save“-Knopfs kann der Experimentator die Bilder und eine
”
Textdatei mit allen Informationen zum Experiment an einem beliebigen Ort
seiner Wahl speichern. Die Textdatei wird von einer JAVA-Klasse erstellt,
welche alle Informationen aus der Datenbank liest und diese als .txt-Datei
speichert. Der Name der Textdatei ist immer der Schlüssel des Experiments.
27
Abbildung 10: Diese Abbildung zeigt die Experimentdarstellung im Programm ExperimentSearcher. Wenn mehrere Experimente dargestellt werden,
sind die in Form von so genannten Tabs organisiert. Tabs sind übereinanderliegende Ebenen, die durch Reiter angewählt werden können. Auf der
obersten Leiste der grafischen Oberfläche sind vier Knöpfe angelegt. Jeder
Knopf ermöglicht die Darstellung bestimmter Experimentinformationen. In
dieser Darstellung ist der Knopf Bilder“ angewählt. Auf dieser Ebene werden
”
die im Experiment gemachten Bilder skaliert dargestellt. Mittels der Knöpfe
next“ und previous“ können alle Bilder betrachtet werden. Mit dem in”
”
”
crease“-Knopf werden die Bilder in Orginalgröße dargestellt. Mit dem sa”
ve“-Knopf können die Experimentinformationen und Bilder an einem Ort
der Wahl gespeichert werden. Der back“-Knopf ermöglicht die Rückkehr
”
zur Experimentauswahl. Der new search“-Knopf stellt die Oberfläche für
”
die Experimentsuche dar. Der quit“-Knopf beendet das Programm und die
”
Verbindung mit der Datenbank.
28
Informationen über technischen Details sind dem Anhang (A.4) zu entnehmen.
29
5
Zusammenfassung und Ausblick
Die Grundlagen für die Integration einer Datenbank in das Laborinformationssystem wurden in dieser Bachelorabeit geschaffen. Im nächsten Schritt
gilt es die Datenbank im Labor ausführlich zu testen und eventuelle Modifikationen an der Datenbank auszuführen. Das erweiterte LIM muss ausführlichen Tests unterzogen werden, um die Qualität der Daten zu gewährleisten.
Bei allen Komponenten, die mit der Datenbank kommunizieren, muss der
Datenfluss analysiert und untersucht werden.
Bei dem Anwendungsprogramm ExperimentSearcher handelt es sich um
eine erste Testversion. Diese kann noch beliebig erweitert werden. Zum Beispiel wäre es möglich, die Bilddarstellung für mehrere TIFF-Bilder zu realisieren, die als eine TIFF-Datei gespeichert sind. Bis jetzt liest das Programm immer nur das erste TIFF-Bild aus so einer Datei. Zudem könnte
das Programm die Hardwarebeschleunigung der Grafikkarte ausnutzen, um
eine schnellere Darstellung der Bilder zu ermöglichen. Auch die Anbindung
an das Internet wäre vorstellbar.
Für die bessere Konfiguration des Programms könnte ein so genanntes
Setup-Fenster eingebaut werden, welches dem Benutzer über eine grafische
Oberfläche ermöglicht, die Datenbankverbindung zu konfigurieren.
30
A
A.1
Anhang
ER-Diagramm des Datenbankmodells
31
A.2
DDL-Statements für die Datenbankimplementierung
• create table Proportionierung (propID int unsigned not null auto increment, primary key (propID), volumen int unsigned not null, dauer
int unsigned not null);
• create table PrimAntikoerper(primAntiID int unsigned not null auto increment, primary key (primAntiID), bezeichnung varchar(30) not
null, propID int unsigned not null, foreign key (propID) references Proportionierung (propID));
• create table SekAntikoerper(sekAntiID int unsigned not null auto increment, primary key (sekAntiID), bezeichnung varchar(30) not null,
propID int unsigned not null, foreign key (propID) references Proportionierung (propID));
• create table PrimSekAntikoerper(primAntiID int unsigned not null, sekAntiID int unsigned not null, foreign key (primAntiID) references PrimAntikoerper (primAntiID), foreign key (sekAntiID) references SekAntikoerper(sekAntiID));
• create table Farbstoffe(farbID int unsigned not null auto increment,
primary key (farbID), bezeichnung varchar(30) not null,propID int unsigned not null, foreign key (propID) references Proportionierung (propID));
• create table Wirkstoffe(wirkID int unsigned not null auto increment,
primary key (wirkID), bezeichnung varchar(30) not null,propID int unsigned not null, foreign key (propID) references Proportionierung (propID);
• create table Transfektionsmethode(methodenID int unsigned not null
auto increment, primary key (methodenID), bezeichnung varchar(30)
not null, Ablauf mediumblob, Abweichungen blob);
• create table Vector(vecID int unsigned not null auto increment, primary key (vecID), bezeichnung varchar(30) not null);
• create table Reportergen(repID int unsigned not null auto increment,
primary key (repID), bezeichnung varchar(30) not null);
• create table Organismus(orgID int unsigned not null auto increment,
primary key (orgID), name varchar(30) not null);
32
• create table InsertDNA(insertID int unsigned not null auto increment,
primary key (insertID), accessionnr varchar(30) not null, laenge int
unsigned not null, orgID int unsigned not null, foreign key (orgID)
references Organismus (orgID));
• create table Fusionsart(fusID int unsigned not null auto increment, primary key (fusID), position enum(’n-terminal’,’c-terminal’,’inside’) not
null, spacer int);
• create table Konstrukt( KonstruktID int unsigned not null auto increment, primary key (KonstruktID), bezeichnung varchar(30) not null,
vecID int unsigned not null, insertID int unsigned not null, foreign
key (vecID) references Vector (vecID), foreign key (insertID) references
InsertDNA (insertID));
• create table KonstruktReportergen(KonstruktID int unsigned not null,
repID int unsigned not null, position int unsigned not null, fusID int unsigned not null, foreign key (KonstruktID) references Konstrukt (KonstruktID), foreign key (fusID) references Fusionsart (fusID), foreign key
(repID) references Reportergen (repID));
• create table Mikrotiterplatte(plattenID int unsigned not null auto increment, primary key (plattenID), format varchar(30) not null, bezeichnung varchar(30) not null);
• create table Kameraeinstellungen(kameraID int unsigned not null auto increment, primary key (kameraID), belichtungszeit int unsigned not
null, binning int unsigned not null);
• create table Mikroskopeinstellungen( mikroskopID int unsigned not
null auto increment, primary key (mikroskopID), objektiv varchar(30)
not null,anregungsfilter varchar(30) not null, sperrfilter varchar(30) not
null);
• create table Lichtquelle(lichtquelleID int unsigned not null auto increment, primary key (lichtquelleID), lichtintensitaet int unsigned not
null, lichtart varchar(30) not null);
• create table MikroskopLicht(mikroskopID int unsigned not null, lichtquelleID int unsigned not null, foreign key (mikroskopID) references
Mikroskopeinstellungen (mikroskopID), foreign key (lichtquelleID) references Lichtquellen(lichtquelleID));
33
• create table status(statusID int unsigned not null auto increment, primary key (statusID), titel varchar(30) not null);
• create table experimentator(expID int unsigned not null auto increment,
primary key (expID), name varchar(30) not null, statusID int unsigned
not null, foreign key (statusID) references status (statusID));
• create table bilder(bildID int unsigned not null auto increment, primary key (bildID), bezeichnung varchar(30) not null);
• create table versuch(versuchID int unsigned not null auto increment,
primary key (versuchID), Datum DATE not null, Zeit TIME not null,
ziel blob, erkenntnisse mediumblob, expID int unsigned not null, foreign
key (expID) references experimentator (expID));
• create table Versuchbiomittel(versuchID int unsigned not null, foreign
key (versuchid) references versuch (versuchid), wirkID int unsigned,
foreign key (wirkid) references wirkstoffe (wirkid), konstruktID int unsigned not null, foreign key (konstruktid) references konstrukt (konstruktid), orgID int unsigned not null, foreign key (orgid) references
organismus (orgid), methodenID int unsigned not null, foreign key (methodenid) references transfektionsmethode (methodenid));
• create table Versuchseinstellungen(versuchID int unsigned not null, foreign key (versuchid) references versuch (versuchid), bildID int unsigned
not null , foreign key (bildId) references bilder (bildid), plattenID int
unsigned not null, foreign key (plattenid) references Mikrotiterplatte
(plattenid), kameraID int unsigned not null, foreign key (kameraid)
references Kameraeinstellungen (kameraid), mikroskopID int unsigned
not null, foreign key (mikroskopid) references Mikroskopeinstellungen
(mikroskopid));
• create table FolgeVersuch(versuchID int unsigned not null, folgeversuchID int unsigned not null, foreign key (versuchID) references versuch
(versuchID), foreign key (folgeversuchID) references versuch(versuchID));
• create table VersuchAntikoerper( versuchID int unsigned not null, primAntiID int unsigned not null, foreign key (primAntiID) references
PrimAntikoerper (primAntiID), foreign key (versuchID) references versuch(versuchID));
• create table VersuchFarbstoffe(versuchID int unsigned not null, farbID
int unsigned not null, foreign key (farbID) references farbstoffe (farbID), foreign key (versuchID) references versuch(versuchID));
34
A.3
Einbindung von C-Funktionen in LabVIEW
Für die Einbindung von C-Funktionen in LabVIEW muss der Quellcode als
DLL (Dynamic Link Library) kompiliert werden. Für das Erstellen einer
DLL-Datei, muss der zu kompilierende Code als C++ Datei gespeichert werden. Beim kompilieren wird aus diesen Dateien ein Objekt erstellt, welches
mit dem LabVIEW-Programm interagieren kann. Zum Kompilieren wurde
das Programm Borland C++ Version 5.02 benutzt. Die Wahl fiel auf diesen
Compiler, weil dieser empfohlen wurde [5] und zudem frei verfügbar ist.
Vor jeder Funktion im Quellcode muß die Deklaration extern C declspec
”
(dllexport)“ gesetzt werden. Diese Deklarationen teilen LabVIEW mit, dass
die Funktionen aus einer externen Quelle Daten erhalten. Die externe Quelle
ist in diesem Fall die MySQL Datenbank.
Für die Kommunikation mit der Datenbank muss zusätzlich die Bibliothek libmysql.lib eingebunden werden. Alle externen Bibliotheken müssen mit
genauem Pfad angegeben werden. Weiterhin muss der Pfad für die Bibliotheken CINTOOLS in LabVIEW eingebunden werden. Mit dieser Bibliothek
kann der Compiler eine DLL erzeugen, die in LabVIEW genutzt werden kann.
Wurde eine DLL-Datei erfolgreich erzeugt, kann diese in LabVIEW eingebunden und die Funktionen genutzt werden.
A.4
Technische Details über die Programme ExperimentSearcher und DatabaseCreator
Beide Programme wurden in der Programmiersprache Java entwickelt und
sind theoretisch systemunabhängig. Sie können von jeder Plattform aus als
.jar-Datei ausgeführt werden, soweit die JAVA-Virtual-Machine auf dieser
installiert ist. Für den Zugriff auf die Datenbank benutzen die Programme
die Java JDBC“-Schnittstelle (Java Database Connectivity).
”
35
Danksagung
Hiermit möchte ich mich bei allen bedanken, die mich während meiner Bachelorarbeit betreut haben. Ich möchte Prof. Dr. Karsten Niehaus, Dr. Dieter
Kapp, Dr.-Ing. Frank Zöllner und Dipl. Inform. Marko Tscherepanow für die
Anregungen zu dieser Arbeit und für die wissenschaftliche Beratung während
ihrer Entstehung aufrichtig danken.
Auch meinem Freund Maik Tiemann ist zu danken, mit dem ich über
wichtige Themen der Bachelorarbeit diskutieren konnte und welcher das
Büroleben um einiges angenehmer gemacht hat.
Vor allem möchte ich meiner Mutter danken, die mich während der Bachelorarbeit rundum versorgt hat. Weiterhin danke ich ganz herzlich meiner
Freundin Irene Braun und meinen sehr guten Freunden Nils Rasche und Ferdi
Ünal, für die professionelle und ausdauernde Korrektur meiner Arbeit.
Eidesstattliche Erklärung
Hiermit versichere ich, dass ich die vorliegende Bachelorarbeit selbständig
verfasst und keine anderen Quellen und Hilfsmittel als die angegebenen benutzt habe.
Sebastian Janowski
15. Juli 2005
36
Literatur
[1] Andreas Heuer, Gunter Saake, Kai-Uwe Sattler. Datenbanken Kompakt.
mitp-Verlag Bonn, 2. Auflage 2003
[2] Bruce Alberts, Alexander Johnson [et al.]. Molecular Biology of the Cell.
Garland Science, 4. Auflage 2002
[3] Das Projekt ALPiC ( Automatic Localisation of the Proteom in Living
”
Cells“) http://www.techfak.uni-bielefeld.de/ags/ai/projects/ALPiC/
[4] Elmasri Navathe. Grundlagen von Datenbanksystemen.
Pearson Studium, 3. Auflage 2002
[5] Judith Stevens-Lemoine. C von A bis Z.
Galileo Press GmbH, 1. Auflage 2003
[6] LabVIEW Homepage
http://www.ni.com/LabVIEW/d/
[7] Maik Tiemann. Bachelorarbeit Thema: Erstellung eines digitalen Experimentplans zur Analyse von Fluoreszenz-Mikroskopiebilder.
Universität Bielefeld, voraussichtliche Abgabe: 15.7.2005
[8] MySQL Homepage http://www.mysql.de/
[9] Open Microscopy Environment (OME)
http://www.openmicroscopy.org/
[10] Paul DuBois. MySQL.
New Riders, 2. Auflage 2003
[11] Robert-André Roszik. Diplomarbeit Thema: Etablierung eines
Mikroskopie-Systems zur automatisierten Lokalisierung von Zellstrukturen.
Universität Bielefeld, Januar 2005
37
Herunterladen