A Tool for Automated Inference of Executable Rule- Based Biological - - PowerPoint PPT Presentation

a tool for automated inference of executable rule based
SMART_READER_LITE
LIVE PREVIEW

A Tool for Automated Inference of Executable Rule- Based Biological - - PowerPoint PPT Presentation

A Tool for Automated Inference of Executable Rule- Based Biological Models Chelsea Voss, Jean Yang, Walter Fontana Static Analysis in Systems Biology, 2017 The need for biological models executable models for in silico experimentation


slide-1
SLIDE 1

A Tool for Automated Inference of Executable Rule- Based Biological Models

Chelsea Voss, Jean Yang, Walter Fontana Static Analysis in Systems Biology, 2017

slide-2
SLIDE 2
slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6
slide-7
SLIDE 7

The need for biological models

executable models for “in silico” experimentation

slide-8
SLIDE 8

programming is hard

slide-9
SLIDE 9

The need for computer-generated models

NLP

slide-10
SLIDE 10

Some NLP output requires logical inference

slide-11
SLIDE 11

Some NLP output requires logical inference

Executable model needs: Mechanistic rules

slide-12
SLIDE 12

Some NLP output requires logical inference

Executable model needs: Mechanistic rules NLP produces:

Mechanistic rules

§

Non-mechanistic rules

§ §

Domain knowledge

§ § §

slide-13
SLIDE 13

Some NLP output requires logical inference

Executable model needs: Mechanistic rules NLP produces:

Mechanistic rules

§

Non-mechanistic rules

§ §

Domain knowledge

§ § §

???

slide-14
SLIDE 14

Some NLP output requires logical inference

Executable model needs: Mechanistic rules NLP produces:

Mechanistic rules

§ MEK phosphorylates ERK1

Non-mechanistic rules

§ §

Domain knowledge

§ § §

???

slide-15
SLIDE 15

Some NLP output requires logical inference

Executable model needs: Mechanistic rules NLP produces:

Mechanistic rules

§ MEK phosphorylates ERK1

Non-mechanistic rules

§ MEK phosphorylates the ERK protein

family

§ Active ERK phosphorylates RSK

Domain knowledge

§ § §

???

slide-16
SLIDE 16

Some NLP output requires logical inference

Executable model needs: Mechanistic rules NLP produces:

Mechanistic rules

§ MEK phosphorylates ERK1

Non-mechanistic rules

§ MEK phosphorylates the ERK protein

family

§ Active ERK phosphorylates RSK

Domain knowledge

§ When ERK1 is phosphorylated, it is

active

§ S151D-mutated ERK1 behaves as if

always phosphorylated

§ ERK1 and ERK2 are in the ERK protein

family

???

slide-17
SLIDE 17

Some NLP output requires logical inference

Executable model needs: Mechanistic rules

  • MEK phosphorylates ERK1
  • MEK phosphorylates ERK2
  • Phosphorylated ERK1

phosphorylates RSK

  • Phosphorylated ERK2

phosphorylates RSK

  • S151D-mutated ERK1

phosphorylates RSK

NLP produces:

Mechanistic rules

§ MEK phosphorylates ERK1

Non-mechanistic rules

§ MEK phosphorylates the ERK protein

family

§ Active ERK phosphorylates RSK

Domain knowledge

§ When ERK1 is phosphorylated, it is

active

§ S151D-mutated ERK1 behaves as if

always phosphorylated

§ ERK1 and ERK2 are in the ERK protein

family

???

slide-18
SLIDE 18

Mechanistic rules Non-mechanistic rules Domain knowledge

slide-19
SLIDE 19

Mechanistic rules Non-mechanistic rules Domain knowledge Models

slide-20
SLIDE 20

Mechanistic rules Non-mechanistic rules Domain knowledge Space of possible models

slide-21
SLIDE 21

Our contribution

Mechanistic rules Non-mechanistic rules Domain knowledge Space of possible models

slide-22
SLIDE 22

Our contribution: how it works

1: Predicates

  • ver models

Mechanistic rules Non-mechanistic rules Domain knowledge Space of possible models

slide-23
SLIDE 23

Our contribution: how it works

1: Predicates

  • ver models

Mechanistic rules Non-mechanistic rules Domain knowledge Space of possible models 2: Implement interpretation

