Logo

software

data structures and software dependability

computer science department

brandenburg university of technology cottbus - senftenberg

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

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:

  1. unzip Spike's package to destination folder;
  2. optionally, if the spike-[version] file is not executable, grant execute permission e.g.: chmod 755 spike-[version]
  3. optionally, rename the file spike-[version] to spike;
  4. 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.

MODEL

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

… the end …

Any comments or questions are welcome. Please direct them to monika [period] heiner [snail] b-tu [period] de Privacy Policy