Computing Beyond Silicon Valley Summer School at Caltech Science undergraduate students were brought together to interact and understand the connections.

Slides:



Advertisements
Similar presentations
Programming with App Inventor Computing Institute for K-12 Teachers Summer 2012 Workshop.
Advertisements

Microsoft® Small Basic
CS 111: Introduction to Programming Midterm Exam NAME _________________ UIN __________________ 10/30/08 1.Who is our hero? 2.Why is this person our hero?
Chapter 2: Problem Solving
Programming Types of Testing.
ITEC113 Algorithms and Programming Techniques
1 DNA Computing: Concept and Design Ruoya Wang April 21, 2008 MATH 8803 Final presentation.
Pseudocode and Algorithms
Discrete Mathematics Recursion and Sequences
Chapter 1 Program Design
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
CS 104 Introduction to Computer Science and Graphics Problems Software and Programming Language (2) Programming Languages 09/26/2008 Yang Song (Prepared.
Programming – Touch Sensors Intro to Robotics. The Limit Switch When designing robotic arms there is always the chance the arm will move too far up or.
Future Computers CSCI 107, Spring When Moore’s law runs out of room When transistors become only tens of atoms thick –Quantum mechanics applies.
Introduction to Programming Lecture Number:. What is Programming Programming is to instruct the computer on what it has to do in a language that the computer.
1 Lab Session-III CSIT-120 Fall 2000 Revising Previous session Data input and output While loop Exercise Limits and Bounds Session III-B (starts on slide.
Simple Program Design Third Edition A Step-by-Step Approach
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
INTRODUCTION TO COMPUTING CHAPTER NO. 06. Compilers and Language Translation Introduction The Compilation Process Phase 1 – Lexical Analysis Phase 2 –
DNA Computing on a Chip Mitsunori Ogihara and Animesh Ray Nature, vol. 403, pp Cho, Dong-Yeon.
Levels of Architecture & Language CHAPTER 1 © copyright Bobby Hoggard / material may not be redistributed without permission.
SOFT COMPUTING (Optimization Techniques using GA) Dr. N.Uma Maheswari Professor/CSE PSNA CET.
Beyond Silicon: Tackling the Unsolvable with DNA.
TMF1013 : Introduction To Computing Lecture 1 : Fundamental of Computer ComputerFoudamentals.
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
S2008Final_part1.ppt CS11 Introduction to Programming Final Exam Part 1 S A computer is a mechanical or electrical device which stores, retrieves,
Testing Methods Carl Smith National Certificate Year 2 – Unit 4.
Developing an Algorithm
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
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.
Stochastic Computing with Biomolecular Automata Advanced Artificial Intelligence Cho, Sung Bum.
Chapter 1 Program design Objectives To describe the steps in the program development process To introduce the current program design methodology To introduce.
Chapter 5: Control Structures II (Repetition). Objectives In this chapter, you will: – Learn about repetition (looping) control structures – Learn how.
CMP-MX21: Lecture 4 Selections Steve Hordley. Overview 1. The if-else selection in JAVA 2. More useful JAVA operators 4. Other selection constructs in.
Branching in Biological Models of Computation Blair Andres-Beck, Vera Bereg, Stephanie Lee, Mike Lindmark, Wojciech Makowiecki Mike Lindmark, Wojciech.
Structured Programming (4 Credits)
DNA computing on a chip Mitsunori Ogihara and Animesh Ray Nature, 2000 발표자 : 임예니.
1 Biological Computing – DNA solution Presented by Wooyoung Kim 4/8/09 CSc 8530 Parallel Algorithms, Spring 2009 Dr. Sushil K. Prasad.
2 Chapter 21 Understanding Structure Programming Logic and Design, Second Edition, Comprehensive 2.
Data Structure Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2010.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Control Unit.
Teaching Bioinformatics Nevena Ackovska Ana Madevska - Bogdanova.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 4: Introduction to C: Control Flow.
LECTURE 4 Logic Design. LOGIC DESIGN We already know that the language of the machine is binary – that is, sequences of 1’s and 0’s. But why is this?
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
CISC105 – General Computer Science Class 4 – 06/14/2006.
Flow Control in Imperative Languages. Activity 1 What does the word: ‘Imperative’ mean? 5mins …having CONTROL and ORDER!
DNA. Unless you have an identical twin, you, like the sisters in this picture will share some, but not all characteristics with family members.
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.
Introduction to Computer Programming using Fortran 77.
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
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.
 Problem Analysis  Coding  Debugging  Testing.
Control Unit Lecture 6.
Python: Control Structures
ALGORITHMS AND FLOWCHARTS
Lecture 3 of Computer Science II
Turing Machines.
Lecture 2 Introduction to Programming
Introduction To Flowcharting
Chapter 10 Programming Fundamentals with JavaScript
Unit# 9: Computer Program Development
Program Design Introduction to Computer Programming By:
Coding Concepts (Basics)
By:- Manas Pandey Electrnics & Communication Roll No
Programming Logic and Design Eighth Edition
Presentation transcript:

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 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 “ (1996) 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 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 – No robotic intervention what-so-ever Basic “if else” statements, thus can do branching! 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 –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 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) – 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 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): Adelman, Leonard, et al. “Solutions of 20-Variable 3-SAT Problem on a DNA Computer.” Science. 296(2002): 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, Condon, Anne. “Automata make antisense.” Nature. News and Views 2004, (2004): 351— Karp, R, et al. “Error-resilient DNA computation”. Random Structure Algorithms. 15(1999): 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 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): Liu, Q, et al. “DNA computing on surfaces.” Nature. 403(2000): Lloyd et al. “DNA computing on a chip.” Nature. 403(2000): Roweis, Sam, et al. “A Sticker Model for DNA Computation.” Journal of Computational Biology 5.4 (1998): Tan, W, et al. “Molecular beacons for DNA biosensors with micrometer to submicrometer dimensions.” Analitical Biochem (2000):