From MarcsHomepage


Pymol is another free molecular modelling editor, which can be run under Windows as well as UNIX and Apple (OS X). It has a small C-based OpenGL-rendering-core with a scripting-extension for all the rest which can be used to add functions via the well-known scripting-language Python .

Despite the fact, that Pymol is officially still beta-software, it is very stable and can be used for display and analysis of large PDB-files (see a comparison).

Pymol enables you to load and display CCP4-style electron- density-maps which is an interesting feature only available to a few other programs (especially under Windows) like O , SwissPDBViewer and Molmol.

In addition one can create whole animations and render these without help of external programs (nice internal renderer) in any desired resolution.
A Povray rendering option is also available.

User Interface


The user-interface is divided into a main window with a sidebar and the top-window with the usual pull down-menus as well as a command-line-interface.

The top window in fact is a plugin to the Python-API of Pymol and can also be used as an example for other plugins (sequence-analysis, database-interfaces, analysis-interfaces, etc.). See the Pymol for an explanation of the project.

The Pymol interface is a bit weird (at least in my opinion), and might change in the future, when the project goes on to the next release. My main criticism is, that the interface is divided into two menu-systems, one internal and one external (written in Tcl/Tk or wxPython) which have different conventions.

In version 0.88 further display-, modelling- and scultping-capability has been added, and Pymol is approaching programs like O , XTalView or SwissPDBViewer .

Especially the new electrostatics-display in combination with APBS is a killer-app, in case that you don't like GRASP or don't have access to an SGI.

The program uses OpenGL for visualization and the rendering quality can be changed between maximum performance and maximum quality with different display-styles (for example a Molscript -lookalike ribbon-rendering-mode (very fancy).


Taken from the Pymol-homepage

  • Optimized real-time 3D structure visualization.
  • Eight different molecular representations (lines, sticks, dots, mesh, spheres, ribbons, cartoons, and surfaces)
  • Support for real-time manipulation and rendering of Molscript cartoon ribbons (supplement to above).
  • Support for distance measurement and arbitrary labels.
  • Input of standard PDB, Macromodel, and MDL MOL format files, as well as "pickled" Chemical Python (ChemPy) objects.
  • Output of standard PDB and Macromodel files as well as pickled ChemPy models.
  • A molecular editor, enabling click-and-drag changes to both conformation and chemical structure.
  • Merging and splitting of molecules using atom selections (much easier than editing files by hand!).
  • Input of X-PLOR and CCP4 map files and generation of electron density isosurface meshes.
  • A built-in photo-realistic ray tracer with anti-aliasing for Raster3D/PovRay-like quality.
  • A command language optimized for minimum keystrokes, but which maps into Python
  • Molecular superposition (fitting) capabilities.
  • A thread-safe Python programming interface (API) for extensibility.
  • A powerful atom selection language based on X-PLOR syntax, but with significant shortcuts.
  • Hierarchical atoms selections which complement the above.
  • Execution of arbitrary operations over atom selections (trivial or programmatic).
  • Stereo display on high-end silicon graphics workstations, hopefully soon on PCs.
  • A written manual and an online help system.
  • A movie specification language enabling unattended batch movie generation of static and dynamic movies.
  • Hardware accelerated OpenGL rendering (even on Linux using XFree86/DRI! ).
  • Programmable OpenGL-based pop-up menus and OpenGL "developers" GUI.
  • Python support for two kinds of arbitrary graphics objects ("Compiled Graphics Objects" and PyOpenGL).
  • Optional Tcl/Tk (Tkinter based) external GUI, also supports wxPython or your GUI of choice.
  • Image output using libPNG -- use ImageMagick to convert to any format.
  • Object oriented design incorporating both Python and C components.