Kapitel 2 Grundlagen In diesem Kapitel sollen die elementaren Grundlagen und Methoden beschrieben werden, die zum Verständnis der nachfolgenden Kapitel notwendig sind. Der erste Abschnitt befasst sich mit der Thematik der Visualisierung und geht dabei vor allem auf das Gebiet der wissenschaftlichen Visualisierung ein. Darüber hinaus werden einige wichtige dreidimensionale Visualisierungstechniken vorgestellt. Der zweite Teil widmet sich dem Internet sowie den verwandten Techniken und Programmiersprachen, die für die plattformunabhängige Repräsentation von chemischen Datenobjekten eine relevante Rolle spielen. Im letzten Teil dieses Kapitels folgt die Beschreibung wichtiger Programme, die für die Generierung, Speicherung und das Management chemischer Information verwendet wurden. 2.1 Visualisierung 2.1.1 Wissenschaftliche Visualisierung - Eine Definition Seit Anbeginn der Menschheit spielt die Visualisierung eine zentrale und bedeutende Rolle bei der Übertragung und dem Verständnis von Information. Die Gründe für dieses Phänomen beruhen dabei auf der Physiologie des menschlichen Auges und den mit ihm verbundenen visuellen Cortex. Von allen Sinnesorganen des Menschen besitzt der Sehapparat die größte Bandbreite bei der Aufnahme von Information. Diese Tatsache wird auch durch die allgemein bekannte Redewendung „ein Bild sagt mehr als tausend Worte“ untermauert. Der vergleichbar leichte Zugang zur Information über den Sehvorgang wird in den Wissenschaften und hier vor allem in den naturwissenschaftlichen Disziplinen zur Vermittlung von abstrakten und/oder mikroskopisch kleinen Phänomenen und Modellen genutzt. Innerhalb der Computergraphik wird dieses spezielle und weitläufige Forschungsfeld im Allgemeinen als "Wissenschaftliche Visualisierung" bezeichnet. 9 2 Grundlagen Über einen langen Zeitraum war die wissenschaftliche Visualisierung aufgrund fehlender, alternativer Medien nur auf zweidimensionale Schemata und Darstellungen begrenzt. Während dieser Zeit wurden die bis heute gültigen und von jeden Chemiker verständlichen Struktur- und Konstitutionsformeln entwickelt. Neben der Darstellung von Spektren und Atombindungen wurden aber auch abstraktere Repräsentationen wie die Fischer-Projektion, das Keilpfeil-Tetraeder-Modell oder das Kugel-Stab-Modell zur Visualisierung von sterischen Effekten eingesetzt (Abbildung 2-1). CH3 H C CH3 OH CH2OH Abb. 2-1: H C OH CH2OH Fischer-Projektion, Keilpfeil-Tetraeder-Modell und Kugel-Stab-Modell von 2-Hydroxypropanol. Die Einführung des Computers führte schließlich zu Beginn der Sechziger Jahre zu vollkommen neuen Möglichkeiten der graphischen Repräsentation und zu der Entstehung des Forschungsgebiets der Computergraphik. Rechnergestützte, dreidimensionale Darstellungen und Animationen gewannen innerhalb kürzester Zeit enorme Bedeutung innerhalb des naturwissenschaftlichen Umfeldes und besonders in der Chemie. Neben der Verfügbarkeit von alternativen Repräsentationen spielte ein weiterer Vorteil der graphischen Datenverarbeitung eine wichtige Rolle - die Möglichkeit der Benutzerinteraktion. Mit Hilfe der interaktiven Visualisierung war nun erstmals die direkte Manipulation der visualisierten Datenobjekte möglich, was vollkommen neue Freiheitsgrade bei der Analyse unbekannter und komplexer Szenen zuließ. Heute stellt sich die computergestützte, wissenschaftliche Visualisierung, wie in Abbildung 2-2 schematisch skizziert, dar. Durch experimentelle Beobachtungen von makroskopischen und mikroskopischen Vorgängen ist der Wissenschaftler in der Lage ein abstrahiertes Modell und letztendlich eine Theorie der zugrunde liegenden Vorgänge aufzustellen. Die graphische Darstellung des abstrakten Modells stellt dabei eine Transformation von Unsichtbaren in Sichtbares dar. Darüber hinaus können die aus Modell, Theorie und graphischer Repräsentation gewonnenen Erkenntnisse als Ausgangspunkt für weitere interaktive Analysen und Simulationen dienen. Die Ergebnisse der Analyse erlauben schließlich die Vorhersage von Meßgrößen aus der realen Welt. Durch ständigen Vergleich der experimentellen Meßwerte und der vorhergesagten Meßgrößen lässt sich letztendlich das aufgestellte Modell verifizieren und verfeinern. 10 2.1 Visualisierung Messung Reale Welt Vorhersage Experiment Abb. 2-2: 2.1.2 Interaktion/ Simulation Visualisierung Modell Theorie Schematische Darstellung der Benutzerinteraktionen in der wissenschaftlichen Visualisierung. Die Visualisierungspipeline Während bei zweidimensionalen Repräsentationen nur ein zweidimensionales Abbild generiert und dargestellt wird, sind für die Realisierung von dreidimensionalen Darstellungen mehrere, computergestützte Methoden notwendig. Dieser mehrstufige Prozess wird als Visualisierungspipeline bezeichnet (Abbildung 2-3) [17]. Der erste Schritt bei der Visualisierung wissenschaftlicher Daten ist dabei der Einsatz von Filtern, um beispielsweise für die Visualisierung irrelevante Datenpunkte oder Parameter zu entfernen oder Rohdaten zu konvertieren. In einem anschließenden Abbildungsmodul (Mapper) werden die Daten dann in eine darstellbare Repräsentation überführt. Hierbei handelt es sich im Allgemeinen um geometrische Objekte wie Volumen und Primitive, die mit zusätzlichen Attributen wie Farbe, 3D-Koordinaten, Transparenz und Textur versehen werden. Im letzten Schritt der Visualisierungspipeline wird die erzeugte geometrische Repräsentation der Daten von einem Darstellungsmodul (Renderer) durch Projektion auf eine Bildebene in ein Rasterbild abgebildet. Wie bereits im vorausgegangenen Abschnitt erläutert, stellt die Benutzerinteraktion einen wichtigen und wesentlichen Freiheitsgrad bei der Analyse und Exploration von wissenschaftlichen Daten dar. Der Aufbau der Visulisierungspipeline erlaubt die Interaktion durch den Benutzer an jeder beliebigen Stelle. Vor allem bei unbekannten Daten ist eine Erkenntnis über die in den Daten vorhandene Information häufig erst durch die interaktive Manipulation der Visualisierungsparameter aller Visualisierungsstufen möglich. 11 2 Grundlagen Die dafür erforderlichen, hohen Interaktionsraten setzen effiziente Algorithmen und Datenstrukturen sowie entsprechende Verarbeitungskapazitäten voraus. Die in Kapitel 3 vorgestellten Client-Server-basierten Strategien und Applikationen beschreiben die Realisierung entsprechender Ansätze im Detail. Interaktion Simulation Datenbank Rohdaten Filter Mapper Renderer Bilder Video Sensoren Visualisierungspipeline Abb. 2-3: 2.1.3 Darstellung Die Visualisierungspipeline [26]. Dreidimensionale Visualisierungstechniken Im folgenden Abschnitt werden die bekanntesten Techniken zur Darstellung von räumlichen Darstellungen vorgestellt. Neben der Beschreibung der Vor- und Nachteile der einzelnen Ansätze werden dabei auch bekannte chemische Beispielapplikationen vorgestellt. 2.1.3.1 Pseudo-3D-Visualisierung Wie der Name bereits zu erkennen gibt, handelt es sich bei diesem Verfahren aus Sicht der graphischen Datenverarbeitung nicht um eine dreidimensionale Visualisierungstechnologie. Vielmehr werden mit Hilfe dieser Methode nur zweidimensionale Bilder generiert, die im visuellen Cortex des Betrachters einen räumlichen Eindruck vermitteln. Diese Methode der geistigen Täuschung funktioniert vor allem in Verbindung mit zusätzlichen Interaktionsmöglichkeiten so gut, dass dem Benutzer der nicht-dreidimensionale Charakter der Darstellung vollkommen verborgen bleibt. Um einen räumlichen Effekt zu erzielen, müssen dabei drei Grundvoraussetzungen realisiert werden: das Depth Cueing, die Perspektive und die Interaktion. Anhand eines beliebigen Moleküls soll die Funktionsweise dieser Methoden erläutert werden. Ausgehend von der dreidimensionalen Struktur und in Abhängigkeit von der Blickrichtung wird in einem ersten Schritt die Tiefe bzw. der Abstand zum Betrachter der einzelnen Atome bestimmt. Dabei wird ermittelt, ob sich ein Atom vor oder hinter einem anderen Atom bzw. einer Bindung befindet. Der räumliche Eindruck wird darüber hinaus durch Veränderung der Größen der dargestellten Atome verstärkt (Perspektive). Vom Betrachter weiter entfernte 12 2.1 Visualisierung Atome werden dabei kleiner dargestellt als solche, die sich näher am Betrachter befinden. In einem weiteren Schritt wird das Depth Cueing-Verfahren eingesetzt. Dabei nimmt mit zunehmender Tiefe der Atome und Bindungen die Helligkeit dieser Objekte ab, wodurch der räumliche Eindruck nochmals verstärkt wird. Schließlich wird der Mechanismus der Täuschung durch den Einsatz von Interaktionsmechanismen perfektioniert. Durch Auswertung der Benutzeraktionen (z.B. Mauszeigerbewegungen) wird zunächst die neue Aufsicht auf das Molekül berechnet. Im Anschluss werden die bereits beschriebenen Schritte erneut durchlaufen und das alte Bild durch die neuberechnete Darstellung ersetzt. Durch diese Vorgehensweise können Interaktionen wie Rotation, Translation und Zoom realisiert werden. Bis vor einigen Jahren war die dreidimensionale Visualisierung nur auf speziellen, teuren Serversystemen mit hochleistungsfähiger Graphik-Hardware und durch den Einsatz entsprechender Spezialsoftware möglich. Im Gegensatz dazu ist die Pseudo-3D-Technik nicht auf das Vorhandensein von 3D-Funktionalitäten angewiesen und kann deshalb auch auf PCSystemen mit Standard-Graphikkarten zum Einsatz kommen. Diese Tatsache hat dazu geführt, dass Pseudo-3D-basierte Applikationen schnell eine weite Verbreitung in der chemischen Visualisierung erfahren haben. Darüber hinaus wird die Interaktionsrate nur gering durch die Anzahl und Größe der dargestellten Objekte beeinflusst. Dies ermöglicht somit auch die unkomplizierte Darstellung von sehr vielen und/oder großen Datenobjekten. Zu den bekanntesten Vertretern dieser Methode zählen der Java-Molekülviewer von ChemSymphony [11, 18] und die RasMol-Applikation [19] bzw. das Chime-Plugin [32]. 2.1.3.2 3D-Visualisierung Die enormen graphischen Anforderungen moderner Computerspiele haben seit einigen Jahren zu der Entwicklung PC-kompatibler 3D-Graphikkarten geführt. Die dreidimensionalen Fähigkeiten dieser Hardwaresysteme haben seitdem exponentiell zugenommen und werden sich auch in Zukunft unvermindert schnell weiterentwickeln. Dank dieser Entwicklung sind heute dreidimensionale Darstellungen von wissenschaftlichen Daten allgemein auf Personalcomputern verfügbar. Neuere Untersuchungen haben darüber hinaus gezeigt, dass aktuelle Graphiksysteme wie die GeForce-Serie im Bereich der wissenschaftlichen Visualisierung an die Fähigkeiten heutiger Graphikserver heranreichen und in einigen Fällen diese sogar übertreffen [20]. Die für die dreidimensionale Visualisierung notwendigen und in Kapitel 2.1.2 beschriebenen Stufen der Visualisierungspipeline greifen im Allgemeinem nicht direkt auf die 3D-Funktionalitäten der Graphikkarten zu. Vielmehr wird dieser Zugriff durch sogenannte 3DGraphikschnittstellen vermittelt. Zu den beiden etablierten Systemen gehört das von Silicon Graphics (SGI) als offener Standard eingeführte OpenGL [21]. OpenGL wird von einem 13 2 Grundlagen internationalen Konsortium weiterentwickelt und ist für alle gängigen Plattformen und Betriebssysteme erhältlich. Der zweite de-facto Standard (Direct3D) wurde von Microsoft für Windows-Plattformen entwickelt und ist in der bekannten DirectX API enthalten [22]. Das hohe Potential der dreidimensionalen Visualisierung stand im Mittelpunkt bei der Entwicklung der in dieser Arbeit beschriebenen Applikationen und Strategien. Dabei wurde vor allem die Volumenvisualisierung [23] zur Darstellung chemischer Information verwendet. Diese Visualisierungsform hat sich mittlerweile zu einem selbstständigen Forschungsfeld innerhalb der Computergraphik entwickelt und beschreibt die Repräsentation, Manipulation und Darstellung von Volumendaten. Eine detaillierte Beschreibung dieser Darstellungsform würde den Rahmen dieser Arbeit sprengen. Daher werden im Folgenden nur die beiden wichtigsten im ChemVis-Projekt verwendeten Ansätze kurz skizziert. Isoflächen-basierte Volumenvisualisierung. Bei diesem auch als indirekte Volumenvisualisierung bezeichneten Verfahren werden die Volumendaten in eine intermediäre Repräsentation abgebildet, deren Darstellung mit einem geringeren Aufwand verbunden ist. Dabei kommt es im Allgemeinen zu einem Informationsverlust gegenüber den Originaldaten. Dieser kann jedoch bewusst hingenommen werden, da man häufig nur an der Darstellung der Grenzfläche interessiert ist und nicht an der darunterliegenden Information. Zur Veranschaulichung dieses Sachverhaltes kann man die in einer Gaussian-Cube-Datei enthaltenen Daten betrachten. Das vom Programm GAUSSIAN [24] generierte Datenformat dient zum Austausch von molekularen Oberflächen oder Orbitalen und speichert diese Information in Form einer Volumendichte. Bei der Visualisierung dieser Objekte ist jedoch nicht die gesamte Volumeninformation notwendig, sondern nur die darin enthaltene Grenzflächeninformation. Die Extraktion der Grenzflächen geschieht mittels Algorithmen. Der bekannteste Vertreter dieser Klasse von Grenzflächen-extrahierenden Algorithmen ist der Marching-CubesAlgorithmus [25]. Die vom Marching-Cubes-Algorithmus berechneten Dreiecksgitter können schließlich mit konventioneller Graphikhardware dargestellt werden. Die Vorteile dieser Darstellungsform gegenüber der Pseudo-3D-Visualisierung sind unter anderem die qualitativ bessere Repräsentation der Daten und die wesentlich größeren Möglichkeiten zur Benutzerinteraktion und Animation. Das Verfahren birgt aber auch Nachteile. Da die Rendering-Geschwindigkeit direkt von der Anzahl der berechneten Dreiecke abhängt, ist die Anzahl und die Größe der dargestellten Objekte limitiert. Die in Kapitel 3 vorgestellten Ansätze beschreiben Client-Server-basierte Strategien zur Lösung dieser Problematik. Beispiele für entsprechende Standardapplikationen werden daher dort beschrieben. 14 2.1 Visualisierung Textur-basierte Volumenvisualisierung. Im Gegensatz zu der Isoflächen-basierten Visualisierung ist die Renderinggeschwindigkeit Textur-basierter Verfahren nicht von der Anzahl und der Größe der dargestellten Objekte abhängig. Diese Beobachtung begründet sich dadurch, dass das Volumen nicht in Form einer großen Anzahl von Primitiven visualisiert wird, sondern in seiner ganzheitlichen Form als 2D- oder 3D-Textur im Texturspeicher der Graphikkarte abgelegt und anschließend gerendert wird. Aus diesem Grund bestimmt die Texturspeichergröße die Grenzes dieses Ansatzes. Die für die qualitativ hochwertige Repräsentation wissenschaftlicher Daten notwendigen 3D-Texturen waren in der Vergangenheit nicht durch PC-basierte Graphikkarten realisierbar und konnten nur mit Hilfe spezieller Workstation-Hardware generiert werden. Erst durch die Entwicklung moderner Spielegraphikkarten, welche Technologien wie Multi-Texturing und programmierbarer Rasterisierungseinheiten unterstützen, sind qualitativ hochwertige, Textur-basierte Darstellungen heute auch auf Personalcomputern verfügbar. Darüber hinaus ermöglichten erst die PC-basierten Graphiksysteme die Visualisierung großer Texturen. Technische Einzelheiten und die Realisierung entsprechender Applikationen waren nicht Gegenstand der vorliegenden Arbeit und werden an anderer Stelle besprochen [26]. 2.1.3.3 Virtual Reality-Verfahren Monitor- bzw. Display-vermittelte dreidimensionale Darstellungen basieren auf einer zweidimensionalen Zentralprojektion, die im menschlichen Gehirn und durch dessen Fähigkeit zum räumlichen Denken als dreidimensionale Objekte interpretiert werden. Darüber hinaus existieren Techniken, die beim Betrachter den Eindruck erwecken, dass die dargestellte 3D-Szene tatsächlich existiert. Dieser Sachverhalt wird im Allgemeinen als virtuelle Realität bezeichnet. Die im Folgenden beschriebenen Vertreter dieser Technologie erwecken diesen plastischen Eindruck durch die Kombination der bereits im letzten Abschnitt beschriebenen 3D-Techniken in Verbindung mit speziellen, graphischen Ein- und Ausgabegeräten. Häufig wird dabei der gewünschte Effekt durch sogenannte Stereobild-Techniken erreicht [27]. Beim Stereosehen werden zwei verschiedene Bilder betrachtet, die auf dem ersten Blick vollkommen identisch sind sich jedoch durch unterschiedliche Blickwinkel unterscheiden. Indem jedes Auge eines der beiden Bilder betrachtet, entsteht somit ein räumlicher Eindruck. Während geübte Betrachter diesen Effekt durch Fokussierung eines unendlich weit entfernten Punktes (paralleles Sehen) erzielen können, steht dem ungeübten Betrachter mit der Stereobrille ein geeignetes Hilfsmittel zur Verfügung. Ähnliche Verfahren wie Anaglyphen (rot/grün Bilder in Verbindung mit colorierten Brillen) oder Autostereogramme (besser bekannt als random dot Stereogramme) wurden ebenfalls zur chemischen Visualisierung vor allem in chemischen Lehrbüchern eingesetzt. 15 2 Grundlagen Eine breitere Anwendung fanden weiterentwickelte Verfahren wie die sogenannten Shutter-Brillen. Diese anfänglich nur für Workstations erhältlichen Ausgabesysteme werden vor allem im Bereich des Molecular Modelling eingesetzt und bestehen aus transparenten LCD-Displays, die für jedes Auge einzeln verdunkelt werden können. Die Verdunklung des Glases geschieht dabei sehr schnell und synchron zum Austausch der beiden korrespondierenden Bildansichten auf dem Monitor, so dass jedes Auge letztendlich nur ein Stereobild wahrnimmt. Im Gegensatz zu parallelen Stereobildern lässt diese Technik die Bewegung des Kopfes zu. Der wichtigste Vorteil ist jedoch, dass dem Benutzer alle Möglichkeiten der Interaktion mit der dreidimensionalen Darstellung offen stehen. Seit einiger Zeit stehen auch low-budget Systeme zur Verfügung, die mit herkömmlichen PCGraphikkarten zusammen arbeiten. Alternative Systeme wie die sogenannten head-mounted Displays (HMD) sind in der chemischen Visualisierung nicht so weit verbreitet. Die helmartigen HMDs basieren nicht mehr auf einem einzelnen Display sondern bestehen aus zwei unabhängigen Displays (eins für jedes Auge). Die Blickrichtung des Benutzers wird dabei durch entsprechende Sensoren im Helm ermittelt und führt bei einer Bewegung zur Aktualisierung der dargestellten Szene. Zu den aufwendigsten Virtual-Reality-Systemen zählen wohl die teuren und ressourcenintensiven Projektionssysteme CAVE (Cave Automatic Virtual Environment) [28] und CUBE [29]. Diesen Techniken erfordern für die Darstellung begehbare, geschlossene Räume. Mit Hilfe von Projektionskanonen werden dabei auf die vier Wände, die Decke und den Boden des Raumes Bilder einer dreidimensionalen Szene projiziert. Der Benutzer kann alleine oder in der Gruppe diese virtuelle Welt betreten und betrachten. Im Allgemeinen wird der virtuelle Effekt dabei noch durch Shutter-Brillen verstärkt. Durch weitere Peripherie wie beispielsweise Cyber-Handschuhen ist der Benutzer auch in der Lage Manipulationen an der dargestellten Szene vorzunehmen. Den Vorteilen, die ein solches System bietet, stehen sehr hohe Kosten und Rechenanforderungen gegenüber, die den Einsatz solcher Technologien nur auf sehr spezielle Problemfälle einschränkt. Diese Situation hat sich in den letzten Jahren durch die Verfügbarkeit preisgünstiger und leistungsfähiger Spielegraphikkarten noch verschärft. Als letzte Technologie sei noch auf direkte Volumenvisualisierungssysteme hingewiesen. Die modernste Lösung auf diesem Sektor stellt zur Zeit die prototypische Perspecta Spatial 3D Plattform dar [30]. Das System besteht aus einer Glaskugel, dessen Durchmesser ca. 50 cm beträgt. Im Inneren dieser Kugel zirkuliert ein Hochgeschwindigkeitsprojektor, der die dreidimensionale Szene auf die Kugel projiziert. Dem Benutzer wird dabei ohne Einsatz weiterer Hilfsmittel wie Brillen oder HMDs der Eindruck vermittelt, dass er tatsächlich ein räumliches Objekt betrachtet und mit ihm interagieren kann. 16 2.2 Internet-Techniken 2.2 Internet-Techniken Bei der Entwicklung der in dieser Arbeit vorgestellten Methoden und Applikationen wurde besonderer Wert auf die Plattformunabhängigkeit gelegt. Die Einbettung der Visualisierungsapplikationen in digitale Dokumente wurde dabei durch den Einsatz von Technologien und Programmiersprachen, die sich an aktuellen Internetstandards orientieren, sichergestellt. Diese Technologien werden im Folgenden beschrieben. 2.2.1 Multipurpose Internet Mail Extension (MIME) Die Entwicklung dieses Standards geht auf das Jahr 1992 zurück, als das Internet noch am Anfang seiner Entwicklung stand und vor allem zum Verschicken von elektronischen Mails diente [31]. Heute ist diese Erweiterung nicht nur auf elektronische Post beschränkt, sondern wird allgemein im Internet zur Identifizierung der Form und Struktur übertragener Daten verwendet. Der entsprechende Datentyp wird dabei durch einen allgemeinen Teil (z.B. video, audio, application) und einen spezifischen Teil identifiziert. Je nach Einstellung des Webbrowsers wird dann ein Plugin (vgl. Abschnitt 2.2.2) oder eine entsprechende Standardapplikation gestartet, welche die übertragenen Daten interpretieren kann. Erste MIME-Typen zur Kennzeichnung von chemischen Austauschformaten wurden 1994 eingeführt [3, 6]. Da in dieser Arbeit vor allem die Vermittlung von graphischen Daten im Vordergrund stand, kamen chemische MIME-Typen nur selten zum Einsatz. Häufiger wurden die entsprechenden MIME-Typen zur Interpretation von VRML-Szenen (vgl. Abschnitt 2.2.5) oder zum Start des Java2-Plugins (vgl. Abschnitt 2.2.4) eingesetzt. 2.2.2 Plugins Als Plugins bezeichnet man kleine, plattformabhängige Applikationen, die die Darstellungsfähigkeiten von konventionellen Webbrowsern in Abhängigkeit von bestimmten Datentypen erweitern. Empfängt der Client einen bestimmten Datentyp, der vom Browser standardmäßig nicht interpretiert aber von dem vorher installierten Plugin gehandhabt werden kann, so wird das Plugin innerhalb des Browser-Fensters gestartet und für die eingebettete Repräsentation der Daten in der Webseite verwendet. Bis vor kurzem unterstützten die wichtigsten Browser diese von Netscape entwickelte Plugin API. Microsofts Bemühungen diese Technologie durch die eigene ActiveX-Technologie zu ersetzen, haben dazu geführt, dass neuere Versionen des Internet Explorers die Plugin-Technik nicht mehr unterstützen. Der bekannteste chemische Vertreter dieser Klasse von Anwendungen ist zweifellos das von MDL vertriebene Chime-Plugin [32]. 17 2 Grundlagen 2.2.3 JavaScript JavaScript ist eine von Webbrowsern interpretierbare Skriptsprache, die aber keinen, wie der Name eventuell vermuten lässt, Bezug zu der objektorientierten Programmiersprache Java hat. Durch Einbettung von JavaScript-Tags in HTML-Seiten können beispielsweise Benutzereingaben in Webformularen interpretiert und weiterverarbeitet werden. 2.2.4 Java Die objektorientierte Programmiersprache Java [33] wurde 1995 von der Firma Sun Microsystems entwickelt und seitdem ständig erweitert. Java ist in starkem Maße an die Programmiersprache C++ angelehnt, aber im Gegensatz dazu sowohl betriebssystem- als auch plattformunabhängig. Die Erfüllung der Systemunabhängigkeit ermöglicht den Einsatz von Java-Programmen im Internet. Java-Programme können in Form von Java-Applets auf beliebige Rechner transferiert und anschließend ausgeführt werden, wenn ein entsprechender, Java-fähiger Webbrowser zur Verfügung stehen. Darüber hinaus können Java-Programme auch als Standalone-Applikationen ausgeführt werden, wenn eine entsprechende Java-Laufzeitumgebung (virtuelle Maschine) auf dem System installiert ist. Heute hat sich Java als de-facto Standard für die Programmierung von Internet-Applikationen durchgesetzt und ist für fast alle wichtigen Betriebssysteme und Plattformen erhältlich. Viele der in dieser Arbeit vorgestellten Applikationen und Methoden nutzen Java in Form von Applets aber auch als eigenständige Java-Programme. 2.2.5 VRML und X3D Die Virtual Reality Modeling Language (VRML) [34] ist ein plattformunabhängiges, flexibles Dateiformat zum Austausch und zur Beschreibung von dreidimensionalen Szenen. VRML existiert in zwei Varianten - als VRML 1.0 und als VRML 2.0. Die letztere Version wurde 1997 von der International Organization for Standardization und von der International Electrotechnical Commission unter den Namen VRML97 als Standard verabschiedet und hat mittlerweile die ältere Version weitgehend ersetzt. Die dreidimensionale Szene wird dabei in Form eines Szenengraphen beschrieben, der aus speziellen sogenannten Knoten besteht. Ähnlich wie HTML-Dateien ist auch das VRML-Format in einer ASCII-Syntax implementiert. Die übertragenen VRML-Daten können entweder durch Standalone-Programme oder durch spezielle Plugins (vgl. Abschnitt 2.2.2) visualisiert werden. 18 2.2 Internet-Techniken Neben der Möglichkeit zur Beschreibung von statischen Objekten, die auch schon in VRML 1.0 möglich war, erlaubt VRML97 auch ereignisbasierte Dynamik. Durch Annäherungssensoren, Berührungssensoren und zyklischen Zeitsensoren sowie deren Verknüpfung mit anderen Szenenknoten mittels sogenannte Router können einfache Benutzerinteraktionen und Animationen realisiert werden. Darüber hinaus können VRML-Skripte in Form von speziellen Skript-Knoten in die Szene integriert werden. Diese an JavaScript angelehnte Skriptsprache kann ebenfalls mit den VRML-Knoten verknüpft werden und gestattet somit beispielsweise die Weiterverarbeitung und Berechnungen von Benutzereingaben. Im Gegensatz zu anderen Szenengraphenschnittstellen wie zum Beispiel Java3D (vgl. Abschnitt 2.2.6) ist VRML primär zur reinen Vermittlung von 3D-Information und weniger zur Programmierbarkeit ausgelegt. Dieses Defizit kann mit Hilfe des External Authoring Interface (EAI) [35] behoben werden. Mit Hilfe des EAI kann beispielsweise ein JavaApplet, das mit einem VRML-Plugin in eine HTML-Seite eingebettet ist, direkt den Szenengraphen beobachten und manipulieren. Der Einsatz dieser Technik wird in Kapitel 3 beschrieben. Der Nachfolger von VRML97 wird zur Zeit von einem internationalem Industrieverband, dem Web3D-Konsortium entwickelt. Diese als X3D (Extensible 3D) bezeichnete Szenenbeschreibungssprache basiert dabei auf der Extensible Markup Language (XML). Diese Technik kam im Rahmen der Arbeit nicht zum Einsatz, da bis dato kein verabschiedeter Standard dieser Technik verfügbar ist. 2.2.6 Java3D Die von Sun Microsystems entwickelte high-level Programmierschnittstelle Java3D [36] ist eine Erweiterung von Java und ermöglicht die Entwicklung von 3D-fähigen Applikationen und Java-Applets. Die von Java3D dargestellten Szenengraphen basieren dabei direkt auf den bereits in Abschnitt 2.1.3.2 vorgestellten low-level Graphikschnittstellen OpenGL bzw. Direct3D/DirectX. Im Gegensatz zu VRML dient Java3D nicht zum Austausch von dreidimensionalen Szenen. Vielmehr erlaubt Java3D die Programmierung von Applikationen zur dreidimensionalen Darstellung von Information. Der entwickelte Szenengraph kann dabei über die Java3D API komfortabel und im wesentlich größeren Umfang als bei VRML programmiert werden. Das in Kapitel 6 beschriebene InfVis-Programm zum graphischen Datamining basiert auf der Java3D-Technologie. 19 2 Grundlagen 2.3 Verwendete Programme Die im Folgenden beschriebenen Programme wurden zur Generierung, Speicherung und zum Management von chemischen Daten benötigt. Dem offenen chemischen Managementsystem CACTVS kam dabei insbesondere bei der Entwicklung der Internet-Anwendungen eine zentrale Bedeutung zu. 2.3.1 Das chemische Managementsystem CACTVS Das Chemical Algorithms Construction, Threading and Verification System, kurz CACTVS [37, 38] wurde als Server-seitiges Programmsystem bei der Entwicklung der in Kapitel 3 beschriebenen, Web-Applikationen eingesetzt. Dabei wurde es durch eine Reihe von Dateileseroutinen und Modulen erweitert, auf deren Implementation ebenfalls in Kapitel 3 genauer eingegangen wird. Dieser Abschnitt soll einen allgemeinen Eindruck von der Zielsetzung und Architektur dieses offenen Managementsystems vermitteln. 2.3.1.1 Zielsetzung Chemische Industriefirmen insbesondere im Bereich der Pharmaforschung verwalten heutzutage Unmengen an experimentellen und berechneten Daten. Die in den Daten enthaltene Information ist im Gegensatz zu anderen Wissenschaften für die Entwicklung zukünftiger Produkte von großer Bedeutung. Deshalb muss ein rascher, unkomplizierter und vollständiger Zugriff auf die Daten sowie eine nachfolgende effiziente Verarbeitung sichergestellt werden. Im Zeitalter des Intra- und Internets sollte dieser Zugriff darüber hinaus mit maximaler Flexibilität und minimalen Hemmschwellen bezüglich Formaten, Plattformen und Betriebssystemen stattfinden können. Die Realisierung eines solchen Informationssystems stellt sich jedoch als schwierig dar. Wie bereits erwähnt existiert in der Chemie eine Reihe von typischen Datenobjekten, wie Spektren, Strukturen, Reaktionen usw. Durch die Entwicklung von computergestützten Methoden zur Analyse, Berechnung und Weiterverarbeitung dieser Daten, steht dem Chemiker heute eine fast unüberschaubare Anzahl von Datenbankanwendungen und Programmen zur Lösung einzelner Problemstellungen zur Auswahl. Aufgrund fehlender Kompatibilität zwischen den einzelnen Softwarelösungen ist der Datenaustausch und die Weiterverarbeitung von Information stark eingeschränkt oder überhaupt nicht möglich. Das CACTVS-Toolkit ist das erste, offene, netzwerkorientierte System, dass die ganze Bandbreite der chemischen Information mit ihren spezifischen Charakteristika ausdrücken, verwalten und vermitteln kann. Dabei wurde es vor allem zur Realisierung von drei wichtigen Einsatzgebieten ausgelegt: zum Rapid Application Development von Chemie-Anwendungen 20 2.3 Verwendete Programme mit graphischen Nutzerinterface, zur allgemeinen Integration und Management von chemieorientierten Daten und Rechenverfahren und letztendlich zum sogenannten chemischen Scripting. Die beiden letzten Einsatzbereiche sind dabei vor allem im Rahmen dieser Arbeit zum Einsatz gekommen. Dank dieser spezifischen Ausrichtung eignet sich das CACTVS-System als Bindeglied und zur Kommunikation zwischen einzelnen chemischen Programmen und Anwendungen. Darüber hinaus erlaubt die flexible, netzwerkorientierte Architektur von CACTVS auch den Einsatz als Middleware und damit einen einfachen, browservermittelten Zugriff auf alle erforderlichen Datenobjekte in einem firmeninternen, standortübergreifenden Intranetsystem. 2.3.1.2 Die Architektur Um die Funktionsweise des Systems zu verstehen, ist die Vermittlung eines kurzen Überblicks der CACTVS-Architektur notwendig. Abbildung 2-4 zeigt den schematischen Aufbau des CACTVS-Programmsystems. EigenschaftsDefinitionen BerechnungsModule ToolDefinitionen DarstellungsDefinitionen Moleküle und berechnete Ergebnisse Berechnungs- Dynamische ge- Rechner- und ladene Operatoren DarstellungsSkripte & I/O Module Server Quellen von I/O FormatModulen, Servern, Erweiterungen Erweiterungen KommandoSprachenErweiterung DatenformatErweiterung Ke rn - B i b l i ot he k Ko mman d os pr ac he n - I n t e rf ace Gr aphica l User Int er f ac e Abb. 2-4: Schematische Darstellung des CACTVS-Programmsystems. 21 2 Grundlagen Herzstück des Systems ist die CACTVS-Kernbibliothek, welche als flexibler, objektorientierter Datenmanager fungiert. Der Datenmanager verwaltet dabei einen offenen, beliebig erweiterbaren Satz von Beschreibungen der Eigenschaften von chemischen Objekten wie Molekülen, Atomen und Bindungen sowie Methoden, um die zu den Eigenschaften gehörigen Daten voneinander abzuleiten und zu verknüpfen. Alle Aspekte der Datenbeschaffung, -management, -analyse, -manipulation und -ausgabe werden durch das Kernsystem gehandhabt. Die wichtigsten Eigenschaften der Kernbibliothek sowie das Kommandosprachen-Interface werden im Folgenden näher betrachtet. Unbegrenzte Datentyp-Erweiterung. Eine generelle Forderung bei der Entwicklung von CACTVS war die nahezu unbegrenzte Erweiterbarkeit des Systems. Diese Zielsetzung wird dadurch erreicht, dass jede Form von chemischer Information vollkommen unabhängig von der Kernbibliothek in externen Eigenschaftsdeskriptoren beschrieben wird. Dabei enthalten die Eigenschaftsbeschreibungen Daten wie beispielsweise eine ausführliche Beschreibung des Datentyps, Information über Abhängigkeiten von anderen Eigenschaften, Methoden zur Informationsgenerierung und Metainformation. Das System verfügt bereits über eine große Anzahl an implementierten Deskriptoren. Diese Bibliothek lässt sich aber ohne Probleme für einen bestimmten Datentypen erweitern. Die Implementation (Programmiersprache) und die Lokalisation (Systempfad) der Deskriptoren ist dabei auch vollkommen offen gestaltet. So muss beispielsweise ein Deskriptor nicht auf dem gleichen System vorliegen, sondern kann aus Dateien, aus Datenbanken, aus einem lokalen Netzwerk oder von einem entfernten Server mittels Internet-Protokolle während der Laufzeit des Programms angefordert werden. Das System unterstützt darüber hinaus die Speicherung identischer Informationsbeschreibungen, beispielsweise bei unterschiedlicher Herkunft der Daten, durch Anlegen multipler Instanzen der Eigenschaftsbeschreibung. Mittels sogenannter "synthetischer" Deskriptoren kann CACTVS sogar Daten speichern und verwalten, für die zur Laufzeit keine geeigneten Informationsbeschreibungen vorliegen. Automatische Lookup- und Generierungs-Mechanismen. Der notwendige Zugriff seitens der Kernbibliothek auf die externen Eigenschaftsbeschreibungen erfolgt mittels automatischer Lookup-Mechanismen. Dabei ermittelt das System nicht nur die benötigten Eigenschaftsdeskriptoren anhand von frei definierbaren Systemvariablen sondern überprüft darüber hinaus auch die Abhängigkeit zu anderen Eigenschaftsbeschreibungen und veranlasst die definierte Generierung von chemischen Daten, falls diese nicht vorhanden sind. Dieser Vorgang läuft für den Benutzer vollkommen transparent ab. Eine detaillierte Beschreibung dieses Vorgangs wird anhand von einigen Applikationen in Kapitel 3 erläutert. 22 2.3 Verwendete Programme Automatische Aktualisierung von Eigenschaftswertigkeiten. Durch das Vorliegen von definierten Abhängigkeiten zwischen verschiedenen Eigenschaftdeskriptoren gewährleistet das System die Korrektheit der in einer Beschreibung abgelegten Daten. Ändert sich der Inhalt einer Eigenschaftsbeschreibung zum Beispiel durch Neuberechnung der chemischen Information, so werden auch alle von diesem Deskriptor abhängigen Eigenschaften neu berechnet oder gelöscht. Flexibles I/O-Modell. Neben der Erweiterbarkeit von Modulen zur Datenbeschreibung kann das System zur Laufzeit auch mit dynamisch ladbaren Modulen zur Behandlung des I/O von Dateien in verschiedenen Formaten, zur Anbindung an diverse Datenbanken, zur Implementation von Rechenverfahren (zur automatischen Generierung chemischer Information), zur Objektdarstellung und Repräsentation oder zur Verwaltung von Datentypen ergänzt werden. Very high-level Scripting Language. In den meisten Fällen erfolgt der Zugriff auf die Kernbibliothek mittels mächtiger Skriptsprachen. Obwohl verschiedene Skriptsprachen zum Einsatz kommen können, wird in der Praxis derzeit der Industriestandard TCL (Tool Command Language) [39], das graphische Toolkit Tk sowie einige Erweiterungen verwendet. Diese Skriptsprache wurde um einen umfangreichen Satz an chemischen Datenund Strukturmanipulations-Kommandos ergänzt. Durch das Kommandosprachen-Interface können alle Objekte innerhalb der Kernbibliothek angesprochen und manipuliert werden. Das Skriptspracheninterface von CACTVS kann darüber hinaus in Common Gateway Interface (CGI)-Skripten eingesetzt werden und dient dabei nicht nur zur Kommunikation zwischen Client und Server, sondern erlaubt gleichzeitig den Zugriff auf die Kernbibliothek. Somit lassen sich sehr kurze und einfach aufgebaute CGI-Skripte erstellen (vgl. Kapitel 3). Da die GUI-Applikationen wie beispielsweise der CACTVS-Browser oder der CACTVSEditor im Rahmen dieser Arbeit nicht zum Einsatz kamen, soll auf diese Applikationen des CACTVS-Programmpakets nicht näher eingegangen werden. 2.3.2 Der 3D-Strukturgenerator CORINA Die Visualisierung dreidimensionaler Datenobjekte der Chemie, erfordert im Regelfall das Vorliegen von dreidimensionalen Strukturdaten. Die notwendige dreidimensionale Molekülkonformation wird dabei mit dem im Arbeitskreis Gasteiger entwickelten Strukturgenerator CORINA [40, 41] berechnet. Aus geschwindigkeitstechnischen Gründen und zur vereinfachten Generierung der Daten wurde in dieser Arbeit nicht die StandaloneVersion des Strukturgenerators sondern das korrespondierende und im Funktionsumfang 23 2 Grundlagen identische CACTVS-Modul von CORINA verwendet. Durch diese Architektur konnte der umständliche Datenaustausch mittels Dateien vermieden werden. Ein Satz von Regeln, welche aus Erfahrungswerten mit Kraftfeldrechnungen, kristallographischen Daten und geometrischen Überlegungen erstellt wurden, sowie einige standardisierte Daten wie Bindungslängen, Bindungswinkel und Ringgeometrien dienen als Grundlage bei der Generierung der dreidimensionalen Struktur. Durch eine möglichst allgemein gehaltene Definition dieser Regeln kann das Programm prinzipiell die gesamte strukturelle Vielfalt der organischen Chemie, sowie große Teile der metallorganischen Komplexe handhaben. Zur Berechnung der dreidimensionalen Struktur benötigt der Generator eine Konnektivitätstabelle der entsprechenden Verbindung. Während in der Standalone-Version die Eingabe der Bindungsverhältnisse über chemische Austauschformate wie Sybyl Molfile, MOL oder SDF erfolgt, kann in der CACTVS-Version die Konnektivitätsinformation direkt an das Modul übergeben werden. Die Rückgabe der 3D-Daten erfolgt anschließend über die gleichen Schnittstellen. Die Generierung erfolgt durch eine Reihe von Einzelschritten. Nachdem in einem ersten Schritt alle Bindungslängen und Bindungswinkel mit standardisierten Werten belegt wurden, erfolgt zur weiteren Berechnung die Aufspaltung des Moleküls in cyclische und acyclische Systeme. Die cyclischen Systeme werden je nach Größe und Eigenschaften unterschiedlich behandelt. Während kleinere Ringsysteme (bis acht Atome) durch vordefinierte Ringschablonen beschrieben werden, wird zur Ermittlung der Superstrukturen von großen Ringsystemen auf regelbasierte Methoden zurückgegriffen. Acyclische Molekülteile werden mit der Methode des längsten Pfades analysiert. Dabei werden die offenkettigen Fragmente entlang der längsten Kette durch anti-Stellung aller frei drehbaren Torsionen gestreckt. In einem abschließenden Schritt werden die cyclischen und acyclischen Fragmente kombiniert, wobei das System hinsichtlich möglicher Atomüberlagerungen oder zu kurzer Atomabstände überprüft wird. Mögliche Konflikte werden dabei durch eine eingeschränkte Konformationsanalyse gelöst. 2.3.3 Das semiempirische MO-Programm VAMP Neben der dreidimensionalen Struktur setzen einige der in dieser Arbeit beschriebenen Applikationen auch quantenchemisch berechnete Daten wie Orbitalkoeffizienten oder Spektrendaten voraus. Zur Generierung dieser Daten wurde das semiempirische Molecular Orbital Package VAMP [42] eingesetzt. Um den Datenaustausch mit diesem Programmpaket zu erleichtern, wurden im Rahmen dieser Arbeit einige CACTVS-basierte Leseroutinen und Eigenschaftsdeskriptoren für VAMP entwickelt. 24 2.3 Verwendete Programme VAMP wurde 1983 zunächst als vektorisierte Version von AMPAC im Arbeitskreis Clark entwickelt. Mittlerweile hat sich VAMP zu einem vollkommen eigenständigen, zu AMPAC und MOPAC Input-kompatiblen, semiempirischen Molecular Orbital Package entwickelt. Das Natural Atomic Orbital / Point Charge (NAO-PC) Modell zur Berechnung von molekularen, elektrostatischen Eigenschaften ist in VAMP implementiert und steht für die Standard-Hamiltonian-Methoden MNDO, AM1 und PM3 zur Verfügung. Diese Funktionalität wurde unter anderen von der MolSurf-Applikation (vgl. Abschnitt 4.1.5) in Anspruch genommen. Darüber hinaus wurden zum Teil auch die in VAMP implementierten Methoden zur Geometrie-Optimierung genutzt, wobei in der Regel mit CORINA generierte 3D-Koordinaten als Eingabe dienten. VAMP verfügt darüber hinaus über eine ganze Reihe von weiteren Funktionalitäten, die im Rahmen dieser Arbeit nicht zum Einsatz kamen und daher an dieser Stelle unerwähnt bleiben. 25 2 Grundlagen 26