620 likes | 835 Views
Molecular implementation of simple logic programs. FAB6. Tom Ran August 2010 Advisor: Ehud Shapiro. The Objective. The Objective. Programs describing things: Life Science Data AnalyzeModel via Computer Science methods Programs are things:
E N D
Molecular implementation of simple logic programs FAB6 Tom Ran August 2010 Advisor: Ehud Shapiro
The Objective • Programs describing things: • Life Science Data Analyze\Model via Computer Science methods • Programs are things: • Computer Science Concepts Assimilate Life Science • Previously, molecular implementations of finite automata and logic gates were developed.
The Objective • Programs describing things: • Life Science Data Analyze\Model via Computer Science methods • Programs are things: • Computer Science Concepts Implement via Life Science materials • Previously, molecular implementations of finite automata and logic gates were developed.
Mortal(X) Man(X) Temporary(X) Mortal(X) Immortal(X) God(X) Man(Socrates) God(Zeus) Temporary(Socrates)? Compiling user’s high level language into assembly language Immortal(X) God(X) Man(Socrates) God(Zeus) Temporary(Socrates)? Compiling assembly language into high level language
Mortal(X) Man(X) Temporary(X) Mortal(X) Immortal(X) God(X) Man(Socrates) God(Zeus) Temporary(Socrates)? Compiling user’s high level language into molecular assembly language man(X)mortal(X) man(socrates) mortal(socrates)? Immortal(X) God(X) Man(Socrates) God(Zeus) Temporary(Socrates)? man(heraclitus) Compiling molecular assembly language into high level language
Programs are things • Computational Concepts Molecular Implementation • Aristotelian syllogism (400 b.c.)
Motivation? • Biological-computers have the clear advantage over silicone-based computers of: • Size – injected into cells. • Inherently composed out of biological parts – easily interact with biological environments. • Thus holding the promise for future biological and medical applications.
Propositional logic programming • Propositions – p, q. • Queries – p?, q?. • Implications – pq, qr.
Query answer / reduction • q , q? Yes. • p?, pq Reduce p?to the query q? . • This query reduction is justified by the deduction rulemodus ponens: “Socrates is a Man” “Socrates is Mortal” if “Socrates is a Man” Therefore“Socrates is Mortal” q p if q _ Thereforep
Implementation • Propositions, Queries & Implications - All represented by short DNA molecules.
Proposition molecule • Proposition p: • Represented by a dsDNA molecule. • A sticky end representing p on one end. • A fluorophore with a matching quencher at its other end.
Query molecule • Query p?: • Represented by a dsDNA molecule. • A sticky end complementary to the representation of p. • A recognition site for the restriction enzyme FokI.
Reducing a query with a proposition • q? , q. Yes
Endonuclease II restriction enzyme - FokI 9 nt 13 nt Reducing a query with a proposition • q? , q. Yes
Reducing a query with a proposition • The sticky end of the query molecule q? hybridizes with that of the proposition molecule q.
Reducing a query with a proposition • FokI is attracted to its recognition site on the query and cleaves the proposition molecule q.
Reducing a query with a proposition • This results in the separation of its remaining sense and antisense strands, which in turn abolishes the quenching of the green fluorophore. • This green emission can be interpreted by an outside observer as a positive response to the query.
Implication molecule • Implication pq : • Represented by a hairpin ssDNA. • Sticky end representing the proposition p. • A segment complementary to the representation of q. • A segment that together with an auxiliary complementary strand forms a recognition site for FokI.
Reducing a query with an implication • The implication pq can be used to reduce the query p? to the query q? • Meaning that in order to positively answer p? it suffices to positively answer q?.
Logic programming • We use the molecular logic system thus obtained to implement simple logic programs. • Logic programming is an approach to computer programming that uses a subset of First Order Logic as a programming language. • Has applications in AI research, natural language processing, and concurrent programming. • Here we focus on logic programs with unary predicates and simple implications.
Simple logic programs • Facts • Man(Socrates) • Man(Plato) • Philosopher(Plato) • Philosopher(Socrates) • Rules • Mortal(X) Man(X) • Queries • Man(Socrates)? • Man(Plato)? • Philosopher(Plato)? • Mortal(Socrates)?
Propositional logic Logic program • Logic program Facts such as Man(Socrates) are implemented as propositional implications "Man(X)" "X=Socrates“. • Logic program Rules are implemented astheir corresponding implications. • Logic program Queries such as Mortal(Socrates) are implemented asa combination of the propositional assumption "X=Socrates" and the query "Mortal(X)"?.
A Logic program’s computation P: Rules: Mortal(X)Man(X) Facts: Man(Socartes) Q: Query: Mortal(Socartes)?
A Logic program’s computation Current query P: Rules: Mortal(X)Man(X) Facts: Man(Socartes) Q: Query: Mortal(Socartes)?
A Logic program’s computation Current query P: Rules: Mortal(X)Man(X) Facts: Man(Socartes) Mortal(Socrates)? Q: Query: Mortal(Socartes)?
A Logic program’s computation Current query P: Rules: Mortal(X) Facts: Man(Socartes) Man(Socrates) Mortal(Socrates)? Q: Query: Mortal(Socartes)?
A Logic program’s computation Current query P: Rules: Mortal (X)Man (X) Facts: Man(Socartes) Man(Socrates)? Empty Q: Query: Mortal(Socartes)?
A Logic program’s computation Current query Yes P: Rules: Mortal (X)Man (X) Facts: Man(Socartes) Q: Query: Mortal(Socartes)?
X=Socrates Mortal(X)? Auxiliary Man(X) Mortal(X) Man(X)? Rules :Mortal(X) Man(X)Facts :Man(Socrates)Query1:Mortal(Socrates)?Query2:Mortal (heraclitus)? X=Socrates? X=Socrates Man(X) ? heraclitus’ Mortal(X)?
Auxiliary X=Socrates Mortal(X)? Man(X) Mortal(X) Man(X)? X=Socrates? X=Socrates Man(X) heraclitus’ Mortal(X)?
Auxiliary Man(X)? X=Socrates Mortal(X)? Man(X) Mortal(X) Man(X)? Mortal(X)? X=Socrates? X=Socrates Man(X) heraclitus’ Mortal(X)?
X=Socrates Man(X) Mortal(X) Man(X)? Mortal(X)? X=Socrates? X=Socrates Man(X) heraclitus’ Mortal(X)?
Auxiliary Man(X)? X=Socrates X=Socrates Man(X) Mortal(X) Mortal(X)? X=Socrates? Socrates Man(X) X=Socrates Man(X)? heraclitus’ Mortal(X)?
X=Socrates Man(X) Mortal(X) Mortal(X)? X=Socrates? Socrates Man(X) Man(X)? heraclitus’ Mortal(X)?
X=Socrates? X=Socrates Man(X) Mortal(X) Mortal(X)? Socrates Man(X) Man(X)? X=Socrates? heraclitus’ Mortal(X)? Yes
X=Socrates? Mortal(X)? Auxiliary Man(X) Mortal(X) Man(X)? Rules :Mortal(X) Man(X)Facts :Man(Socrates)Query1:Mortal(Socrates)?Query2:Mortal (Plato)? X=Socrates? X=Socrates Man(X) X=Plato Mortal(X)? No
Answering a query - in full molecular-level detail Program: Man(Plato) Query: Man(Plato)?
Answering queries • The final results of 12 biochemical reactions of various combinations of queries and facts. • The dynamics of these reactions.
More elaborate deduction • A molecular logic program containing: • Mortal(X)Man(X) • Man(X)Greek(X) • Greek(Plato) • Molecular query : • Mortal(Plato)?