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

Slides:



Advertisements
Similar presentations
Topics covered: CPU Architecture CSE 243: Introduction to Computer Architecture and Hardware/Software Interface.
Advertisements

Chapter 2: Problem Solving
Computer Architecture
DNA Computing Computation with the Code of Life Michael Ang Interactive Telecommunications Program New York University February 16,
1 DNA Computing: Concept and Design Ruoya Wang April 21, 2008 MATH 8803 Final presentation.
Processor Technology and Architecture
A Mechanical Turing Machine: Blueprint for a Biomolecular Computer
CSCE 121, Sec 200, 507, 508 Fall 2010 Prof. Jennifer L. Welch.
Chapter 4 Processor Technology and Architecture. Chapter goals Describe CPU instruction and execution cycles Explain how primitive CPU instructions are.
1. By the end of this lecture you should be able … To describe in general terms how computers function To describe the fetch-execute cycle To explain.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
Programming Logic and Design, Introductory, Fourth Edition1 Understanding Computer Components and Operations (continued) A program must be free of syntax.
CS 104 Introduction to Computer Science and Graphics Problems Software and Programming Language (2) Programming Languages 09/26/2008 Yang Song (Prepared.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Making of Proteins: Transcription and Translation
Levels of Architecture & Language CHAPTER 1 © copyright Bobby Hoggard / material may not be redistributed without permission.
Beyond Silicon: Tackling the Unsolvable with DNA.
Computing Beyond Silicon Valley Summer School at Caltech Science undergraduate students were brought together to interact and understand the connections.
TMF1013 : Introduction To Computing Lecture 1 : Fundamental of Computer ComputerFoudamentals.
Biology 250Chapter 10 From DNA to RNA to Protein.
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
RNA and Protein Synthesis
Chapter 8 CPU and Memory: Design, Implementation, and Enhancement The Architecture of Computer Hardware and Systems Software: An Information Technology.
Visual Basic Programming
ELEN 033 Lecture #1 Tokunbo Ogunfunmi Santa Clara University.
1 Text Reference: Warford. 2 Computer Architecture: The design of those aspects of a computer which are visible to the programmer. Architecture Organization.
©2000 Timothy G. Standish Ecclesiastes 3:1 1To every thing there is a season, and a time to every purpose under the heaven:
PROGRAM DEVELOPMENT CYCLE. Problem Statement: Problem Statement help diagnose the situation so that your focus is on the problem, helpful tools at this.
Don Now 3.13 Objectives: Complete yesterday’s objectives. Define and describe the process of transcription. Identify the central dogma of molecular biology.
Chapter 10: Genetic Engineering- A Revolution in Molecular Biology.
Structured Programming (4 Credits)
Concurrency Properties. Correctness In sequential programs, rerunning a program with the same input will always give the same result, so it makes sense.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
Question What technology differentiates the different stages a computer had gone through from generation 1 to present?
1 Overview of Programming Principles of Computers.
ALGORITHMS AND FLOWCHARTS. Why Algorithm is needed? 2 Computer Program ? Set of instructions to perform some specific task Is Program itself a Software.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
Control units In the last lecture, we introduced the basic structure of a control unit, and translated our assembly instructions into a binary representation.
Some simple basics. 1Introduction 2Theoretical background Biochemistry/molecular biology 3Theoretical background computer science 4History of the field.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
Computer Systems Architecture Edited by Original lecture by Ian Sunley Areas: Computer users Basic topics What is a computer?
Low-Level Programming Languages, Pseudocode and Testing Chapter 6.
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
Unit 2.1: BASIC PRINCIPLES OF HUMAN GENETICS
Control Unit Lecture 6.
ALGORITHMS AND FLOWCHARTS
Turing Machines.
Lecture 2 Introduction to Programming
Autonomous Programmable Nanorobotic Devices Using DNAzymes
Relationship between Genotype and Phenotype
Enzymes and their functions involved in DNA replication
UNIT-4 BLACKBOX AND WHITEBOX TESTING
CSCE Fall 2013 Prof. Jennifer L. Welch.
Transcription.
CSCE 121: Simple Computer Model Spring 2015
MARIE: An Introduction to a Simple Computer
Unit 2.1: BASIC PRINCIPLES OF HUMAN GENETICS
Theory of computing, part 4
Guest Lecturer TA: Shreyas Chand
Central Dogma Central Dogma categorized by: DNA Replication Transcription Translation From that, we find the flow of.
Branch instructions We’ll implement branch instructions for the eight different conditions shown here. Bits 11-9 of the opcode field will indicate the.
CSCE Fall 2012 Prof. Jennifer L. Welch.
Control units In the last lecture, we introduced the basic structure of a control unit, and translated our assembly instructions into a binary representation.
Transcription Protein Synthesis.
CHAPTER 13 DNA: The Indispensable Forensic Science Tool
Computer Systems An Introducton.
12-3 RNA & Protein Synthesis
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Programming Logic and Design Eighth Edition
Presentation transcript:

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

Branching in DNA Computation We chose several models of DNA computation and examined the implementation of if…else statements and looping Allow 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 “ (1996) Presented in “A Sticker Based Model for DNA Computation” (1996) Two types of single stranded DNA molecules –memory strand –complimentary stickers Four operations allow universal computation –set, clear, separate and combine

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 based on branch condition Act on each vial independently –“If” statement carried out on true, “else” on false Recombine vials after “if” statement

Branching and Looping procedures

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 –Reliance on intervention outside the model

Implementation of Branching in DNA Transcriptional Logic Idea: use an OR gate for branching Idea: use an OR gate for branching

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

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 –Easy to track progress –Does not require outside intervention Cons –Does not allow parallelism –Inefficient and fairly slow –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 Automata with: –Hardware (restriction nuclease, ligase) –Software (dsDNA with a hairpin structure at end) –In vitro

“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! Basic “if else” statements, thus can do branching!

“Smart” Drug

“Smart” drug and Sticker Model Sticker model: –Memory strand with on/off regions for bits Drug model: –Code with a sticker as hairpin (software) –Reusable “rules” (hardware) –If (rule=true)  release sticker –Can do anti-stickers to clear off bits as well –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?

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

References A 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 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 Strands

Execution Cycle Revisited Initial Setup –Random input bits set –Add instruction strands, start strands Execution Cycle –Flow strands by operation selector chambers –Seal chambers, perform operation –Collect, add PC strands –Wash PC strands, add step strands

Adding Branching Add IF instruction code where operand is the condition bit Use End-If IF operation Operation selectors with solid-bound stickers Proper length to require both connections to stick

Adding Branching 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 Simple to get OR and NOT conditions –ie. OR = clear c; set n; if a; set c; end-if if n; if b; set c; end-if if n;

Fluorescent markers