the molecular biology toolkit – geometry generation capabilities
DESCRIPTION
The Molecular Biology Toolkit – Geometry Generation Capabilities. Apostol Gramada John Moreland Philip E. Bourne (PI). Supported by: SPAM project: NIH NIGMS 1P01GM63208-01A1. Outline. An application developer perspective General Description of the package-Class Hierarchy - PowerPoint PPT PresentationTRANSCRIPT
04/22/23
The Molecular Biology Toolkit – Geometry Generation
Capabilities
Apostol GramadaJohn MorelandPhilip E. Bourne (PI)
Supported by:• SPAM project: NIH NIGMS 1P01GM63208-01A1
04/22/23 SDSCSDSC
Outline
An application developer perspective General Description of the package-Class
Hierarchy Instantiating Geometry Objects – Creating 3D
molecular scenes Technical and performance-related
aspects
04/22/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 s G eom etry
A tom G eom etry B on d G eom etry
P sG eom etry
G eom etryE n tity
04/22/23 SDSCSDSC
Creating Geometry Two-steps process
1. 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• specific rendering properties• smooth transition requires
setting boundary tangents, normals in advance
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/22/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/22/23 SDSCSDSC
Technical perspectiveBasics Built on the Java3D™
extension API. The view platform is built
in a separate package of the toolkit, the viewer
The Content branch is created by the geometry package
04/22/23 SDSCSDSC
Basic Geometrical Objects
Main elements Extrusions ribbons
and thick bonds line segments for
bonds and backbone traces
spheres for atoms
04/22/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/22/23 SDSCSDSC
Ribbons 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/22/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/22/23 SDSCSDSC
Solution Option: use a sofisticated
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 inforced
04/22/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