Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Molecular implementation of simple logic programs Tom Ran August 2010 Advisor: Ehud Shapiro FAB6."— Presentation transcript:

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

2

3 The Objective

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

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

6 Compiling user’s high level language into assembly language 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)? Immortal(X)  God(X) Man(Socrates) God(Zeus) Temporary(Socrates)?

7 man(X)  mortal(X) man(socrates) man(heraclitus) mortal(socrates)? Compiling user’s high level language into molecular assembly language Compiling molecular assembly language into high level language Mortal(X)  Man(X) Temporary(X)  Mortal(X) Immortal(X)  God(X) Man(Socrates) God(Zeus) Temporary(Socrates)? Immortal(X)  God(X) Man(Socrates) God(Zeus) Temporary(Socrates)?

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

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

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

11 q, q? Yes. p?, p  q Reduce p? to the query q?. This query reduction is justified by the deduction rule modus ponens: Query answer / reduction “Socrates is a Man” “Socrates is Mortal” if “Socrates is a Man” Therefore “ Socrates is Mortal ” q p if q _ Therefore p

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

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

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

15 Reducing a query with a proposition q?, q. Yes

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

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

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

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

20 Reducing a query with a proposition g

21

22

23

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

25 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?. Reducing a query with an implication

26

27

28

29

30

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

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

33 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 as their corresponding implications. Logic program Queries such as Mortal(Socrates) are implemented as a combination of the propositional assumption "X=Socrates" and the query "Mortal(X)"?.

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

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

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

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

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

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

40 Man(X) Mortal(X)  Man(X)? X=Socrates Man(X)  X=Socrates? heraclitus’ Mortal(X)? Auxiliary Rules : Mortal(X)  Man(X) Facts : Man(Socrates) Query 1 : Mortal(Socrates)? Query 2 : Mortal (heraclitus)? X=Socrates Mortal(X)? ?

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

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

43 Man(X) Man(X)? X=Socrates Man(X)  X=Socrates? heraclitus’ Mortal(X)? X=Socrates Mortal(X)? Mortal(X) 

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

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

46 Man(X) Socrates Man(X)  heraclitus’ Mortal(X)? X=Socrates Mortal(X)? Mortal(X)  X=Socrates? Man(X)?

47 Man(X) Mortal(X)  Man(X)? X=Socrates Man(X)  X=Socrates? Auxiliary X=Socrates? Mortal(X)? X=Plato Mortal(X)? Rules : Mortal(X)  Man(X) Facts : Man(Socrates) Query 1 : Mortal(Socrates)? Query 2 : Mortal (Plato)?

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

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

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

51 More elaborate deduction

52

53 Existential query Mortal(Plato)? asks about a specific individual and the answer can either be ‘Yes’ or ‘No’. Mortal(X)? asks Who is Mortal? and answered with the list of individuals who are Mortal.

54 Existential query Tag each individual molecule with a different unique fluorescent color. Thus, for each individual that forms an answer we observe a rise in fluorescent intensity in its associated color. “Who is suitable for the army?” and “Who is suitable for the academy?”

55 Results More than 70 different molecular species

56 Bottom-up deduction Allowing conjunction of conditions in a rule. Happy(X)  In_Love(X) and Have_Money(X).

57 Maslow's hierarchy

58 A high-level language Logic programming - clear semantics, allowing its use as a high-level programming language.

59 A high-level language We developed a hybrid in silico/in vitro system that supports the creation and execution of molecular logic programs in a fashion similar to electronic computers. All experiments described in this work were executed by this system.

60 man(X)  mortal(X) man(socrates) man(heraclitus) mortal(socrates)? Compiling user’s high level language into molecular assembly language Compiling molecular assembly language into high level language Mortal(X)  Man(X) Temporary(X)  Mortal(X) Immortal(X)  God(X) Man(Socrates) God(Zeus) Temporary(Socrates)? Immortal(X)  God(X) Man(Socrates) God(Zeus) Temporary(Socrates)?

61 P 2 (X)  P 1 (X) P 3 (X)  P 2 (X) P 5 (X)  P 4 (X) P 1 (x 1 ) P 4 (x 2 ) P 3 (x 1 ) ? Time (sec) F Compiling user’s high level language into molecular assembly language Assembly orders Readout Signal level Compiling molecular assembly language into high level language Assembles Molecular code from molecular code pool Assembler Robot Plate reader Facts Pool: Rules Pool: Query Pool: Mortal(X)  Man(X) Temporary(X)  Mortal(X) Immortal(X)  God(X) Man(Socrates) God(Zeus) Temporary(Socrates)? Immortal(X)  God(X) Man(Socrates) God(Zeus) Temporary(Socrates)?

62 Summary Thanks a lot for your time! Heel erg bedankt voor uw tijd!


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

Similar presentations


Ads by Google