Blender
HELP! : Fellow Blenderheads please help improve this page!!! |
Introduction
This is an attempt at using Blender, an open-source, free, 3D modeling software to render, pose and animate objects exported from Pymol.
Blender may be downloaded freely for all major platforms (Win/Mac/Linux), from: http://www.blender.org/download/get-blender/
A great starting place for getting comfortable with Blender is the Blender Wiki: http://wiki.blender.org/
These tutorials are for Windows.
Tutorials
Representative examples. Please change/improve.
1. Importing a PyMol Structure into Blender
- Step 1
Load the PDB file 3IQS into PyMOL. Rename the model to "3IQS_cartoon", hide everything and show the cartoon.
- Step 2
Save the displayed "3IQS_cartoon" as a VRML file, as shown below:
- Step 3
Launch Blender (please see link in the Introduction to download and install). Assuming you are looking at the default scene and window layout, press 7 on numeric keypad and the view should change similar to the one below:
- Step 4
Now select the cube in the center of the screen by right clicking on it, then pressing x and Enter to delete it. This will give you a clean scene to import the protein structure you just exported from PyMOL as VRML 2 (.wrl).
- Step 5
Now import the "3IQS_cartoon" into Blender by going to "File > Import > X3D & VRML97" as shown below:
- Step 6
Navigate to the folder where you exported the VRML 2 files from PyMOL and select the "3IQS_cartoon" file:
Click the "Import X3D/VRML97" button after selecting the correct file and just click "OK" if a dialog comes up.
- Step 8
Doing the above should result in a display such as the one below:
2. Translucent Surfaces
High quality translucent surfaces, better than PyMOL's internal renderer/ray-tracer.
- Step 1
Load the PDB file 3IQS into PyMOL, duplicate it twice and rename the two new objects to "3IQS_cartoon" and "3IQS_surface" as shown in the image below:
- Step 2
Turn off the display of "3IQS_surface" as shown below:
- Step 3
Save the displayed "3IQS_cartoon" as a VRML file, as shown below:
- Step 4
Hide the "3IQS_cartoon" and display the "3IQS_surface". Again, save the displayed "3IQS_surface" as a VRML file, as shown below:
- Step 5
Start Blender (please see link in the Introduction to download and install). Assuming you are looking at the default scene and window layout, press 7 on numeric keypad and the view should change similar to the one below:
Now select the cube in the center of the screen by right clicking on it, then pressing x and Enter to delete it. This will give you a clean scene to import the protein structure you just exported from PyMOL as VRML 2 (.wrl).
- Step 6
Now import the "3IQS_cartoon" into Blender by going to "File > Import > X3D & VRML97" as shown below:
- Step 7
Navigate to the folder where you exported the VRML 2 files from PyMOL and select the "3IQS_cartoon" file, thusly:
Click the "Import X3D/VRML97" button after selecting the correct file and just click "OK" on the dialog that comes up.
- Step 8
Doing the above should result in a display such as the one below:
- Step 9
Now you need to select the just imported cartoon and just that only, so right click on it so that it is the only object selected in the view:
- Step 10
With the cartoon object selected, hit the 'Tab key on your keyboard to enter into "Edit mode" in Blender. All the vertices that make up this object will be selected and colored yellow, as shown below:
- Step 11
Now click on "Mesh > Vertices > Remove Doubles" in Blender to get rid of duplicate vertices, as shown in the two images below:
- Step 12
Now hit the 'Tab key again, to exit the "Edit mode" to see a nice smooth cartoon object:
- Step 13
This cartoon is too big to be visible in the Blender's camera viewport while rendering, so we need to scale it down by hitting the "S" key once, then moving the mouse so that the object becomes smaller in size and then clicking the left mouse button to accept the new size:
The final size should be small enough to completely fit in the "Camera view" in Blender. You can enter the "Camera view" by hitting the zero 0 key on the numeric keypad. Scale the object so that it fits within the camera boundaries:
- Step 14
Now import the "3IQS_surface" VRML 2 file and process it the same way (steps 6 to 13):
NOTE: You may hold off doing "Step 13", the scaling, until you have imported and processed all objects that you exported from PyMOL. It is best to import and process all the objects and then scale them together to maintain the same scaling ratio for all. You can select multiple objects in blender by holding down the Shift key while right-clicking on individual objects.
- Step 15
In order to assign different colors ("materials" in Blender-speak) to each object, it is easier to go to camera view (num-pad 0), toggle into "wireframe view" (Z key) and select an object by right-clicking with the mouse. In the following image, the "3IQS_cartoon" is selected in the wireframe view:
- Step 16
Now select the "3IQS_surface" and toggle back into "solid view" mode (Z key). Make sure the two buttons with spherical icons are clicked in the bottom panel and the click on the color pad next to the "Col" button to bring up the color selector. You may select any color, in this example a greenish color is asigned.
- Step 17
In order to make the surface translucent and have short rendering times, it is easiest to change the Z-transparency of the surface by clicking the Z-transp button on the panel, followed by changing the A (or alpha) value to below 1.0, as shown in the two images below:
- Step 18
You may similarly select the just the cartoon object and assign it another "material"/color. To render the scene, hit the F12 key on you keyboard, this will render the image in a new "render" window. You can then save the rendered image by hitting F3 key in the render window and then specifying a location and filename.
Play with other parameters and use the Blender manual/wiki to learn more about this awesome complement to PyMOL.
To get you started, here is the final Blender (.blend) file: File:3IQS example.blend.bz2 You'll need to use a program like bunzip2 (Linux) or 7-zip (Windows) to uncompress it first.
3. Joining Atoms
- Step 1
When a molecule is imported into Blender from a PyMOL export (see the first tutorial), it will look like this:
(2,3-BPG from 1B86.pdb)
- Step 2
The problem is that this molecule is actually an assembly of spheres and cylinders. When the individual parts are selected using the Shift+right-click method (for scaling, rotating, moving, etc.), some parts are unable to be selected and are left behind. This ruins the molecule:
- Step 3
This problem is solved by grouping the individual pieces. Press b to launch the Blender bounding box tool:
Left-click and drag over the entire molecule. This will select all the pieces:
(selecting)
(all molecule parts selected)
- Step 4
Press Ctrl + j to join all the parts. The final product should look like this:
And there you go! Now the molecule can be moved, rotated, scaled, colored etc. as a whole entity, and selected with a single right-click.
- Step 5
If you are dealing with more than one molecule, you may want to import them into different layers, group them there, and then move them to the main layer.
Why Blender?
- Blender is FREE (as in beer)
- Blender is Open Source and therefore FREE (as in freedom)
- Blender is an extremely capable 3D graphics program and perhaps the only FOSS program capable of taking on similar commercial software head-to-head (Maya/Max/Modo etc.)
- To see some examples of what Blender can do check out:
Blender Help
Blender is a perfect complement to PyMOL for creating high quality images and animation, but has a pretty steep learning curve. The following are a few resources that may be of help along the way:
- http://www.blender.org/education-help/
- http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Beginner_Tutorials
- http://forums.cgsociety.org/forumdisplay.php?f=91
- http://blenderartists.org/forum/
References
- Blender : http://www.blender.org/