1 / 62

Molecular implementation of simple logic programs

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:

carney
Download Presentation

Molecular implementation of simple logic programs

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Molecular implementation of simple logic programs FAB6 Tom Ran August 2010 Advisor: Ehud Shapiro

  2. The Objective

  3. 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.

  4. 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.

  5. 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

  6. 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

  7. Programs are things • Computational Concepts Molecular Implementation • Aristotelian syllogism (400 b.c.)

  8. 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.

  9. Propositional logic programming • Propositions – p, q. • Queries – p?, q?. • Implications – pq, qr.

  10. Query answer / reduction • q , q? Yes. • p?, pq 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

  11. Implementation • Propositions, Queries & Implications - All represented by short DNA molecules.

  12. 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.

  13. 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.

  14. Reducing a query with a proposition • q? , q. Yes

  15. Endonuclease II restriction enzyme - FokI 9 nt 13 nt Reducing a query with a proposition • q? , q. Yes

  16. Reducing a query with a proposition • The sticky end of the query molecule q? hybridizes with that of the proposition molecule q.

  17. Reducing a query with a proposition • FokI is attracted to its recognition site on the query and cleaves the proposition molecule q.

  18. 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.

  19. Reducing a query with a proposition • g

  20. Reducing a query with a proposition

  21. Reducing a query with a proposition

  22. Reducing a query with a proposition

  23. Implication molecule • Implication pq : • 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.

  24. Reducing a query with an implication • The implication pq 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?.

  25. Reducing a query with an implication

  26. Reducing a query with an implication

  27. Reducing a query with an implication

  28. Reducing a query with an implication

  29. Reducing a query with an implication

  30. 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.

  31. 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)?

  32. 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)"?.

  33. A Logic program’s computation P: Rules: Mortal(X)Man(X) Facts: Man(Socartes) Q: Query: Mortal(Socartes)?

  34. A Logic program’s computation Current query P: Rules: Mortal(X)Man(X) Facts: Man(Socartes) Q: Query: Mortal(Socartes)?

  35. A Logic program’s computation Current query P: Rules: Mortal(X)Man(X) Facts: Man(Socartes) Mortal(Socrates)? Q: Query: Mortal(Socartes)?

  36. A Logic program’s computation Current query P: Rules: Mortal(X)  Facts: Man(Socartes) Man(Socrates) Mortal(Socrates)? Q: Query: Mortal(Socartes)?

  37. A Logic program’s computation Current query P: Rules: Mortal (X)Man (X) Facts: Man(Socartes) Man(Socrates)? Empty  Q: Query: Mortal(Socartes)?

  38. A Logic program’s computation Current query Yes P: Rules: Mortal (X)Man (X) Facts: Man(Socartes) Q: Query: Mortal(Socartes)?

  39. 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)?

  40. Auxiliary X=Socrates Mortal(X)? Man(X) Mortal(X)   Man(X)? X=Socrates? X=Socrates Man(X)  heraclitus’ Mortal(X)?

  41. Auxiliary Man(X)? X=Socrates Mortal(X)? Man(X) Mortal(X)   Man(X)? Mortal(X)? X=Socrates? X=Socrates Man(X)  heraclitus’ Mortal(X)?

  42. X=Socrates Man(X) Mortal(X)  Man(X)? Mortal(X)? X=Socrates? X=Socrates Man(X)  heraclitus’ Mortal(X)?

  43. 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)?

  44. X=Socrates Man(X) Mortal(X)  Mortal(X)? X=Socrates? Socrates Man(X)  Man(X)? heraclitus’ Mortal(X)?

  45. X=Socrates? X=Socrates Man(X) Mortal(X)  Mortal(X)? Socrates Man(X)  Man(X)? X=Socrates? heraclitus’ Mortal(X)? Yes

  46. 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

  47. Answering a query - in full molecular-level detail Program: Man(Plato) Query: Man(Plato)?

  48. Answering queries • The final results of 12 biochemical reactions of various combinations of queries and facts. • The dynamics of these reactions.

  49. More elaborate deduction • A molecular logic program containing: • Mortal(X)Man(X) • Man(X)Greek(X) • Greek(Plato) • Molecular query : • Mortal(Plato)?

More Related