PMV and Underlying Components - Scripps Research · PMV and Underlying Components Michel F. Sanner...
Transcript of PMV and Underlying Components - Scripps Research · PMV and Underlying Components Michel F. Sanner...
PMV and UnderlyingPMV and UnderlyingComponentsComponents
Michel F. Sanner
The Scripps Research InstituteLa Jolla, California
The Molecular Graphics Laboratory
SciPy’02
CalTech Pasadena CA. Sept. 2002
SciPy’02, © M.Sanner, TSRI
SCHEDULESCHEDULE
o Reusable Components? MolKit, DejaVu, ViewerFramework, ...
o From building blocks to applications? PMV: a molecular visualization program
o Extending PMV? ADT: setting up and running AutoDock
o Conclusion
SciPy’02, © M.Sanner, TSRI
Re-usable componentsRe-usable componentso MolKit:
? read/write/represent/manipulate moleculeso Mslib:
? molecular surface calculationo DejaVu:
? General purpose 3D geometry viewero ViewerFramework:
? Visualization application templateo Mslib, PyBabel, PyMead, SFF, Isocontour, ...
(Sophie I. Coon, Michel F. Sanner and Art J. Olson, Re-usable components for structural bioinformatic, 9th Python Conference 2001)
SciPy’02, © M.Sanner, TSRI
MolKitMolKit
NumericNumeric
MolKitMolKitTreeNode
.parent
.children
...
TreeNode
adopt(child)
TreeNodeSet(ListSet)
[TreeNode1, TreeNode2, … ].__getattr__(self, name)
.top
.elementType
TreeNode
[ TreeNode1.name, TreeNode2.name, …]returns
.name
SciPy’02, © M.Sanner, TSRI
TreeNode TreeNode and and TreeNodeSet TreeNodeSet specializationspecialization
Residue Chain Protein ...
Molecule Atom
Helix Strand Turn Coil
SecondayStructure ...
TreeNode
ResidueSet ChainSet ProteinSet ...
MoleculeSet AtomSet
HelixSet StrandSet TurnSet CoilSet
SecondayStructureSet ...
TreeNodeSet
SciPy’02, © M.Sanner, TSRI
from MolKit.pdbParser import PdbParserparser = PdbParser(‘1crn.pdb’)mols = parser.parse( )
from MolKit.pdbParser import PdbParserparser = PdbParser(‘1crn.pdb’)mols = parser.parse( )
PDBMol2PQR...
Parser
MoleculeSet
PDB parser MOL2 parserMolecule
Chain
Residue
Atom
Molecule
Chain
Residue
Atom
Molecule
Residue
Atom
Molecule
Atom
MolKitMolKit
SciPy’02, © M.Sanner, TSRI
ExamplesExamples>>> from MolKit import Read>>> molecules = Read(‘./1crn.pdb’) # Read returns a ProteinSet>>> mol = molecules[0]>>> print mol.chains.residues.name>>> print mol.chains.residues.atoms[20:85].full_name()>>> from MolKit.molecule import Atom>>> allAtoms = mol. findType(Atom)>>> set1 = allAtoms.get(lambda x: x.temperatureFactor >20)>>> allResidues = allAtoms.parent.uniq()>>> import Numeric>>> for r in allResidues:. . . coords = r.atoms.coords. . . r.geomCenter = Numeric.sum(coords) / len(coords)
SciPy’02, © M.Sanner, TSRI
TkinterTkinterNumericNumeric
PyOpenGLPyOpenGL
DejaVuDejaVu
from DejaVu import Viewervi = Viewer( )from DejaVu.Spheres import Spherescenters =[[0,0,0],[3,0,0],[0,3,0]] s = Spheres(‘sph’, centers = centers)s.Set(quality=10)vi.AddObject(s)
from DejaVu import Viewervi = Viewer( )from DejaVu.Spheres import Spherescenters =[[0,0,0],[3,0,0],[0,3,0]] s = Spheres(‘sph’, centers = centers)s.Set(quality=10)vi.AddObject(s)
DejaVuDejaVu
SciPy’02, © M.Sanner, TSRI
FeaturesFeatures
o OpenGL Lighting and Material modelo Arbitrary clipping planeso Multiple light sourceso Material editoro DepthCueing (fog), global anti-aliasingo glSscissors/magic lenso Object hierarchy with transformation and
rendering properties inheritanceo Multi-level pickingo Extensible set of geometries
SciPy’02, © M.Sanner, TSRI
GeometriesGeometries
Geom
o PolyLineo Pointso Sphereso Labelso Arc3D...
IndexedGeoms
o IndexedPolyLineso IndexedPolygonso TriangleStripo QuadStripo Cylinders ….
SciPy’02, © M.Sanner, TSRI
MslibMslib
o Python wrapper of MSMS? XYZR -> reduced Surface
-> Analytical SES -> triangulated SES
o Surface genus, areaso buried surface calculation
SciPy’02, © M.Sanner, TSRI
NumericNumericPyOpenGLPyOpenGL TkinterTkinter
DejaVuDejaVu
IdleIdle
ViewerFrameworkViewerFramework
ViewerFrameworkViewerFramework
SciPy’02, © M.Sanner, TSRI
Design featuresDesign features
o Dynamic loading of commandso Python shell for scriptingo Dual interaction mode (GUI/Shell)o Support for command:
? development, logging, GUI, dependencieso Lightweight commands: Macroso Dynamic commands (introspection)o Extensible set of commandso Access to documentation
SciPy’02, © M.Sanner, TSRI
NumericNumeric
PyOpenGLPyOpenGL TkinterTkinter
DejaVuDejaVuIdleIdle
ViewerFrameworkViewerFramework
MslibMslib
PmvPmv
MolKitMolKit
PMVPMV: From Building Blocks to applications: From Building Blocks to applications
SciPy’02, © M.Sanner, TSRI
PMVPMV
SciPy’02, © M.Sanner, TSRI
PMV CapabilitiesPMV Capabilities
o Display/compute:? Lines, CPK, Stick and Balls, Surfaces,
Splines, Ribbons, H-bonds, bond-order,Gasteiger and Kollmann charges
o Editing:? deleting atoms, adding hydrogens
o Electrostatic potential? MEAD*, APBS*
o Molecular Dynamics:? Amber*
SciPy’02, © M.Sanner, TSRI
PMVPMV: Architecture: Architecture
Numeric PyOpenGL TkinterDejaVu
ViewerFramework
IdleMolKitMslib
MsmsCommands
SciPy’02, © M.Sanner, TSRI
Automated docking of a flexible ligand to macromolecules using affinity grids
AutoDockAutoDock fundamentals fundamentals
SciPy’02, © M.Sanner, TSRI
AutoDock ToolKit AutoDock ToolKit ((ADTADT))
o AutoTors : ligand preparation
o AutoGpf : grid definition
o AutoDpf : docking parameters definition
o AutoStart : job launching and monitoring
o AutoAnalyze : docking results analysis
SciPy’02, © M.Sanner, TSRI
ADT: extending PMVADT: extending PMV
SciPy’02, © M.Sanner, TSRI
ADTADT: Architecture: Architecture
Numeric PyOpenGL TkinterDejaVu
ViewerFramework
IdleMolKitMslib
MsmsCommands
AutoTors, AutoGpfAutoDpf, AutoLaunch
AutoAnalyze
SciPy’02, © M.Sanner, TSRI
ConclusionConclusion
o Flexible software built fromcomponents
o Take advantage of Python’sadvanced features
o Molecular manipulation environment
SciPy’02, © M.Sanner, TSRI
AcknowledgmentsAcknowledgmentso Molecular Graphics Lab. at TSRIo NIH (NBCR RR08605 and ITR EIA 0121282)o NSF (NPACI CA ACI9619020)o Swiss National Science Foundationo Daniel Stofflero Sophie Coono Ruth Huey
Available at:http://www.scripps.edu/~sanner/python