pmv and underlying components - scripps research · pmv and underlying components michel f. sanner...

Post on 19-Aug-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related