Visualisierung von Biomolekülen mit nglview / Sudo Null IT News

Die Computermodellierung von Biomolekülen hat ihre Wurzeln in der Untersuchung der Prinzipien der Molekulardynamik, die bereits in den 1950er Jahren stattfand. 1957 wurde erstmals eine Computerberechnung der Molekulardynamik veröffentlicht und nach nur 20 Jahren die erste Berechnung der Dynamik eines Proteinkügelchens.

Der berühmte Physiker Richard Feynman bemerkte einmal:

was alles besteht aus Atomenund dass alles, was in einem lebenden Objekt passiert, durch Schwingungen und Verschiebungen von Atomen dargestellt werden kann

Das heißt, um die Mechanismen zu verstehen, die der Funktionsweise lebender Materie zugrunde liegen, reicht es aus, das dynamische Verhalten eines molekularen Systems zu untersuchen. Oder, noch einfacher, es genügt, die Lösung eines biologischen Problems auf die Lösung eines molekularmechanischen Problems zu reduzieren. Diese Idee legte den Grundstein für die Entwicklung der Molekulardynamik von Biomolekülen.

Heute ist eine der interessanten Aufgaben der Computermodellierung in der Biologie die Untersuchung des Verhaltens von Biomolekülen in verschiedenen Lösungen: die Dynamik ihrer Struktur während eines bestimmten Prozesses und die Wechselwirkung mit anderen Molekülen. Diese Aufgaben sind nicht nur in der Grundlagenwissenschaft, sondern auch in der Pharmazie sehr wichtig. Beispielsweise durchläuft das entwickelte Medikament vor der Durchführung klinischer Studien zunächst die Phase der molekularen Modellierung, auf deren Grundlage eine Aussage darüber getroffen werden kann, wie sich das Medikament in einem lebenden Organismus verhalten wird. Darüber hinaus kann das Studium der Molekulardynamik nicht nur ernst, sondern auch interessant sein.

Früher war Computergrafik ein unzugänglicher Weg, Moleküle darzustellen, aber jetzt ist alles anders. Es ist eine Sache, die Positionen und Flugbahnen von Atomen im Weltraum mathematisch zu berechnen, aber eine andere, alles mit eigenen Augen sehen zu können. Zu diesem Zweck gibt es eine Reihe von Werkzeugen, mit denen Biologen molekulardynamische Berechnungen visualisieren können. Es ist jedoch wichtig zu beachten, dass die Visualisierung nur der erste Schritt bei der Analyse der Ergebnisse der molekularen Modellierung ist.

nglview-Bibliothek

Eines der beliebtesten und nützlichen Tools für die Visualisierung und Analyse der molekularen Modellierung ist die in Python geschriebene nglview-Bibliothek. Es ist ein interaktives IPython/Jupyter-Widget, mit dem Sie die Molekülstruktur und Flugbahnen von Atomen visualisieren können.

Der Dienst wird zum Rendern verwendet. NGL-Viewerdas eine Reihe von Werkzeugen für molekulare Grafiken enthält.

Es ist auch wichtig zu beachten, dass Sie mit nglview Strukturen sowohl aus Dateien als auch RCSB-PDB, einfachtrajund von Objekten, die das Ergebnis der Analyse der folgenden Bibliotheken sind: mdtraj, pytraj, mdanalyse, ParmEd, rdkit, ass, HTMD, Biopython, cctbx, pyrosetta, Schrödingers Struktur.

Nglview installieren

Die Installation von nglview ist nicht schwierig:

pip installiere nglview jupyter-nbextension aktiviere nglview –py –sys-prefix

Das Paket ist auch in conda-forge verfügbar:

conda install nglview -c conda-forge # benötigt möglicherweise: jupyter-nbextension enable nglview –py –sys-prefix # Wenn Sie nglview bereits installiert haben, können Sie ein `Upgrade` durchführen conda upgrade nglview –force # benötigt möglicherweise: jupyter-nbextension aktivieren Sie nglview –py –sys-prefix

