6/2/2015 the molecular biology toolkit – geometry generation capabilities apostol gramada john...
Post on 18-Dec-2015
218 views
TRANSCRIPT
04/18/23
The Molecular Biology Toolkit – Geometry Generation
CapabilitiesApostol GramadaJohn MorelandPI: Phil Bourne
Supported by:
• SPAM project: NIH NIGMS 1P01GM63208-01A1
04/18/23 SDSCSDSC
Outline
An application developer perspective General Description of the package-Class
Hierarchy Instantiating Geometry Objects – Creating 3D
molecular scenes Technical and performance aspects
04/18/23 SDSCSDSC
Class Hierarchy
Basic manipulation of specific vertex generation methods
Container for most geometry data and static convenience methods (Ex: full scene assembling methods at either secondary structure level or ball and ball-and-stick level)
C oilG eom etry S tran d G eom etry H e lixG eom etry
S sG eom etry
A tom G eom etry B on d G eom etry
P sG eom etry
G eom etryE n tity
04/18/23 SDSCSDSC
Creating Geometry
At Secondary Structure fragment level
Two-steps process1. Create a Geometry Class and
set parameters
2. Generate the Java3D object that can be directly attached to the
graphical scene. Motivation
• need to add/remove/edit fragments rather than chains
• smooth transition requires setting boundary tangents, normals in advance
• specific rendering properties
coil = new CoilGeometry( ) coil.setCoordinates( double[][] coords ) coil.setColorMap( float[][] colorMap ) coil.setPreviousCaCoord( double[]
coord) etc
branchGroup = coil.generateJ3dGeometry( )
branchGroup = bond.generateJ3dGeometry()bond = new BondGeometry( double[][] coords )
bond.setColor1( float[] color )Bond.setQuality( float quality )
04/18/23 SDSCSDSC
Creating Geometry cont’d
SsGeometry, PsGeometry offer convenience methods for assembling full scenes
Advantages: a single line of code automatic smoothing automatic rendering
quality-performance control
SsGeometry.drawSs(group, structureMap, structureStyles, hash)
PsGeometry.drawBonds(group, bonds, structureStyles, quality, mode, hash)
PsGeometry.drawAtoms( group, atoms, structureStyles, quality, hash )
04/18/23 SDSCSDSC
Technical perspectiveBasics
Built on the Java3D™ extension API.
The view platform is built in a separate package of the toolkit, the viewer
Content branch is created by the geometry package
04/18/23 SDSCSDSC
Basic Geometrical Objects
Main elements spheres for atoms extrusions for
ribbons and thick bonds
line segments for bonds and backbone traces
04/18/23 SDSCSDSC
Spheres
Most demanding graphical element
100-200 vertices (even for moderate quality) – memory intensive
Shading – hardware intensive
Typically many atoms to render
John wrote a customized sphere class so that geometry is shared for the same type of atoms
Appearance attributes also shared within a given type class
04/18/23 SDSCSDSC
Ribbons
Only CA coordinates are used Ribbon = cross section
polygon + translation (along a path defined by CA)
Orientation of the cross section conserved with respect to a local reference frame
Local reference frame usually tied to the Frenet trihedron
Typically, the cross section lies in the plane but not necessary
)ˆ,ˆ,ˆ( bnt
)ˆ,ˆ( bn
04/18/23 SDSCSDSC
Ribbons – technical issues High quality representation of
ribbons requires geometrically smooth curves (i.e. at least continuous vectors). Problems:
Polypeptide chain is naturally rather “discontinuous” (high variability in the C=O & N-H plane orientations)
CA coordinates form a rather sparse set along the backbone path => Interpolation needed
Definition of local tangent, normal and binormal vectors is ambiguous for a discrete set of points => Make difficult to insure orthogonality and a high degree of geometric continuity
Piecewise interpolation
bnt ˆ,ˆ,ˆ
C0 continuity only
Frenet-frame continuity
04/18/23 SDSCSDSC
Solution
Option: use a sophisticated interpolation scheme that insure a high degree of continuity Computationally
demanding A larger number of
parameters -> more difficult to control the shape of the interpolated curve
May not work with a piecewise interpolation approach
Alternative Implemented Priestle smoothing (CA
coordinates, normals)
Hermite Interpolation
Independent interpolation for normal/binormal
Orthogonality is not always strictly enforced
04/18/23 SDSCSDSC
Performance challenges
A number of tasks have high natural complexity n2 Covalent bond detection for
ball-and-stick rendering hydrogen bonding for
secondary structure assignment (in the Kabsch-Sander algorithm)
Some types of surface representation require calculation of the same order of magnitude, i.e. n2
Very time consuming for big structures.
Solution: Implemented an Octree-
based algorithm for the determination of the closest neighbors within a given sphere in 3D.
Complexity reduced to Overhead associated with
building the tree is of the same order of magnitude
Typical observed speed-up 10-20 times
nn log