computing beyond silicon valley summer school at caltech science undergraduate students were brought...

38
Computing Beyond Silicon Computing Beyond Silicon Valley Summer School at Valley Summer School at Caltech 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

Upload: silvia-williams

Post on 30-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Computing Beyond Silicon Computing Beyond Silicon Valley Summer School at Valley Summer School at

CaltechCaltechScience 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 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

Chose several models of DNA Chose several models of DNA computation (in particular the sticker computation (in particular the sticker model and DNA solution to small SAT model and DNA solution to small SAT problems)problems)

Examined the implementation of if…else Examined the implementation of if…else statements and loopingstatements and looping

Branching allows easier mapping of Branching allows easier mapping of conventional algorithmsconventional algorithms

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 ssDNA moleculesTwo types of ssDNA molecules– memory strandmemory strand– complimentary stickerscomplimentary stickers

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

Parallel processing/computationParallel processing/computation

Robotic assistance neededRobotic assistance needed

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 Perform a separate separate operation based on operation based on evaluation of branch conditionevaluation of branch condition

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

Note: a vial is a small beakerNote: a vial is a small beaker

Branching and Looping proceduresBranching and Looping procedures

Example of usage: Minimal Set Cover problem

Looping with existing operationsLooping with existing operationsTest 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– Slow (as the Slow (as the separate separate operation is difficult and slow)operation is difficult and slow)– Reliance on intervention outside the beaker (can’t mix, shake Reliance on intervention outside the beaker (can’t mix, shake

and get the answer)and get the answer)– Experimental error (eg.: some florescence already present)Experimental error (eg.: some florescence already present)

Branching through DNA Branching through DNA Transcriptional LogicTranscriptional Logic

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

DNA Transcriptional LogicDNA Transcriptional LogicHow it worksHow it works– Transcription factor binds to the promoter regionTranscription factor binds to the promoter region– Activated by enzyme RNA Polymerase [RNAP]Activated by enzyme RNA Polymerase [RNAP]– Unwinds DNA, makes RNA until terminator is reachedUnwinds DNA, makes RNA until terminator is reached– input and output are programmable! input and output are programmable!

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 BranchingProsPros– Programmable inputProgrammable input– Easy to track progress (by taking a sample and Easy to track progress (by taking a sample and

approximating the concentrations of outputs)approximating the concentrations of outputs)– Does not require outside interventionDoes not require outside intervention

ConsCons– Does not allow parallelismDoes not allow parallelism– Inefficient and fairly slow (although speed can be Inefficient and fairly slow (although speed can be

controlled)controlled)– 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” Drug

Basic Idea: transport diagnosis and drug delivery Basic Idea: transport diagnosis and drug delivery (suppression) stages into the cell (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! Automata with:Automata with:– Hardware (restriction nuclease, ligase, FolkI)Hardware (restriction nuclease, ligase, FolkI)– Software and input (dsDNA molecules and dsDNA Software and input (dsDNA molecules and dsDNA

with a hairpin structure at end)with a hairpin structure at end)– In vitroIn vitro

““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:– Coded instructions plus coded input with a sticker as Coded instructions plus coded input with a sticker as

hairpin (software and input)hairpin (software and input)– 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 sticker Eliminates one of the positive sides of sticker model (no enzymes), but our enzymes are model (no enzymes), but our enzymes are reusable (hardware)reusable (hardware)Have SISD, can do MIMD?Have SISD, can do MIMD?How to ensure that each code is related to its How to ensure that each code is related to its specific data molecule?specific data molecule?

– – Do we need to ensure this at all? Randomize?Do we need to ensure this at all? Randomize?Do the environments fit?Do the environments fit?

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

Exploring Branching in SAT Exploring Branching in SAT problemsproblems

Idea: use ssDNA as clauses for the Idea: use ssDNA as clauses for the SAT problem (Adelman et al)SAT problem (Adelman et al)

Exploring Branching in SAT Exploring Branching in SAT problemsproblems

Works in parallel checking all the solutions at onceWorks in parallel checking all the solutions at once

If the solution is not valid (the variables in it contradict each If the solution is not valid (the variables in it contradict each other and thus the clause can not be resolved) then folds on other and thus the clause can not be resolved) then folds on itselfitself

An if statement acts on each clause at the same time!An if statement acts on each clause at the same time!

Disadvantages: Disadvantages:

– – high error rates (esp. with increase of variables) high error rates (esp. with increase of variables)

– – can not be done past 20 variables can not be done past 20 variables

Conclusion and future Conclusion and future goals/workgoals/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.

ReferencesReferences..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 (NSC-3), 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.