Neue Fähigkeiten des bekannten Programms Rasmol in der Unix-Version

Molecular Modeling mit RasMol

von Andreas Bohne und Henryette Roth


Der Bericht beschreibt, welche neuen Funktionen in Rasmol 2.6AB implementiert wurden und beleuchtet ein wenig die Bedeutung und Entstehung des Programms.

Vor genau 10 Jahre entstand Rasmol [2], das wohl am meisten verbreitete Molekülvisualisierungsprogramm. Der Name Rasmol leitet sich aus den beiden Begriffen RASter (damit ist das Speicherfeld der Pixel auf einem Bildschirm gemeint) und MOLecules (Moleküle) ab. 1989 begann ein Student des Imperial Collegein London - Roger Sayle - ein Programm zu entwickeln, das plastische 3D-Darstellungen von Molekülen darstellen und sogar schnell bewegen (rotieren, verschieben, zoomen) kann. Zu diesem Zweck nahm er sich Raytracing-Algorithmen vor und implementierte diese in der Programmiersprache C, und zwar so effektiv, dass sie Rotationen und das Rendern in Echtzeit zuließen.

Wie alles begann

Seine Bestrebungen waren von Erfolg gekrönt, denn er schaffte es, das damals zweitschnellste Sphere-Shadowing-Programm der Welt zu entwickeln - auch wenn diese Algorithmen noch auf einem Parallelcomputer liefen. Während dieser Zeit, so sagte er, arbeitete er ausschließlich an den Algorithmen, wobei ihm David Blow mit Rat und Tat bei der Entwicklung zur Seite stand. Ein Jahr später wechselte Roger an die Universität von Edinburgh, um als wissenschaftlicher Mitarbeiter bei Andrew Coulson, einem Kristallographen, seine Doktorarbeit zu beginnen. In Edinburgh entwickelte Roger die Algorithmen so weit, dass sie auf einem Einprozessorcomputer liefen. Nachdem die erste Version stabil unter Unix lief, folgte später eine Implementierungen für Windows. 1993 hatte das Programm Rasmol einen Stand erreicht, der es erlaubte, es anderen frei zugänglich zu machen. Ebenfalls in diesem Jahr wurde Roger der Ph.D. (Doktortitel) verliehen. Im Januar 1994 ging er zum Pharmakonzern Glaxo Wellcome, der die Weiterentwicklung von Rasmol unterstützte. So entstand zum Beispiel die erste Version von Rasmol für Mac (RasMac). Mit dem Weggang von Glaxo Wellcome 1997 endete im Prinzip auch die Weiterentwicklung von Rasmol. Inzwischen arbeitet Roger in einer Softwareschmiede (Metaphorics) für Bioinformatik in Santa Fe in New Mexiko, in welcher er als Mitgründer den Posten des Vice President bekleidet. Ein weiterer Gesellschafter der Firma ist David Weininger, der Erfinder von SMILES, einer eindeutigen, linearen Beschreibungssprache für Moleküle.

Im Jahr 1996 entwickelten Bryan van Vliet und Tim Maffett bei MDL Systems aus einem Großteil der Rasmol-Algorithmen (ca. 16.000 Zeilen Code) das Netscape-Plugin CHIME (Chemical mIME). Der C-Code wurde zu diesem Zweck in C++ umgewandelt und um weitere 80.000 Zeilen Code ergänzt. 1996 fügte Arne Müller von der GWDG (Gesellschaft für wissenschaftliche Datenverarbeitung mbH Göttingen) noch weitere Verbesserungen und Änderungen in den Code von Rasmol ein. Aber seit nun mehr als drei Jahren wurde nur noch wenig an Rasmol entwickelt.

Wie es weitergeht

Inzwischen hat Herbert Bernstein [3], wissenschaftlicher Assistent am St. Joseph College New York, die Koordinierung der Entwicklung übernommen und nimmt Implementierungen von Änderungsvorschlägen entgegen, welche er dann in einer offiziellen Version zu bündeln und zu verbreiten versucht. Eine große Schwierigkeit, mit der er kämpft, ist, immer die Änderung in den Quellcode für alle drei Plattformen -- Unix, Mac und Windows -- einzubringen. Im Herbst diesen Jahres soll die Version 2.7 herausgegeben werden. Er hofft, dann schon einige der hier vorgestellten Neuerungen in die offizielle Version einbauen zu können.

