Branching in Biological Models of Computation Blair Andres-Beck, Vera Bereg, Stephanie Lee, Mike...

Post on 17-Jan-2016

213 views 0 download

Tags:

Transcript of Branching in Biological Models of Computation Blair Andres-Beck, Vera Bereg, Stephanie Lee, Mike...

Branching in Biological Branching in Biological Models of ComputationModels of Computation

Blair Andres-Beck, Vera Bereg, Stephanie Lee,Blair Andres-Beck, Vera Bereg, Stephanie Lee, Mike Lindmark, Wojciech MakowieckiMike Lindmark, Wojciech Makowiecki

Branching in DNA ComputationBranching in DNA Computation

We chose several models of DNA We chose several models of DNA computation and examined the computation and examined the implementation of if…else statements and implementation of if…else statements and loopinglooping

Allow easier mapping of conventional Allow easier mapping of conventional algorithmsalgorithms

Design CriteriaDesign Criteria

Any change must preserve the existing Any change must preserve the existing functionality of the modelfunctionality of the modelBranchingBranching– Operation selection based on current data Operation selection based on current data

and instructionand instruction

LoopingLooping– Further instructions based on test conditionFurther instructions based on test condition– Nested loops; that is, looping that doesn’t rely Nested loops; that is, looping that doesn’t rely

on a single markeron a single marker

The Sticker ModelThe Sticker Model

Presented in “Presented in “A Sticker Based Model for DNA Computation” (1996) (1996)

Two types of single stranded DNA Two types of single stranded DNA moleculesmolecules– memory strandmemory strand– complimentary stickerscomplimentary stickers

Four operations allow universal Four operations allow universal computation computation – set, clear, separate and combineset, clear, separate and combine

Bit RepresentationBit Representation

Set and ClearSet and Clear

Combine and SeparateCombine and Separate

Simple branching and looping in Simple branching and looping in the Sticker Modelthe Sticker Model

Idea: use current mechanical Idea: use current mechanical operations to do branching operations to do branching (if else) and looping(if else) and looping

Branching with existing operationsBranching with existing operations

Perform a separate based on branch Perform a separate based on branch conditioncondition

Act on each vial independentlyAct on each vial independently– ““If” statement carried out on true, “else” on If” statement carried out on true, “else” on

falsefalse

Recombine vials after “if” statementRecombine vials after “if” statement

Branching and Looping proceduresBranching and Looping procedures

Looping with existing operationsLooping with existing operations

Test for loop conditionTest for loop condition– Fluorescent markersFluorescent markers

Can be detected by the robotic assistantCan be detected by the robotic assistant

Can have more than one type, allowing nested loopingCan have more than one type, allowing nested looping

Choose next instruction based on presence or Choose next instruction based on presence or absence of fluorescenceabsence of fluorescence

ProblemsProblems– SlowSlow– Reliance on intervention outside the modelReliance on intervention outside the model

Implementation of Branching in Implementation of Branching in DNA Transcriptional LogicDNA Transcriptional Logic

Idea: use an OR gate for branching Idea: use an OR gate for branching

DNA Transcriptional LogicDNA Transcriptional Logic

How it worksHow it works– Transcription factor binds to the promoter regionTranscription factor binds to the promoter region– Activates the enzyme RNA Polymerase [RNAP]Activates the enzyme RNA Polymerase [RNAP]– Unzips DNA and produces programmable outputUnzips DNA and produces programmable output

Implementation of BranchingImplementation of Branching

The OR gate allows the if-else statement to end and the program to continueThe OR gate allows the if-else statement to end and the program to continue

Definition of BranchingDefinition of Branching

Branching allows for conditional if-else Branching allows for conditional if-else statementsstatements{{if (condition)if (condition)

{output 1};{output 1};elseelse

{output 2};{output 2};}}continuation …continuation …

Properties of the BranchingProperties of the Branching

