Rule-based modeling
## Rule-based modeling

The class will present the recent technique of 'rule-based modeling', with emphasis on its use in modeling of bio-chemical systems and/or statistical physics, but also including a treatment of the mathematical foundations of the approach in terms of graph rewriting.
Rule-based modeling is a recent development that allows for compact description of complex systems -- most notably for (bio-)chemical reactions -- as collections of rewriting rules that describe how the system may evolve over time. Unlike traditional reaction-based descriptions, rules do not necessarily act upon fully-specified molecules, instead referring only to those aspects pertinent to the reaction mechanisms at play. In addition to providing more generic, compact descriptions, this also enables completely new analysis techniques based on notions of causality familiar from concurrency theory.

### Pre-requisites

There are no formal pre-requisites although an acquantaince with very basic probability theory would be a help, as would a passing familiarity with transition systems and rewriting. You will also need to be able to do some simple programming (in a language of your choice; I will use Python in my examples).
### TPs

There might be some practical classes with programming and/or modeling exercises. These would require a laptop computer with Python (or your language of choice) and Kappa installed. This could be done in small groups (preferably pairs).
### Evaluation

Evaluation will be based on a programming exercise, a modeling project and a written exam.
### Outline

In a little more detail, the class will include:
- an introduction to (stochastic) chemical kinetics
- Markov jump processes and stochastic simulation
- the rule-based approach: mathematical formulation
- the rule-based approach: the Kappa language
- static and causal analysis of rule-based models
- implicit state simulation
- knowledge representation for rule-based models

Introduction (14/09): conceptual frame, summary of chemical kinetics

Stochastic chemical kinetics (21/09) : Markov jump processes, review paper (Gillespie, 2007)

Stochastic chemical kinetics II (28/09) : slides, decay.py, be.py, assignment (for Nov 1)

Graph rewriting (5/10) : blackboard notes

Graph rewriting II (12/10) : blackboard notes

Site graph rewriting (19/10) : notes

Kappa (2/11) : slides, AB.ka, ES1.ka, ES2QSS.ka, ES2QE.ka, KaSim repository and binaries

Abstract interpretation of Kappa (9/11) [Jérôme Feret] : slides

Implicit state simulation (16/11) : blackboard notes

Implicit state simulation II (23/11) : blackboard notes, null events, over-sampling

Incremental update (30/11) [Jean Krivine] : slides, assignment (for Jan 4)

Knowledge representation for rule-based models (14/12) [Adrien Basso-Blandin]