Roger meinte auf einer Tagung in Heidelberg (Abb.), er hoffe, dass die Entwicklung von Rasmol nun durch seine Benutzer weitergeführt werde. Aber leider wird dieses Ansinnen nicht recht angenommen, denn das Problem liegt auf der Hand: Die Benutzer von Rasmol sind zumeist Biologen, Chemiker, Pharmazeuten und Mediziner -- alles Leute, die für gewöhnlich nicht C programmieren, und schon gar nicht unter Unix, sondern schlichtweg nur Anwender sind.

Bei diesen Anwendern wurde Rasol recht früh sehr poulär -- erst nur in Edinburgh, dann weltweit. Wie kam es dazu?
Einhergehend mit der Strukturaufklärung von Proteinen fanden immer mehr 3D-Molekülstrukturdaten ihren Weg in die verschiedenen Datenbanken [4,5] und wurden dort gesammelt. Somit war auch der Bedarf an einem Programm geweckt, das die 3D-Gestalt von Proteinen darstellen kann. Eine dieser Datenbanken ist die Protein Datenbank in Brookhaven [4], für welche zu diesem Zweck ein Molekülaustauschformat definiert wurde, das sich zum de-facto-Standard für die Speicherung und Übertragung von Molekülbeschreibungen entwickelt hat. Es nennt sich PDB-Format und Moleküldateien, die in diesem Format gespeichert sind, tragen für gewöhnlich die Endung pdb.

Beliebt, weil benutzbar

Rasmol hat vier grundlegende Eigenschaften, die zu der starken Verbreitung und Akzeptanz geführt haben. Zum einen ist das Programm frei verfügbar, ganz im Gegensatz zu den meisten anderen Programmen, die sich in diesem Bereich tummeln. Zum anderen ist es auf den drei Hauptplattformen lauffähig und die Darstellungsgeschwindigkeit ist immer noch, im Vergleich zu anderen Programmen dieser Art, immens hoch. Aber der wichtigste Grund ist wohl der, dass es einfach zu bedienen und zu installieren ist; denn wirft man ein Auge auf das Klientel, das dieses Programm verwendet, so wird dieser Punkt um so verständlicher: Den wenigsten Biologen oder Chemikern ist der Computer so vertraut wie den Leuten, die die Programme entwerfen. Leider ist dies allzu oft ein Punkt, dem wenig -- zu wenig -- Tribut gezollt wird. Die Installation von Rasmol erfolgt übrigens einfach mit dem Aufruf von xmkmf zum Erzeugen des Makefiles. Ein anschließendes make setzt das Programm dann zusammen.

Die hohe Benutzerakzeptanz führte sogar dazu, dass in Frankreich Rasmol durch das Bildungsministerium empfohlen wurde, was bedeutet, dass es in den Universitäten, Fachhochschulen und Oberstufen der Schulen eingesetzt wird. Eine höheres Lob kann man sich kaum wünschen. Auch hierzulande hat Rasmol seinen Weg in den Ausbildungsbereich gefunden. Aber all diese Punkte sollen nicht darüber hinwegtäuschen, dass man nicht noch Dinge verbessern oder ergänzen könnte. So verfügt Rasmol über eine recht mächtige Script-Sprache, die jedoch die allerwenigsten, die Rasmol einsetzen, beherrschen. Daher werden von den Benutzern meist nur die im grafischen Menü zu Verfügung gestellten Optionen benutzt. Ein Menü aufzumachen und auf etwas zu klicken ist einfacher. Hier setzt die erste Kategorie von Neuerungen an, welche die neue Version von Rasmol aufweist: Die Menüstruktur wurde wesentlich erweitert. Zu den Hauptmenüpunkten sind die Menüs "Farbliche Gestaltung", "Auswahl 1", "Auswahl 2", "Aminosäuren" und "Makros" hinzugekommen. Doch bevor auf die genaue Bedeutung der einzelnen Menüs eingegangen wird, soll kurz erklärt werden, wie das Konzept von Rasmol arbeitet. Rasmol-Kommandos beziehen sich immer auf eine ausgewählte Anzahl von Atomen. Also ist immer der erste Schritt, durch einen Befehl Atome anhand eines Kriteriums auszuwählen und dann in den folgenden Schritten zu bearbeiten. In der Script-Sprache wird dieses durch den Befehl "select" (oder restrict) erreicht. Danach beziehen sich alle weiteren Kommandos auf diese ausgewählten Atome. Ein solcher Befehl könnte also z.B. sein: "spacefill on" oder "color magenta". Rasmol hält eine Menge von vordefinierten Select-Befehlen parat, wie z.B. "select dna", welcher bewirkt, dass in einem Molekül der DNA-Strang (sofern vorhanden) ausgewählt wird. Viele dieser vordefinierten Select-Befehle beziehen sich auf die Eigenschaften von Aminosäuren (Abb.), wie zum Beispiel aliphatisch oder polar. Andere beziehen sich auf abgeschlossene Substrukturen wie Wasser, Ionen oder einen Liganden. Mit dem Menü "Aminosäuren" ist es möglich, sich bestimmte Aminosäuren in dem Protein anzeigen zu lassen, denn für viele Untersuchungen ist es wichtig, zu sehen, wo überall in dem Protein sich zum Beispiel Asparaginsäuren befindet. Die Abfolge der Aminosäuren in diesem Menü ist durch den Einbuchstabencode gekennzeichnet.

