Skip to content

Commit

Permalink
updated API (results file, backend, etc), documentation, tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ivborissov committed Jul 10, 2020
1 parent f3ec28a commit b5f2b8e
Show file tree
Hide file tree
Showing 121 changed files with 137,487 additions and 4,508 deletions.
77 changes: 76 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,78 @@
# SBMLCases

The package replaces SBML Runner application in order to run SBML suite simulations in Julia
The package is designed to test Simulation Software against [SBML Test Suite Cases](https://github.com/sbmlteam/sbml-test-suite) in Julia.

## Overview

SBMLCases.jl contains:
- [SBML Test Suite](https://github.com/sbmlteam/sbml-test-suite) cases in `cases_path = "./cases/semantic"`. The original Matlab models were converted to Julia with Heta compiler. Julia code for each model is stored in `./cases/semantic/<case_num>/julia`, while models' settings and tags are stored in `cases_db = "./cases.json"`.
- API (documented in the *Usage* section) to upload `cases_db`, run simulations, save results to `output_path = "./cases/output"` and update status in `results_db = "./results.json"`. A simulation can end with one of the three status: `success` indicates the output file has passed tolerance test, `failure` signifies that tolerance test for a given simulation was not passed and `error` stand for any error during the simulation (error message is printed to the `message` field in `results_db`).

Currently SBMLCases.jl suport only one `SimSolver` Simulation Backend.

## Usage

SBMLCases.jl exports the following functions:

```
upload_cases(;json::AbstractString=cases_db)
Upload cases from `cases_db`.
```

```
add_cases(;
cases_path::AbstractString=cases_path,
cases_db::AbstractString=cases_db
)
Add new cases from `cases_path` to `cases_db`.
```

```
update_results(
case::AbstractString,
cases_dict::AbstractDict=upload_cases(json=cases_db);
cases_path::AbstractString=cases_path,
cases_db::AbstractString=cases_db,
results_db::AbstractString=results_db,
backend::DataType=default_backend,
kwargs...
)
Reads `cases_db` to `cases_dict`, accesses the `case`,
solves it with the chosen `backend` solver and writes result to `results_db`.
```

```
update_results(
cases_vec::Vector{String},
cases_dict::AbstractDict=upload_cases(json=cases_db);
cases_path::AbstractString=cases_path,
cases_db::AbstractString=cases_db,
results_db::AbstractString=results_db,
backend::DataType=default_backend,
kwargs...
)
Reads `cases_db` to `cases_dict`, accesses the selected cases from `cases_vec`,
solves it with the chosen `backend` solver and writes results to `results_db`.
```

```
update_results(
cases_dict::AbstractDict=upload_cases(json=cases_db);
include_test_tags::Vector{String}=String[],
include_component_tags::Vector{String}=String[],
exclude_test_tags::Vector{String}=String[],
exclude_component_tags::Vector{String}=String[],
cases_path::AbstractString=cases_path,
cases_db::AbstractString=cases_db,
results_db::AbstractString=results_db,
backend::DataType=default_backend,
kwargs...
)
Reads `cases_db` to `cases_dict`, filters the cases according to `include` and `exclude` tags,
solves it with the chosen `backend` solver and writes results to `results_db`.
```
5 changes: 0 additions & 5 deletions SBMLCases/Project.toml

This file was deleted.

65,634 changes: 65,633 additions & 1 deletion cases.json

Large diffs are not rendered by default.

104 changes: 52 additions & 52 deletions cases/output/00004.csv
Original file line number Diff line number Diff line change
@@ -1,52 +1,52 @@
time,S1,S2
0.0,0.15,0.0
0.2,0.14297458165320048,0.01405083669359902
0.4,0.1418174316918867,0.016365136616226572
0.6,0.14171058305413248,0.016578833891735045
0.8,0.14170134081015617,0.01659731837968766
1.0,0.14170054618455744,0.01659890763088515
1.2,0.14170047790024573,0.016599044199508535
1.4,0.14170047203265482,0.016599055934690368
1.6,0.14170047152846155,0.016599056943076902
1.8,0.14170047148513698,0.016599057029725996
2.0,0.14170047148141418,0.01659905703717163
2.2,0.1417004714810943,0.016599057037811425
2.4,0.1417004714810668,0.01659905703786641
2.6,0.14170047148106443,0.016599057037871123
2.8,0.14170047148106424,0.016599057037871533
3.0,0.1417004714810642,0.01659905703787156
3.2,0.1417004714810642,0.01659905703787157
3.4,0.1417004714810642,0.01659905703787157
3.6,0.1417004714810642,0.01659905703787156
3.8,0.1417004714810642,0.01659905703787157
4.0,0.1417004714810642,0.01659905703787157
4.2,0.1417004714810642,0.01659905703787156
4.4,0.1417004714810642,0.01659905703787157
4.6,0.1417004714810642,0.01659905703787157
4.8,0.1417004714810642,0.01659905703787156
5.0,0.1417004714810642,0.01659905703787157
5.2,0.1417004714810642,0.01659905703787157
5.4,0.1417004714810642,0.01659905703787156
5.6,0.1417004714810642,0.01659905703787157
5.8,0.1417004714810642,0.01659905703787157
6.0,0.1417004714810642,0.01659905703787156
6.2,0.1417004714810642,0.01659905703787157
6.4,0.1417004714810642,0.01659905703787157
6.6,0.1417004714810642,0.01659905703787156
6.8,0.1417004714810642,0.01659905703787157
7.0,0.1417004714810642,0.01659905703787157
7.2,0.1417004714810642,0.01659905703787156
7.4,0.1417004714810642,0.01659905703787157
7.6,0.1417004714810642,0.01659905703787157
7.8,0.1417004714810642,0.01659905703787156
8.0,0.1417004714810642,0.01659905703787157
8.2,0.1417004714810642,0.01659905703787157
8.4,0.1417004714810642,0.01659905703787156
8.6,0.1417004714810642,0.01659905703787157
8.8,0.1417004714810642,0.01659905703787157
9.0,0.1417004714810642,0.01659905703787156
9.2,0.1417004714810642,0.01659905703787157
9.4,0.1417004714810642,0.01659905703787157
9.6,0.1417004714810642,0.01659905703787156
9.8,0.1417004714810642,0.01659905703787157
10.0,0.1417004714810642,0.016599057037871567
time,S1_,S2_
0.0,1.0,0.0
0.2,0.8187307530780784,0.18126924692192162
0.4,0.670320046061308,0.329679953938692
0.6,0.5488116361228628,0.4511883638771372
0.8,0.4493289641373483,0.5506710358626518
1.0,0.3678794411471917,0.6321205588528083
1.2,0.3011942131376173,0.6988057868623827
1.4,0.2465969648338056,0.7534030351661943
1.6,0.2018965184687337,0.7981034815312663
1.8,0.16529888784824678,0.8347011121517531
2.0,0.1353352826311758,0.8646647173688241
2.2,0.11080315786667538,0.8891968421333246
2.4,0.9071795440746309,0.992820455925369
2.6,0.7427357988087016,1.1572642011912984
2.8,0.6081006435600884,1.2918993564399115
3.0,0.49787069229346204,1.402129307706538
3.2,0.40762204704550836,1.4923779529544916
3.4,0.333732697460766,1.566267302539234
3.6,0.27323722298126396,1.6267627770187358
3.8,0.2237077218051885,1.6762922781948113
4.0,0.18315639109018358,1.7168436089098162
4.2,0.14995576812061612,1.7500442318793836
4.4,0.12277339850590555,1.7772266014940943
4.6,0.10051835367024856,1.7994816463297512
4.8,0.8229746743641412,1.9770253256357582
5.0,0.6737946895232741,2.126205310476625
5.2,0.5516564298513958,2.2483435701485033
5.4,0.45165807935100505,2.348341920648894
5.6,0.3697863566445127,2.4302136433553865
5.8,0.3027554524245839,2.4972445475753156
6.0,0.24787520029794746,2.552124799701952
6.2,0.20294305204381505,2.5970569479560845
6.4,0.16615571645640692,2.6338442835434925
6.6,0.13603679465494573,2.663963205344954
6.8,0.11137750558685111,2.6886224944130483
7.0,0.9118818751654232,2.7881181248344564
7.2,0.7465857487503395,2.95341425124954
7.4,0.6112527298431759,3.0887472701567034
7.6,0.5004513941647138,3.1995486058351656
7.8,0.40973494346376443,3.290265056536115
8.0,0.3354625898996394,3.36453741010024
8.2,0.27465352496216977,3.4253464750377094
8.4,0.22486728784005916,3.47513271215982
8.6,0.18410576488189817,3.515894235117981
8.8,0.15073305079560467,3.5492669492042745
9.0,0.12340978423008243,3.5765902157697966
9.2,0.10103938457103766,3.5989606154288416
9.4,0.8272405340680946,3.7727594659317623
9.6,0.6772872655599373,3.9227127344399193
9.8,0.5545159129551971,4.04548408704466
10.0,0.4539992307842085,4.146000769215648
102 changes: 51 additions & 51 deletions cases/output/00005.csv
Original file line number Diff line number Diff line change
@@ -1,52 +1,52 @@
time,S1,S2
time,S1_,S2_
0.0,0.00015,0.00015
0.1,0.00013572561271483168,0.0001642743872851683
0.2,0.00012280961297877655,0.00017719038702122342
0.3,0.00011112273312543865,0.00018887726687456132
0.4,0.00010054800693331254,0.00019945199306668743
0.5,9.09795989885266e-5,0.00020902040101147338
0.6,8.23217454484497e-5,0.0002176782545515503
0.7,7.44877956049683e-5,0.0002255122043950317
0.8,6.739934465507645e-5,0.00023260065534492353
0.9,6.098544899925579e-5,0.0002390145510007442
1.0,5.518191621408741e-5,0.00024481808378591256
1.1,4.993066259290346e-5,0.0002500693374070965
1.2,4.517913182452901e-5,0.00025482086817547097
1.3,4.087976899205568e-5,0.00025912023100794427
1.4,3.698954462725026e-5,0.0002630104553727497
1.5,3.346952405717435e-5,0.0002665304759428256
1.6,3.0284477732891922e-5,0.000269715522267108
1.7,2.7402528640302895e-5,0.000272597471359697
1.8,2.479483326427223e-5,0.00027520516673572765
1.9,2.2435292913036245e-5,0.0002775647070869636
2.0,2.0300292513723772e-5,0.0002796997074862761
2.1,1.8368464264769808e-5,0.00028163153573523006
2.2,1.6620473779775818e-5,0.000283379526220224
2.3,1.5038826582472454e-5,0.00028496117341752743
2.4,1.3607693016121149e-5,0.0002863923069838787
2.5,1.2312749814989193e-5,0.0002876872501850107
2.6,1.1141036752292259e-5,0.0002888589632477076
2.7,1.0080826929888836e-5,0.00028991917307011106
2.8,9.121509411542257e-6,0.0002908784905884576
2.9,8.253483025104512e-6,0.0002917465169748954
3.0,7.468060270758482e-6,0.0002925319397292414
3.1,6.757380373599913e-6,0.0002932426196264
3.2,6.114330610360177e-6,0.0002938856693896397
3.3,5.532475122881242e-6,0.00029446752487711863
3.4,5.005990505884135e-6,0.0002949940094941157
3.5,4.529607524371697e-6,0.00029547039247562816
3.6,4.098558377353737e-6,0.00029590144162264617
3.7,3.7085289800922824e-6,0.0002962914710199076
3.8,3.355615787291567e-6,0.0002966443842127083
3.9,3.036286725104735e-6,0.00029696371327489517
4.0,2.7473458409516654e-6,0.00029725265415904824
4.1,2.4859013173513956e-6,0.0002975140986826485
4.2,2.2493365296408347e-6,0.00029775066347035906
4.3,2.0352838579157028e-6,0.0002979647161420842
4.4,1.8416009910947652e-6,0.0002981583990089051
4.5,1.6663494859505222e-6,0.00029833365051404933
4.6,1.507775366517863e-6,0.000298492224633482
4.7,1.3642915697131113e-6,0.0002986357084302867
4.8,1.234462061473277e-6,0.00029876553793852656
4.9,1.1169874644444974e-6,0.00029888301253555533
5.0,1.010692053376773e-6,0.00029898930794662306
0.1,0.00013572561270539372,0.00016427438729460625
0.2,0.00012280961296169915,0.00017719038703830083
0.3,0.00011112273310186594,0.00018887726689813402
0.4,0.00010054800690935297,0.000199451993090647
0.5,9.097959900104418e-5,0.00020902040099895578
0.6,8.232174548052376e-5,0.0002176782545194762
0.7,7.448779561149164e-5,0.00022551220438850832
0.8,6.739934464387997e-5,0.00023260065535611997
0.9,6.0985448993379165e-5,0.0002390145510066208
1.0,5.518191618163733e-5,0.0002448180838183626
1.1,4.993066253462524e-5,0.0002500693374653747
1.2,4.517913175659991e-5,0.00025482086824340003
1.3,4.087976904930237e-5,0.0002591202309506976
1.4,3.69895450294831e-5,0.0002630104549705168
1.5,3.346952473523824e-5,0.0002665304752647617
1.6,3.0284478365190325e-5,0.00026971552163480964
1.7,2.7402528989385644e-5,0.0002725974710106143
1.8,2.47948333884863e-5,0.00027520516661151364
1.9,2.243529302392129e-5,0.00027756470697607865
2.0,2.0300292641689512e-5,0.00027969970735831044
2.1,1.8368464166747164e-5,0.0002816315358332528
2.2,1.662047335351365e-5,0.0002833795266464863
2.3,1.5038826133057045e-5,0.0002849611738669429
2.4,1.360769260798726e-5,0.00028639230739201273
2.5,1.2312749569337599e-5,0.0002876872504306624
2.6,1.1141036811850394e-5,0.0002888589631881496
2.7,1.0080827264386651e-5,0.00028991917273561333
2.8,9.121509816299667e-6,0.0002908784901837003
2.9,8.253483279589298e-6,0.00029174651672041066
3.0,7.4680602981646e-6,0.00029253193970183534
3.1,6.757380269461924e-6,0.00029324261973053803
3.2,6.114330518983007e-6,0.000293885669481017
3.3,5.532475064993293e-6,0.0002944675249350067
3.4,5.00599032869343e-6,0.00029499400967130654
3.5,4.529607084618693e-6,0.00029547039291538126
3.6,4.098557806808657e-6,0.0002959014421931913
3.7,3.7085284580834826e-6,0.0002962914715419165
3.8,3.35561532243618e-6,0.00029664438467756377
3.9,3.036286354594513e-6,0.00029696371364540543
4.0,2.7473455857585875e-6,0.0002972526544142414
4.1,2.4859011472762736e-6,0.0002975140988527237
4.2,2.2493363815390695e-6,0.0002977506636184609
4.3,2.03528368149191e-6,0.00029796471631850804
4.4,1.8416007808291556e-6,0.0002981583992191708
4.5,1.6663492739613116e-6,0.00029833365072603866
4.6,1.5077751822807639e-6,0.0002984922248177192
4.7,1.3642914011327701e-6,0.0002986357085988672
4.8,1.2344618601896144e-6,0.00029876553813981037
4.9,1.116987208676993e-6,0.00029888301279132296
5.0,1.010691796069831e-6,0.00029898930820393014
2 changes: 1 addition & 1 deletion cases/output/00006.csv
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
time,S1,S2
time,S1_,S2_
0.0,0.0015,0.0015
0.1,0.0015,0.0015
0.2,0.0015,0.0015
Expand Down
Loading

0 comments on commit b5f2b8e

Please sign in to comment.