Automatisiertes Rendern von PDB-Proteinen mit PyMol

English Deutsch

Herunterladen der .pdb-Datei

Da die RCSB direkten HTTP-Zugriff bietet, ist dieser Schritt trivial.

Du kannst dieses Shell-Skript verwenden, um ein beliebiges Protein herunterzuladen:

download-pdb.sh
#!/bin/bash
# donwload-pdb.sh
wget http://www.rcsb.org/pdb/files/$1.pdb

Rufe es mit der herunterzuladenden PDB-ID auf, z.B. 1ULI:

download_example.sh
./download-pdb.sh 1ULI

Rendern mit PyMol

Installiere zuerst PyMol: Lade es entweder von der Website herunter oder verwende deinen bevorzugten Paketmanager, z.B.:

install_pymol.sh
sudo apt-get install pymol

Indem wir PyMol mit einem Skript statt im interaktiven Modus aufrufen, können wir den Prozess des Renderns eines Bildes automatisieren — manuelle Anpassungen der Perspektive etc. werden die Ergebnisse jedoch wahrscheinlich verbessern.

Das folgende Skript integriert sowohl den automatischen Download als auch den Renderer. Eine temporäre .pml-Datei (PyMol-Skript) wird mit statischen Einstellungen erstellt

render-pymol.sh
#!/bin/bash
# render-pymol.sh
if [ $# -eq 0 ]
  then
    echo "Verwendung: render-pymol.sh <PDB ID>"
    exit
fi
#Download
wget -qO $1.pdb http://www.rcsb.org/pdb/files/$1.pdb

#Rasmol-Skript erstellen
echo "load $1.pdb;" > $1.pml
echo "set ray_opaque_background, on;" >> $1.pml
echo "show cartoon;" >> $1.pml
echo "color purple, ss h;" >> $1.pml
echo "color yellow, ss s;" >> $1.pml
echo "ray 1500,1500;" >> $1.pml
echo "png $1.png;" >> $1.pml
echo "quit;" >> $1.pml

#PyMol ausführen
pymol -qxci $1.pml
#Temporäre Dateien entfernen
rm -rf $1.pml $1.pdb

Rufe es so auf:

render_example.sh
./render-pymol.sh 1ULI

Dieser Befehl rendert das Ergebnis und speichert es in 1ULI.png

Anpassen des Render-Stils

Um die Größe des generierten PNG-Bildes zu ändern, ändere diese Zeile:

pml_settings.sh
echo "ray 1500,1500;" >> $1.pml

Die Zahlen repräsentieren die Breite und Höhe des generierten Bildes. Beachte, dass eine Erhöhung der Bildgröße die CPU-Zeit, die zum Rendern des Bildes erforderlich ist, signifikant erhöht, besonders bei komplexen Proteinen. Das Ausführen von render-pymol.sh mit 1500x1500px zum Rendern von 1ULI dauerte auf meinem Notebook 209 Sekunden im Vergleich zu 33 Sekunden für 500x500.

Diese Zeilen definieren den Stil des gerenderten Proteins:

pml_style.sh
echo "show cartoon;" >> $1.pml
echo "color purple, ss h;" >> $1.pml
echo "color yellow, ss s;" >> $1.pml

während diese Zeile die Hintergrundfarbe auf transparent setzt:

pml_background.sh
echo "set ray_opaque_background, off;" >> $1.pml

Wenn du stattdessen einen weißen (nicht-transparenten) Hintergrund bevorzugst, kannst du diese Zeile direkt nach der Zeile mit load $1.pdb hinzufügen:

pml_white_background.sh
echo "bg_color white;" >> $1.pml
echo "set ray_opaque_background, off;" >> $1.pml

Ergebnisse

1ULI 3ULI


Check out similar posts by category: Bioinformatics