Einfacher für Alle

Konnte man vorher also, wenn man mit der grafischen Benutzeroberfläche gearbeitet hatte, immer nur Aktionen ausführen, die auf das gesamte Molekül angewandt wurden, so ist in der hier vorgestellten> Version ein bisschen Umdenken erforderlich, denn nun hat man die Möglichkeit, auch mit Untermengen des Moleküls zu arbeiten, und dies mit der gesamten Fülle der Aktionen, die Rasmol dafür zur Verfügung stellt. Man kann so nacheinander verschiedene Untermengen auswählen und bearbeiten. Durch diese Möglichkeit ist es nun auch Laien möglich, sehr aussagekräftige Bilder (zum Beispiel für irgendwelche Publikationen) zu erzeugen.

Diese können von Rasmol in mehreren Formaten abgespeichert werden. Neben GIF und BMP stehen auch PS und andere zur Disposition. Womit wir bei einem weiteren Punkt der Ergänzungen angelangt sind. Es wurden einige Ausgabeformate, die bisher nur durch die Script-Sprache erreichbar waren, in die grafische Oberfläche aufgenommen.

Soviel zu den Dingen, die schon bisher in Rasmol verborgen schlummerten aber bsiher nur von aufgeweckten (Skript-)Benutzern gebührend gewürdigt werde konnten.

Wie schon erwähnt, hatte Rasmol nicht nur Vorteile. Gerade im Umgang mit Unix war es ein leidiger Punkt, dass in Rasmol die Farbtiefe für das zu verwendende Display bereits im Programmcode festgelegt war. Das bedeutet, dass man, wollte man universell sein, auf einer Maschine drei Versionen vorhalten musste. Das waren die Versionen mit 8, 16, und 32 Bit Farbtiefe. Sehr störend machte sich dies bemerkbar, wenn man das Display auf einen Rechner umleitete, der nun eben nicht die fest eincompilierte Farbtiefe hatte.

Neben ein paar #ifdefs im Code resultierte diese Manko durch die Vordefinition der Farbtiefe mittels eines typedefs. Da Rasmol in Bezug auf die Abarbeitungsgeschwindigkeit optimal programmiert wurde, bedeutet dies im Klartext, dass Pointer verwendet werden, und je nach typedef hat ein Inkrement jeweils eine unterschiedliche Länge. Um aber den Geschwindigkeitsvorteil, der aus der ausgeklügelten Programmierung resultiert, nicht ganz zunichte zu machen, wurden die Routinen, welche die graphischen Basisoperationen realisieren, in die entsprechenden drei Einzelroutinen aufgesplittet.
Die vorgestellte Version besitzt nur noch ein Programm für alle Farbtiefen, dabei wird nach dem Programmstart automatisch die Farbtiefe des Bildschirms (Displays) abgefragt und eingestellt. Die Verzweigung auf die elementaren Routinen der Graphik  geschieht in den Makrostrukturen, wie Polygone oder Sphere. War früher das gesamte Programm für (z.B.) 16 Bit compiliert, so verzweit dieser Programmversion dynamisch auf die entsprechende Unterroutine, welchen dann die Linie mit (z.B.) 16 Bit darstellt. Die Geschwindigkeitseinbuße ist unbedeutend. Ebenfalls von dieser Aufteilung waren die Ausgaberoutinen betroffen.