ProsPros– Easy to track progressEasy to track progress– Does not require outside interventionDoes not require outside intervention

ConsCons– Does not allow parallelismDoes not allow parallelism– Inefficient and fairly slowInefficient and fairly slow– Requires large number of promoter -transcription Requires large number of promoter -transcription

factor pairsfactor pairs

““Smart” drug or DNA automata Smart” drug or DNA automata combined with Sticker Modelcombined with Sticker Model

Idea: use “if else” statements from “Smart” drug model (with stickers instead of drugs)

AutomataAutomata

AutomataAutomata– Machine that accepts strings over specific alphabet Machine that accepts strings over specific alphabet

that are in its languagethat are in its language– Computation terminates on processing last string Computation terminates on processing last string

symbolsymbol– Accepts input if terminates in accepting stateAccepts input if terminates in accepting state

““Smart” DrugSmart” DrugAutomata with:Automata with:– Hardware (restriction nuclease, ligase)Hardware (restriction nuclease, ligase)– Software (dsDNA with a hairpin structure at Software (dsDNA with a hairpin structure at

end)end)– In vitroIn vitro

““Smart” DrugSmart” Drug

Basic Idea: transport diagnosis and drug Basic Idea: transport diagnosis and drug delivery (suppression) stages into the celldelivery (suppression) stages into the cell

No robotic intervention what-so-everNo robotic intervention what-so-ever

Basic “if else” statements, thus can do Basic “if else” statements, thus can do branching! branching!

““Smart” DrugSmart” Drug

““Smart” drug and Sticker ModelSmart” drug and Sticker Model

Sticker model:Sticker model:– Memory strand with on/off regions for bitsMemory strand with on/off regions for bits

Drug model:Drug model:– Code with a sticker as hairpin (software)Code with a sticker as hairpin (software)– Reusable “rules” (hardware)Reusable “rules” (hardware)– If (rule=true) If (rule=true) release sticker release sticker – Can do anti-stickers to clear off bits as well Can do anti-stickers to clear off bits as well

Thus SISD modelThus SISD modelBy varying code and subset of “rules” can By varying code and subset of “rules” can change the outcome of the computationchange the outcome of the computation

Pros and Cons Pros and Cons

Less mechanical operations usedLess mechanical operations used– Separation procedure might not be neededSeparation procedure might not be needed– Could possibly get rid of them all together? Could possibly get rid of them all together?

Eliminates one of the positive sides of Eliminates one of the positive sides of sticker model (no enzymes), but our sticker model (no enzymes), but our enzymes are reusable (hardware)enzymes are reusable (hardware)Have SISD, can do MIMD?Have SISD, can do MIMD?How to ensure that each code is related to How to ensure that each code is related to its specific data molecule?its specific data molecule?

Branching in the Sticker Model Branching in the Sticker Model using DNA Instructionsusing DNA Instructions

The Idea: Store the program with the The Idea: Store the program with the data, run all the programs data, run all the programs

independently.independently.

Basic IdeasBasic Ideas

Encode instructions into DNAEncode instructions into DNA

Create a DNA program counterCreate a DNA program counter

Each DNA computes cycle:Each DNA computes cycle:– Separate strands based on next instructionSeparate strands based on next instruction– Perform operationPerform operation– Increment PCIncrement PC

Changes to the Sticker ModelChanges to the Sticker Model

Instruction strand = head + instruction + … Instruction strand = head + instruction + … + data connector+ data connector

Instruction = instr code + operand codeInstruction = instr code + operand code

Changes to the Sticker ModelChanges to the Sticker Model

Add connector to data strandAdd connector to data strand

Addition of PC strandsAddition of PC strands

Changes to the Sticker ModelChanges to the Sticker Model

Introduction of haltIntroduction of halt

No explicit combine or separate operationsNo explicit combine or separate operations

Use of operation selectorsUse of operation selectors

Adding LoopingAdding Looping

Looping by restarting the PCLooping by restarting the PC

