<<

BioCompT: A Tutorial on Bio-Molecular

A Thesis submitted to the

Graduate School of the

University of Cincinnati

in partial fulfillment of the

requirement for the degree of

MASTER OF SCIENCE

In the School of

Electronic and Computing Systems

Of the College of Engineering and Applied Science

2012

By

Kimia Karimian

Bachelor of Engineering, Azad University of NajafAbad, 2005

Committee Chair: Dr. Carla Purdy

Abstract

DNA computing is a new and interesting development that connects science to . The idea of DNA computing arose from Adleman’s 1994 experiment in which he showed how to solve the (HPP) in polynomial time using of DNA. DNA computing enables massive parallelism at the molecular level and is one of the technologies being explored by researchers as a supplement to traditional silicon-based computing. But many computer scientists and computer engineers have little knowledge of biology and therefore find it difficult to get started in the field of DNA computing. Thus the aim of this work is to provide a tutorial to introduce DNA computing to a wider audience and to show some examples of how

DNA computing can be simulated using agent-based techniques and can be applied to solve complex problems. Currently our system consists of four sections: DNA structure and behavior, basic DNA computation, DNA-based cryptography, and using agent based modeling and simulation to explore DNA behavior. We also provide a small assessment test to enable users to test themselves and evaluate their knowledge of the topics covered.

The system is modular in design and can easily be modified or extended to include more information on each topic or to include additional examples of DNA computing.

ii

iii

Acknowledgement

I would like to thank Dr. Carla Purdy for her support and guidance. This work has been completed with her advice and support. I am so thankful that I had her as my advisor, who made me believe in myself and guided me through the whole process of writing my thesis. I am sure this work wouldn’t have been completed without her encouragement and understanding.

I would also like to thank Dr. George Purdy and Dr. Anca Ralescu for agreeing to be in my committee. Their valuable suggestions and comments help me to improve my work.

I would like to show my gratitude to my mother for her support and encouragement; she is the main reason for my success. I also want to thank my uncle for supporting me, he was the main reason that I study at university of Cincinnati. Also, I would like to thank my brother for his moral support. I dedicate my thesis to my mother. Also, I want to thank GOD for everything he has done for me.

iv

Table of Contents

1. INTRODUCTION………………………………………………………….……..1 1.1. Motivation………………………………………………………...……...... 1 1.2. System Biology…………………………………………………………...... 1 1.3. Agent Based Modeling and Simulation…………………………………...... 2 1.4. Goal………………………………………………………………….………..2 2. BACKGROUND ……………………………………………………..………...... 5 2.1. Overview…………………………………………………………..……….....5 2.2. DNA Structure…………………………………………………………… .....5 2.2.1Deoxyribose Sugar……………………………………………………....6 2.2.2 Nucleotides……………………………………………………………..7 2.2.3 DNA Backbone…………………………………………………………7 2.3. Types of DNA Molecules…………………………………………………...11 2.4. Unusual Structure of DNA Molecules………………………………………12 2.5. Plasmid DNA………………………………………………………………..13 2.6. Traditional Modeling……………………………………………………...... 13 2.7. Agent Based Modeling and Simulation ……………………………….……14 2.8. Advantages and Disadvantages of ABMS …………………………….……15 2.8.1. Advantages of ABMS …………………………………….…………15 2.8.2. Disadvantages of ABMS ……………………………………….……15 2.9 Bio-Chemical Operations in DNA …………….……...………….………..16 2.10. DNA Computation…………………………………………………………17 2.10.1. Adleman’s Experiment ………………………………………...……18 2.10.2 DNA Complexes and Self-assembly ……………………………...…19 2.10.2.1. Grammar……………………………………………...……21 3. DESIGNS AND IMPLEMENTATION………………………………………………24 3.1. Overview………………………………..…………………..………...... 24 3.2. Current System……………………………...……………………………….24

v

3.3 Existing Model of DNA Computation ………………………………………26 3.4. Advantages of DNA Computing ……………………………………………28 3.5. Disadvantages of DNA Computing ……………………………...…………29 3.6. Methods of DNA Computing ………………………….……………………29 3.6.1. Agent Oriented Method of DNA Computing ………...………………30 3.6.2. DNA Computing Based On Sticker Based Model ……………………30 3.7. DNA Cryptography………………………………………………………….31 4. BioCompT: Bio-Computing Tutorial.………………………………………………...33 4.1. Overview ……………………………………………………………………33 4.2. System Setup …………………..……………………………………………33 4.2.1. Hardware Configuration………………………………………………33 4.2.2 Software………………………………………………………………..33 4.3. GUI Design of System ……………..……………………………………….34 4.4. Use Case Diagram of System ……………………………………………….34 4.5. Biocomputing System …………………...………………………………….35 5. CONCLUSIONS AND FUTURE WORK …………...………………..……………..50 REFRENCES…………………………………………………………………………….51

vi

LIST OF FIGURES Figure 2.1. DNA bases…………………………………………………………………….6 Figure 2.2. Deoxyribose sugar……...………………………………………………….…7 Figure 2.3. Nucleotide……………………………………………………………………..7 Figure 2.4. Double stranded DNA………………………...……………………….……...8 Figure2.5. Hydrogen bond……...……………………………………………...……….…9 Figure 2.6: PCR amplification……………………………………………………….…10 Figure 2.7: a) DNA hairpin, b) Plasmid DNA molecules [23], and c) DNA molecules with sticky ends……………………..……………………………….…………………..12 Figure 2.8 Hamiltonian Path Problem (HPP)…………………………...…………….…19 Figure 2.9.Some DNA complexes. Solid lines show the backbone edges and dotted line shows a pair of bases……………………………………………………………………..20 Figure 2.10. A strand, a duplex with sticky ends, a hairpin with a sticky end, and 3- branched junction……………………………………………………………………...…20 Figure 2.11. The initial complex A represented as a regular grammar…………………..22 Figure 2.12. Self-assembled DNA by context-free grammar……………………………23 Figure 2.13. Result of self-assembly by context free grammar………….………………23 Figure 4.1 Use case diagram for the bio-molecular system……………………...……...34 Figure 4.2 Start of system………………………………………………………….…….35 Figure 4.3: Overview of system ………………………………………………………...36 Figure 4.4 Inside DNA biology……………….…………………………………………37 Figure 4.5 Snapshot of agent based modeling of bio-molecular system……………...…39 Figure 4.6 DNA synthesizing……………………………………………………………40 Figure 4.7 DNA annealing…………………………………………………………….…41 Figure 4.8 DNA melting………………………………………………………………....43 Figure 4.9 Branch DNA………………………………………………………………….45 Figure 4.10 Snapshot of the system when DNA computing is selected………..………..47 Figure 4.11 DNA cryptography………………………………………………………….48 Figure 4.12 Bio-assessment test…………………………………………………………49

vii

1. INTRODUCTION 1.1. Motivation

In this work we introduce our bio-computing tutorial, BioCompT. This tutorial can be used by different types of users such as scientists, engineers, and biologists. It focuses mainly on computation methods based on DNA. It does not currently cover methods based on protein signaling. We provide this system for researchers who are new to the field of bio-molecular computing and wish to learn more about different methods of

DNA computing in a short period of time. In addition, we provide some background in biology for those whose knowledge of the field is small. We also discuss agent based modeling and simulation, a technique useful for studying DNA. Our system is extendable, for example, we plan in future to add more modules on DNA computation and DNA cryptography.

1.2. Systems Biology

Systems biology is an emergent field with the aim of system level understanding of biological systems [2]. System level understanding of a biological system can be divided into four areas:

1) System structure: this includes gene regulation and biochemical networks, as well as physical structures.

2) System dynamics: this includes quantitative and qualitative analysis of the system, and construction of theoretical models.

1

3) Control methods: control of the state of the cell; the state can be measured to minimize malfunction and provide potential therapeutic targets for treatment of disease

[1].

4) Design methodogy: using definite design principles and simulation, construct a biological system [1].

1.3. Agent Based Modeling and Simulation (ABMS)

Agent Based Modeling and Simulation (ABMS) is a powerful simulation and modeling technique for simulating actions and interactions of autonomous agents. ABMS models and simulates the behavior of the system using the bottom-up approach.

In ABMS, a system is modeled as a collection of autonomous decision- making entities called agents. Each agent individually assesses its situation and makes decisions based on its set of rules [2].

Even a simple ABMS can exhibit complex behavior patterns and provide valuable information about the dynamics of the real world system that it emulates. It should be mentioned that agents might be capable of evolving, allowing unanticipated behaviors to emerge [2].

1.4. Goal

Our goal is to provide a practical tutorial for users from different backgrounds who are new to the field of bio-molecular computation. An additional goal is to ensure that this system can be extended in future.

Examples we provide in this tutorial include:

2

• Simulation of self-assembled molecules, and demonstration of some DNA

behaviors.

• Brief overview of DNA biology for engineers and computer scientists who are

using this system to learn about bio-molecular computing models.

• Examples of agent based modeling of DNA behavior.

This thesis is organized as follows:

Chapter 2 starts with the explanation of DNA structures. Bio-chemical operations on DNA and different types of DNA molecules are described briefly. In this chapter, we provide the example of unstructured DNA molecules. In this chapter we describe the traditional modeling techniques and agent based modeling in biological systems. We compare these two techniques since our goal is to introduce different methods in bio- molecular computation. Study on DNA computation starts with the experiment of

Adleman when he used strands of DNA to solve the Hamiltonian Path Problem (HPP), after Adleman’s experiment Winfree developed other methods. Most of the research in this area is inspired by their ideas.

Chapter 3 describes our current system. This system explains agent based modeling and simulations of DNA behavior that can be used in computing. We also explain the existing methods of DNA computation and advantages and disadvantages of

DNA computing. In addition, in this chapter we review some more methods of DNA computing such as DNA computing based on sticker based model. Finally, we talk about

DNA cryptography that can be used in information security, and currently requires more research.

3

Chapter 4 demonstrates the behavior of our system and instructions for using this system are given.

Chapter 5 is the conclusion of this work and also gives suggestions for future work.

4

2. BACKGROUND

2.1. Overview

In this chapter we explain DNA structure and its behavior. DNA has appealing features for computation and nanotechnology. The goal of our system is to introduce different methods of computation and simulation in a bio-molecular system. In this chapter we review different methods of modeling biological systems such as traditional modeling agent based modeling and simulation (ABMS). In the next chapter we explain how ABMS can be used to model and simulate the behavior of DNA.

We review the bio-chemical operations that can be used in DNA computation, and at the end we review some methods of DNA computation such as Adleman’s and

Winfree’s approaches.

2.2. DNA Structure

DNA is a polymer of nucleotides. Each nucleotide consists of a molecule of the sugar deoxyribose, a phosphate group, and a nitrogen-containing base. The four nucleotides differ based on their nitrogen bases. The bases can be one of the two chemical forms, single-ring structure that is called pyrimidine and double-ring structure that is called purine. The structures of bases are shown in Figure 2.1. The bases are:

Adenine (A), Guanine (G), Cytosine (C), and Thymine (T) [40]. The purines are Adenine and Guanine and the pyrimidines are Cytosine and Thymine.

5

Figure 2.1. DNA bases [9]

Based on Erwin Chargaff’s theory, in DNA the amount of adenine equals the amount of thymine and the amount of guanine equals the amount of cytosine. As a result the total number of purines are equal to the total number of pyrimidines [40].

2.2.1. Deoxyribose Sugar

The deoxyribose sugar of the DNA backbone has 5 carbon and 3 oxygen atoms.

The hydroxyl groups on the 5’ and 3’ carbon link to the phosphate groups to form the

DNA backbone [40]. Figure 2.2 shows the deoxyribose sugar.

6

Figure 2.2. Deoxyribose sugar [9]

2.2.2. Nucleotides

A nucleotide is an organic compound with one or more phosphate groups covalently attached to the 3’ and/ or 5’ hydroxyl group. Figure 2.3 shows a nucleotide.

Figure 2.3. Nucleotide [10]

2.2.3. DNA Backbone

The DNA backbone is a polymer with alternating sugar phosphate sequences. DNA is normally a double stranded macromolecule. Two polynucleotide chains with weak thermodynamic forces hold together and form the DNA molecule. The two strands of

7

DNA run in opposite directions, in other words they are antiparallel. The two strands can’t fit together if they are parallel. A purine on one strand is always paired with a pyrimidine on the opposite strand, A is paired to T and C is paired to G. This is called

Watson-Crick complementarity [40].

Some key features of the DNA structure are:

• It is a double stranded helix of uniform diameter

• It is right handed

• It is antiparallel

Figure 2.4 shows double stranded DNA.

The outer edges of the nitrogenous bases are exposed in the major and minor grooves.

The DNA structure has appealing features for use in nanotechnology for several reasons. First is the minuscule size of DNA with a diameter about 2 nanometers. Others are the helical pitches of DNA, and its stiffness [8]. Figure 2.5 shows the helical structure of DNA.

Figure 2.4. Double stranded DNA [11]

8

Figure2.5. Hydrogen bond [11]

DNA is the informational library of the cell; all the information is encoded in the

DNA sequences. Information is carried by the sequence of bases in a DNA strand, for instance information that is encoded in a sequence of ACCCGTTTCG is different from the information that is encoded in a sequence of TTTTGGGCAA [40].

DNA can reproduce itself, which is called DNA replication. DNA replication is performed by a multi-enzyme complex and generally has two steps:

• First of all, hydrogen bonds between complementary bases should be cleaved to

cause unwinding of the double helix to separate the two template strands and

make them available for new base pairing.

• As new nucleotides form complementary base pairs with template DNA, the DNA

polymerase enzyme phosphordiester links them together and forms a polymer whose

base sequence is complementary to the bases in the template strand [40].

• Multiple copies of DNA are produced by polymerase chain reaction (PCR). PCR is

9

DNA amplification in vitro, it is a cyclic process that contains the following steps:

• Denaturation: separation of two strands of DNA template by heating to near

boiling point

• Primary binding: primers bind to the template strands by cooling down the

reaction.

• DNA synthesis: DNA polymerase catalyzes the production of the

complementary new strands. Figure 2.6 shows the process of PCR [42].

Figure 2.6. PCR Amplification [42]

Two basic types of nanotechnology constructions are: top-down and bottom-up approaches. Many molecules self assemble in parallel steps in bottom up constructions.

DNA will be a key player in bottom-up nanotechnology [8].

10

An assembly of DNA strands can process data in a way similar to an electronic computer and has the potential to solve far more complex problems and store greater amounts of information for substantially less energy cost than an electronic microprocessor [8].

DNA based computation dates from ’s computation. He used

DNA to solve the Hamiltonian path problem. The idea behind this computation was to determine whether there is a path through all vertices of a graph visiting each vertex exactly once. Adleman used strands of DNA to represent vertices and edges, and encoded the sequences so that a strand representing an edge would connect to any two strands representing the nodes at the end points of that edge [41].

It is impossible to separate DNA nanotechnology from DNA based computation.

Erik Winfree was the first person that linked DNA computation and DNA nanotechnology. He suggested that short-branched DNA molecules could be programmed to undergo algorithmic self-assembly and serve as the basis of computation [13].

2.3. Types of DNA Molecules

Five types of DNA molecules used in DNA computation are: single stranded DNA molecule, double-stranded DNA molecule, hairpin DNA molecule, shown in Figure

2.7.a, plasmid DNA molecule, shown in Figure 2.7.b, and DNA molecule with sticker that has been shown in Figure 2.7.c.

11

a) c) b) Figure 2.7. a) DNA hairpin, b) Plasmid DNA molecules [23], and c) DNA molecules with sticky ends [22]

2.4. Unusual Structure of DNA Molecules

Watson-Crick complimentarity seems to be favored for linear duplexes, nonetheless when Watson-Crick pairing is difficult to achieve, non-Watson-Crick complementarity can occur. Branched DNA and DNA double crossover molecules are some examples of unusual DNA molecules.

In nature it appears that there is no stable branched DNA. To build branched DNA in the laboratory or use it for the construction of nanoscale objects requires a method that can assign sequences to the branch DNA. In [31] the sequence symmetry minimization technique is used to build the DNA branches as a component for nanoscale construction.

DNA branched junctions are built such that they consist of 3, 4, 5, or 6 arms.

Although 3-arm, and 4-arm junctions contain as few as 8 nucleotide base pairs they behave well on non-denaturing gels. On the other hand, 5-arm or 6-arm junctions need more base pairing to achieve stability [30].

12

2.5. Plasmid DNA

Plasmids are small genetic elements that exist and replicate independently from the chromosome. Most of them are in circular form. Plasmids are often used as a vector in genetic engineering to make multiple copies of DNA molecules. This is known as DNA cloning.

We would like to explain different methods and their comparison in system biology. then describe bio-molecular computation such as DNA computation and review two primary methods of DNA computation.

2.6. Traditional Modeling

Traditional modeling techniques that are useful in modeling biological systems are:

Ordinary Differential Equations (ODE), Partial Differential Equations (PDE), Stochastic

Differential Equations (SDE), Petri Nets, and Pi-Calculus.

ODE is used to study the dynamics of metabolic systems, it is good for modeling systems with a large population, but it doesn’t work well for systems with a complex behavior [36]. SDE model can be used in different research areas such as biology, chemistry, epidemiology and mechanics. Understanding of SDE requires familiarity with stochastic processes and advanced probability [36]. PDE can be used to describe a variety of phenomena such as sounds, heat, and electrostatics. Also, it is used to model multi- dimensional systems. In addition, it can be used in systems that contain multivariable functions and their partial derivatives [36]. PDE can be used to model any complex system but the problem of using PDE is that the equations in the complex system can cause exponential complexity [37]. Petri Nets can be used to model, simulate, and

13 analyze biological processes. They are a mathematical tool used to articulate properties of a system like concurrency, communication and synchronization. Two properties of Petri

Nets are extendibility and abstraction. Extendibility is a characterization of adding new features to the system and abstraction is the property of underestimating the modeling of some aspects [39].

2.7. Agent-Based Modeling and Simulation

Agent Based Modeling and Simulation (ABMS) is a new approach to modeling complex systems such as biological systems and social systems. ABMS are computer representations of systems consisting of multiple interacting actors, i.e., agents.

Behaviors of agents are described by sets of rules. Interactions between agents affect their behavior [6].

By modeling the system with a bottom-up approach, agent-by-agent, or interaction- by-interaction, self-organization can be observed. Patterns, structures, and behaviors emerge through the interactions of sets of agents. Emergence of self-organization and heterogeneity of agents across a population are two features of ABMS [5].

Three elements of ABMS are: the set of agents, their attributes, and behavior including relationships between sets of agents and interactions among them. In addition to the interaction of agents with each other, agents interact with their environment [3].

One of the most important characteristics of agents is their ability to act autonomously. Agents are able to make decisions independently. ABMS are goal- orientated; agents are active and initiate their actions to achieve their goal.

Some other characteristics of agents are:

14

• Agents can be identified by other agents, are self-contained and are modular.

• Agents are self-directed and autonomous; they have the ability to interact with

other agents and their environment independently. States of agents change

over time.

• Agents can be adaptive, they might be able to learn and adapt behaviors.

• Agents can be goal-oriented.

• In addition, agents can be heterogeneous such as in a dynamic situation.

It should be mentioned that in agent based modeling everything allied with an agent is either a method or an attribute.

2.8. Advantages and Disadvantages of ABMS

2.8.1. Advantages of ABMS

Agent-based modeling and simulation has some benefits such as:

• ABMS captures emergent phenomena;

• ABMS provides a natural description of the system;

• ABMS is the most natural for modeling and simulating a system consisting of

behavioral entities;

• ABMS is flexible, it can be observed along multiple dimensions;

• ABMS has an ability to change levels of description and aggregation [6].

2.8.2. Disadvantages of ABMS

There are some problems in modeling agent-based systems.

• One of the common issues is that ABM systems need to have a specific goal;

15

• Agent-based modeling won’t work on general-purpose systems [6];

• One of the practical issues of ABMS is that agent based modeling systems don’t

look at the system at the aggregate level. In other words, they look at the system

at the constituent level [5];

ABM and traditional modeling (EBM) have some aspects in common with each other such as in both the world contains two kinds of entities, individuals and observables.

EBM starts with a set of equations but ABM starts with the behaviors of individual agents that interact with each other. ABM represents the behavior of agents in terms of observables accessible to each agent [36].

2.9. Bio-Chemical Operations in DNA

Basic bio-chemical operations in DNA computing are:

• Denaturing: DNA denaturation is a result of melting double stranded DNA into

single strands. In this process hydrogen bonds between two bases will break. One

of the most common methods of denaturation is to heat the DNA to a temperature

above its melting point [17].

• Annealing: this describes forming the double stranded DNA by hydrogen bonds

among the bases that constitute the complementary sequence.

• Ligation: DNA ligase is a specific enzyme that helps single stranded DNA in

double stranded DNA to be repaired where it is discontinuous [18].

• Intermolecular Operations: This operation affects the DNA by deleting, inserting,

incising, purifying and detecting [21].

16

• Polymerase Chain Reaction (PCR): PCR is used to amplify a specific region of

DNA strands [19].

• Hybridization: Hybridization of DNA happens as a result of heating strands of

DNA from two different species. The hydrogen bonds between all complementary

bases will break. The single-stranded DNA from both species will mix together,

after it cools down, and parts of the double stranded molecule join together based

on Watson- Crick complementarity [20].

• Gel-Electrophoresis: Gel-Electrophoresis is a common method in which molecules

are separated according to their size and charge for analyzing of macromolecules

(DNA, RNA, Proteins) and their fragments. The Gel, usually formed from

Agarose or Polyacrylamide, is placed between two buffer compartments

containing electrodes [19].

2.10. DNA Computation

DNA computing is a new and interesting development at the interface of molecular biology and computer science. The field of DNA computing has first created by Leonard

Adleman in 1994, when he described how to solve the Hamiltonian path problem using

DNA [41]. Binary digits are used in electronic to compute information. In

DNA computation we can think of strands of DNA as a sequence of characters chosen from four letters A, C, G, T to represent information in the same way as electronic computers [12]. In this section we describe Adleman’s theory and Winfree’s theory of

DNA computation briefly.

17

2.10.1. Adleman’s Experiment

Adleman was the first one to introduce the idea of DNA computation. He solved the Hamiltinian Path Problem (HPP). HPP may be described as follows: Given a graph with a set of n vertices, find the path that starts at a start vertex and ends with an end vertex, each vertex in the graph needs to be visited once and only once. Adleman used

DNA to code the vertices and edges, and then he put copies of their DNA strands in a beaker and cooled them down. He sorted the paths found and processed them to see if a

Hamiltonian path had formed [41]. Figure 2.8 summarizes his results.

Based on Adleman’s theory each node is represented as sequence of DNA. Ligation between these oligonucleotides gives a number of random paths through the graph. This algorithm is using a polynomial number of oligonucleotides to generate the exponential number of paths. Two nodes are connected to each other as a result of the combination of complementary sequences between two nodes [41].

Polymerase chain reaction (PCR) is used to increase the population of oligonucleotides with the correct start and end points, V-in and V-out. The products of

PCR amplification are used with agarose gel to isolate the paths that are not containing the required number of vertices. At the end, a series of affinity purifications is used to get the strands encoding paths that visit each node exactly once.

18

Figure 2.8. Hamiltonian Path Problem (HPP)[41].

2.10.2. DNA Complexes and Self-Assembly

One of the primary features of DNA is that under certain conditions, single strands of DNA can hybridize and form a double helical structure. Adleman described linear self- assembly when he solved HPP. Erik Winfree [13] suggested a different approach to DNA computation using language theory.

Computing by self-assembly means to start with small strands of oligonucleotides and end with a variety of self-assembled strands. The result has certain characteristics that derive from certain rules of hybridization of oligonucleotides.

In Winfree’s model a DNA complex is assumed to be a directed graph with A, C,

G, T vertices and paired up with edges using Watson-Crick complements. Different sub- graphs are shown in Figure 2.9.

19

Figure 2.9. Some DNA complexes. Solid lines show the backbone edges and dotted lines show a pair of bases [13]

In Figure 2.10 some examples of DNA self assembly are represented. Hairpin shown in Figure 2.10.c, is a part of single stranded DNA that curls onto itself to form the hairpin. Figure 2.10.d shows the structure of 3-arm junction DNA, which is composed of

3 duplex arms that are arranged around a central point.

(b)

(a)

(c) (d)

Figure 2.10. A strand, a duplex with sticky ends, a hairpin with a sticky end, and 3- branched junction [13]

Winfree uses three operations--hybridization, denaturation and ligation--to represent the complexes of self-assembly.

Hybridization is represented by �!+! �! = �! where +! represents the formation of a base pair.

20

Ligation: c’= ligate (c) is obtained by adding edges to the backbone of the sub- graph.

Denaturation: �! = �������� (�) is the set of all strands in c. In other words, each �! is a backbone of the DNA strand.

2.10.2.1. Grammar

A formal grammar is a set of production rules used for formation of strings in a formal language. In Winfree’s work, the alphabet is represented as a finite set of {A, C,

G, T}, and a string is a combination of symbols from the alphabet. Generation of a string in a language starts with the single start symbol. Then, the production rules are applied until the string consists of neither non-terminal nor start symbols. By replacing one occurrence in left-hand side of string with its right-hand side the string will be generated.

Winfree’s work shows how to represent regular and context-free grammars in DNA. In

[13] he shows that linear self-assembly is able to generate regular languages, and that linear self-assembly of duplexes is limited to regular languages. An example is shown in

Figure 2.11.

21

Figure 2.11. The initial complex A represented as a regular grammar [13].

Figure 2.12 represents another theorem of Winfree’s. In this model, given a context-free language �, DNA complexes, which represent that language, are generated.

Then by using DNA self-assembly techniques of hybridization, ligation, and denaturing,

DNA complexes can be made to detect whether or not a certain sequence is in this language. And, given the correct DNA complexes, the language can be recognized, as has been shown in Figure 2.13.

22

Figure 2.12. Self-assembled DNA by context-free grammar[13]

Figure 2.13. Result of self-assembly by context free grammar[13]

23

3. DESIGNS AND IMPLEMENTATION

3.1. Overview

In chapter 2 we described the structure of DNA, bio-chemical operations of DNA,

ABMS system biology, and ABMS comparison with traditional methods of biological systems. ABMS of DNA structure can be used in computation. In [24] ABMS of DNA behavior is demonstrated. Since ABMS of DNA can be used as a method of computation and our main focus in this system is to introduce different methods of DNA computation, in this chapter we review the system in [24] briefly.

In this chapter we explain the existence methods of DNA computation with their advantages and disadvantages. In addition, more research examples of DNA computation are provided. Since DNA cryptography is a novel method in information security that is inspired by DNA computation and more research needs to be done in this area, we briefly review DNA cryptography.

3.2. Current System

In [24] an ABMS was developed to show the agent based modeling behavior of

DNA. The simulation model is divided into the following tasks:

• Modeling single stranded DNA

• Modeling the formation of double stranded DNA from single strands

• Modeling DNA annealing, two strands of DNA can stick together based on

Watson-Crick complementarity

• Modeling the separation of double stranded DNA into two single stranded DNA

structures.

24

The bases are modeled as mobile spherical agents with different colors. Single stranded DNA (ssDNA) is modeled as a strand of bases, each of the bases in the strand is bonded to adjacent bases by phosphodiester bonding. In DNA a phosphodiester bond is a linkage between 5’ carbon atom of one sugar molecule and 3’ carbon atom of the other one. Orientation of bases in a single strand in this model is the same, it runs either from

3! → 5! or 5′ → 3′. In reality double stranded DNA (dsDNA) is stacked up in a helical column.

The model starts with ssDNA and the number of bases can be different. The nucleotides in the anti-parallel strands are bound to the bases of the original strand based on Watson-Crick complementarity. DNA synthesizing simulation starts with the ssDNA.

DNA strand is surrounded by numbers of bases. When a free nucleotide approaches the ssDNA, the system checks if the free nucleotide is anti-parallel to the strand, after that the

Watson-Crick complementarity will be checked, i.e., the system will check if the free nucleotide is a Watson-Crick complement of the nucleotide it is going to be joined with.

If the condition is true, the free nucleotide sticks to the strand. However, sometimes mismatching occurs, when a non-complementary nucleotide comes into the vicinity of the strand and bonds to a nucleotide in the strand. Two types of mismatches are transition mismatch and trans-version mismatch [42]. When purine sticks to the wrong pyrimidine it is called transition mismatch and when two purines or two pyrimidines bond to each other it is called trans-version mismatch [42].

Phosphodiester bonds can occur when a non-complementary nucleotide approaches the strand. It bonds to the existing nucleotide with the same orientation. A phosphodiester

25 bond can cause the formation of a bubble, branches, etc., because there are no hydrogen bonds in this case.

In this system, the formation of dsDNA with phosphodiester-bonded mismatches is modeled, since mismatches and bubbles can form the transcription sites for dsDNA separation [13]. Healing length defines the size of the bubble for the particular mismatches, so the healing length needs to be known. Since the A-T base pairs are weaker than the G-C base pairs, in the current system the number of A-T base pairs and the mismatches are calculated based on the work of the Repti et al. [44] who use experiments and calculation to determine the healing length. In this model, based on the equation that is found in this system, the point of mismatch is recognized, since the hydrogen bond at the point of mismatch is weakly bonded and provides transcription sites for helicase to attack. Helicase can separate the dsDNA into single strands [24].

In this system DNA annealing, bonding two partially complementary strands, is also simulated. In this simulation the number of bases in the two strands of DNA is checked to see if the two strands of DNA have the same number of bases and they are partially complementary. If the condition is true then the two strands bond to each other.

3.3. Existing Model of DNA Computation

• Synthesizing: DNA synthesis is a simple process that can be done in a lab. In this

process by building up the nucleotide by nucleotide, the researchers can make

DNA strands. For instance the nucleotide is attached to a glass bead, the solution

of the next nucleotide in the sequence is added, and the nucleotides react and

make a chain. The process is repeated for the next nucleotide [26].

26

• Annealing: As described in chapter 2, annealing is the process of bonding two

strands of DNA together by cooling the solution. In vitro DNA hybridization is

known as annealing [26].

• Mixing: In this process the contents of two test tubes are mixed together into a third

one. Mixing can be done by rehydration, loss of water of the test tube, then the

fluids are combined together by pouring and pumping into a new tube [26].

• Polymerase Chain Reaction (PCR): PCR is an in vitro method to make a copy of a

DNA strand, PCR increases the number of DNA molecules in a solution. PCR

depends on DNA polymerase; DNA polymerase is an enzyme that can perform

different functions such as DNA replication. The replication reaction needs a

template which is a guiding DNA single strand, and a primer which is an

oligonucleotide and shorter than other oligonucleotides. PCR includes a series of

temperature cycles; each cycle contains three stages such as denaturation, cooling

and extension [26].

• Separation: for separating strands based on their length, gel electrophoresis is

required. The molecules are located at the top of a wet gel, after an electronic

field is applied, molecules move toward the bottom. Smaller molecules travel

faster through the gel. Molecules are distinguished based on their size [26].

• Extraction: affinity purification is used to extract of the strands of DNA that contain

a specific pattern as a substring [26].

• Cutting: a specific enzyme called restriction enzyme cuts DNA double strands at

particular sites. The restriction enzyme recognizes the particular site of DNA

known as a specific site. Double stranded DNA contains specific sites in the

27

sequences and will be cut by the restriction enzyme at that particular location

[26].

• Ligation: as is mentioned in 3.1, ligate is an enzyme that ligates or causes the ends

of two DNA strands to stick together. In other words, ligating is like pasting two

DNA strands with compatible sticky ends to one another [26].

• Substituting: this process is about alteration of PCR. That is the process of using a

primer that causes a change in the template. The change can be the use of a primer

that can be partially complementary to the template fragment [26].

• Marking single strands by hybridization: Two single strands with complementary

sequences attach together to make double-stranded DNA. Unmarking is the

reverse operation which is done by denaturing which is the separation of double-

stranded DNA [26].

• Destroying the marked strands: an enzyme called exonuclease is used to destroy

either double stranded or single stranded DNA. In addition, destruction may

happen by cutting all the marked strands with a restriction enzyme and removing

all the intact strands by gel electrophoresis [26].

• Detecting and reading: If there is at least one DNA strand in the tube, the result

would be “YES” otherwise “NO”. PCR can be used to amplify the result. To read

the solution the process called sequencing can be used [26].

3.4. Advantages of DNA Computing

• Parallelism: DNA strands are able to duplicate quickly in a short amount of time.

Duplicated strands can generate the environment to process the data in parallel.

28

• Light weight: DNA strands have an ability to hold a large amount of data in a small

space.

• Low power: The power that is needed for processing information is that to prevent

the strands of DNA from denaturing

• Algorithmically fast computing: The run time complexity of DNA algorithms is

less than classical algorithm [27].

3.5. Disadvantages of DNA Computing

• Time: the method of extracting DNA strands and generating hybridized DNA

strands in the lab takes a long time.

• Slow: although DNA computing is capable of parallelism, DNA computers work

more slowly on an individual problem than silicon computers [28].

• Unreliable: mismatching among nucleotides affects the reliability of DNA

computing. In addition there is no guarantee that the produced solution is always

the best solution [29].

• No generality: every algorithm requires specific DNA strands to represent it [28].

3.6. Methods of DNA Computing

In this chapter we explained DNA computation with its advantages and disadvantages. DNA computing can be used in different kindd of systems. It can be used as a method of computation and it can be used in nanotechnology. One of the reasons that researchers are interested in using DNA is its size, and the self-assembled structure of

29

DNA cause it to be of use in nanotechnology. We review different examples of DNA computing researches in this section.

3.6.1. Agent Oriented Method of DNA Computing

In [32] by using the programming language Easel, the authors present the DNA agent approach of DNA computing. They used agents to perform Adleman’s algorithm.

Easel is a language that can be used to describe, model, simulate, and visualize complex systems with dynamic attributes. In this system 500 DNA paths are generated. The numbers of vertexes (cities) that have been assigned are 4. Chains of DNA represent the paths of appropriate length. The paths that satisfy all the conditions of the algorithm are considered to be a solution of problem. This proposed system simulates, models and visualizes the travelling salesman problem by using animated tools like the Easel language.

3.6.2. DNA Computing Based on Sticker Based Model

Another method of DNA computation has been introduced in [33] which is called sticker model. In this model strands of DNA represent a memory strand with a length of

N and it is divided into k strands of length M, each of these strands represents a bit. If each strand of length M anneals to its complement, then it is considered as “on” otherwise it is considered as “off” (1 and 0).

Main operations on bits of the string include: combining, separation, set, and clearing. Two strings of a strand can be combined together and make a multi-set that includes the union of all the strings of both input sets. Sets of string can be separated

30 from each other and one can include all particular bits on and the other one can have strings with bit off.

If the sticker for a particular bit in a string anneals to its complement then the bit will be turned on. If the sticker is removed then we can say that bit is clear or it is turned off. In the physical implementation of this algorithm a set of strings is represented as a tube. For instance one can combine two test tubes to produce the strings. The goal of separation is to physically separate those complexes in a test tube that have a sticker annealed. Direct annealing of the sticker can set bits to “ON”. To clear the sticker and turn the bit “OFF” heating won’t work because other bits of the strand can become

“OFF” in addition to that particular bit, therefore weak regions have been designed.

Weak stickers can dissociate by heating to some intermediate temperature.

In [33] enzymes and PCR are used for molecular computation. It is shown that the formation and breaking of covalent bonds is not essential to DNA based computation.

3.7. DNA Cryptography

Cryptography is a very powerful field, which is used widely in information security. Cryptanalysis is used to defeat the cryptography, the goal of using cryptanalysis is to analyze and break the security system, which is secured by cryptography.

DNA cryptography is considered a new field of research which is inspired by DNA computation. DNA has been used in different computation methods. One of the reasons that researchers are willing to use DNA in computation and cryptography is its minuscule size. A gram of DNA consists of 1021 DNA bases which is equal to 108 terabytes of data.

Therefore, a few grams of DNA can hold almost all data that is stored in the world [43].

31

Some of the traditional methods of cryptographic systems are RSA, DES or NTRU, which are built using mathematical tools.

We describe the typical scenario for cryptography briefly:

1. The sender of the message sends an understandable message, which is called

plaintext to the receiver.

2. Encryption: the plaintext is converted to the form that is not understandable without

special knowledge. This unclear form of the message is called the cipher message

and the knowledge that is needed to read this unclear message is called the

encryption key.

3. Decryption: the cipher text needs to be converted to plaintext. With the knowledge

of the decryption key, the receiver of the message can decrypt the cipher text to

plaintext.

It should be mentioned that in DNA cryptography plaintext can be encoded as DNA strands, the alphabet is encoded as oligonucleotides of DNA. One of the most prominent tools of DNA cryptography is polymerase chain reaction (PCR), which is an amplification process of DNA. In this method the encryption key contains a PCR primer pair and public key, and the decryption key contains a complementary primer pair and the private key. Different researchers have implemented PCR techniques in DNA cryptography. DNA cryptography has been modeled in our lab, it will be added to our system in future.

32

4. BIOCOMPT: BIO-COMPUTING TUTORIAL

4.1. Overview

This chapter describes the structure of the system. This system is a tutorial that can be used by users such as engineers and scientists who are interested in bio-computing, especially DNA computation. Since, users of this system might not have a background in biology, information about DNA structure and behavior is also included.

4.2. System Setup

4.2.1. Hardware Configuration

The hardware configuration used is as follows:

• Processor: 2GHZ Intel Core i7

• Memory: 4GB 1333 MHZ DDR3

• Operating system: OSX 10.8, Windows 7

4.2.2. Software

The software used to model this system is as follows ;

• IDE: Eclipse version Helios

• Java SDK 6

• Java 3D version 1.5

• ABMS: MASON [35]

33

4.3. GUI Design of System

Since this system is written in Java, we can use the Java “Graphical User

Interface” (GUI) libraries. Two main packages that we used are java.awt and javax. swing.

• java.awt consists of the main super-classes for the GUI components in addition to

Color and Point;

• java.awt.event consists of the classes and interfaced for managing events from the

GUI component such as button clicks;

• javax.swing consists of the visible GUI components such as frames, panels, buttons,

text fields, and buttons.

4.4. Use Case Diagram of System

A use case diagram is shown in Figure 4.1.

Figure 4.1. Use case diagram for the bio-molecular system

34

4.5. Biocomputing System

In this section we want to introduce our system and give instructions to the user to learn how to use this system. As we explained earlier this system is a tutorial to introduce

DNA computing to a wider audience. The purpose of this system is to introduce different methods of DNA computing and to represent the structure of DNA in nature.

As has been shown in Figure 4.2, the system starts with a brief introduction. Users need to click on “Enter” to start exploring BioCompT.

Figure 4.2. Start of system [45]

35

The tutorial will be started by pressing “Enter” in Figure 4.2. In Figure 4.3 you can see the snapshot of system when the user starts to work. This system consists of 5 parts:

DNA Biology, ABMS of DNA, DNA Computation, DNA Cryptography and Bio-

Assessment. It should be mentioned that this system is able to grow and in future it can be extended.

Figure 4.3. Overview of system [46]

Users are able to click on each of the buttons in Figure 4.3. We recommend that users who don’t have any background in biology start working with this system by

36 clicking on “DNA Biology”. The snapshot has been shown in Figure 4.4. Users can go through the materials in more detail by clicking on any of the buttons in this figure.

In order to learn more details about the biology of DNA we give the option to the user for choosing any specific behavior of DNA.

Figure 4.4. Inside DNA biology [42],[47],[40],[48],[49]

In this part of the system, users learn about general behavior of DNA. DNA structure, the nitrogen bases, the bonding structure, and Watson-Crick complementarity 37 of DNA are described. In addition, the user will learn about polymerase chain reaction

(PCR). Recall from chapter 2 that PCR amplifies or copies the DNA molecule. Also, users of this system will learn about DNA replication, the mechanism of DNA replication and DNA repairs in more detail.

Bio-molecular behavior can be simulated using ABMS. In our system ABMS is used to simulate DNA behavior. This is accomplished through the MASON Multi Agent

Simulation Environment [7]. In previous work in our lab such behaviors of DNA as DNA synthesis, DNA annealing, formation of branch DNA, and DNA melting are simulated in

MASON. We used the “Jmf” library in our system to upload the movies of DNA simulations developed in [24].

Figure 4.5 shows the system when ABMS of DNA is chosen by the user. The goal in this part of system is to show the users the behavior of DNA structure instead of portraying this behavior in a wet lab. DNA operations that the user can see in this system are: DNA synthesis, DNA annealing, formation of branch DNA, and DNA melting.

Figure 4.5 shows the snapshot of the system.

38

Figure 4.5. Snapshot of agent based modeling of bio-molecular system

DNA synthesis is the primary operation for the DNA molecule. In most of the research on DNA such as DNA computation, cryptography, etc., whether the experience is in a wet lab or not, the experiment starts with DNA synthesis. The result of simulation of DNA synthesis based on ABMS is shown in Figure 4.6. Here free nucleotides are shown as mobile spherical agents and the DNA strand is a sequence of mobile spherical agents. Each type of nucleotide is represented by a specific color. A is represented by red, T by green, C by blue and G by magenta. A strand of DNA is surrounded by free nucleotides as shown in Figure 4.6. When a free nucleotide comes into the vicinity of the

39 single stranded DNA, it will, with a certain probability, pair up with one of the bases based on Watson-Crick complementarity. It should be mentioned that in nature sometimes a mismatch could occur, i.e., two free nucleotides that are not Watson-Crick complementary can stick together.

Figure 4.6. DNA synthesizing [24]

DNA annealing is another operation on DNA molecules. The simulation of this is shown in Figure 4.7, where two strands of DNA can pair up partially, if parts of sequences of the strands are Watson-Crick complementary. One of the most important

40 reasons for implementation of partial pairing of DNA strands is to support the implementation of complex algorithms such as the original algorithm of Adelman [41].

Figure 4.7. DNA annealing [24]

41

DNA melting allows you to see the separation of double stranded DNA. The simulation is shown in Figure 4.8. Yellow agents represent helicase molecules, they are modeled as mobile spherical agents. The gray sphere in Figure 4.8 shows a mismatch, this mismatch makes a weaker hydrogen bond of the base pair. This typically occurs in a region with a length that is defined as the healing length [44]. After the helicase molecules attach to the dsDNA, the two strands of the dsDNA will be separated into single strands.

42

Figure 4.8. DNA melting [24]

43

There is a possibility of the formation of a phosphodiester bond during the DNA synthesis process. This causes a branch. The formation of branch DNA is shown in

Figure 4.9.

Phosphodiester bonds happen when non-complementary nucleotides come into the vicinity of a strand and stick to the nucleotides of the DNA strand. In this case there is no hydrogen bond between the bases and the phosphodiester bond occurs. Phosphodiester bonds are able to form large bubbles or branches. The phosphodiester bonds are shown in gray. The maximum length of the branch in this experiment is assumed to be six. As the number of nucleotides increases, there is a greater tendency for nucleotides to stick together and form a phosphodiester bond.

44

Figure 4.9. Branch DNA [24]

In computing with DNA, molecular biology, and DNA are used instead of a silicon based computer technology. In chapter 3 we discussed DNA 45 computation and reviewed some of the research in this area. In our system we introduce

DNA computation and review some of the research as well. This part of system can be extended in future. In Figure 4.10 the snapshot of the system has been shown.

46

Figure 4.10. Snapshot of the system when DNA computing is selected [13],[41]

47

Recent studies have focused on DNA as a method of computation that threatens encryption schemes. One of the appealing features of DNA is its minuscule size; a gram of DNA contains 1021 DNA bases, which is equal to almost 108 terabytes. DNA cryptography is a new branch of cryptography that uses DNA as a computational carrier.

We discussed DNA cryptography briefly in chapter 3. In our system we introduce DNA cryptography and review some available methods. This part of the system can be extended as well by adding new methods for using DNA in cryptography as they are published in the literature. When the DNA cryptography button is selected, the page shown in Figure 4.11 will open.

Figure 4.11. DNA cryptography [43]

48

It has been mentioned that people who use this system are from different backgrounds--students, scientists, and engineers. Thus we have provided a small assessment test for users to evaluate their knowledge after using the system. This part can be extended in future work by adding a timer for each question or evaluating students’ progress as they study the system. Figure 4.12 shows some example questions from the evaluation system. After completing the test, users can see their scores and they can repeat the test if desired.

Figure 4.12. Bio-assessment test [25],[19],[52]

49

5. CONCLUSIONS AND FUTURE WORK

In this project we designed an informational system for users with various academic backgrounds who are interested in bio-molecular computing methods such as

DNA computing.

Since some users need may not have a background in biology, we provide a section for them to learn the basic biology of DNA and some DNA operations that can be used in computation.

The idea of DNA computation started with Adelman’s experience in 1994 when he solved HPP by using strands of DNA. After that many researchers have used DNA in computation, including Winfree who used DNA in formal language theory. DNA behavior can be simulated using ABMS, and in this system we include ABMS examples of DNA synthesis, replication, and annealing. DNA cryptography is another area of research that benefits from DNA computation and more work needs to be done in this area in future. Here we describe some of the fundamental concepts of DNA cryptography and some work has been done in this area in our research lab that can be added to our system in future.

In this system we provide an assessment test for students who would like to evaluate their knowledge in biology. This part of the system can be improved in future by adding a timer for each question and giving a small evaluation report to users to show their strengths and weaknesses.

This system can be extended in future as we add new and interesting research ideas and materials to it.

50

REFERENCES

1. H. Kitano, “System biology: brief overview,” Science 205, March 2002, pp. 1662-

1664. Available at www.sciencemag.org.

2. http://www.System-Biology.org/ Retrieved on January 7, 2012.

3. C.M. Macal and M.J. North, “Tutorial on agent-based modeling and simulation,”

Journal of Simulation 4, 2010, pp. 151-162.

4. C.M. Macal and M.J. North, “Tutorial on agent-based modeling and simulation part 2: how to model with agents,” Proceedings of the Winter Simulation Conference 2006, pp.73-83.

5. V. Chan, W. Kin, and Y. Son, “Agent-based simulation tutorial: simulation of emergent behavior and differences between agent-based simulation and discrete-event simulation,” Proceedings of the Winter Simulation Conference 2010, pp.135-150.

6. E. Bonabeau , “Agent-based modeling: methods and techniques for simulating human systems,” Proceedings of the National Academy of Sciences 99, 2002, pp.7280-7287.

7. G.C. Balan, C. Cioffi-Revilla, S. Luke, L. Panait, and S. Paus, “MASON: A Java

Multi-Agent Simulation Library,” https://www.cs.gmu.edu/~eclab/ Retrieved on March

7, 2012.

8. N.C. Seeman, “DNA in a material world,” Nature 421, Jan. 2003, pp.427-431; doi:

10.1038, nature 01406.

9. http://www.sparknotes.com/biology/molecular/structureofnucleicacids/section2.rhtml/

(DNA bases picture), Retrieved on February 4, 2012.

10. http://www.dnareplication.info/dnadoublehelix.php/ Retrieved on February 6, 2012.

51

11. http://chelseylewisbioproject.blogspot.com/p/double-helix.html/ Retrieved on

February 6, 2012.

12. A. Gibbons, M. Amos, and D. Hodgson, “DNA Computing,” Current Opinion in

Biotechnology 8, 1997, pp.103-106.

13. E. Winfree, X. Yang, and N. Seeman, “Universal computation via self-assembly

DNA,” DNA Based Computers II, DIMACS Series in Discrete Mathematics and

Theoretical Computer Science 44, 1996, pp.191-213.

14. UML Tutorial, http://www.sparxsystems.com/uml-tutorial.html/ Retrieved on January

18, 2012.

15. http://www-01.ibm.com/software/rational/uml/ Retrieved on February 7, 2012.

16. R. Agrawal and A. Sinha,” Object-Oriented modeling with UML: a study of developer’s perceptions,” Communications of the ACM 46, (9), Sep 2005, pp.248-256.

17. http://www.cbs.dtu.dk/staff/dave/genomics_course/2001_DNAdenature.pdf/

Retrieved on July 18, 2012.

18. http://en.wikipedia.org/wiki/DNA_ligase / Retrieved on July 20, 2012.

19.http://highered.mcgrawhill.com/sites/0073031208/student_view0/chapter14/multiple_ choice.html/ Retrieved on October 12, 2012.

20. http://www.enotes.com/dna-hybridization-reference/dna-hybridization/ Retrieved on

July 18, 2012.

21. Z. Hongyan and L. Xiyu, “A general object oriented description for DNA computing technique,” International Conference on Information Technology and Computer Science

1, 2009, pp.3-6.

52

22. http://www.accessexcellence.org/RC/AB/WYW/wkbooks/SFTS/activity6.php/

Retrieved on September 27,2012.

23. http://biology.kenyon.edu/courses/biol09/plasmid/plasmidtut7.htm/ Retrieved on

September 28, 2012.

24. M. Ahmed, Using Agent-based Modeling and Simulation to Study Structural

Behavior of DNA, MS Thesis, University of Cincinnati, 2011.

25. http://www.knowcrazy.com/2011/10/dna-computing.html/ Retrieved on August 18,

2012.

26. L. Kari, “DNA computing: the arrival of biological mathematics,” The Mathematical

Intelligencer 19 (2), 1997, pp.7-22.

27. M. Singh, P. Sandhu, and M. Kahlon, “Faster FPGA routing solution using DNA computing,”, Proceedings WASET International Conference 36, 2007, pp.238-242.

28. K. Hameed, “DNA computation based approach for enhanced computing power,” Int.

J. Emerg. Sci. 1(1), March 2011, pp. 31-37.

29. W. Mukherjee, D. Ganguly, S. Bhattacharya, and P. Mukherjee, “A cognitive study on DNA based computation,” International Conference on Recent Trends in Engineering

1 (2), May 2009, pp. 51-56.

30. N. Seeman, “DNA nanotechnology: novel DNA constructions,” Annual Review of

BioPhysics and Biomolecular Structure 27, June 1998, pp. 225-248.

31. N. Seema, H. Wang, B. Liu, J. Qi, X. Li, X. Yang, F. Liu, W. Sun, Z. Shen, R. Sha,

C. Mao, Y. Wang, S. Zhang, T. Fu, S. Du, J. Muller, Y. Zhang, and J. Chen, “The perils of polynucleotides: the experimental gap between the design and assembly of unusual

DNA structures,” Proceedings of the Second Annual Meeting on DNA Based Computers,

53

DIMACS: Series in Discrete Mathematics and Theoretical Computer Science, American

Mathematical Society, Providence, RI, 1996, pp.191-205.

32. G. Steele and V. Stojkovic, “Agent-oriented approach to DNA computing,”

Proceedings of IEEE Computational System Bioinformatics Conference 2004, pp.546-

551.

33. E. Winfree, S. Roweis, R. Burgoyne, M. Goodman, and L. Adleman, “A sticker based model for DNA computing,” Second DIMACS Workshop on DNA Based Computers,

Princeton, 1996, pp.1-27.

34. R. Lipton. “DNA solution of hard computational problems,” Science, New Series

268, No. 5210, April 1995, pp.542-545.

35. G.C. Ballan, C. Cioffi-Revilla, S. Luke, L. Panait, and S. Paus, “MASON: A Java

Multi-Agent Simulation Library,” https://www.cs.gmu.edu/~eclab/ Retrieved on

November 30, 2012.

36. H. Parunak, R. Savit, and R. Riolo, Agent Based Modeling vs. Equation Based

Modeling: A Case Study and User’s Guide, Springer Verlag, Berlin, Heidelberg, 1998, pp.10-25.

37. D. Wishart, R. Yang, D. Arndt, P. Tang, and J. Cruz, “Dynamic cellular automata: an alternative approach to cellular simulation,” In Silico Biology 5, 2004, pp. 139-161.

38. M. Hallet, “The unpredictability of cellular behavior: trivial or of fundamental importance to cell biology? ” Perspectives in Biology and Medicine 33,1989, pp.110-

119.

54

39. M. Peleg, D. Rubin, and R. Altman, “Using Petri net tools to study properties and dynamics of biological systems,” Journal American Medical Informatics Association 12

(2), April 2005, pp.181-199.

40. D. Sadava, D. Hillis, H. Heller, and M. Barenbaun, Life: The Science of Biology,

W.H. Freeman & Company, New York, Ninth Edition, 2010.

41. L Adleman, “Computing with DNA: molecular computation of solutions to combinatorial problems,” Science 266, 1994, pp.1021-1024. 42. G. Cooper and R. Hausman, The Cell: a Molecular Approach, Fourth Edition, ASM

Press, Washington, DC, 2007.

43. B. Anam K. Sakib, M. Hossain, and K. Dahal, “Review on the advancement of DNA cryptography,” arXiv: 1010.0186v1, October 2001.

44. Z. Rapti, A. Smerzi, K. Rasmussen, A. Bishop, C. Choi, and A. Usheva, “Healing length and bubble formation in DNA,” Physics Review E, 73(5 Part 1), 2006, 051902.

45.http://www.quantumday.com/2012/05/changes-to-three-sections-of-dna-sox4.html/

Retrieved on September 30, 2012.

46.http://sachinsharmacusat.blogspot.com/2011/04/dna-computers-most-wonderful- technology.html/ Retrieved on September 28, 2012.

47. http://student.ccbcmd.edu/~gkaiser/biotutorials/dna/fg4.html/ Retrieved on August

25, 2012.

48. http://academic.brooklyn.cuny.edu/biology/bio4fv/page/molecular%20biology/dna- structure.html/ Retrieved on September 28, 2012.

49. http://www.elmhurst.edu/~chm/vchembook/582dnadoublehelix.html/ Retrieved on

August 18, 2012.

55

50.http://www.pc.maricopa.edu/Biology/rcotter/BIO%20205/LessonBuilders/Chapter%2

09%20LB/Ch9b_print.html/ Retrieved on August 15, 2012.

51. http://dna.microbiologyguide.com/526-biological-replication-dna-splitting/ Retrieved on August 18, 2012.

53. D. Sadava, D. Hillis, H.C. Heller, and M. Berenbaum, Study Guide for Life: The

Science of Biology, W.H. Freeman & Company, New York, Ninth Edition, 2010.

56