Eine weitere Neuerung ist die Möglichkeit, gleich in einem Molekül ein Rasmol-Skript zu implementieren, welches sich hinter Kommentaren verbirgt.

Nach dem Laden der Moleküldatei werden die eingebetteten Befehle automatisch ausgeführt. Um an dieser Stelle aufkommende Bedenken bezüglich der Sicherheit gleich zu zerstreuen: Rasmol läßt das Schreiben aus Skripten nicht zu.

Rasmol und die Browser

Um dieses Feature ins rechte Licht zu setzen und die volle Bedeutung zu erkennen, sollte man ein wenig weiter ausholen und die Bedeutung von Rasmol im Zusammenhang mit Internet-Browsern erläutern. Schon recht lange existieren MIME-Types für den Bereich Chemie. Ein MIME-Typ gibt beim Herunterladen eines Dokumentes von einem Web-Server mittels eines Browsers die Art des geladenen Dokumentes an und dem Browser angibt , wie und womit dieses Dokument dargestellt werden soll. Leider existieren verschiedene MIME-Definitionen in Bezug auf eine PDB-Datei. Zum einen gibt es die chemical/x-pdb Definition, die sagt: hier kommt nun eine PDB-Datei. Der Benutzer kann nun mit diesem MIME-Type eine Appliktion verbinden (z.B. Rasmol oder ein anderes Molekülvisualisierungsprogramm seiner Wahl). Falls er nun sich für ein anderes Programm entschieden hat, so war der Gedanke, einen MIME-Typ einzuführen, der nicht den Schwerpunkt auf die Art der Datei legt, die übermittelt wird, sondern auf die Applikation, die zur Betrachtung der Datei herangezogen werden soll (in diesem Fall Rasmol). So wurde der zweite wichtige MIME-Type in diesem Zusammenhang definiert: chemical/x-ras. MIME-Types wie application/x-rasmol gehen in die gleiche Richtung, sind jedoch nicht offiziell oder werden wenig benutzt.
Inzwischen bieten alle gängigen Browser die Möglichkeit, Dokumente, die sie nicht selber darstellen können, durch externe Programme -- auch Helper Applications genannt -- darstellen zu lassen. Trifft ein Browser nun auf ein solches Dokument, lädt er es herunter, speichert es temporär zwischen und übergibt dem extern gestarteten Programm diese temporäre Datei als Parameter. Ein externes Programm kann also immer nur eine Datei vom Internet-Browser übergeben bekommen, ergo war es bisher nur möglich, die "nackte" Molekülstruktur zu laden. Vorgefertigte Skripte konnten Rasmol auf diesem Weg nicht zugänglich gemacht werden. Hier hatte das Netscape Plugin CHIME entscheidende Vorteile gegenüber Rasmol, denn einem Plugin ist es vergönnt, wie auch Java-Applets, Parameter zu übergeben zu bekommen. Dieser Vorteil hat CHIME auch den Weg auf die Lehr- und Lernseiten geebnet, denn mit CHIME war es möglich, via Internet dem Betrachter vordefinierte Molekülsichten zu präsentieren.

Die letzte Neuerung, die implementiert wurde, ist die, dass man mit dem Menü "Macros" Dateien einbinden kann, die Rasmol-Befehle enthalten. Hat man zum Beispiel immer wiederkehrende Befehlsabfolgen, so erzeugt man eine Datei namens macro1.scr und legt diese in ein spezielles Verzeichnis. Beim Start durchsucht Rasmol dieses Verzeichnis nach vorhandenen Makros und lädt diese. Die Anregung zu dieser Erweiterung hat ihren Ursprung in einer Biochemievorlesung, als ein Professor, der in einer seiner Vorlesungen Rasmol zu Lehrzwecken einsetzte. Dabei sollte die Bedeutung der räumlichen Gelstalt von Proteinen erläutert werden. Da er mit Beamer arbeitete, ließ er den Hörsaal verdunkeln. Als er mit der Präsentation beginnen wollte, bemerkte er, dass er vergessen hatte, den Scriptnamen einzutippen, um die Vorführung zu starten. Jeder, der schon einmal im Dunkeln vor einem Notebook gestanden hat, weiß, wie schwierig es ist, zu tippen. Derartiges entfällt nun komplett, da man im vorhinein zehn Makros definieren und diese dann über die grafische Oberfläche abrufen kann.

