Neue Fähigkeiten des bekannten Programms Rasmol in der Unix-VersionMolecular Modeling mit RasMolvon |
![]() |
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.
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.
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.
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.
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.
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).
| 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" |
|
| 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. | |
Einfach mal ein paar Graphiken zum Aussuchen:

DNA 103D.pdb: Einfach ein Stück DNS.
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.