Development of a Web-based application for managing and analyzing real ...
egebenen Quellen und Hilfsmittel verwendet, mich
auch sonst keiner unerlaubten Hilfe bedient, und diese Arbeit weder im Inland noch
im Ausland in irgendeiner Form als Prüfungsarbeit vorgelegt habe.
O
RT
, D
ATUM
S
TEPHAN
P
ABINGER
Abstract
Real-time PCR is one of the most important methods used in functional genomics.
As one of the leading assays it has a large dynamic range, great sensitivity, and
avoids the need for post-PCR processing. The requirement for analyzation, in oder to
get signicant results, produced a number of different analyzers, which mostly run
in a separate software. Drawing conclusions is often done by comparing analyzed
results of different experiments and usually consists of dealing with several printed
sheets that are hard to handle, store, and organize.
This thesis describes the design and implementation of an application capable of
managing and analyzing all relevant real-time PCR data. Based on the three tiered
J2EE platform it is developed as a Web application using a model driven architecture
approach. It allows the storage of general component descriptions, plate denitions,
uorescence measurements, and analyzer results.
Files produced by PCR machines contain information about the plate and the de-
tected uorescence measurements. The developed application integrates a parser
that is able to read in those les and therefore provides a rapid and error-free inser-
tion of important data. A newly developed system using Web 2.0 features allows to
graphically view the inserted uorescence measurements.
Already existing analyzers were integrated into the system and can be launched
from a central point in the application. A plug-in manager ensures that new ana-
lyzers can be added to the system without having to change existing parts in the
application. Results generated by analyzers can be easily compared and exported
to les for further analyses. User interactions are managed using the Model-View-
Controler framework Struts and Message Driven Beans are used to perform long
lasting business tasks, which run in the background.
The incorporated parser and the possibility to analyze ones date using several dif-
ferent analyzers in combination with an user-friendly interface provides an applica-
tion capable of managing, storing, comparing, and analyzing real-time PCR exper-
iments. All these features combined in one single application make up an unique
tool the certainly improves the daily work of biologists.
Keywords:
real-time PCR, qPCR, analyzers, Web 2.0, J2EE
Kurzfassung
Real-time PCR ist eine der wichtigsten Methoden im Bereich der »functional ge-
nomics« und zeichnet sich durch den Entfall von PCR Nachbehandlungen, ihrem
großen dynamischen Bereich und ihrer hohen Sensitivität aus. Da es notwendig ist
detektierte Daten zu analysieren, sind eine Reihe von Analyseprogrammen verfüg-
bar. Bestimmte Aussagen können oft nur durch das Vergleichen von Resultaten ge-
troffen werden, was oft mit ausgedruckten Datenblättern durchgeführt wird. Diese
sind meistens schwer zu handhaben, archivieren und organisieren.
Diese Diplomarbeit beschreibt das Design und die Implementierung einer Applika-
tion die für die Verwaltung und Analyse von real-time PCR Daten erstellt wurde.
Basierend auf der dreischichtigen J2EE Plattform wurde sie mit Hilfe der Model-
Driven-Architecture entwickelt. Sie ermöglicht das Speichern von generellen Kom-
ponenten, Platten-Denitionen, Fluoreszenzmesswerte und Analyse-Ergebnissen.
Dateien, die durch die PCR Maschine erzeugte werden, enthalten aufgezeichnete
Fluoreszenzwerte und Informationen zur verwendeten Platte. Durch die Integration
eines Parsers ist es möglich, Informationen, die diese Dateien enthalten, schnell und
fehlerfrei einzulesen. Ein neuartiges System, welches die Vorteile von Web 2.0 nutzt,
ermöglicht die graphische Darstellung der eingelesen Fluoreszenzmesswerte.
Existierende Analysatoren wurden in das System integriert und können von einem
zentralen Punkt in der Applikation gestartet werden. Ein eingesetzter Plug-in Ma-
nager ermöglicht ein einfaches Hinzufügen neuer Analyseprogramme, ohne dass
existierende Teile des Systems verändert werden müssen. Durch eine übersichtliche
Darstellung können analysierte Resultate einfach verglichen und mithilfe eines Ex-
portmechanismus in Dateien abgelegt werden. Benutzerinteraktionen werden durch
das Model-View-Controler framework Struts behandelt und der Einsatz von Messa-
ge Driven Beans dient zur Abarbeitung lang andauernder Aufgaben.
Der eingebaute Parser und die Möglichkeit Daten von verschiedenen Programmen
analysieren zu lassen in Kombination mit einer benutzerfreundlichen Oberäche er-
gibt eine Applikation, die zur Verwaltung, Speicherung, Auswertung und Analyse
von real-time PCR Experimenten dient. All diese Eigenschaften wurden in einem
einzigen Programm kombiniert und bilden ein Werkzeug, das zweifellos die tägli-
che Arbeit von Biologen erleichtern wird.
Schlüsselwörter:
real-time PCR, qPCR, Analyse, Web 2.0, J2EE
Acknowledgments
First of all, I want to thank Dr. Robert Molidor for the many insightful conversations
during the design and development stages of the application, and for the many help-
ful comments and suggestions on the thesiss text.
Special thanks go to Prof. Zlatko Trajanoski for giving me the possibility to do my
diploma thesis at the Institute for Genomics and BioinformaticsTU Graz.
Then, I want to thank my supervisor DI (FH) Peter Kulczycki from the Upper Austria
University of Applied Sciences in Hagenberg for his advises and design suggestions
on writing this paper.
I would like to thank Katharina Wimmer and Robert Smith for proofreading my thesis
and for giving me many valuable writing hints.
Finally, I would like to thank my family for always supporting me during my whole
life.
Stephan Pabinger
Contents
1
Introduction
1
2
Biological Background Information
3
2.1 DNA, mRNA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.2 Functional Genomics . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.3 Polymerase Chain Reaction . . . . . . . . . . . . . . . . . . . . . . . .
5
2.4 Real-time PCR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3
Software Development Technologies
11
3.1 Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3.1.1
Model Driven Architecture . . . . . . . . . . . . . . . . . . . . .
11
3.1.2
Unied Modeling Language . . . . . . . . . . . . . . . . . . . .
12
3.1.3
XML Metadata Interchange Format . . . . . . . . . . . . . . . .
13
3.2 Java 2 Enterprise Edition . . . . . . . . . . . . . . . . . . . . . . . . .
13
3.2.1
Client Tier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.2.2
Web Tier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.2.2.1
Servlet . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.2.2.2
JSP . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.2.3
Business Tier . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.2.3.1
Enterprise JavaBeans . . . . . . . . . . . . . . . . . .
16
3.2.4
Enterprise Information System Tier . . . . . . . . . . . . . . . .
17
3.2.5
J2EE Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.3 Web Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.3.1
Struts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.3.1.1
The Controller . . . . . . . . . . . . . . . . . . . . . .
19
3.3.1.2
The View . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.3.1.3
The Model . . . . . . . . . . . . . . . . . . . . . . . .
20
3.3.1.4
Features . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.3.2
Ajax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
C
ONTENTS
vii
3.3.3
Direct Web Remoting . . . . . . . . . . . . . . . . . . . . . . .
23
3.4 Code Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.4.1
AndroMDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.4.1.1
Cartridges . . . . . . . . . . . . . . . . . . . . . . . .
27
3.4.1.2
Velocity Templates . . . . . . . . . . . . . . . . . . . .
27
3.4.2
XDoclet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.5 Development Tools and Libraries . . . . . . . . . . . . . . . . . . . . .
29
3.5.1
JFreechart . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3.5.2
MagicDraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
3.5.3
Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
4
Institute Libraries
32
4.1 Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
4.2 Analyzers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
4.2.1
AnalyzerSoFar . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
4.2.2
AnalyzerRutledGene . . . . . . . . . . . . . . . . . . . . . . . .
34
4.2.3
AnalyzerMiner . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
4.2.4
TAQAnalyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
4.2.5
LinRegAnalyzer
. . . . . . . . . . . . . . . . . . . . . . . . . .
35
4.3 Genome Usermanagement . . . . . . . . . . . . . . . . . . . . . . . .
35
5
Requirements and Design
37
5.1 Detailed Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
5.2 Typical Workow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
5.3 UML Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
5.3.1
Entity diagram . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
5.3.2
Report diagram . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
5