Wer nun ein wenig Lust bekommen hat, mal rumzuspielen, der kann sich zum Beispiel auf der Seite der Protein Brookhaven Datenbank umschauen. Unter dem Menuepunkt "SearchLite" [4b] kann man Stichworte für Substanzen (auf englisch) eingeben. Ein schönes Beispiel sind die "Antifreeze Proteins". Dieses sind Eiweißstrukturen, welche bei Tiefseefischen gefunden worden sind und die bei den Tieren verhindern, dass sie bei niedrigen Temperaturen einfrieren. Diese Strukturen hat man isoliert und beginnt nun, die Gensequenzen, die zur Synthese der Proteine verantwortlich sind, in das pflanzlichen Genom einzubauen (frostfeste Kulturpfanzen).

Andere Ansichten

Wer im Bereich der Molekülvisualisierung aktiv ist, der sei auf noch drei weitere Programme verwiesen. Zum einen ist der SWISS-PDB-Viewer [7] nun auch unter Linux verfügbar. Dieser dient primär zum Homologie-Modeling (Strukturvorhersage für Proteinstrukturen). Zum anderen gibt es das Programm VMD [8], das ebenfalls zu Molekülvisualisierung herangezogen werden kann (siehe auch News 12/99). Bei dem Programm ist jedoch die Installation (noch) Bastelarbeit und nicht immer von Erfolg gekrönt. Auch läßt die Geschwindigkeit des Programms, bedingt durch die OpenGL-Befehle, wenn sie mittels MESA emuliert werden, an die Zeiten des ZX81 zurückdenken. Trotz der Nachteile, die das Programm noch hat, ist es erwähnenswert, da es, wenn es einmal läuft, Graphiken im High-Endbereich erzeugen kann. Ferner ist auch das Programm MOLMOL [9] inzwischen für Linux portiert und glänzt mit tollen Molekülbildern.
Autoren
Bild von A.Bohne
Andreas Bohne forscht im Bereich Molekular Modeling des Deutschen Krebsforschungszentrums in Heidelberg vor allem an komplexen Zuckerstrukturen. Das Arbeiten mit Linux und Rasmol gehören für ihn zur täglichen Arbeit. Zu erreichen ist er unter .

 Henryette Roth war lange Zeit Assistant Editor beim Journal of Molecular Modeling und arbeitet gegenwärtig bei Molecular Simulations in Müchen.

Bild von H.Roth


Einige MIME Types für den Bereich Chemie[10]
chemical/x-ras Rasmol (PDB/Expasy)
chemical/x-pdb Eine PDB-Datei
application/x-rasmol  Rasmol (PDB German Mirror)
application/x-spt Rasmol-Script
chemical/x-gaussian-cube Gaussian Cube
chemical/x-gaussian-input Gaussian Input
chemical/x-mdl-tgf MDL Scretch
chemical/x-mdl-rxnfile MDL RXN
chemical/x-mdl-molfile MDL MOL
chemical/x-jcamp-dx JCAMP-DX
chemical/x-mopac-input MOPAC-Input
chemical/x-xyz  XMOL xyz-file

 
Links
1) Rasmol 2.6AB (nur Unix) http://www.dkfz-heidelberg.de./spec/Rasmol2ab2/
2) Rasmol Original http://www.umass.edu/microbio/Rasmol/
3) Rasmol Bernstein http://www.bernstein-plus-sons.com/software/Rasmol/
http://www.openrasmol.org/">
4) PDB http://www.rcsb.org/pdb/ / http://www.rcsb.org/pdb/searchlite.html
5) ExPASy http://www.expasy.ch/
6) Zuckerstrukturen  http://www.dkfz-heidelberg.de/spec/sweet2/
7) SWISS-PDB-Viewer http://www.expasy.ch/spdbv/text/getlinux.htm
8) VDM http://www.ks.uiuc.edu/Research/vmd/
9) MolMol http://www.mol.biol.ethz.ch/wuthrich/software/molmol/
10) MIME-Types for chemstry http://www.ch.ic.ac.uk/chemime/.index.html
MIME-Einträge, um Rasmol als Helper Application einzubinden:

