Rendering Differences Between Three-Dimensional Geometric Objects and Two-Dimensional Geometric Objects 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 atoms glBegin(GL_LINES); 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 equation a 1 x 2 + a 2 y 2 + a 3 z 2 + a 4 xy + a 5 yz + a 6 zx + a 7 x + a 8y + a 9 z + a 10 = 0
Three-dimensional Geometric Objects cont. Cylinder – bonds between atoms gluCylinder( 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 – atoms gluSphere(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
Bibliography 1.) Neon Helium Productions". May ) CodeGuru". May ) Olson, Wilma et. al.. "A Standard Reference Frame for the Description of Nucleic Acid Base-pair Geometry". Journal of Molecular Biology 2001: ) 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. D : ) May ) May
Questions?