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

Slides:



Advertisements
Similar presentations
Artificial Intelligence
Advertisements

CHAPTER OBJECTIVE: NORMALIZATION THE SNOWFLAKE SCHEMA.
Short Portlet Programming Guide in P-Grade (Gridsphere) environment G. Hermann.
The Foundations: Logic and Proofs
2005conjunctive-ii1 Query languages II: equivalence & containment (Motivation: rewriting queries using views)  conjunctive queries – CQ’s  Extensions.
Existing “autonomous” system Sakamoto & Hagiya State transitions by molecules A transition table:{S  S’} Starting from the initial state, calculate as.
Assembly of DNA Graphs whose Edges are Helix Axes Phiset Sa-Ardyen*, Natasa Jonoska** and Nadrian C. Seeman* *New York University, New York, NY **University.
Logic Use mathematical deduction to derive new knowledge.
Propositional Logic Russell and Norvig: Chapter 6 Chapter 7, Sections 7.1—7.4 Slides adapted from: robotics.stanford.edu/~latombe/cs121/2003/home.htm.
Image Analysis Phases Image pre-processing –Noise suppression, linear and non-linear filters, deconvolution, etc. Image segmentation –Detection of objects.
CSE 425: Logic Programming I Logic and Programs Most programs use Boolean expressions over data Logic statements can express program semantics –I.e., axiomatic.
13-2 Manipulating DNA.
1 DNA Computing: Concept and Design Ruoya Wang April 21, 2008 MATH 8803 Final presentation.
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
CHA2555 Week2: Knowledge Representation, Logic and Prolog Lee McCluskey First term:
Proof by Deduction. Deductions and Formal Proofs A deduction is a sequence of logic statements, each of which is known or assumed to be true A formal.
Copyright © Cengage Learning. All rights reserved. CHAPTER 2 THE LOGIC OF COMPOUND STATEMENTS THE LOGIC OF COMPOUND STATEMENTS.
Logical and Rule-Based Reasoning Part I. Logical Models and Reasoning Big Question: Do people think logically?
Studies in Big Data 4 Weng-Long Chang Athanasios V. Vasilakos MolecularComputing Towards a Novel Computing Architecture for Complex Problem Solving.
DEDUCTIVE DATABASE.
Notes for Chapter 12 Logic Programming The AI War Basic Concepts of Logic Programming Prolog Review questions.
Concurrency Programming Chapter 2. The Role of Abstraction Scientific descriptions of the world are based on abstractions. A living animal is a system.
Autonomous DNA Nanomechanical Device Capable of Universal Computation and Universal Translational Motion Peng Yin*, Andrew J. Turberfield †, Sudheer Sahu*,
Formal Languages, Part Two SIE 550 Lecture Matt Dube Doctoral Student – Spatial.
Existential Graphs Software Dr. Russell Herman Department of Mathematics and Statistics University of North Carolina at Wilmington August 2003.
Computer Architecture And Organization UNIT-II Multilevel View Point Of A Machine.
13-1 Changing the Living World
1 Sections 1.5 & 3.1 Methods of Proof / Proof Strategy.
1Introduction 2Theoretical background Biochemistry/molecular biology 3Theoretical background computer science 4History of the field 5Splicing systems.
Logic CL4 Episode 16 0 The language of CL4 The rules of CL4 CL4 as a conservative extension of classical logic The soundness and completeness of CL4 The.
Pattern-directed inference systems
1.  Provides the ability to access individual assertions. e.g. in Predicate calculus we may say: P denotes “It rained on Tuesday” but in predicate calculus.
Slide 1 Propositional Definite Clause Logic: Syntax, Semantics and Bottom-up Proofs Jim Little UBC CS 322 – CSP October 20, 2014.
Prolog Programming in Logic. 2 SWI-Prolog SWI-Prolog is a good, standard Prolog for Windows and Linux Can be installed on Macintosh with a little more.
Chapter 1, Part II: Predicate Logic With Question/Answer Animations.
CIS2326 Week2: Logic and Prolog Lee McCluskey First term:
CS 603: Programming Languages Lecture 25 Spring 2004 Department of Computer Science University of Alabama Joel Jones.
1 Introduction to Computational Linguistics Eleni Miltsakaki AUTH Spring 2006-Lecture 8.
Theory and Applications
Branching in Biological Models of Computation Blair Andres-Beck, Vera Bereg, Stephanie Lee, Mike Lindmark, Wojciech Makowiecki Mike Lindmark, Wojciech.
Propositional Logic Predicate Logic
Biology Chapter 9 & Honors Biology Chapter 13 Frontiers Of Biotechnology.
MB: 26 Feb 2001CS Lecture 11 Introduction Reading: Read Chapter 1 of Bratko Programming in Logic: Prolog.
Department of Electrical and Computer Engineering University of Minnesota Presenter: Chi-Yun Cheng Digital Logic with Molecular Reactions.
Duminda WijesekeraSWSE 623: Introduction1 Introduction to Formal and Semi- formal Methods Based on A Specifier's Introduction to Formal Methods (J. Wing)
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
1 Chapter 2.1 Chapter 2.2 Chapter 2.3 Chapter 2.4 All images are copyrighted to their respective copyright holders and reproduced here for academic purposes.
Lecture 041 Predicate Calculus Learning outcomes Students are able to: 1. Evaluate predicate 2. Translate predicate into human language and vice versa.
Biomolecular Implementation of Computing Devices with Unbounded Memory Matteo CAVALIERE, Nataša JONOSKA, Nadrian C. SEEMAN. Department of Computer Science.
MDD-Kurs / MDA Cortex Brainware Consulting & Training GmbH Copyright © 2007 Cortex Brainware GmbH Bild 1Ver.: 1.0 How does intelligent functionality implemented.
Pengenalan Prolog Disampaikan Oleh : Yusuf Nurrachman, ST, MMSI.
Chapter 7. Propositional and Predicate Logic
(II) Manipulating DNA A. Isolating a specific DNA segment
Introduction to Prolog
Copyright Pearson Prentice Hall
4/26/2010 BIOTECHNOLOGY.
How many computers can fit into a drop of water?
Copyright Pearson Prentice Hall
Logic Use mathematical deduction to derive new knowledge.
Theory of computing, part 4
Chapter 9 Molecular Genetic Techniques and Genomics
Horn Clause Computation by Self-Assembly of DNA Molecules
Chapter 7. Propositional and Predicate Logic
Predicates and Quantifiers
Propositional Logic CMSC 471 Chapter , 7.7 and Chuck Dyer
Predicate Logic: Syntax.
Logical and Rule-Based Reasoning Part I
Predicate Logic.
The Foundations: Logic and Proofs
Presentation transcript:

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

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.

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

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

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 – p  q, q  r.

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

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

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

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.

Reducing a query with a proposition g

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

More elaborate deduction

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.

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?”

Results More than 70 different molecular species

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

Maslow's hierarchy

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

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.

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

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

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