Ach ja, die Dokumentation für nglview finden Sie hier hier. Hier sehen Sie das erste einfache Codebeispiel zur Visualisierung der Struktur 3pqr (Kristallstruktur von Metarhodopsin II im Komplex mit einem C-terminalen Peptid, abgeleitet von der Galpha-Untereinheit von Transducin) aus RCSB-PDB. Mit der Funktion show_pdbid() können Sie sich die Struktur ansehen, die nur die PDB-Kennung hat:

import nglview as nv view = nv.show_pdbid(“3pqr”) # “3pqr” aus RCSB PDB laden und Betrachter-Widget-Ansicht anzeigen

Und hier ist das Ergebnis:

3pqr-Struktur3pqr-Struktur

demo()-Methode

Eine nützliche Funktion für Anfänger kann demo() sein, das einfach ein fertiges Beispiel veranschaulicht und es Ihnen auch ermöglicht, zu überprüfen, ob alles richtig installiert und konfiguriert ist, um mit der Bibliothek zu arbeiten.

view = nv.demo()-Ansicht Struktur 1u19Struktur 1u19

Dies ist die Kristallstruktur von Rinderrhodopsin bei einer Auflösung von 2,2 Angström. Die verfügbare pdb-Struktur befindet sich hier. Die Teststruktur liegt innerhalb der Bibliothek; Der Pfad dazu kann mit nv.datafiles.PDB abgerufen werden, das /opt/miniconda3/envs/moldyn/lib/python3.7/site-packages/nglview/datafiles/md_1u19.pdb zurückgibt. Mit nv.datafiles können Sie andere Testobjektformate erhalten: nv.datafiles.ALA3; nv.datafiles.ASE_Traj; nv.datafiles.GRO nv.datafiles.MODULE_DIR; nv.datafiles.TRR; nv.datafiles.XTC.

show_structure_file() Methode

Um sich die Struktur aus der Testdatei anzusehen, verwenden Sie einfach die Funktion show_structure_file():

view = nv.show_structure_file(nv.datafiles.pdb)-Ansicht

Dieser Code gibt uns das gleiche Ergebnis wie oben zurück.

Mit der Methode show_structure_file() können Sie auch aus Ihrer eigenen Datei rendern. Lassen Sie uns dazu als Beispiel die Kristallstruktur des menschlichen G-Protein-gekoppelten B2-adrenergen Rezeptors herunterladen, von hier und schau es dir mit nglview an:

!wget view = nv.show_structure_file(‘2rh1.pdb’)-Ansicht

Ergebnis:

Struktur 2rh1Struktur 2rh1

Methoden add_cartoon() und remove_cartoon()

Alle bisher gezeigten Beispiele enthalten Strukturen in einer Cartoon-Darstellung namens Cartoon. Versuchen wir, aus der letzten Struktur alle Elemente zu entfernen, die die Cartoon-Darstellung hat:

view.remove_cartoon()2rh1-Struktur ohne Elemente, dargestellt als Cartoon2rh1-Struktur ohne Elemente, dargestellt als Cartoon

Bringen wir sie jetzt zurück:

view.add_cartoon()Struktur 2rh1Struktur 2rh1

Es sollte beachtet werden, dass eigentlich nichts von der Struktur entfernt wird, wir arbeiten nur mit einer visuellen Darstellung.

Methoden add_ball_and_stick() und remove_ball_and_stick()

In ähnlicher Weise können Sie mit den Methoden add_ball_and_stick() und remove_ball_and_stick() Elemente entfernen oder hinzufügen, die ein Ball-and-Stick- oder ball_and_stick-Erscheinungsbild haben:

view.remove_ball_and_stick()2rh1-Struktur ohne Elemente, dargestellt als ball_and_stick2rh1-Struktur ohne Elemente, dargestellt als ball_and_stick

clear_representations()-Methode

Mit der Methode clear_representations() können Sie das Widget aus der Strukturanzeige löschen. Das Ergebnis ist ein leeres Widget.

