Ballview a Molecular Viewer and Modeling Tool
Total Page:16
File Type:pdf, Size:1020Kb
BALLView A molecular viewer and modeling tool Dissertation zur Erlangung des Grades des Doktors der Ingenieurwissenschaften der Naturwissenschaftlich– Technischen Fakultäten der Universität des Saarlandes vorgelegt von Diplom-Biologe Andreas Moll Saarbrücken im Mai 2007 Tag des Kolloquiums: 18. Juli 2007 Dekan: Prof. Dr. Thorsten Herfet Mitglieder des Prüfungsausschusses: Prof. Dr. Philipp Slusallek Prof. Dr. Hans-Peter Lenhof Prof. Dr. Oliver Kohlbacher Dr. Dirk Neumann Acknowledgments The work on this thesis was carried out during the years 2002-2007 at the Center for Bioinformatics in the group of Prof. Dr. Hans-Peter Lenhof who also was the supervisor of the thesis. With his deeply interesting lecture on bioinformatics, Prof. Dr. Hans-Peter Lenhof kindled my interest in this field and gave me the freedom to do research in those areas that fascinated me most. The implementation of BALLView would have been unthinkable without the help of all the people who contributed code and ideas. In particular, I want to thank Prof. Dr. Oliver Kohlbacher for his splendid work on the BALL library, on which this thesis is based on. Furthermore, Prof. Kohlbacher had at any time an open ear for my questions. Next I want to thank Dr. Andreas Hildebrandt, who had good advices for the majority of problems that I was confronted with. In addition he contributed code for database access, field line calculations, spline points calculations, 2D depiction of molecules, and for the docking in- terface. Heiko Klein wrote the precursor of the VIEW library. Anne Dehof implemented the peptide builder, the secondary structure assignment, and a first version of the editing mo- de. Bettina Leonhardt and Carla Haid implemented the docking interface and its graphical frontend. Andreas Bertsch developed the SMARTS matcher and the ring perception al- gorithms that are the basis for the MMFF94 atom typing process. Stefan Strobel wrote the molecular surface calculation code. Jan Küntzer contributed code for the PDB and PubChem access. Andreas Krauser developed the first version of the BALLView installer for Microsoft Windows. Dr. Dirk Neumann and Dr. Andreas Kämper had the patience to explain some of the finer details on organic chemistry to me. Alexander Rurainski gave me advice on some mathematical and numerical problems while Sophie Weggler dis- cussed the details of the MMFF94 forces implementation with me. Gernot Ziegler kindly provided hints on OpenGL graphics and access to the MPI multimedia room. Furthermo- re, my thanks go to all other member of the chair for bioinformatics who made this time in my life so enjoyable. Last, but certainly not least, I want to thank my wife Petja Moll and my parents for their understanding and support. Abstract Over the last ten years, many molecular modeling software were developed, but most of them offer only limited capabilities or are rather difficult to use. This motivated us to create our own molecular viewer and modeling tool BALLView, based on our biochemical algorithms library BALL. Through its flexible and intuitive interface, BALLView provides a wide range of features in fields of electrostatic potentials, molecular mechanics, and molecular editing. In addition, BALLView is also a powerful molecular viewer with state-of- the-art graphics: it provides a variety of different models for biomolecular visualization, e.g. ball-and-stick models, molecular surfaces, or ribbon models. Since BALLView features a very intuitive graphical user interface, even inexperienced users have direct access to the full functionality. This makes BALLView particularly useful for teaching. For more advanced users, BALLView is extensible in different ways. First, extension on the level of C++ code is very convenient, since the the underlying code was designed as a modular development framework. Second, an interface to the scripting language Python allows the interactive rapid prototyping of new methods. BALLView is portable and runs on all major platforms (Windows, MacOS X, Linux, most Unix flavors). It is available free of charge under the GNU Public License (GPL) from our website (www.ballview.org). German abstract Im Laufe der letzten zehn Jahre wurden viele verschiedene Molecular Modeling Program- me geschrieben, aber die meisten bieten nur eingeschränkte Funktionalität, oder sind sehr unintuiv zu bedienen. Dies impliziert, dass viele Forscher Probleme mit diesen Pro- grammen haben und benutzerfreundlichere Software vorziehen würden. Dies inspirierte uns dazu, mit BALLView ein neuartiges Modellierungsprogramm zu entwickeln, basierend auf unserer biochemischen Algorithmenbibliothek BALL. Durch seine flexible Oberfläche bietet BALLView eine reiche Palette an Funktionen in den Bereichen Elektrostatik, Mole- kularmechanik und dem Edititieren von Molekülen an. Darüberhinaus ist BALLView auch ein leistungsfähiges Programm zur Visualisierung von Molekülen, das über Grafikfähigkei- ten verfügt, die dem neuesten Stand der Technik entsprechen. BALLView unterstützt ne- ben allen Standard-Molekülmodellen wie bspw. Stick, Cartoon, Ribbon und Oberflächen auch die Visualisierung von elektrostatischen Feldern. Alle aufgeführten Funktionen kön- nen auch von unerfahrenen Benutzern verwendet werden, da BALLView eine sehr intuiti- ve Benutzeroberfläche besitzt. Dadurch ist es hervorragend geeignet zum Einsatz in der Lehre. Für fortgeschrittene Benutzer ist BALLView erweiterbar auf zwei unterschiedlichen Wegen: Durch das Design der zugrundeliegenden Klassenhierarchie sind Erweiterungen auf der Ebene des C++ Programmcodes sehr einfach zu realisieren. Desweiteren bietet BALLView ein Interface zur Skriptsprache Python, die interaktives Rapid-Prototyping von neuen Funktionen erlaubt. BALLView ist portierbar und kann auf allen verbreiteten Platt- formen (Windows, MacOS X, Linux, die meisten Unix-Derivate) verwendet werden. Es ist frei verfügbar unter der LGPL Lizenz und kann von unserer Webseite heruntergeladen werden (www.ballview.org). German summary Im Laufe der letzten zehn Jahre wurden die Methoden zur Aufklärung der dreidimensio- nalen Struktur komplexer organischen Substanzen wie bspw. Proteinen und Nukleinsäu- ren ständig weiterentwickelt. Als Folge dessen nimmt die Anzahl der neu publizierten Stukturen von Jahr zu Jahr zu. Die vielleicht grösste Herausforderung unserer Zeit ist es nun, diese Daten in nutzbringendes Wissen zu verwandeln: Ein tieferes Verständnis des Verhaltens und Zusammenspiels der einzelnen Biomoleküle wird zu bahnbrechen- den Entwicklungen in der biologischen und biochemischen Grundlagenforschung führen. Darüberhinaus wird dieses Verständnis die Entwicklung von neuartigen Medikamenten ermöglichen, die gleichzeitig wirksamer und spezifischer (geringere Nebenwirkungen) sein werden. Die Schlüsseltechnologie für die Aufklärung der zugrundeliegenden Me- chanismen ist das sogenannte ”Molecular Modeling”. Es kann definiert werden, als die theoretischen Methoden und Berechnungtechniken, die dazu dienen, das Verhalten von Moleküle zu modelieren, simulieren und visualisieren. Im den letzten Jahren wurden vie- le verschiedene Modellierungsprogramme entwickelt, aber die meisten bieten nur einge- schränkte Funktionalität, oder sind schwer zu verstehen und zu benutzen. Dies impliziert, dass viele Forscher und Studenten Probleme mit diesen Programmen haben und leich- ter zu bedienende Software vorziehen würden. Das inspirierte uns dazu, mit BALLView ein neuartiges Modellierungsprogramm zu entwickeln, basierend auf unserer biochemi- schen Algorithmenbibliothek BALL. Durch seine flexible Oberfläche bietet BALLView eine reiche Palette an Funktionen in den Bereichen Elektrostatik, Molekularmechanik sowie dem Edititieren von Molekülen an. Darüberhinaus ist BALLView auch ein leistungsfä- higes Programm zur Visualisierung von Molekülen, das über Grafikfähigkeiten verfügt, die dem neuesten Stand der Technik entsprechen. So unterstützt BALLView neben allen Standard-Molekülmodellen wie bspw. Stick, Cartoon, Ribbon und Oberflächen auch die Visualisierung von elektrostatischen Feldern. Desweiteren erlaubt es die Erstellung von hochqualitativen Abbildungen in beliebigen Auflösungen, durch den Export zum Raytra- cer POVRay. Benutzer können zusätzlich auf sehr einfache Weise Videodateien erstellen oder 3D-Stereo-Projektionen verwenden. Alle aufgeführten Funktionen können auch von unerfahrenen Benutzern verwendet wer- den, da BALLView eine sehr intuitive Benutzeroberfläche besitzt. Um den Benutzer weite- re Hilfestellung zu reichen, bietet sie eine integrierte Dokumentation und kontextsensitive Hilfsfunktionen an. Dadurch eignet sich BALLView auch hervorragend zum Einsatz in der Lehre, insbesondere zur Vermittlung biochemischer Grundlagen und bioinformatischer Methoden. Für fortgeschrittene Benutzer ist BALLView auf zwei unterschiedlichen We- gen erweiterbar: • Durch das objektorientierte Design der zugrundeliegenden Klassenhierarchie las- sen sich Erweiterungen auf der Ebene des des C++ Programmcodes sehr leicht realisieren. Desweiteren wurde die zugrundeliegende Funktionalität in verschiede- ne, unabhängige Module zerlegt, die beliebig kombiniert und ergänzt werden kön- nen. Dadurch lassen sich sehr einfach benutzerdefinierte Programme schreiben, die genau die gewünschte Funktionalität besitzen. • Zusätzlich bietet BALLView ein Interface zur Skriptsprache Python. Dazu wurde die C++ Klassenbibliothek in ein Python-Modul umgewandelt. Die darin enthaltenen Python-Klassen sind dabei nahezu identisch zu den C++ Klassen, was die notwen- dige Einarbeitungszeit minimiert. Als Resultat