Automatisiertes Rendern von PDB-Proteinen mit PyMol
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:
#!/bin/bash
# donwload-pdb.sh
wget http://www.rcsb.org/pdb/files/$1.pdbRufe es mit der herunterzuladenden PDB-ID auf, z.B. 1ULI:
./download-pdb.sh 1ULIRendern mit PyMol
Installiere zuerst PyMol: Lade es entweder von der Website herunter oder verwende deinen bevorzugten Paketmanager, z.B.:
sudo apt-get install pymolIndem 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
#!/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.pdbRufe es so auf:
./render-pymol.sh 1ULIDieser 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:
echo "ray 1500,1500;" >> $1.pmlDie 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:
echo "show cartoon;" >> $1.pml
echo "color purple, ss h;" >> $1.pml
echo "color yellow, ss s;" >> $1.pmlwährend diese Zeile die Hintergrundfarbe auf transparent setzt:
echo "set ray_opaque_background, off;" >> $1.pmlWenn du stattdessen einen weißen (nicht-transparenten) Hintergrund bevorzugst, kannst du diese Zeile direkt nach der Zeile mit load $1.pdb hinzufügen:
echo "bg_color white;" >> $1.pml
echo "set ray_opaque_background, off;" >> $1.pmlErgebnisse