Farbe und andere Optionen ändern

In den vorherigen Beispielen haben wir gesehen, dass sich die Farbe geändert hat, als wir Elemente in der Cartoon-Ansicht erneut hinzugefügt haben. Da wir beim letzten Mal kein Farbschema explizit angegeben haben, hat die Methode den Standardparameter verwendet. Es gibt eine ganze Reihe von Visualisierungsfarben: Atomindex, Bfactor, Chainid, Chainindex, Chainname, Densityfit, Electrostatic, Element, Entityindex, Entitytype, Geoquality, Hydrophobicity, Modelindex, Moleculetype, Occupancy, Random, Residualindex, Rename, Sstruc, Uniform, Value , Volumen .

Beispielsweise färbt der folgende Code ein Molekül basierend auf der Hydrophobizitätsskala von rot nach weiß (Eisenberg et al., 1984):

view.add_cartoon (color=”hydrophobizität”)2rh1-Struktur im Hydrophobie-Farbschema2rh1-Struktur im Hydrophobie-Farbschema

Als Ergebnis der Anwendung der Methode show_structure_file() wurde ganz am Anfang das Atomindex-Farbschema verwendet. Holen wir es uns jetzt:

view.clear_representations() view.add_cartoon(color=”atomindex”)2rh1-Struktur im Atomindex-Farbschema2rh1-Struktur im Atomindex-Farbschema

Wir können auch die Transparenz des Bildes ändern. Dazu können Sie die Funktion update_cartoon() verwenden:

view.update_cartoon(opacity=.6)Struktur 2rh1 im Atomindex-Farbbereich und Deckkraft 0,6Struktur 2rh1 im Atomindex-Farbbereich und Deckkraft 0,6

Auswahl eines Objekts von Interesse

Um die für uns interessanten Objekte hervorzuheben, reicht es aus, ein “Spiel” mit verschiedenen Möglichkeiten zur Darstellung von Strukturen zu verwenden. Beispielsweise könnten wir an einem bestimmten Liganden interessiert sein CAU. Dann können Sie es verwenden, um es mit hervorzuheben
eine andere Darstellung als eine Proteindarstellung, wie diese:

view.clear_representations() view.add_cartoon(color=”atomindex”) view.add_ball_and_stick(‘CAU’) view.remove_label() view.add_label(‘CAU’, radius=1.5, color=”black”, label_type=”atomname “)Struktur von 2rh1 im Komplex mit dem CAU-LigandenStruktur von 2rh1 im Komplex mit dem CAU-LigandenStruktur von 2rh1 im Komplex mit dem CAU-LigandenStruktur von 2rh1 im Komplex mit dem CAU-Liganden

In Ordnung. Wir haben das Widget zuerst mit clear_representations() gelöscht. Wir haben dann den Rezeptor mit add_cartoon() im Atomindex-Farbschema hinzugefügt. Mit add_ball_and_stick() wurde der CAU-Ligand hinzugefügt. Wir haben (vorsichtshalber) alle Labels mit remove_label() entfernt und nur die für uns interessanten hinzugefügt, in diesem Fall wurden die Namen von schwarzen Atomen in Größe 1,5 mit add_label() hinzugefügt.

_display_repr() Methode

Abschließend möchte ich auf die Nützlichkeit einer solchen Methode wie _display_repr () hinweisen, die ein Menü zur manuellen Steuerung einiger Widget-Parameter bereitstellt.

view._display_repr()Darstellung der manuellen Steuerung von Parametern am Beispiel der 2rh1-StrukturDarstellung der manuellen Steuerung von Parametern am Beispiel der 2rh1-Struktur

Tatsächlich gibt es noch viel über die Fähigkeiten von nglview zu sprechen, aber ich denke, dass dies in einem Artikel ausreichen wird. Schreiben Sie, wenn Sie an etwas interessiert sind, es wird mir immer eine Freude sein, mein Wissen zu teilen 🙂

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *