* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Branching in DNA Computation
Comparative genomic hybridization wikipedia , lookup
Point mutation wikipedia , lookup
Genomic library wikipedia , lookup
Microevolution wikipedia , lookup
No-SCAR (Scarless Cas9 Assisted Recombineering) Genome Editing wikipedia , lookup
Cancer epigenetics wikipedia , lookup
DNA profiling wikipedia , lookup
SNP genotyping wikipedia , lookup
Holliday junction wikipedia , lookup
DNA polymerase wikipedia , lookup
Vectors in gene therapy wikipedia , lookup
Bisulfite sequencing wikipedia , lookup
DNA damage theory of aging wikipedia , lookup
Primary transcript wikipedia , lookup
DNA vaccination wikipedia , lookup
Artificial gene synthesis wikipedia , lookup
Genealogical DNA test wikipedia , lookup
Non-coding DNA wikipedia , lookup
Nucleic acid analogue wikipedia , lookup
Epigenomics wikipedia , lookup
Molecular cloning wikipedia , lookup
Gel electrophoresis of nucleic acids wikipedia , lookup
Cell-free fetal DNA wikipedia , lookup
United Kingdom National DNA Database wikipedia , lookup
History of genetic engineering wikipedia , lookup
Therapeutic gene modulation wikipedia , lookup
DNA nanotechnology wikipedia , lookup
Extrachromosomal DNA wikipedia , lookup
Cre-Lox recombination wikipedia , lookup
DNA supercoil wikipedia , lookup
Nucleic acid double helix wikipedia , lookup
Computing Beyond Silicon
Valley Summer School at
Caltech
Science undergraduate students were brought together to
interact and understand the connections between
computer science and other disciplines
Gestalt principle
Physics of Computation, Molecular Computing,
Biomolecular Computing, and Quantum Computing
A month in Pasadena
Branching in Biological
Models of Computation
Blair Andres-Beck, Vera Bereg, Stephanie Lee,
Mike Lindmark, Wojciech Makowiecki
Branching in DNA Computation
Chose several models of DNA
computation (in particular the sticker
model and DNA solution to small SAT
problems)
Examined the implementation of if…else
statements and looping
Branching allows easier mapping of
conventional algorithms
Design Criteria
Any change must preserve the existing
functionality of the model
Branching
– Operation selection based on current data
and instruction
Looping
– Further instructions based on test condition
– Nested loops; that is, looping that doesn’t rely
on a single marker
The Sticker Model
Presented in “A Sticker Based Model for DNA
Computation” (1996)
Two types of ssDNA molecules
– memory strand
– complimentary stickers
Four operations allow universal computation:
– set, clear, separate and combine
Parallel processing/computation
Robotic assistance needed
Bit Representation
Set and Clear
Combine and Separate
Simple branching and looping in
the Sticker Model
Idea: use current mechanical
operations to do branching
(if else) and looping
Branching with existing operations
Perform a separate operation based on
evaluation of branch condition
Act on each vial independently
– “If” statement carried out on true, “else” on
false
Recombine vials after “if” statement
Note: a vial is a small beaker
Branching and Looping procedures
Example of usage: Minimal Set Cover problem
Looping with existing operations
Test for loop condition
– Fluorescent markers
Can be detected by the robotic assistant
Can have more than one type, allowing nested looping
Choose next instruction based on presence or
absence of fluorescence
Problems
– Slow (as the separate operation is difficult and slow)
– Reliance on intervention outside the beaker (can’t mix, shake
and get the answer)
– Experimental error (eg.: some florescence already present)
Branching through DNA
Transcriptional Logic
Idea: use an OR gate for branching 
DNA Transcriptional Logic
How it works
–
–
–
–
Transcription factor binds to the promoter region
Activated by enzyme RNA Polymerase [RNAP]
Unwinds DNA, makes RNA until terminator is reached
input and output are programmable!
Implementation of Branching
The OR gate allows the if-else statement to end and the program to continue
Definition of Branching
Branching allows for conditional if-else
statements
{
if (condition)
{output 1};
else
{output 2};
}
continuation …
Properties of the Branching
Pros
– Programmable input
– Easy to track progress (by taking a sample and
approximating the concentrations of outputs)
– Does not require outside intervention
Cons
– Does not allow parallelism
– Inefficient and fairly slow (although speed can be
controlled)
– Requires large number of promoter -transcription
factor pairs
“Smart” drug or DNA automata
combined with Sticker Model
Idea: use “if else” statements from
“Smart” drug model (with stickers
instead of drugs)
Automata
Automata
– Machine that accepts strings over specific alphabet
that are in its language
– Computation terminates on processing last string
symbol
– Accepts input if terminates in accepting state
“Smart” Drug
Basic Idea: transport diagnosis and drug
delivery (suppression) stages into the cell
– No robotic intervention what-so-ever
Basic “if else” statements, thus can do
branching! 
Automata with:
– Hardware (restriction nuclease, ligase, FolkI)
– Software and input (dsDNA molecules and dsDNA
with a hairpin structure at end)
– In vitro
“Smart” Drug
“Smart” drug and Sticker Model
Sticker model:
– Memory strand with on/off regions for bits
Drug model:
– Coded instructions plus coded input with a sticker as
hairpin (software and input)
– Reusable “rules” (hardware)
– If (rule=true)  release sticker
– Can do anti-stickers to clear off bits as well 
Thus SISD model
By varying code and subset of “rules” can
change the outcome of the computation
Pros and Cons
Less mechanical operations used
– Separation procedure might not be needed
– Could possibly get rid of them all together?
Eliminates one of the positive sides of sticker
model (no enzymes), but our enzymes are
reusable (hardware)
Have SISD, can do MIMD?
How to ensure that each code is related to its
specific data molecule?
– Do we need to ensure this at all? Randomize?
Do the environments fit?
Branching in the Sticker Model
using DNA Instructions
The Idea: Store the program with the
data, run all the programs
independently.
Basic Ideas
Encode instructions into DNA
Create a DNA program counter
Each DNA computes cycle:
– Separate strands based on next instruction
– Perform operation
– Increment PC
Changes to the Sticker Model
Instruction strand = head + instruction + …
+ data connector
Instruction = instr code + operand code
Changes to the Sticker Model
Add connector to data strand
Addition of PC strands
Changes to the Sticker Model
Introduction of halt
No explicit combine or separate operations
Use of operation selectors
Adding Looping
Looping by restarting the PC
Loop operation
– Clears off PC using complement PC strands
if (stage1) {
…
if (NOT done) {
loop;
}
…
stage1 = false;
}
Adding Branching
Add IF instruction code
Use End-If IF operation
Operation selectors with solid-bound
stickers
Trapped strands enter branching cycle
– Addition of excess PC and Step strands
(excluding PC End-If IF strands)
– Flow by End-If IF selectors
– Return trapped strands
The Strands
Advantages
Reusability of data, pc, start, step, and
selector strands
Simple programmability
– Imagine building strand from instruction
pieces
Ability to run more than one program
concurrently
– Thousands of problems at the same time
Disadvantages
Large error rate vs. long cycle time
– Must perform several separations per cycle
No ability to do error correction
Large number of unique sequences
needed
Exploring Branching in SAT
problems
Idea: use ssDNA as clauses for the
SAT problem (Adelman et al)
Exploring Branching in SAT
problems
Works in parallel checking all the solutions at once
If the solution is not valid (the variables in it contradict
each other and thus the clause can not be resolved) then
folds on itself
An if statement acts on each clause at the same time!
Disadvantages:
– high error rates (esp. with increase of variables)
– can not be done past 20 variables
Conclusion and future
goals/work
Have tried to list and describe different ways that
branching in DNA computing can be thought of
and realized as.
There are limitations and barriers that each one
of the described here models has, however, they
all have their advantages, benefits and
purposes.
Moving beyond convertional computers and
applying Gestalte principle whenever possible
Have fun.
References
.Adleman, Leonard. "Molecular computation of solutions to combinatorial problems." Science. 226
(1994): 1021--1024.
.Adelman, Leonard, et al. “Solutions of 20-Variable 3-SAT Problem on a DNA Computer.” Science.
296(2002): 499--502.
.Benenson, Yaakov, et al. “An autonomous molecular computer for logical control of gene expression.”
Nature. 429(2004): 423—428.
.Benenson, Yaakov, et al. “Programmable and autonomous computing machine made of
biomolecules.” Nature. 414(2001): 430—434.
.Campbell, Neil A., Jane B. Reece, and Lawrence G. Mitchell. Biology, 5th edition. Menlo Park:
Benjamin Cummings, 1999.
.Condon, Anne. “Automata make antisense.” Nature. News and Views 2004, 429.6990(2004): 351—
352.
.Karp, R, et al. “Error-resilient DNA computation”. Random Structure Algorithms. 15(1999): 450-466.
.Lauria, Mario, Kaustubh Bhalerao, Muthu M. Pugalanthiran, and Bo Yuan. "Building blocks of a
biochemical CPU based on DNA transcription logic." 3rd Workshop on Non-Silicon Computation (NSC3), Munich, June 2004.
.Lipton, C. et al. “DNA Based Computers II” DIMACS. 44(1999): 163—170.
.Lipton, R. “Using DNA to Solve NP-Complete Problems.” Science. 268(1995): 542--545.
.Liu, Q, et al. “DNA computing on surfaces.” Nature. 403(2000): 175.
.Lloyd et al. “DNA computing on a chip.” Nature. 403(2000): 143--144.
.Roweis, Sam, et al. “A Sticker Model for DNA Computation.” Journal of Computational Biology 5.4
(1998): 615--629
.Tan, W, et al. “Molecular beacons for DNA biosensors with micrometer to submicrometer dimensions.”
Analitical Biochem. 283.1(2000):56--63.