chemical/x-ras             xterm -T "Rasmol 2.6AB" -e "Rasmol -pdb %s"
chemical/x-pdb             xterm -T "Rasmol 2.6AB" -e "Rasmol -pdb %s"
chemical/x-xyz             xterm -T "Rasmol 2.6AB" -e "Rasmol -xyz %s"
application/x-Rasmol    xterm -T "Rasmol 2.6AB" -e "Rasmol -pdb %s"
application/x-scr             xterm -T "Rasmol 2.6AB" -e "Rasmol -script %s"

 
 
 
Klassifikation von vordefinierten Objekten unter Rasmol
 

  Dieses Diagram stellt die voreingestellten Klassifizierungen von Rasmol dar. Oben rechts erkennt man die Einteilung von den nicht Primärelementen, im ganzen als "hertero"-Elemente bezeichnet. Dieses ist zum einen Wasser (Kistallwasser) und zum anderen Metallionen, die oft mit Proteinen eine Komplexverbindung eingehen. Liganden sind Strukturen, an die das Molekül bindet. In dem unteren Schaubild sind die vier Basen Guanin, Cytosin, Adenin und Thymin, welche die DNS bilden, eingeteilt. Am Kkomplexisten ist die Einteilung der Aminosäuren (linkes Schaubild). Den Aminosäuren kann man mehrere Eigenschaften zuordnen. Die meisten dieser Eigenschaften beziehen sich auf chem. Eigenarten wie zyklisch (besitzen eine Ringstruktur) oder sind in der Lage Protonen abzugeben, dh. sie sind sauer (acidic) oder diese Aminosäuren sind in der Lage Protonen aufzunehmen, dh. sie sind basisch (basic).

 
 
 
 
Menue Punke unter Rasmol 2.6AB

Nukleotidtransferase (PDB-ID: 2POL)
Roger Sayle auf der ISCB-Tagung in Heidelberg
Antigrippemittel
Das Bild zeigt das Enzym Neuraminidase (PDB-ID: 1A4G) mit einem Liganden. Der Ligand, der in das Protein eingelagert ist, ist Zanamivir (Handelsname: Relenza), welcher das Protein inhibiert und somit eine Abspaltung der Neuraminsäure verhindert. Nach seiner Vermehrung in der Wirtszelle, werden die fertigen Viruspartikel durch die Zellmembran nach außen geschleust. Dabei hängen das Virus zum Schuß noch über eine Kohlehydratstruktur (Neuraminsäure) an der Zelloberfläche fest und würde normalerweise durch das Enzym abgetrennt. Da aber nun die Neuramidase durch die Substanz Zanamivir in seiner Funktion blockiert ist, kann das Virus nicht von der Oberfläche der Zelle abgespalten werden und neue Zellen infizieren.





Ende des Artikels

Einfach mal ein paar Graphiken zum Aussuchen:

DNA 103D.pdb: Einfach ein Stück DNS.




CYTOSINE-SPECIFIC METHYLTRANSFERASE HHAI 10MH.pdb: Damit die Zelle nach der Verdoppelung des DNS-Stranges noch unterscheiden kann, welcher Strang der alte und welches der neue war, werden die Nukleodie des einen Stranges mittels eines Proteins methlyliert, was bedeutet, daß eine CH4-Gruppe hinzugefügt wird.


Disaccharid: Zucker bestehend aus 2 Einfachzuckern


1bl8.pdb Potassium Channel Protein: Kanalproteine sind Proteine, die in Memenbranen von Zellen oder Zellorganellen eingelasen sind und welche aufgrund ihrer 3D-Struktur einen Tunnel aufbauen, durch den kleinere Moleküle transportiert werden können.