6/2/2015 the molecular biology toolkit – geometry generation capabilities apostol gramada john...

12
03/27/22 The Molecular Biology Toolkit – Geometry Generation Capabilities Apostol Gramada John Moreland PI: Phil Bourne Supported by: SPAM project: NIH NIGMS 1P01GM63208-01A1

Post on 18-Dec-2015

218 views

Category:

Documents


0 download

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