PISKaS is a stochastic simulator for rule-based models written in an expanded version of Kappa-Language, which we call Spatial Kappa (see the wiki of this repository). PISKaS is directly based on (and forked from) the repository of the simulation software KaSim v3.5. The main new features of PISKaS are:
- Models must be written in Spatial Kappa (wiki/usage).
- Simulations will run using an MPI framework, where every compartment or cell (subcompartments defined with an array notation) use an independent core of the computing architecture.
- To run a spatial simulation you need to use the
mpirun
tool of your MPI framework, and give as "number-of-cores" parameter (-n X
), whereX
is the amount of compartments or cells of your model. - You need to specify the synchronization step for your simulation using the PISKaS argument
-sync-t
. This argument defines the time step to synchronize compartments; a small value gives a slow but accurate simulation and a large value, a fast but unaccurate simulation.
It is recomended to first read the pdf of KaSim reference manual (available here) to learn about stochastic simulation and Kappa-Language.
Detailed intructions to install are in wiki/Installation
To install you need the ocaml native compiler. To check whether you have it, type
ocamlopt.opt -version
Ocaml installation tutorial can be found on its official website. You will also need the ocamlMPI library and an MPI framework like OpenMPI for compliation and for running simulations. It is recomended that you install both ocaml and libraries using Opam. To learn about how to do this please visit the wiki of this repository.
To create PISKaS binaries, simply type
make
This should produce PISKaS binaries. You will need your own plotting program (like gnuplot) to visualize curves.
You could run the example file predator2x2.cka. In order to run a simulation of 100 time units, type
mpirun -n 4 PISKaS -i predator2x2.cka -t 100 -p 1000 -sync-t 0.5 -o data_file
This will produce several (one for each compartment) data files of 1000 point (-p option) containing the trajectory that was produced during the simulation with synchronization step of 0.5 time units (i.e. 200 synchronizations).
Type PISKaS --help
for a complete list of options.