S P I K E
latest update: July 06, 2021, at 03:11 PM
Please use the following reference to give credits to Spike:
J Chodak, M Heiner:
Spike -- Reproducible Simulation Experiments with Configuration File Branching;
In Computational Methods in Systems Biology, Trieste,
Springer, LNCS, volume 11773, pp. 315–321,
September 2019 (e-link).
- 51.7678,14.3253,ff0000
- BTU Cottbus
- 51.50862023138231,-0.09748064534318063,243c75
- (31) London; United Kingdom
- 51.766700744628906,14.33329963684082,2a4689
- (29) Cottbus; Germany
- 51.38330078125,0.516700029373169,365ab0
- (18) Chatham; United Kingdom
- 51.54999923706055,-0.48330000042915344,3c64c3
- (15) Uxbridge; United Kingdom
- 38.86399841308594,-77.19219970703125,6383cf
- (11) Falls Church; United States
- 50.53329849243164,-3.5999999046325684,6383cf
- (10) Newton Abbot; United Kingdom
- 29.848499298095703,-90.06330108642578,6383cf
- (9) Harvey; United States
- 33.611900329589844,-111.8906021118164,6383cf
- (8) Scottsdale; United States
- 37.789798736572266,-122.39420318603516,6383cf
- (6) San Francisco; United States
- 52.46670150756836,-1.916700005531311,6383cf
- (4) Birmingham; United Kingdom
- 24.986900329589844,121.30560302734375,6383cf
- (4) Taoyüan; Taiwan
- 32.236900329589844,-110.95590209960938,6383cf
- (4) Tucson; United States
- 45.41669845581055,-75.69999694824219,6383cf
- (3) Ottawa; Canada
- 35.685001373291016,139.75140380859375,6383cf
- (3) Tokyo; Japan
- -37.810298919677734,144.95440673828125,6383cf
- (3) Melbourne; Australia
- 33.3843994140625,-111.92870330810547,6383cf
- (3) Tempe; United States
- 40.714298248291016,-74.00599670410156,6383cf
- (3) New York; United States
- 53.555301666259766,9.994999885559082,6383cf
- (3) Hamburg; Germany
- 39.77949905395508,-86.13279724121094,6383cf
- (3) Indianapolis; United States
- 51.83330154418945,-2.25,6383cf
- (3) Gloucester; United Kingdom
- 51.91669845581055,4.5,6383cf
- (3) Rotterdam; Netherlands
- 52.516700744628906,13.399999618530273,6383cf
- (3) Berlin; Germany
- 48.14216740926107,11.599432945251465,6383cf
- (3) Munich; Germany
- 51.45000076293945,-2.5833001136779785,6383cf
- (3) Bristol; United Kingdom
- 49.75,6.633299827575684,6383cf
- (3) Trier; Germany
- 52.160099029541016,14.555000305175781,6383cf
- (2) Eisenhüttenstadt; Germany
- 47.91669845581055,7.699999809265137,6383cf
- (2) Bad Krozingen; Germany
- -32.0525016784668,115.88780212402344,6383cf
- (2) Willetton; Australia
- 22.533300399780273,114.13330078125,6383cf
- (2) Shenzhen; China
- 39.37950134277344,-77.16560363769531,6383cf
- (2) Mount Airy; United States
- 51.75,-1.25,6383cf
- (2) Oxford; United Kingdom
- 47.66669845581055,9.183300018310547,6383cf
- (2) Konstanz; Germany
- 53.983299255371094,9.816699981689453,6383cf
- (2) Brokstedt; Germany
- 52.08855056762695,5.126199960708618,6383cf
- (2) Utrecht; Netherlands
- 45.4385986328125,12.326700210571289,6383cf
- (2) Venice; Italy
- 52.08330154418945,-1.9333000183105469,6383cf
- (2) Evesham; United Kingdom
- -31.424999237060547,-64.17500305175781,6383cf
- (2) Cordoba; Argentina
- 51.983299255371094,5.9166998863220215,6383cf
- (2) Arnhem; Netherlands
- -34.778099060058594,-59.688899993896484,6383cf
- (2) Suipacha; Argentina
- 49.83330154418945,7.866700172424316,6383cf
- (2) Bad Kreuznach; Germany
- 50.77080154418945,6.105299949645996,6383cf
- (2) Aachen; Germany
- 40.85969924926758,-74.40260314941406,6383cf
- (2) Parsippany; United States
- 52.25,21,6383cf
- (2) Warsaw; Poland
- 55.95000076293945,-3.200000047683716,6383cf
- (2) Edinburgh; United Kingdom
- 51.51765060424805,-0.6245499849319458,6383cf
- (2) Slough; United Kingdom
- 38.914398193359375,-77.07630157470703,6383cf
- (1) Washington; United States
- 45.79999923706055,24.149999618530273,6383cf
- (1) Sibiu; Romania
- 55.00320053100586,-1.6339000463485718,6383cf
- (1) Newcastle Upon Tyne; United Kingdom
- 52.63330078125,-1.1332999467849731,6383cf
- (1) Leicester; United Kingdom
- 51.46310043334961,6.974100112915039,6383cf
- (1) Essen; Germany
- 40.20000076293945,-8.41670036315918,6383cf
- (1) Coimbra; Portugal
- 49.00469970703125,8.3858003616333,6383cf
- (1) Karlsruhe; Germany
- 4.649199962615967,-74.06279754638672,6383cf
- (1) Bogotá; Colombia
- 54.53329849243164,9.033300399780273,6383cf
- (1) Hattstedt; Germany
- 39.56449890136719,-75.59700012207031,6383cf
- (1) Wilmington; United States
- 19.983299255371094,73.80000305175781,6383cf
- (1) Nasik; India
- 50.11669921875,8.683300018310547,6383cf
- (1) Frankfurt; Germany
- 51.516700744628906,-0.11670000106096268,6383cf
- (1) Bloomsbury; United Kingdom
- 51.56669998168945,6.98330020904541,6383cf
- (1) Gladbeck; Germany
- -27.5,153.01669311523438,6383cf
- (1) Brisbane; Australia
- 51.888301849365234,11.05720043182373,6383cf
- (1) Halberstadt; Germany
- 48.692100524902344,6.18779993057251,6383cf
- (1) Nancy; France
- 43.75,-79.19999694824219,6383cf
- (1) Scarborough; Canada
- 41.46189880371094,-87.00080108642578,6383cf
- (1) Valparaiso; United States
- 55.752201080322266,37.6156005859375,6383cf
- (1) Moscow; Russian Federation
- 56.25,10.16670036315918,6383cf
- (1) Trige; Denmark
- 29.69969940185547,-95.58580017089844,6383cf
- (1) Houston; United States
- 51.360599517822266,7.478499889373779,6383cf
- (1) Hagen; Germany
- 32.18170166015625,34.93579864501953,6383cf
- (1) Kfar Saba; Israel
- 39.0806999206543,-77.13020324707031,6383cf
- (1) Rockville; United States
- -37.71670150756836,145.11669921875,6383cf
- (1) Montmorency; Australia
- 48.08330154418945,11.683300018310547,6383cf
- (1) Neubiberg; Germany
- 51.04999923706055,13.75,6383cf
- (1) Dresden; Germany
- 40.53219985961914,-7.851500034332275,6383cf
- (1) Nelas; Portugal
- 45.493099212646484,12.160599708557129,6383cf
- (1) Spinea; Italy
- 48.650001525878906,15.649999618530273,6383cf
- (1) Horn; Austria
- 52.599998474121094,19.100000381469727,6383cf
- (1) Polska; Poland
- 51.4463005065918,6.639599800109863,6383cf
- (1) Moers; Germany
- 54.88330078125,12.050000190734863,6383cf
- (1) Stubbekøbing; Denmark
- 10.002400398254395,-84.11650085449219,6383cf
- (1) Heredia; Costa Rica
- 42.457000732421875,-6.0183000564575195,6383cf
- (1) San Justo De La Vega; Spain
- 35.46670150756836,48.88330078125,6383cf
- (1) Gostar; Iran, Islamic Republic of
- 43.562400817871094,7.127799987792969,6383cf
- (1) Antibes; France
- 50.08330154418945,19.91670036315918,6383cf
- (1) Cracow; Poland
- 18.162599563598633,97.9269027709961,6383cf
- (1) Ban Kat; Thailand
- 22.291000366210938,114.1500015258789,6383cf
- (1) Central District; Hong Kong
- 33.70000076293945,73.16670227050781,6383cf
- (1) Islamabad; Pakistan
- 48.099998474121094,16.283300399780273,6383cf
- (1) Modling; Austria
- 53.45000076293945,9.699999809265137,6383cf
- (1) Buxtehude; Germany
- 30.07710075378418,31.285900115966797,6383cf
- (1) Cairo; Egypt
- 29.56279945373535,106.55280303955078,6383cf
- (1) Chongqing; China
- 41.150001525878906,-8.616700172424316,6383cf
- (1) Porto; Portugal
- 51.750301361083984,11.977999687194824,6383cf
- (1) Köthen; Germany
- 49.48830032348633,8.464699745178223,6383cf
- (1) Mannheim; Germany
- 50.099998474121094,45.400001525878906,6383cf
- (1) Kamyshin; Russian Federation
- 37.33879852294922,-121.89140319824219,6383cf
- (1) San Jose; United States
- 51.215999603271484,7.1417999267578125,6383cf
- (1) Wuppertal; Germany
- 16.850000381469727,-99.91670227050781,6383cf
- (1) Acapulco; Mexico
- 53.599998474121094,-2.299999952316284,6383cf
- (1) Bury; United Kingdom
- 52.28580093383789,4.866700172424316,6383cf
- (1) Amstelveen; Netherlands
- 45.27690124511719,14.260299682617188,6383cf
- (1) Medveja; Croatia
News
- 2021-07-01 New release is ready: Spike 1.6.0rc2.
- 2021-02-22 New release is ready: Spike 1.6.0rc1.
- 2020-12-14 New beta release for linux: Spike 1.6.0-beta.
- 2019-07-03 New release is ready: Spike 1.4.4.
- 2019-05-29 New release is ready: Spike 1.4.3.
- 2019-05-09 New release is ready: Spike 1.4.2.
- 2019-04-27 New release is ready: Spike 1.4.1.
- 2019-04-21 New release is ready: Spike 1.4.0.
- 2018-10-08 First release for Linux & OSX is ready.
- 2018-08-09 First news: we are here.
- CHANGELOG
Downloads
- Linux (Intel only, 64bit)
** page is under update
- Mac OS X (10.12+, Intel only, 64bit)
** page is under update
- Windows (version 10 or greater)
** page is under update
!!!! Beta
* Linux (Intel only, 64bit)
** page is under update
** spike-1.6.0-beta-linux64-20201214
* All platforms
** page is under update
test-case
See Installation for what to do with the downloaded file.
General Description
Spike is a tool for efficient and reproducible simulation of stochastic/continuous/hybrid Petri nets, coloured or uncoloured ones. It is a command line tool with a set of commands and allows for executing a configuration script to run a simulation.
Features:
- runs on: Linux, Mac, Windows
- support of SBML models
- conversion between different file formats:
- SBML to: ANDL, PNML, ERODE
- CANDL to: ANDL, PNML, ERODE
- ANDL to: PNML, ERODE
- ERODE to: ANDL, PNML
- support for simulation:
- stochastic (Gillespie’s SSA, tau leaping, delta leaping, fau),
- continuous (BDF, ADAMS, classic, Rosenbrock, Euler),
- hybrid algorithms(HRSSA, accelerated HRSSA, static, accelerated static, dynamic)
- pruning of clean siphons and constant places
- unfolding of coloured Petri nets
- human readable configuration script to configure model parameters and simulation options
Installation
Spike is distributed as single zip files which include a statically linked single executable and a set of examples.
Installation steps:
- unzip Spike's package to destination folder;
- optionally, if the
spike-[version]
file is not executable, grant execute permission e.g.: chmod 755 spike-[version]
- optionally, rename the file
spike-[version]
to spike
;
- check Spike's version by typing in the command line interface (CLI) the command:
spike version
expected output:
Spike: v[version number]
Printing the list of available commands:
spike help
or:
spike
expected output:
usage: help -c=[command]
commands:
exe execute configuration file
version display Spike version
help display help
save save net to file
prune prune net
eval evaluate constants & places
unfold unfold coloured net
load load net from file
Manuals and Tutorials
index
Executing a sequence of commands
Spike has a list of commands, each with its own list of parameters, which can be executed. Commands are processed in a sequential way. This means that, when the model is not in memory, the load
command must be at the beginning of the command chain. Let's consider the following use case: model pruning and saving the pruned model to a file:
spike load -f=fileName prune -cs save -f=prunedFileName
First, Spike has to load the model from a file into the memory, next to prune any clean siphons, and finally to save the pruned model to the given file.
The following example present unfolding of coloured net presented as CANDL . The results fo unfolding is will be saved as uncoloured net (ANDL):
spike load -f=colouredFileName.candl unfold save -f=uncolouredFileName.andl
Executing a configuration script
The following command will start the execution of a prepared simulation experiment by reading a configuration script.
spike exe -f=path/to/file.spc
All logs are stored in the folder named logs
.
To run the configuration script examples included in the distribution kit, Spike must be executed in the directory where the examples are located; e.g.:
spike exe -f=conf-sim-andl.spc
All results and subfolders with logs will be stored under the current directory.
List of commands:
version
- display Spike version
help
- -c=[command] - display help for a given command
exe
- execute configuration script
- -f=[fileName] - loads a configuration script file from a given path
- -p=[number=1] - max number of parallel simulations; when set to 0 - tries to set the parallel simulations to the number of available cpu cores; if not successful, set to default value 1 (sequential executing);this value is not equal to how many threads/processes will be use for additional processing/computation
- -port=[number=7777] - port used in the interprocess communication; the default value is set to 7777
- -process=[strategy=1] - process creation strategy: 1 - reuse, 2 - create new process
- -v - validate (perform dry run)
load
- load a model from a file (ANDL, CANDL, SBML, PNML, ERODE)
- -f=[fileName] - load a file from a given path; for ERODE file only the semantic of reaction network is supported, the symbolic parameters and Hill kinetics are not supported;
- -a - add scaling factors for mass/action kinetics
- -net=[type=CPN] - load SBML as continuous or stochastic PN (CPN | SPN)
- -r - load SBML with reversible reactions
- -b - load SBML with boundary conditions
save
- save the model to a file
- -f=[fileName] - save a file to a given path (ANDL, CANDL, PNML, ERODE); saving as ERODE file only the semantic of reaction network is supported; exporting to PNML is only allowed for a net without the time
- -erode [SMB | FE | BE] - while saving ERODE file extend it by a given reduction method
prune
- pruning of clean siphons and constant places
- -cs - prune clean siphons
- -lcs=[fileName] - load clean siphons from the file and prune
- -scs=[fileName] - save clean siphons to a file
- -cp - prune constant places
- -lcp=[fileName] - load constant places from the file and prune
- -scp=[fileName] - save constant places to the file
unfold
- unfold coloured PN
- -e - evaluate value expressions (tokens, multiplicity)
- -c=[constantName=value,...] - specifying new values for existing constants
eval
- evaluation of constants and places (after evaluation all constants / placec values represented by equations will be replaced by numeric value of equations)
- -p - evaluate places
- -c - evaluate constants
Configuration script examples
To comply with the demand for reproducible simulation experiments, Spike is supported by a script language which allows for model and simulation configuration. The structure of the script is easily readable for a user and does not require any special tools for editing: a simple text editor is enough. Models included in examples are part of Spike's distribution package.
Example 1 Example configuration which shows how to set up a continuous simulation.
Example 2 Example configuration of branching.
Example 3 Example configuration of a stepwise simulation.
Related Papers
- [CH19a]
J Chodak and M Heiner:
Spike – reproducible simulation experiments with configuration file branching;
In Proc. CMSB 2019, Trento, Springer, LNCS/LNBI, volume 11773, pages 315-321, September 2019. [ doi ] [ BibTeX ]
- [CH19b]
J Chodak and M Heiner:
SPIKE – as a Supporting Tool for a Model Parameters Optimization via Branched Simulations;
In Proc. 23th German Workshop on Algorithms and Tools for Petri Nets (AWPN 2019), University of Hagen, pages 18-23, October 2019. [ url ] [ pdf ] [ BibTeX ]
- [CH19b.sld]
J Chodak and M Heiner:
SPIKE – as a Supporting Tool for a Model Parameters Optimization via Branched Simulations;
Talk, AWPN2019, University of Hagen, October 2019. [ pdf ] [ BibTeX ]
- [CH18]
J Chodak and M Heiner:
Spike - a command line tool for continuous, stochastic & hybrid simulation of (coloured) Petri nets;
In Proc. 21th German Workshop on Algorithms and Tools for Petri Nets (AWPN 2018), University of Augsburg, pages 1-6, October 2018. [ url ] [ pdf ] [ BibTeX ]
- [CH18.sld]
J Chodak and M Heiner:
Spike - a command line tool for continuous, stochastic & hybrid simulation of (coloured) Petri nets;
Talk, AWPN2018, University of Augsburg, October 2018. [ pdf ] [ BibTeX ]
Related Tools
- modelling tools
- reduction of systems of ordinary differential equations (ODEs)
Bug Reports
Submit your bug reports and any comments you might have about Spike to jacek [period] chodak [snail] b-tu [period] de