README.md 1.81 KB
Newer Older
Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
1

Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
2 3
MarkovProcesses.jl 
==================
Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
4 5 6 7 8

A Julia package for efficient simulation, statistical inference and verification of Continuous Time Markov Chains.

It implements:

Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
9 10
* A core of simulation for Markov Processes.
* A simple interface for Biochemical Networks / Stochastic Petri Nets.
Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
11 12 13 14 15 16
* Synchronized simulation with Linear Hybrid Automata.
* Approximate Bayesian Computation (a likelihood-free inference method)
* Automaton-ABC: a statistical method for verification of parametric CTMC (cite paper)

## Install

Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
17
This package is not yet accessible via the Julia package manager. For the install of the package:
Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
18 19

1. Clone this git repository on your computer.
Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
20
2. Add the "core" directory of this repository to your `LOAD_PATH`. This can be done by two different ways:
Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
21
    * Add the Julia line code 
Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
22 23 24 25 26
    ```julia
    import Distributed: @everywhere
    @everywhere push!(LOAD_PATH, /path/to/markovprocesses.jl/core")
    ```
    on your Julia startup file which is often located in `~/.julia/config/startup.jl` in Unix systems.
Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
27
    
Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
28 29 30 31 32 33
    * If you don't want to add this in your startup file, you can add these lines in your Julia script before `using MarkovProcesses`.

## Getting started 

A few notebooks are available in examples/notebooks for a quick presentation of the different features of the package.

Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
34
## Tests
Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
35 36 37 38 39

Execution tests and statistical tests are available. It can be run by:

`julia tests/run_all.jl`

Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
40
> :warning: The statistical tests run by `tests/run_cosmos.jl` needs [Cosmos](http://cosmos.lacl.fr/) in your PATH environment variable.
Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
41 42 43

## Benchmarks

Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
44
Benchmarks have been made to test the performance of the package compared to well-known efficient other packages such as `DifferentialEquations.jl`.
Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
45 46 47 48

## Info

This package was written during my PhD thesis. The mathematical fundations and the package archtecture are presented in it.
Bentriou Mahmoud's avatar
Bentriou Mahmoud committed
49