Loop operationLoop operation– Clears off PC using complement PC strandsClears off PC using complement PC strands

if (stage1) {if (stage1) {

……

if (NOT done) {if (NOT done) {

loop;loop;

}}

……

stage1 = false;stage1 = false;

}}

Adding BranchingAdding Branching

Add IF instruction code Add IF instruction code

Use End-If IF operationUse End-If IF operation

Operation selectors with solid-bound Operation selectors with solid-bound stickersstickers

Trapped strands enter branching cycleTrapped strands enter branching cycle– Addition of excess PC and Step strands Addition of excess PC and Step strands

(excluding PC End-If IF strands)(excluding PC End-If IF strands)– Flow by End-If IF selectorsFlow by End-If IF selectors– Return trapped strandsReturn trapped strands

The StrandsThe Strands

AdvantagesAdvantages

Reusability of data, pc, start, step, and Reusability of data, pc, start, step, and selector strandsselector strands

Simple programmabilitySimple programmability– Imagine building strand from instruction Imagine building strand from instruction

piecespieces

Ability to run more than one program Ability to run more than one program concurrentlyconcurrently– Thousands of problems at the same timeThousands of problems at the same time

DisadvantagesDisadvantages

Large error rate vs. long cycle timeLarge error rate vs. long cycle time– Must perform several separations per cycleMust perform several separations per cycle

No ability to do error correctionNo ability to do error correction

Large number of unique sequences Large number of unique sequences neededneeded

ReferencesReferencesA Sticker Based Architecture for DNA Computation. Roweis, Sam, et. al. 7/96. 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 (NSC-3), Munich, June 2004.Molecular Beacons: A Novel DNA Probe for Nucleic Acid and Protein Studies. W. Tan et al.Molecular beacons attached to glass beads fluoresce upon hybridization to target DNA. L.Brown et al.Automata Make Antisense. Condon, Anne. Nature, vol 429, p351.Programmable and Autonomous Computing Machine Made of Biomolecules. Y. Benenson, T. Paz-Elizur, R. Adar, E. Keinan, Z. Livneh, E. Shapiro. Nature, vol. 414, p430.An Autonomous Molecular Computer for Logical Control of Gene Expression. Y. Benenson, B. Gil, U. Ben-Dor, R. Adar, E. Shapiro. Nature, vol.429, p432.

The StrandsThe Strands

Execution Cycle RevisitedExecution Cycle Revisited

Initial SetupInitial Setup– Random input bits setRandom input bits set– Add instruction strands, start strandsAdd instruction strands, start strands

Execution CycleExecution Cycle– Flow strands by operation selector chambersFlow strands by operation selector chambers– Seal chambers, perform operationSeal chambers, perform operation– Collect, add PC strandsCollect, add PC strands– Wash PC strands, add step strandsWash PC strands, add step strands

Adding BranchingAdding Branching

Add IF instruction code where operand is Add IF instruction code where operand is the condition bitthe condition bit

Use End-If IF operationUse End-If IF operation

Operation selectors with solid-bound Operation selectors with solid-bound stickersstickers

Proper length to require both connections Proper length to require both connections to stickto stick

Adding BranchingAdding Branching

Trapped strands enter branching cycleTrapped strands enter branching cycle– Addition of excess PC and Step strands Addition of excess PC and Step strands

(excluding PC End-If IF strands)(excluding PC End-If IF strands)– Flow by End-If IF selectorsFlow by End-If IF selectors– Return trapped strandsReturn trapped strands

Simple to get OR and NOT conditionsSimple to get OR and NOT conditions– ie. OR = clear c; set n; if a; set c; end-if if n; if ie. OR = clear c; set n; if a; set c; end-if if n; if

b; set c; end-if if n;b; set c; end-if if n;

Fluorescent markersFluorescent markers

FQ

Q

F

QF

Heat, pH, Denature reagents

Target

Hybrid