250 likes | 411 Views
Emerging Technologies of Computation. Montek Singh COMP790-084 Nov 15, 2011. Today: Computing using DNA. Two different technologies TODAY: DNA as biochemical computer DNA molecules encode data enzymes, probes etc. manipulate data Thurs: DNA used to assemble electronic computer
E N D
Emerging Technologies of Computation Montek Singh COMP790-084 Nov 15, 2011
Today: Computing using DNA • Two different technologies • TODAY: DNA as biochemical computer • DNA molecules encode data • enzymes, probes etc. manipulate data • Thurs: DNA used to assemble electronic computer • DNA molecules used as scaffolding • nanoscale electronic components piggyback • DNA assembles the computer
“I was fascinated. With my own hands, I was creating DNA that did not exist in nature.” Leonard M. AdlemanScientific American, August 1998
Computing with DNA • What is a DNA computer? • A system that manipulates DNA to solve mathematical problems • How is information represented? • In DNA molecules • How is information manipulated? • Using enzymes and ligases • How do you obtain gain/amplification? • DNA replication • How do you read output? • mechanical isolation, separation, probes
Basics of DNA • 4 types of molecular building blocks • Adenine, Thymine, Guanine, Cytosine • Shortened to 4 symbols: A, T, G, C • Double-helix structure • complementary strands • A and T bond with each other • G and C bond with each other
Basics of DNA • Watson-Crick pairing • each strand has its complement • the two will “anneal” (twist around each other) • weak hydrogen bonds • break easily with heat • non-complementary strands will not anneal
Basics of DNA • Polymerases • copy information • from a strand template, make its complement • need a “start signal” • a short DNA fragment, or primer • starts adding symbols to the primer • zips it up!
Basics of DNA • Ligases • covalently bonds DNA molecules together • joins two pieces into single strand • nature’s repair mechanism!
Basics of DNA • Nucleases • scissors to cut DNA strands • some nucleases will search for, and cut at, only specific sequences • e.g.: EcoRI (from E. coli) cuts after the G in GAATTC
Basics of DNA: Gel electrophoresis • Technique to separate molecules in a slab of gel • current applied to gel • DNA is –vely charged • shorter strands move faster than longer ones • one can also weigh down specific strands by attaching metal balls to them
DNA Synthesis • Mail order! • Write down the sequence on a piece of paper • Send to a synthesis facility • Wait 10 days • Receive 1018 molecules in a test tube • Today’s price [from www.genscript.com]
How do we make DNA compute? • To build a computer, only two things are really needed • a method of storing information • a few simple operations for acting on that information Turing machine • Is DNA good enough? • great way to store the “blueprint of life” • enzymes (polymerases and ligases) can operate • Is this enough? YES!
Let’s choose a problem! • Hamiltonian Path Problem • given: a directed graph, G • given: specified start and end nodes, s and t • definition: Hamiltonian path is one that goes from start node to end node, passing through each remaining node exactly once • decide: whether a Hamiltonian path exists for <G,s,t> • Like all good problems, this one is NP-complete
An algorithm Given graph with n vertices, • Generate a set of random paths through th graph • For each path: • check if path has correct start and end nodes • check if path passes through exactly n nodes • check if each vertex is visited Remove path if it fails any of these checks • If set is not empty, report that a Hamiltonian path exists.
Adleman’s DNA computer • Hamiltonian Path Problem • 7 cities, 14 nonstop flights • takes about a min for most of us • Smaller problem • 4 cities • for illustration
Coding the problem • Use DNA fragments to code cities and flights • each city X has two parts to its name • (X1X2) • and complement (X’1X’2) • a flight also has 2 parts • flight from X1X2 to Y1Y2 has sequence: (X2Y1)
Coding the problem • Synthesize: • complements of city names (X’1X’2) • flights (X2Y1) • A pinch of each has 1014 molecules • throw them all into a test tube • add water, ligase, salt • one drop, one second!
What happened? • Each flight bonds only with complements of its start and end cities: • flights (X2Y1) • bonds with (X’1X’2) and (Y’1Y’2) • ligase seals fragments • Sequences grow: • Atlanta-Boston • Atlanta-Boston-Chicago • …
Enormous parallelism! • 1014 or so parallel computations! • All paths created at once
Challenge • How to weed out the paths that were not Hamiltonian? • Answer: • clever use of probes, polymerization, gel electrophoresis, etc.
Gain/Amplification • Gain: • Want to weed out the incorrect paths • Want to amplify correct paths • Strategy: • Add 2 primers • add last name of start city • alerts polymerase to copy the right city strings • complements of sequences with the right start city • add complement of the first name of the end city • alerts polymerase to copy the right flight sequences • with the right end city • Exponential growth!
Discard the short ones • Use gel electrophoresis • short solutions do not go through all cities • move faster • keep long ones (length 24)
Discard the ones that skip cities • Use metal probes • e.g., specific probe for Boston • sticks to only those paths that contain Boston • electrophoresis to weed out others • heat and repeat
Final step • If there is any DNA left, there is a Hamiltonian Path! • Also possible to “read out” the path [see refs.]
Final comments • highly parallel • 1014 solutions simultaneously explored in about 1 second • highly energy efficient • 2 1019 ligation operations per joule • theoretical max is 34 1019 joule • today’s computers? ~ 109 – 1010 ops/joule