PyMOL v1.5.0 Release Notes
New Features
PyMOL now renders directly from the video card (GPU). This along with other optimizations increases real-time rendering performance and quality. Low-end video cards we tested have shown 200%+ increase in speed. High-end video cards with more memory and processing cores have shown increases near 2000% for large systems. A real-world example of performance increases for a PyMOL session with 250,000 atoms:
Lines: 28 Hz → 226 Hz (707% increase!)
Cartoons: 7 Hz → 47 Hz (571% increase!)
Sticks: 2.1 Hz → 37 Hz (1661% increase!)
Surfaces: 6.0 Hz → 70 Hz (1,066% increase!)
Users are encouraged to always update their video drivers. This is especially important for old and low-end hardware.
Rendering
Real-time rendering is now nearly the same level of quality as ray-traced rendering, but without shadows. Geometry has been fixed, improved, or made pixel-perfect for the following:
half-bonds and half-bond coloring
sticks and ball-and-stick
lines, mesh, non-bonded, alignments
non-bonded spheres
cartoon
See examples of the rendering improvements.
Anaglyph Stereo
Background Gradient
Users can now add a background gradient to their scene instead of just a flat colored background. See bg_gradient for more details.
Surface Color Smoothing
Surface coloring at the intersection of two different types of atom has been improved. PyMOL now by default, smooths the colors between the two atoms. See surface color smoothing for detailed information including settings and disabling this feature.
Ambient Occlusion
Ambient occlusion is a rendering technique that improves sense of depth to objects. We have added ambient occlusion for real-time and ray-traced rendering in PyMOL. See real-time and ray-traced ambient occlusion for more details.
Nucleic Acids
Many more non-standard nucleic acids (PSU, 5MU, 7MG, MIA, H2U, 4SU, MA6, UR3, 5MC, 40C, 2MG, TM2, 2MG) render correctly as cartoons.
Better Integration with Mac OS X
MacPyMOL and PyMOLX11Hybrid have been updated with the following:
3D Space Navigator, a 3D mouse, can now be used
Support for Mac
OS X 10.7 (Lion)
MacPyMOL now comes with a Mac-friendly DMG installer instead of the non-standard tar file
UI Enhancements
GUI
We have added the following to the PyMOL GUI to simplify common workflows:
Molecular weight (A > Compute > Molecular Weight
) calculation supporting explicit structure and implicit (PyMOL auto-adds hydrogens)
Automatic selection generation (A > Generate > Selection > …
), for
polar hydrogens
non-polar hydrogens
hydrogen bond donors
hydrogen bond acceptors
The Measurement Wizard now has a Polar Contacts entry for quickly detecting custom polar contacts between two molecules
Added
Display > Roving Detail
setting to the
GUI
Added Show > Valence and Hide > Valence
for object-level valence display control
Added spectrum coloring for molecular and solvent-accessible surface area under C > Spectrum > area …
Added Setting > Rendering > Modernize
to allow quick updates of old PyMOL Sessions
Updated Display > Quality > …
menu items to take advantage of new rendering techniques
Added Undo
button to the Builder
Mouse
Added Mouse > 3 Button Lights
and Mouse > 2 Button Lights
to enable easy, real-time editing of lights
Added surface picking (clicking on the surface of a protein will select the underlying atoms)
Keyboard
The CTRL function keys have been remapped for intuitive editing. From within PyMOL type help keyboard
for more information. A quick summary is posted here:
If text is on the command line, PyMOL thinks control keys are used for editing the text on the command line:
CTRL-A
– Moves the cursor to the start of the command line
CTRL-E
– Moves the cursor to the end of the command line
CTRL-K
– Deletes all text from the cursor to the end of the line
CTRL-V
– Pastes into the command line (operating system dependent)
If text is not on the command line, PyMOL thinks you want to edit molecules and selections:
CTRL-A
– Selects all atoms
CTRL-C
– Copies the current selection
CTRL-I
– Inverts the current selection
CTRL-V
– Pastes the copied/cut atoms as a new object
CTRL-X
– Cuts (removes) the actively selected atoms
CTRL-Y
– Redo
CTRL-Z
– Undo
Support for reading compressed Maestro (.maegz) and PyMOL session files (.pze, pzw, .pse.gz, .psw.gz) has been added.
Commands
New Commands
get_viewport queries the size of the viewable area.
symmetry_copy copies the symmetry information of one object onto another. This is useful when trying to replicate a map outside the unit cell where either the map or the molecular object does not have appropriate symmetry information.
Improved Commands
Undo has been improved. It now supports addition/removal of atoms, bonds, and fragments; changes in valence, and atom type; molecular conformation; and works across multiple objects and states. See undo for more information.
Clean now updates the user when it finishes. It prints “Clean: Finished. Energy = XXX.YYY” upon completion. To get the MMFF energy value use the following syntax,
# clean and get the energy
e = cmd.clean("ligand")
print "Energy = %3.2f" % e
alignto now takes a method (align, super, cealign).
get_symmetry now supports molecular and map objects.
Mouse
New Mouse Modes: Light Position Editing
These modes allow the user to drag the lights around the scene to position it exactly where desired. To use, simply enter 3 Button Lights
or 2 Button Lights
mode via the mouse menu or mouse mode matrix and then hold SHIFT and drag with the left mouse button. The Z-position can also be changed by holding SHIFT and dragging with the right mouse button.
Using
By default, PyMOL's first light, called “light”, is ambient (unidirectional) and so it's position is constant–or irrelevant, really. To position the next light, called “light2” one types:
# ambient light + first directional light
set light_count, 2
# we're moving light2
set edit_light, 2
then move the light with the mouse.
To position light3 one would type:
# ambient light + 2 directional lights
set light_count, 3
# tell PyMOL we're editing light number 3
set edit_light, 3
then move the light with the mouse. Additional UI options may be added to make this easier still.
Additional UI options may be added to make this easier still.
Fixes
Python access to OpenGL (users can now created arbitrary graphics objects using Python code)
Group names fixed
Fixed click-flash caused by middle mouse button when in background gradient mode
PyMOL now honors the “h_bond_from_proton” flag. If set, and hydrogens are present, PyMOL will draw hydrogen bonds from the hydrogen instead of the heavy atom it's bound to.
Fixed/Improved CIF reading, especially from the
GUI (File > Open > …)
Fixed map loading when the PDB with the same name already exists
Volume button is now disabled by default if no volume object exists
Fixed crash when PyMOL couldn't use shaders
Settings
The following settings (shown with their default values) have been added to PyMOL v1.5.0:
bg_gradient, 0
bg_rgb_top, 0. 0. 0.
bg_rgb_bottom, 0.2 0.2 0.5
ray_volume, off
ribbon_transparency, 0.0
state_counter_mode, -1
cgo_use_shader, 1
cgo_shader_ub_color, 0
cgo_shader_ub_normal, 0
cgo_lighting, 1
mesh_use_shader, 1
stick_debug, 0
cgo_debug, 0
stick_round_nub, 0
stick_good_geometry, 0
stick_as_cylinders, 1
mesh_as_cylinders, 0
line_as_cylinders, 0
ribbon_as_cylinders, 1
ribbon_use_shader, 1
excl_display_lists_shaders, 1
dash_use_shader, 1
dash_as_cylinders, 1
nonbonded_use_shader, 1
nonbonded_as_cylinders, 1
cylinders_shader_filter_faces, 1
nb_spheres_size, 0.25
nb_spheres_quality, 1
nb_spheres_use_shader, 1
render_as_cylinders, 1
alignment_as_cylinders, 1
cartoon_nucleic_acid_as_cylinders, 1
cgo_shader_ub_flags, 0
offscreen_rendering_for_antialiasing, 0
offscreen_rendering_multiplier, 4.0
cylinder_shader_ff_workaround, 0
surface_color_smoothing, 1
surface_color_smoothing_threshold, 0.05
dot_use_shader, 1
dot_as_spheres, 0
ambient_occlusion_mode, 1
ambient_occlusion_scale, 30.0
ambient_occlusion_smooth, 10
smooth_half_bonds, 1
anaglyph_mode, 4
edit_light
PyMOL v1.5.0.1 Hotfix Notes
There have been some issues in PyMOL v1.5.0 that made it necessary to provide a patch or “hotfix” as of 2/10/12. Here are the list of fixes/enhancements:
undo feature
added object-level suspend_undo
attaching fragments from the builder did not support suspend_undo.
the “bond” command did not undo correctly.
when an object's name is changed, undo needs account for it, even though a name change cannot be undone.
undo did not work for deletes of objects that had empty states.
in a small number of cases, the number of bonds were not restored properly after a delete
updated old ctrl keys to work as ctrl-shift.
matrix_copy did not work (python stack trace was shown).
a “ExecutiveSetNamedEntries-Error message was sometimes displayed when reading in older session files.
some maps were not read in properly from session files
fixed reading in dcd files on windows
PyMOL v1.5.0.2 Hotfix Notes
There have been some small but important issues that have caused us to create a 1.5.0.2 hotfix. These issues are:
PyMOL v1.5.0.3 Hotfix Notes
0.99 sessions load as version “9.900”
fixed session loading and map reading for incomplete symmetry information
added Settings > Edit All > … filter for MacPyMOL
fixed rendering of unit cells
updated About MacPyMOL dialog
updated RigiMOL to use more than 4
GB RAM for morphs
PyMOL v1.5.0.4 Hotfix Notes
fixed problem when reading input from stdin with lines longer than 1024
CGOs did not save into session files correctly
saving PDBs sometimes put extra TER records
picking sometimes did not work or was off atoms
fixed warning messages/python stack trace when a movie is created
rendering lines/cylinders could brake in large scenes
Disable shaders if Intel video card found
added setting pick_surface that can disable picking on surfaces (on by default)
meshes can be saved/reloaded as CGOs when dependent map no longer exists
PyMOL v1.5.0.5 Hotfix Notes
Fixes
Bonds now correctly respect the color command
PyMOL now reports and loads the correct number of atoms when loaded from an XYZ file with more than 999999 atoms
Single bonds drawn as full cylinders
Mesh saving is now fixed
CGO creation
Fixed memory leaks on
OS X
Fixed bug in ray traced fog
Fixed atom level transparencies in surfaces
Cealign improvements:
chains of length < 2*window+1 now fixed
fixed double-increment bug that skipped paths
graceful exit on error
can now get an alignment object for cealign
fixed auto complete names
Fixed duplicate data bug with saving maps, which saves space
Updated HID device discovery (legacy versions could take up to 10s to start PyMOL; this new code is nearly instantaneous)
PyMOL v1.5.0.6 Hotfix Notes
Fixed:
picking did not always have the correct result
undo sometimes did not work when create() command was used
distance coloring did not always get invalidated properly
alignment dashes didn't show on OSX
volume colors were not being set properly (the large volume cube was shown)
nonbonded_as_cylinders rendered one side flat
cylinder_shader_ff_workaround should be default
threading issue for commands piped in from stdin
web examples did not get loaded properly from web page
partial=2 in set_session() loads view from session
viewport should not change when suspend_updates=1
fixed chemical correctness in h_fill
right justified resn in PDB
alignment objects from “super” do not contain N atoms
fixed grouping issues where objects would sometimes get removed from groups
certain mouse actions in edit mode caused objects to be ungrouped