Forum 09/30/2004

“Multi-Modal Visualization of Macromolecular Assemblies Using Python”

Michel Sanner, Assistant Professor -Department of Molecular Biology, The Scripps Research Institute, La Jolla, CA

Over the past years we have evolved a novel strategy for software development centered on the high-level, interpreted, object-oriented language Python.  In this approach, software components dealing each with a specific functionality are implemented independently of each other.  The interpreted language Python provides the powerful and flexible glue for combining these components into applications.  The ability to share the basic software components among various applications has led to an unprecedented level of code-reuse.  We have built, and widely distributed, a number of molecular visualization applications built from these software components, including PMV, a general purpose molecular visualization environment, AutoDockToolkit (ADT) a Graphical User Interface (GUI) to the automated docking program AutoDock, and Vision, a visual programming and software integration environment.  The generic nature of some of our software components has also made them reusable by other laboratories for various applications, even outside the field of biology.

The development of these tools has been driven primarily by the visualization and programming needs in our laboratory and those of collaborators.  The most recent addition to our suite of tools is a collection of computational nodes usable in Vision for the manipulation and visualization of volumetric data such as obtained from crystallographic density maps or tomographic reconstructions from electron microscopy for example.  In this talk, we will briefly introduce Pmv and its main distinguishing features.  We will then give a short overview of Vision and the basic concept of visual programming.  We will then present with more details the Volume library, i.e. a set of computational nodes usable in Vision to manipulate and visualize volumetric data.  Several examples of networks will be presented and discussed.  These include: reading various volumetric data formats, clipping and masking operations on volumes, isocontouring, and direct volume rendering.  Finally, we will describe using Vision from within Pmv.  The interoperation of these two programs allows the integrated visualization of molecular structures (obtained from Xray or NMR for instance) and volumetric data.  These examples of visualization will also illustrate the capability offered by Vision’s symmetry server to generate symmetry related objects such as the multiple copies of a protomer in a viral capsid.  Time permitting, the creation of simple animations will be demonstrated as well as the underlying scripting capability offered by Python.