Downloading the .pdb file
As the RCSB offers direct HTTP acess, this step is trivial.
You can use this shell script to download any protein:
#!/bin/bash # donwload-pdb.sh wget http://www.rcsb.org/pdb/files/$1.pdb
Call it with the PDB ID to download, e.g.
Rendering using PyMol
First, install PyMol: Either download it from the website or just use your preferred package manager, e.g.:
sudo apt-get install pymol
By calling PyMol with a script instead of in interactive mode, we can automate the process of rendering an image – manual tuning of the perspective etc is likely to improve the results, however.
The following script integrates both the automatic download and the renderer. A temporary
.pml (PyMol script) file is created with static settings
#!/bin/bash # render-pymol.sh if [ $# -eq 0 ] then echo "Usage: render-pymol.sh <PDB ID>" exit fi #Download wget -qO $1.pdb http://www.rcsb.org/pdb/files/$1.pdb #Create the rasmol script 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 #Execute PyMol pymol -qxci $1.pml #Remove temporary files rm -rf $1.pml $1.pdb
Call it like this:
This command will render the result and store it in
Customizing the render style
In order to change the size of the generated PNG image, change this line:
echo "ray 1500,1500;" >> $1.pml
The numbers represent the width and height of the generated image. Note that increasing the image size will significantly increase the CPU time required to render the image, especially for complex proteins. Running
render-pymol.sh with 1500x1500px to render the 1ULI took 209 seconds on my Notebook as opposed to 33 seconds for 500×500.
These lines define the style of the rendered protein:
echo "show cartoon;" >> $1.pml echo "color purple, ss h;" >> $1.pml echo "color yellow, ss s;" >> $1.pml
while this line set the background color to transparent:
echo "set ray_opaque_background, off;" >> $1.pml
If you prefer a white (non-transparent) background instead, you can add this line right after the line containing
echo "bg_color white;" >> $1.pml echo "set ray_opaque_background, off;" >> $1.pml