slide-24
SLIDE 24

Our contribution: how it works

1: Predicates

  • ver models

Mechanistic rules Non-mechanistic rules Domain knowledge Space of possible models 2: Implement interpretation 3: Create predicates

slide-25
SLIDE 25

1: Predicates

  • ver models

Mechanistic rules Non-mechanistic rules Domain knowledge Space of possible models 2: Implement interpretation 3: Create predicates

slide-26
SLIDE 26

1: Predicates over models, in a logic

First, choose a modeling language.

slide-27
SLIDE 27

1: Predicates over models, in a logic

First, choose a modeling language: Kappa.

slide-28
SLIDE 28

1: Predicates over models, in a logic

First, choose a modeling language: Kappa.

slide-29
SLIDE 29

1: Predicates over models, in a logic

First, choose a modeling language: Kappa. Why Kappa?

slide-30
SLIDE 30

1: Predicates over models, in a logic

First, choose a modeling language: Kappa.

[Figure due to Danos et al. 2009: Abstracting the ODE Semantics

  • f Rule-Based Models: Exact and Automatic Model Reduction.]

Why Kappa? Well-defined operational semantics allow us to reason precisely.

slide-31
SLIDE 31

1: Predicates over models, in a logic

First, choose a modeling language: Kappa. Second, devise a logic for quantifying over models.

slide-32
SLIDE 32

1: Predicates over models, in a logic

[Conversations with Husson & Krivine, 2015-2016]

First, choose a modeling language: Kappa. Second, devise a logic for quantifying over models. Datatypes:

  • Graphs represent the state of a Kappa system
  • Rules are sets of <graph, action> pairs
  • action rewrites graph, creates new graph
  • Models are sets of rules
slide-33
SLIDE 33

1: Predicates over models, in a logic

[Conversations with Husson & Krivine, 2015-2016]

First, choose a modeling language: Kappa. Second, devise a logic for quantifying over models. Datatypes:

  • Graphs represent the state of a Kappa system
  • Rules are sets of <graph, action> pairs
  • action rewrites graph, creates new graph
  • Models are sets of rules

Predicates:

  • Atomic predicates specify a set of rules
  • Predicates specify a set of models
slide-34
SLIDE 34

Atomic predicates class AtomicPredicate:

Top Bottom Equal PreLabeled, PostLabeled PreUnlabeled, PostUnlabeled PreParent, PostParent PreLink, PostLink PreHas, PostHas Add, Rem DoLink, DoUnlink DoParent, DoUnparent Named

slide-35
SLIDE 35

Atomic predicates class AtomicPredicate:

Top Bottom Equal PreLabeled, PostLabeled PreUnlabeled, PostUnlabeled PreParent, PostParent PreLink, PostLink PreHas, PostHas Add, Rem DoLink, DoUnlink DoParent, DoUnparent Named

Predicates class Predicate:

And Not Or Implies ModelHasRule ForAllRules Top Bottom

slide-36
SLIDE 36

Example predicate syntax tree

a = Agent(‘a’) b = Agent(‘b’) p = And( ModelHasRule(lambda r: PregraphHas(r, a.bound(b))), ModelHasRule(lambda r: PostgraphHas(r, a.unbound(b))))

slide-37
SLIDE 37

1: Predicates

  • ver models

Mechanistic rules Non-mechanistic rules Domain knowledge Space of possible models 3: Create predicates 2: Implement interpretation

slide-38
SLIDE 38

2: Implement interpretation of predicates

  • Solving predicates in this logic is reducible to first-order logic
slide-39
SLIDE 39

2: Implement interpretation of predicates

  • Solving predicates in this logic is reducible to first-order logic
  • Workhorse: Z3 Theorem Prover
slide-40
SLIDE 40

2: Implement interpretation of predicates

  • Solving predicates in this logic is reducible to first-order logic
  • Workhorse: Z3 Theorem Prover
slide-41
SLIDE 41

2: Implement interpretation of predicates

  • Solving predicates in this logic is reducible to first-order logic
  • Workhorse: Z3 Theorem Prover
  • Demo at http://rise4fun.com/z3
slide-42
SLIDE 42

