Download - By: Sean Cain
Rendering Differences Between Three-Dimensional Geometric Objects
and Two-Dimensional GeometricObjects Using a DNA Rendering
Program Written with the OpenGL Graphics Library
By: Sean Cain
Goals Create a program able to render B-DNA in
three dimensions accurately
Determine differences between rendering three-dimensional and two-dimensional geometric objects (lines vs cylinders)
Background DNA
Forms a double helical structure Purines: Adenine (A) and Guanine (G) Pyrimidines: Cytosine (C) and Thymine (T)
Base-pairs Adenine only pairs with Thymine Guanine only pairs with Cytosine Adjacent pairs connected with a sugar
phosphate backbone
Parameters
DNA Rendering Program Tool to render B-DNA in three dimensions
Written in C# with OpenGL graphics library Input
DNA base abbreviations (A, C, G, or T) Output
A double helical strand of DNA based on input
Program Issues Different sources for backbone and bases
The coordinates don't match up Bases
Plotted according to the coordinates in [4] Not all base-pair parameters, step
parameters, or local helical parameters were taken into account outside of the provided coordinates
Issues cont. Backbone
Plotted according to the coordinates in [5] Translations were performed to line up the
backbone with the bases Rotations were not performed
A source with proper angles between adjacent backbones could not be found
Hydrogen atoms not rendered No exact coordinates Bond distance was the only measurement
obtained
Issues cont.
Two-dimensional Geometric Objects
Lines – bonds between atomsglBegin(GL_LINES);glVertex(x, y, z);glVertex(x, y, z);glEnd();
No extra operations are required to get proper placement and alignment of lines
Three-dimensional Geometric Objects
Require a quadric object in OpenGL Quadric objects are defined in [5] by the
following quadratic equationa1x
2 + a2y2 + a3z
2 + a4xy + a5yz + a6zx + a7x + a8y + a9z + a10 = 0
Three-dimensional Geometric Objects cont.
Cylinder – bonds between atomsgluCylinder( quadric, base, top, height, slices, stacks);
Cylinders aren't drawn with endpoints as lines are
A function renderCylinder() needed to be created to obtain proper alignment of each cylinder
Three-dimensional Geometric Objects cont.
Sphere – atomsgluSphere(quadric, radius, slices, stacks);
Drawn at the origin Translations required to get proper placement
Experimental Setup DNA Rendering Program was modified
Added a timer Strands were input before execution to avoid
user delay Strands were rendered with lines or cylinders
and with or without spheres Each strand was rotated 360° around the z-axis
49 different times The program rotated the strand 1° for every
call of the OnPaint() function independently with no user input
Results Average timing differences between lines
and cylinders with and without spheres are represented in the following graphs
Future Work Properly align sugar phosphate backbones Include base-pair, step, and local helical
parameters Include different ways for user to input data
Mouse translations and rotations Collect more data with different operations
– Translations
Bibliography1.) Neon Helium Productions". May 06 2010 <http://nehe.gamedev.net/>
2.) CodeGuru". May 06 2010
<http://www.codeguru.com/forum/archive/index.php/t-228231.html>
3.) Olson, Wilma et. al.. "A Standard Reference Frame for the Description of Nucleic Acid Base-pair Geometry". Journal of Molecular Biology 2001: 229-237
4.) Parkinson, G., Vojtechovsky, J., Clowney, L., Brunger, A.T. and Berman H. M. "New parameters for the refinement of nucleic acid-containing structures". Acta. Cryst. D52 1996: 57-64
5.) May 06 2010 <http://www.movesinstitute.org/~mcdowell/mv4202/notes/lect11.pdf>
6.) May 06 2010 <http://www.chemicalgraphics.com/paul/images/DNA/BallAndStick.jpg>
Questions?