DNA Strand

Diana M. Echeverri
e-mail- lafla1115@yahoo.com
Math 213 -- Mathematics with Mathematica, Fall 2009
December 8, 2009

Abstract

My project investigates the question what can I do with a DNA strand on Mathematica. Doing a DNA strand just caught my eye when I was looking at the wolfram demonstrations project. A DNA strand is something that is truly complex and that is what interested me. I used certain Mathematica commands which helped me in my process of creating a DNA strand. From my project I learned that in order to turn a cylinder within a cylinder in a certain way, you should use either the sine or cosine command. This project helped me understand Mathematica a little more and it also helped me understand some of the commands a little better.

Section 1. Introduction

1.1 Background

A DNA strand is very interesting and complex, it does a lot for a person. According to wikipedia a DNA strand contains the genetic instructions used in the development and functioning of all known living organisms and some viruses. The DNA strand is a very important part in a living organism, which is why I wanted to know if I could create a DNA strand, where it's possible to understand things a little better.

1.2 Problem Statement

The problem statement I answer is; can I create a DNA strand on Mathematica, and if so what can I do with the DNA strand.

1.3 Useful Commands

Graphics 3D - represents a three-dimensional graphical image. 

Opacity - makes the object transparent, so as to see what is going on inside. 
	Ex; Opacity[a], the smaller a is the more transparent the object gets.