2: Implement interpretation of predicates

  • Solving predicates in this logic is reducible to first-order logic
  • Workhorse: Z3 Theorem Prover
  • Demo at http://rise4fun.com/z3
  • High-performance satisfiability solver
slide-43
SLIDE 43

2: Implement interpretation of predicates

  • Solving predicates in this logic is reducible to first-order logic
  • Workhorse: Z3 Theorem Prover
  • Demo at http://rise4fun.com/z3
  • High-performance satisfiability solver
  • Wide variety of datatypes supported: arithmetic, fixed-size bit-vectors,

extensional arrays, datatypes, uninterpreted functions, and quantifiers

slide-44
SLIDE 44

2: Implement interpretation of predicates

  • Solving predicates in this logic is reducible to first-order logic
  • Workhorse: Z3 Theorem Prover
  • Demo at http://rise4fun.com/z3
  • High-performance satisfiability solver
  • Wide variety of datatypes supported: arithmetic, fixed-size bit-vectors,

extensional arrays, datatypes, uninterpreted functions, and quantifiers

slide-45
SLIDE 45

2: Implement interpretation of predicates

  • Solving predicates in this logic is reducible to first-order logic
  • Workhorse: Z3 Theorem Prover
  • Demo at http://rise4fun.com/z3
  • High-performance satisfiability solver
  • Wide variety of datatypes supported: arithmetic, fixed-size bit-vectors,

extensional arrays, datatypes, uninterpreted functions, and quantifiers

slide-46
SLIDE 46

2: Implement interpretation of predicates

  • Solving predicates in this logic is reducible to first-order logic
  • Workhorse: Z3 Theorem Prover
  • Demo at http://rise4fun.com/z3
  • High-performance satisfiability solver
  • Wide variety of datatypes supported: arithmetic, fixed-size bit-vectors,

extensional arrays, datatypes, uninterpreted functions, and quantifiers

slide-47
SLIDE 47

2: Implement interpretation of predicates

  • Solving predicates in this logic is reducible to first-order logic
  • Workhorse: Z3 Theorem Prover
  • Demo at http://rise4fun.com/z3
  • High-performance satisfiability solver
  • Wide variety of datatypes supported: arithmetic, fixed-size bit-vectors,

extensional arrays, datatypes, uninterpreted functions, and quantifiers

slide-48
SLIDE 48

2: Implement interpretation of predicates

  • Solving predicates in this logic is reducible to first-order logic
  • Workhorse: Z3 Theorem Prover
  • Using Z3 to interpret our predicates
  • Declare Z3 datatypes to represent
  • Recursively build Z3 predicates from our predicate classes
  • Use (check-sat) and (get-model)
slide-49
SLIDE 49

2: Implement interpretation of predicates

  • Solving predicates in this logic is reducible to first-order logic
  • Workhorse: Z3 Theorem Prover
  • Using Z3 to interpret our predicates
  • Value added:
  • Extract models
  • Detect inconsistencies (if P is our facts so far and Q is a new predicate, and P/\Q

is unsatisfiable, then Q is inconsistent with the existing facts)

  • Detect redundancy (if Q is a new fact, and P => Q, then Q is redundant)
  • Detect ambiguity (if model M satisfies predicate P, and P/\¬(model=M) is

satisfiable, then P has multiple solutions)

slide-50
SLIDE 50

>>> from syndra.engine import macros, predicate

Usage example: Inconsistency checking

slide-51
SLIDE 51

>>> from syndra.engine import macros, predicate >>> x = macros.directly_phosphorylates("MEK", "ERK")

Usage example: Inconsistency checking

slide-52
SLIDE 52

>>> from syndra.engine import macros, predicate >>> x = macros.directly_phosphorylates("MEK", "ERK") >>> y = predicate.Not(x)

Usage example: Inconsistency checking

slide-53
SLIDE 53

>>> from syndra.engine import macros, predicate >>> x = macros.directly_phosphorylates("MEK", "ERK") >>> y = predicate.Not(x) >>> x_and_y = predicate.And(x, y)

Usage example: Inconsistency checking

slide-54
SLIDE 54

>>> from syndra.engine import macros, predicate >>> x = macros.directly_phosphorylates("MEK", "ERK") >>> y = predicate.Not(x) >>> x_and_y = predicate.And(x, y) >>> print x_and_y.check_sat()

