Entwicklung einer auf OpenGL basierenden grafischen Oberfläche für das de novo Design von Proteinstrukturen
- Art: Diplomarbeit
- Autor: Stephan Klokow
- Abgabedatum: August 2004
- Umfang: 104 Seiten
- Dateigröße: 1,6 MB
- Note: 1,3
- Institution / Hochschule: Fachhochschule Merseburg Deutschland
- ISBN (eBook): 978-3-8324-9795-8
-
ISBN (Paperback) :
978-3-8324-9795-8 P - ISBN (CD) :978-3-8324-9795-8 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Klokow, Stephan August 2004: Entwicklung einer auf OpenGL basierenden grafischen Oberfläche für das de novo Design von Proteinstrukturen, Hamburg: Diplomica Verlag
- Schlagworte: Bioinformatik, Eiweiß, Open GL, C++, Protein
In den Warenkorb
48,00 €
Diplomarbeit von Stephan Klokow
Einleitung:
Proteine sorgen dafür, dass chemische Reaktionen in Zellen katalysiert und reguliert werden (Enzyme), sie übermitteln Signale von Zelle zu Zelle (Hormone), erkennen Signale und leiten sie dem Zellinneren zu (Rezeptoren), transportieren schlecht wasserlösliche Stoffe wie Sauerstoff (Hämoglobin) oder Eisen (Transferrin) und leiten oder pumpen Ionen durch Zellmembranen (Ionenkanäle und -pumpen). Proteine verleihen der Zelle ihre jeweilige Gestalt. Ihre dreidimensionale Struktur oder Tertiärstruktur enthält die wesentlichen Informationen, um all diese Funktionen effizient und unter strenger Kontrolle ablaufen zu lassen. Die räumliche Struktur, also die Form, ist das Geheimnis der Funktionen von Proteinen. Ein wichtiges Thema in der Biologie der letzten Jahre ist deshalb die Bestimmung oder die Vorhersage solcher Proteinstrukturen. Der Schlüssel zum Verständnis der Funktionen von Proteinen heißt: Die Funktion ist von der dreidimensionalen Struktur abhängig, die wiederum durch die Aminosäuresequenz in einer definierten physikochemischen Umgebung festgelegt ist.
Die experimentelle Bestimmung von Proteinstrukturen ist sehr aufwendig. Für die Untersuchung der Struktur von Proteinen gibt es zwei Verfahren: Die Röntgenstrukturanalyse und die Kernmagnetresonanz-Spektroskopie (Nuclear Magnetic Resonance, NMR). Bei Proteinen, die sich kristallisieren lassen, kann man mit der Röntgenstrukturanalyse (Beugung von Röntgenstrahlen) recht genau die Position jedes einzelnen Atoms in Bezug auf die anderen Atome des Moleküls bestimmen. Die NMR-Spektroskopie ergänzt die Röntgenstrukturanalyse, da sie Informationen über die dreidimensionale Struktur in Lösung liefert, etwa über die Flexibilität von Teilen des Proteins, die sich in kristalliner Form nicht zeigen.
Theoretische Aussagen, wie man von der Sequenz auf die Struktur schließen kann, sind nach dem heutigen Stand der Technik noch sehr unzuverlässig. So liegen zwar häufig die Sequenzen für Proteine vor, aber nicht deren dreidimensionale Strukturen. Spezielle biologische Funktionen können jedoch nur aus der räumlichen Struktur eines Proteins abgeleitet werden. Die Funktionen vieler Proteine erfordern die Bindung anderer Moleküle. Ein Molekül, das von einem Protein gebunden wird, bezeichnet man als Ligand. Ein Ligand kann ein beliebiges Molekül sein, aber auch ein anderes Protein. Eine Protein-Ligand-Wechselwirkung ist unter anderem entscheidend, wenn ein Organismus rasch auf Veränderungen der Umwelt und des Stoffwechsels reagieren muss. Die molekulare Struktur, an der ein Ligand an ein Protein bindet, wird Bindungsstelle genannt. Sie ist komplementär zum Liganden, was Größe, Form, Ladung und hydrophobe bzw. hydrophile Eigenschaften betrifft. Ein bestimmtes Protein kann verschiedene, voneinander getrennte Bindungsstellen für mehrere unterschiedliche Liganden besitzen.
Mit der vorliegenden Diplomarbeit wird versucht, von einer Struktur zu einer mit ihr kompatiblen Sequenz zu gelangen. Ziel der Arbeit ist, ein neuartiges Werkzeug zu entwickeln, mit dem Proteinstrukturen nach eigenen Vorgaben erstellt werden können (de novo Protein Design). Nachdem der Nutzer ein aus den periodischen Sekundärstrukturelementen bestehendes strukturelles Rahmengerüst definiert hat, wird der eigentliche Prozess des de novo Protein Designs gestartet, bei welchem die Sekundärstrukturelemente mit Aminosäuren befüllt werden.
Der Vorteil dieser neuen Methode liegt auf der Hand: Dem Benutzer wird erlaubt, neue Proteinstrukturen gezielt für bestimmte Aufgaben zu erzeugen. Ein Beispiel für die Anwendung ist das im vorigen Abschnitt erwähnte Schlüssel-Schloss-Prinzip. Die Bildung von Protein-Ligand-Komplexen, also von Schloss-Schlüssel-Komplexen, erfordert komplementäre Oberflächeneigenschaften der Komponenten (Geometrie, Elektrostatik, Wasserstoffbrücken). Wenn man davon ausgeht, dass die Ligandenstruktur bekannt ist, die Struktur des Proteins dagegen nicht, so soll mit dem zu erstellenden Werkzeug die Oberflächenstruktur des Proteins so modelliert werden können, dass ein möglichst genau passendes Schloss (Proteinstruktur) erzeugt wird.
Ein grafisches Protein-Design-Tool, wie es hier entwickelt werden soll, ist derzeit noch nicht implementiert, bzw. ist eine frei verfügbare Implementierung noch nicht bekannt.
Inhaltsverzeichnis:
| Abbildungsverzeichnis | 4 | |
| Symbolverzeichnis | 7 | |
| 1. | Motivation und Grundlagen | 9 |
| 1.1 | Motivation | 9 |
| 1.2 | Das Protein | 11 |
| 1.2.1 | Aufbau von Proteinen | 11 |
| 1.2.2 | Faltung von Proteinen | 13 |
| 1.2.3 | Die Alpha-Helix | 13 |
| 1.2.4 | Das Beta-Faltblatt | 15 |
| 1.2.5 | Das Rückgrat eines Proteins | 16 |
| 1.2.6 | Das Ramachandran-Diagramm | 17 |
| 1.3 | Die Tetrapeptidfunktionen der ACGT ProGenomics AG | 19 |
| 1.4 | Grundlagen der Grafikprogrammierung | 20 |
| 1.4.1 | OpenGL | 20 |
| 1.4.1 | Theoretische Grundlagen von OpenGL | 23 |
| 1.4.2 | DirectX | 35 |
| 1.4.3 | Das Tao-Framework | 36 |
| 2. | Herangehensweise | 39 |
| 3. | Programmierung | 41 |
| 3.1 | Das .NET-Framework | 41 |
| 3.2 | Softwareentwicklung | 42 |
| 3.2.1 | Phasen | 42 |
| 3.2.2 | Begriffe | 43 |
| 4. | Programmierung der grafischen Oberfläche | 46 |
| 4.1 | Erstellen der Sekundärstrukturelemente in OpenGL | 46 |
| 4.2 | Geometrische und topologische Eigenschaften der Sekundärstrukturelemente | 58 |
| 5. | Berechnen der Sequenz | 61 |
| 5.1 | Parameter für die Berechnung | 61 |
| 5.2 | Erstellen der Sequenz | 68 |
| 5.3 | Auswertung der Ergebnisse | 85 |
| 6. | Zusammenfassung und Ausblick | 89 |
| 6.1 | Zusammenfassung und offene Aufgaben | 89 |
| 6.2 | Ausblick | 90 |
| 7. | Literaturverzeichnis | 91 |
| 8. | Anhang | 96 |
| A. | Programmierbeispiel A | 96 |
| B. | Programmierbeispiel B | 97 |
| C. | Programmierbeispiel C | 99 |
| D. | Die energetisch besten Sequenzen für das Protein 1QYS | 103 |
Der Implementierung des Programms folgt ein ausführlicher Test. Zwei Verfahren sind zu unterscheiden: der Programmtest und der Benutzertest. Im Programmtest werden die einzelnen Programmmodule auf logische Konsistenz geprüft. Er wird in der Regel vom Programmierer selbst durchgeführt. Normalerweise beginnen die Tests nicht erst am Ende der Implementierungsphase, sondern bereits während der Codierung: Wenn die Module programmiert werden, werden gleich die dazugehörigen Tests durchgeführt. Am Ende der Implementierung findet ein Gesamttest statt, der das Zusammenspiel der einzelnen Module überprüft. Wurde das Programm durch den Programmtest als logisch richtig und fehlerfrei verifiziert, so muss ein Test unter Produktionsbedingungen erfolgen. Dieser Test kann zwar vom Programmierer durchgeführt werden, es ist aber besser, wenn hier unabhängige Benutzer testen. Durch den Benutzertest wird das Programm unter realen Bedingungen getestet. 3.2.2 [...]
Software-Engineering ist die Anwendung wissenschaftlicher Erkenntnisse mit dem Ziel, Computer mittels Programmen, Verfahren und zugehörigen Dokumenten dem Menschen nutzbar zu machen [Prof. Seeder, 2003]. Die Entwicklung eines Softwaresystems ist vielschichtig und umfangreich. Hierfür sind geordnete Bahnen notwendig. Ein Entwicklungsmodell soll die Problematik der geordneten Projektabwicklung näher beschreiben. Der Prozess der Softwareentwicklung beginnt mit der Problemanalyse als erste Phase. Hier wird das Problem meist umgangssprachlich formuliert und dient als Vorgabe für die Problemanalyse. Das Ergebnis der Problemanalyse ist eine genaue und komplette Leistungsdefinition des zu entwickelnden Produktes. Die Problembeschreibung bzw. die Leistungsdefinition kann z. B. in schriftlicher Form niedergelegt werden. In der Problemanalyse fällt noch keine Entscheidung über das weitere Vorgehen. Nach der Problemanalyse folgt der Entwurf. Mit dieser Phase beginnt die eigentliche Entwicklung des Anwendungssystems. Der Entwickler plant in der Entwurfsphase die Einzelheiten der Anwendung. Das Ergebnis ist also eine Programmspezifikation, in der alle Einzelheiten beschrieben sind, die zur eigentlichen Programmierung des Systems erforderlich sind. Wurde der Entwurf erfolgreich beendet, kann die Anwendung programmiert werden. Diesen Vorgang nennt man Implementierung, da jetzt der Entwurf auf dem Computer umgesetzt wird. Je nach Anwendungsgebiet kann die eigentliche Umsetzung im Programm unterschiedlich aufwendig sein. Möglicherweise wird gar nicht viel Code geschrieben, sondern durch den geschickten Einsatz von Werkzeugen kann vieles ohne Programmierarbeit erledigt werden. Im Idealfall kann ein Teil des Programmcodes automatisch generiert werden. Dazu ist es natürlich erforderlich, dass der Entwurf hinreichend detailliert und formalisiert ist. Im Allgemeinen ist die Vorgehensweise top-down, d. h. die einzelnen Module werden zuerst geplant und dann jeweils verfeinert. Das Ergebnis dieser Phase ist ein ausführbares Programm. [...]
Die ACGT-Entwicklungsumgebung ist die Microsoft .NET Enterprise Edition, aus welcher C# verwendet wurde. Microsoft Visual C# ist eine mächtige und dennoch einfache Programmiersprache, die sich vor allem an Entwickler von Anwendungen für die .NET Plattform richtet [Sharp, Jagger, 2002]. Sie ist eine einfache, moderne, objektorientierte und typsichere Programmiersprache und besitzt einen Großteil der Merkmale von C++ und Visual Basic. Jedoch sind die meisten Inkonsistenzen und Anachronismen dieser beiden Sprachen entfernt und durch bessere Konzepte ersetzt worden, wodurch C# eine saubere und logische Programmiersprache ist. C#-Objekte erfordern weder Header- oder IDLDateien noch Typbibliotheken. Die in C# erstellten Komponenten sind vollständig selbstbeschreibend und können ohne Registrierung eingesetzt werden. Einige der Elemente von C++, die im Allgemeinen als unsicher gelten wie beispielsweise Zeigerarithmetik, wurden in C# nur für sog. Unsafe Code (Unmanaged Code) erlaubt. Dieser benötigt eine veränderte Sicherheitseinstellung, um auf einem Zielsystem ausgeführt zu werden, und einen zusätzlichen Compiler-Schalter, um ihn zu übersetzen. So wird vermieden, dass sich versehentlich unsicherer Code in eine Anwendung einschleicht. [...]
In den Warenkorb
48,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783832497958
Arbeit zitieren:
Klokow, Stephan August 2004: Entwicklung einer auf OpenGL basierenden grafischen Oberfläche für das de novo Design von Proteinstrukturen, Hamburg: Diplomica Verlag
Schlagworte:
Bioinformatik, Eiweiß, Open GL, C++, Protein