Cylinder - represents a cylinder of radius r around the line from {x,y,z} to {x',y',z'}. 
	Ex; Cylinder[{{x,y,z},{x',y',z'}},r] 

Sphere - represents a sphere of radius r centered at {x,y,z}.
	Ex; Sphere[{x,y,z},r]

Table - Generates a list of data depending on an input that varies with a variable. Ex; Table[an expression using one or more variables, {the variable, min #, max #, by steps in which it takes the min # to get to the max #}, {second 		variable, ......},.....]

Manipulate - generates a version of an expression with controls added to allow interactive manipulation of a value. Ex; Manipulate[expression (with one or more variables), {the first variable, min #, max #, steps in which it takes the min 	# to get to the max #}, {the seond variable......},.........]

1.4 File Structure

In Section 2, I explain how and what codes I used to create a DNA strand. In Section 3, I discuss what I was able to find out about the DNA strand on Mathematica. In Section 3, I also mention topics for future work.

Section 2. Main Work

2.1 Investigating The Starting Points of The DNA Strand

*I needed to start with a bases for the DNA strand, so I decided to start with a transparent cylinder that has a radiuds of {1} and the length of {10}. I then needed to create other cylinders that would be separate from eachother, and the individual cylinders turn as they went through the bigger cylinder; to do this I needed to use the commands of sin and cos. I decided to use {Pi/3} not for any specific reason just because I tried other ones and that was the only one that seemed to turn the cylinders perfectly, the radius I used was {.1} also because it fit perfectly. I then needed to decide where to put the spheres, I needed the spheres so I can connect all the cylinders that I needed together. I was able to figure out where I needed to place the spheres, once the spheres were placed I needed to figure out what the radius should be; I decided the radius to be {.13} it just fit perfectly. Once I figured out the spheres I needed to figure out how to connect the other cylinders to make it look more like a DNA strand. I was able to figure out how to make the cylinders connect to eachother to make it look like a DNA strand. I used the same radius as the other cylinders which is {.1} and I needed to connect the ends to eachother.

Graphics3D[{{Opacity[.2],Cylinder[{{0,0,0},{10,0,0}}]},Cylinder[{{0,0,1},{0,0,-1}},.1],Cylinder[{{1,Sin[Pi/3],Cos[Pi/3]},{1,-Sin[Pi/3],-Cos[Pi/3]}},.1],Cylinder[{{2,Sin[2Pi/3],Cos[2Pi/3]},{2,-Sin[2Pi/3],-Cos[2Pi/3]}},.1],Cylinder[{{3,Sin[Pi],Cos[Pi]},{3,-Sin[Pi],-Cos[Pi]}},.1],Cylinder[{{4,Sin[4Pi/3],Cos[4Pi/3]},{4,-Sin[4Pi/3],-Cos[4Pi/3]}},.1],Cylinder[{{5,Sin[5Pi/3],Cos[5Pi/3]},{5,-Sin[5Pi/3],-Cos[5Pi/3]}},.1],Cylinder[{{6,Sin[2Pi],Cos[2Pi]},{6,-Sin[2Pi],-Cos[2Pi]}},.1],Cylinder[{{7,Sin[7Pi/3],Cos[7Pi/3]},{7,-Sin[7Pi/3],-Cos[7Pi/3]}},.1],Cylinder[{{8,Sin[8Pi/3],Cos[8Pi/3]},{8,-Sin[8Pi/3],-Cos[8Pi/3]}},.1],Cylinder[{{9,Sin[3Pi],Cos[3Pi]},{9,-Sin[3Pi],-Cos[3Pi]}},.1],Cylinder[{{10,Sin[10Pi/3],Cos[10Pi/3]},{10,-Sin[10Pi/3],-Cos[10Pi/3]}},.1],Sphere[{0,0,1},.13],Sphere[{0,0,-1},.13],Sphere[{1,Sin[Pi/3],Cos[Pi/3]},.13],Sphere[{1,-Sin[Pi/3],-Cos[Pi/3]},.13],Sphere[{2,Sin[2Pi/3],Cos[2Pi/3]},.13],Sphere[{2,-Sin[2Pi/3],-Cos[2Pi/3]},.13],Sphere[{3,-Sin[Pi],Cos[Pi]},.13],Sphere[{3,-Sin[Pi],-Cos[Pi]},.13],Sphere[{4,Sin[4Pi/3],Cos[4Pi/3]},.13],Sphere[{4,-Sin[4Pi/3],-Cos[4Pi/3]},.13],Sphere[{5,Sin[5Pi/3],Cos[5Pi/3]},.13],Cylinder[{{0,0,1},{1,Sin[Pi/3],Cos[Pi/3]}},.1],Cylinder[{{0,0,-1},{1,-Sin[Pi/3],-Cos[Pi/3]}},.1],Cylinder[{{1,Sin[Pi/3],Cos[Pi/3]},{2,Sin[2Pi/3],Cos[2Pi/3]}},.1],Cylinder[{{1,-Sin[Pi/3],-Cos[Pi/3]},{2,-Sin[2Pi/3],-Cos[2Pi/3]}},.1], Cylinder[{{2,Sin[2Pi/3],Cos[2Pi/3]},{3,Sin[Pi],Cos[Pi]}},.1],Cylinder[{{2,-Sin[2Pi/3],-Cos[2Pi/3]},{3,-Sin[Pi],-Cos[Pi]}},.1],Cylinder[{{3,Sin[Pi],Cos[Pi]},{4,Sin[4Pi/3],Cos[4Pi/3]}},.1],Cylinder[{{3,-Sin[Pi],-Cos[Pi]},{4,-Sin[4Pi/3],-Cos[4Pi/3]}},.1]}]

2.2 Refining The Starting Point of the DNA Strand

*Once I got the start to everything I was able to create a couple of tables using the table command, where Mathematica would be able to do everything on its own with just a little help from me. In this step I was able to use only one variable {x} to make the entire DNA strand. I did have to use three table commands with that one variable to create the DNA strand. With the first table command I was able to create the cylinders in a row with the spheres attached, the second table command connected one side of the DNA strand, and the third table command finished the other side of the DNA strand.

Graphics3D[{{Opacity[.2],Cylinder[{{0,0,0},{10,0,0}}]},Table[{Cylinder[{{x,Sin[x*Pi/3],Cos[x*Pi/3]},{x,-Sin[x*Pi/3],-Cos[x*Pi/3]}},.1],Sphere[{x,Sin[x*Pi/3],Cos[x*Pi/3]},.13],Sphere[{x,-Sin[x*Pi/3],-Cos[x*Pi/3]},.13]},{x,0,10,1}],Table[Cylinder[{{x,Sin[x*Pi/3],Cos[x*Pi/3]},{x+1,Sin[(x+1)*Pi/3],Cos[(x+1)*Pi/3]}},.1],{x,0,9,1}],Table[Cylinder[{{x,-Sin[x*Pi/3],-Cos[x*Pi/3]},{x+1,-Sin[(x+1)*Pi/3],-Cos[(x+1)*Pi/3]}},.1],{x,0,9,1}]}]

2.3 Finishing The DNA Strand

*After I was able to put the variable {x} and use the table commands to create the DNA strand I was then able to take it a step further. I was then able to use the manipulate command to see what else would be possible to do with the DNA strand. I was actually able to manipulate the DNA strand so the twist of the strand would change, I was also able to manipulate the radius of both the spheres and the cylinders. To change the twist I used the vaiable {y} to change the degree of sine and cosine which would change how much cylinders turned, I then used the variable {f} to change the radius of the sphere, and lastly I used the variabe {d} to change the radius of the cylinder. I had {y} start at 1 and go to 10 with steps of 1, I started at .05 and went to .5 with steps of .05 for {d}, and for {f} I started at .07 and went to .5 with steps of .03. So with this manipulate Mathematica is able to twist the DNA strand to be in different positions and make the cylinders and spheres thicker.

Manipulate[Graphics3D[{{Opacity[.2],Cylinder[{{0,0,0},{10,0,0}}]},Table[{Cylinder[{{x,Sin[x*Pi/y],Cos[x*Pi/y]},{x,-Sin[x*Pi/y],-Cos[x*Pi/y]}},d],Sphere[{x,Sin[x*Pi/y],Cos[x*Pi/y]},f],Sphere[{x,-Sin[x*Pi/y],-Cos[x*Pi/y]},f]},{x,0,10,1}],Table[Cylinder[{{x,Sin[x*Pi/y],Cos[x*Pi/y]},{x+1,Sin[(x+1)*Pi/y],Cos[(x+1)*Pi/y]}},d],{x,0,9,1}],Table[Cylinder[{{x,-Sin[x*Pi/y],-Cos[x*Pi/y]},{x+1,-Sin[(x+1)*Pi/y],-Cos[(x+1)*Pi/y]}},d],{x,0,9,1}]}],{y,1,10,1},{d,.05,.5,.05},{f,.07,.5,.03}]

Section 3. Conclusion and Future Work

3.1 Summary

It appears that the DNA strand can actually be represented through Mathematica. It also appears that that DNA strand can be manipulated in 2 different ways. The DNA strand can be manipulated where in changes it's thickness and it also changes how much it can be twisted.

3.2 Discussion

It was interesting to find out how much the DNA strand can be manipulated. I do feel that if done differently that DNA strand can be manipulated in different ways. The DNA strand was manipulated in how much it can be twisted, and also it can be manipulated in the thickness of the cylinders and spheres. I did learn some more things about Mathematica, especially about the commands of manipulate and table. I also learned about cylinders and spheres and how they work. I was able to learn that in order to make a table command work in a good manner, you should look and see if there is a relationship between what it is you want to be changed, and if so all you need is one variable. It was also interesting to find out how much would be possible to put into the manipulate command.

3.3 Future Work

For the future I think it might be good to find out if the DNA strand can be crated without a basis. Fo example I put the DNA strand in a cylinder and the DNA strand I saw was manipulated around a cylinder. It would also be good to see if there are more things to be manipulated with a DNA strand. Maybe there is a different way of creating the DNA strand and possibly there are other things to be done with that DNA strand.

Section 4. References

Wolfram Demonstrations Project, http://demonstrations.wolfram.com/

Wikipedia The Free Encyclopedia, http://en.wikipedia.org/wiki/DNA