Usage example: Inconsistency checking

slide-55
SLIDE 55

>>> from syndra.engine import macros, predicate >>> x = macros.directly_phosphorylates("MEK", "ERK") >>> y = predicate.Not(x) >>> x_and_y = predicate.And(x, y) >>> print x_and_y.check_sat() False

Usage example: Inconsistency checking

slide-56
SLIDE 56

>>> from syndra.engine import macros, predicate

Usage example: Redundancy checking

slide-57
SLIDE 57

>>> from syndra.engine import macros, predicate >>> x = macros.directly_phosphorylates("MEK", "ERK")

Usage example: Redundancy checking

slide-58
SLIDE 58

>>> from syndra.engine import macros, predicate >>> x = macros.directly_phosphorylates("MEK", "ERK") >>> y = macros.phosphorylated_is_active("ERK")

Usage example: Redundancy checking

slide-59
SLIDE 59

>>> from syndra.engine import macros, predicate >>> x = macros.directly_phosphorylates("MEK", "ERK") >>> y = macros.phosphorylated_is_active("ERK") >>> z = macros.directly_activates("MEK", "ERK")

Usage example: Redundancy checking

slide-60
SLIDE 60

>>> from syndra.engine import macros, predicate >>> x = macros.directly_phosphorylates("MEK", "ERK") >>> y = macros.phosphorylated_is_active("ERK") >>> z = macros.directly_activates("MEK", "ERK") >>> x_and_y_imply_z = predicate.Implies(predicate.And(x, y), z)

Usage example: Redundancy checking

slide-61
SLIDE 61

>>> from syndra.engine import macros, predicate >>> x = macros.directly_phosphorylates("MEK", "ERK") >>> y = macros.phosphorylated_is_active("ERK") >>> z = macros.directly_activates("MEK", "ERK") >>> x_and_y_imply_z = predicate.Implies(predicate.And(x, y), z) >>> print x_and_y_imply_z.check_sat()

Usage example: Redundancy checking

slide-62
SLIDE 62

>>> from syndra.engine import macros, predicate >>> x = macros.directly_phosphorylates("MEK", "ERK") >>> y = macros.phosphorylated_is_active("ERK") >>> z = macros.directly_activates("MEK", "ERK") >>> x_and_y_imply_z = predicate.Implies(predicate.And(x, y), z) >>> print x_and_y_imply_z.check_sat() True

Usage example: Redundancy checking

slide-63
SLIDE 63

1: Predicates

  • ver models

Mechanistic rules Non-mechanistic rules Domain knowledge Space of possible models 2: Implement interpretation 3: Create predicates

slide-64
SLIDE 64

3: Tools for creating predicates

  • Macros
slide-65
SLIDE 65

3: Tools for creating predicates

  • Macros

PreLabeled(A, phosphorylated) ∧ PreUnbound(A, B) ∧ PostLabeled(A, phosphorylated) ∧ PostBound(A, B)

A phosphorylates B

slide-66
SLIDE 66

3: Tools for creating predicates

  • Macros

PreLabeled(A, phosphorylated) ∧ PreUnbound(A, B) ∧ PostLabeled(A, phosphorylated) ∧ PostBound(A, B)

A phosphorylates B

  • directly_phosphorylates
  • phosphorylated_is_active
  • directly_activates
  • negative_residue_behaves_as_if_phosphorylated
slide-67
SLIDE 67

3: Tools for creating predicates

  • Macros
  • Interface with INDRA

[INDRA: Gyori et al. From word models to executable models of signaling networks using automated assembly. 2017]

slide-68
SLIDE 68

3: Tools for creating predicates

  • Macros
  • Interface with INDRA
  • indra.statements.Phosphorylation
  • indra.statements.Activation
  • indra.statements.ActiveForm

[INDRA: Gyori et al. From word models to executable models of signaling networks using automated assembly. 2017]

slide-69
SLIDE 69

1: Predicates

  • ver models

Mechanistic rules Non-mechanistic rules Domain knowledge Space of possible models 2: Implement interpretation 3: Create predicates

slide-70
SLIDE 70

NLP

slide-71
SLIDE 71

NLP

Syndra

slide-72
SLIDE 72

NLP

https://github.com/csvoss/syndra

Syndra