Skip to content

Commit f423b0d

Browse files
dweindldilpath
andauthored
Overview table: link to respective publication (#149)
Add reference links to table based on SBML annotations. NOTE: Not all current models are properly annotated. Co-authored-by: Dilan Pathirana <59329744+dilpath@users.noreply.github.com>
1 parent 740de70 commit f423b0d

2 files changed

Lines changed: 59 additions & 34 deletions

File tree

Benchmark-Models/model_info.py

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
"""Print some stats for each benchmark problem"""
33

44
import os
5-
from typing import Dict
5+
from typing import Dict, List
66

7+
import libsbml
78
import numpy as np
89
import pandas as pd
910
import petab
1011

11-
1212
markdown_columns = {
1313
'conditions': 'Conditions',
1414
'estimated_parameters': 'Estimated Parameters',
@@ -17,6 +17,7 @@
1717
'name': 'Model ID',
1818
'observables': 'Observables',
1919
'species': 'Species',
20+
'reference_uris': 'References',
2021
}
2122

2223
index_column = 'name'
@@ -42,9 +43,25 @@ def get_problem_info(
4243
len(problem.measurement_df[petab.OBSERVABLE_ID].unique()),
4344
'species':
4445
len(problem.sbml_model.getListOfSpecies()),
46+
'reference_uris':
47+
get_reference_uris(problem.sbml_model),
4548
}
4649

4750

51+
def get_reference_uris(sbml_model: libsbml.Model) -> List[str]:
52+
"""Get publication URIs from SBML is-described-by annotation"""
53+
cv_terms = sbml_model.getCVTerms()
54+
reference_uris = []
55+
for anno in cv_terms:
56+
if anno.getBiologicalQualifierType() != libsbml.BQB_IS_DESCRIBED_BY:
57+
continue
58+
resources = anno.getResources()
59+
for i in range(resources.getNumAttributes()):
60+
uri = resources.getValue(i)
61+
reference_uris.append(uri)
62+
return reference_uris
63+
64+
4865
def get_overview_table(path: str = None) -> pd.DataFrame:
4966
"""Get overview table with stats for all benchmark problems"""
5067
model_list = os.scandir(path=path)
@@ -63,15 +80,21 @@ def get_overview_table(path: str = None) -> pd.DataFrame:
6380

6481

6582
def main(
66-
markdown: bool = False,
83+
markdown: bool = False,
6784
):
6885
df = get_overview_table()
6986

7087
pd.options.display.width = 0
7188

7289
if markdown:
90+
# directory as markdown link
7391
df.rename(index=lambda x: f"[{x}](Benchmark-Models/{x}/)",
7492
inplace=True)
93+
# references to markdown links
94+
df['reference_uris'] = df['reference_uris'].apply(
95+
lambda x: " ".join([f"[\\[{i + 1}\\]]({uri})"
96+
for i, uri in enumerate(x)])
97+
)
7598
df.index.rename(markdown_columns[index_column], inplace=True)
7699
df.rename(columns=markdown_columns, inplace=True)
77100
print(df.to_markdown())
@@ -81,6 +104,7 @@ def main(
81104

82105
if __name__ == '__main__':
83106
import sys
107+
84108
markdown = False
85109
if '--markdown' in sys.argv:
86110
markdown = True

README.md

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,38 @@ A collection of mathematical models with experimental data in the [PEtab](https:
44
Contributions to the collection are very welcome. For this, please create a new branch, add your model and test your files with the provided functions, and start a pull request. We will then check your model and merge it into the collection. We are continuously working on the extension of the collection.
55

66
## Overview
7-
| Model ID | Conditions | Estimated Parameters | Events | Measurements | Observables | Species |
8-
|:---------------------------------------------------------------------------------------------|-------------:|-----------------------:|---------:|---------------:|--------------:|----------:|
9-
| [Alkan_SciSignal2018](Benchmark-Models/Alkan_SciSignal2018/) | 73 | 56 | 0 | 1733 | 12 | 36 |
10-
| [Bachmann_MSB2011](Benchmark-Models/Bachmann_MSB2011/) | 36 | 113 | 0 | 541 | 20 | 25 |
11-
| [Beer_MolBioSystems2014](Benchmark-Models/Beer_MolBioSystems2014/) | 19 | 72 | 0 | 27132 | 2 | 4 |
12-
| [Bertozzi_PNAS2020](Benchmark-Models/Bertozzi_PNAS2020/) | 2 | 3 | 0 | 138 | 1 | 3 |
13-
| [Blasi_CellSystems2016](Benchmark-Models/Blasi_CellSystems2016/) | 1 | 9 | 0 | 252 | 15 | 16 |
14-
| [Boehm_JProteomeRes2014](Benchmark-Models/Boehm_JProteomeRes2014/) | 1 | 9 | 0 | 48 | 3 | 8 |
15-
| [Borghans_BiophysChem1997](Benchmark-Models/Borghans_BiophysChem1997/) | 1 | 23 | 0 | 111 | 1 | 3 |
16-
| [Brannmark_JBC2010](Benchmark-Models/Brannmark_JBC2010/) | 8 | 22 | 0 | 43 | 3 | 9 |
17-
| [Bruno_JExpBot2016](Benchmark-Models/Bruno_JExpBot2016/) | 6 | 13 | 0 | 77 | 5 | 7 |
18-
| [Chen_MSB2009](Benchmark-Models/Chen_MSB2009/) | 4 | 155 | 0 | 120 | 3 | 500 |
19-
| [Crauste_CellSystems2017](Benchmark-Models/Crauste_CellSystems2017/) | 1 | 12 | 0 | 21 | 4 | 5 |
20-
| [Elowitz_Nature2000](Benchmark-Models/Elowitz_Nature2000/) | 1 | 21 | 0 | 58 | 1 | 8 |
21-
| [Fiedler_BMC2016](Benchmark-Models/Fiedler_BMC2016/) | 3 | 22 | 0 | 72 | 2 | 6 |
22-
| [Fujita_SciSignal2010](Benchmark-Models/Fujita_SciSignal2010/) | 6 | 19 | 0 | 144 | 3 | 9 |
23-
| [Giordano_Nature2020](Benchmark-Models/Giordano_Nature2020/) | 1 | 50 | 0 | 313 | 7 | 13 |
24-
| [Isensee_JCB2018](Benchmark-Models/Isensee_JCB2018/) | 123 | 46 | 0 | 687 | 3 | 25 |
25-
| [Laske_PLOSComputBiol2019](Benchmark-Models/Laske_PLOSComputBiol2019/) | 3 | 13 | 0 | 42 | 13 | 41 |
26-
| [Lucarelli_CellSystems2018](Benchmark-Models/Lucarelli_CellSystems2018/) | 16 | 84 | 0 | 1755 | 65 | 33 |
27-
| [Okuonghae_ChaosSolitonsFractals2020](Benchmark-Models/Okuonghae_ChaosSolitonsFractals2020/) | 1 | 16 | 0 | 92 | 2 | 9 |
28-
| [Oliveira_NatCommun2021](Benchmark-Models/Oliveira_NatCommun2021/) | 1 | 12 | 0 | 120 | 2 | 9 |
29-
| [Perelson_Science1996](Benchmark-Models/Perelson_Science1996/) | 1 | 3 | 0 | 16 | 1 | 4 |
30-
| [Rahman_MBS2016](Benchmark-Models/Rahman_MBS2016/) | 1 | 9 | 0 | 23 | 1 | 7 |
31-
| [Raimundez_PCB2020](Benchmark-Models/Raimundez_PCB2020/) | 170 | 136 | 0 | 627 | 79 | 22 |
32-
| [SalazarCavazos_MBoC2020](Benchmark-Models/SalazarCavazos_MBoC2020/) | 4 | 6 | 0 | 18 | 3 | 75 |
33-
| [Schwen_PONE2014](Benchmark-Models/Schwen_PONE2014/) | 19 | 30 | 0 | 286 | 4 | 11 |
34-
| [Sneyd_PNAS2002](Benchmark-Models/Sneyd_PNAS2002/) | 9 | 15 | 0 | 135 | 1 | 6 |
35-
| [Weber_BMC2015](Benchmark-Models/Weber_BMC2015/) | 2 | 36 | 0 | 135 | 8 | 7 |
36-
| [Zhao_QuantBiol2020](Benchmark-Models/Zhao_QuantBiol2020/) | 7 | 28 | 0 | 82 | 1 | 5 |
37-
| [Zheng_PNAS2012](Benchmark-Models/Zheng_PNAS2012/) | 1 | 46 | 0 | 60 | 15 | 15 |
7+
8+
| Model ID | Conditions | Estimated Parameters | Events | Measurements | Observables | Species | References |
9+
|:---------------------------------------------------------------------------------------------|-------------:|-----------------------:|---------:|---------------:|--------------:|----------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
10+
| [Alkan_SciSignal2018](Benchmark-Models/Alkan_SciSignal2018/) | 73 | 56 | 0 | 1733 | 12 | 36 | [\[1\]](http://identifiers.org/doi/10.1126/scisignal.aat0229) |
11+
| [Bachmann_MSB2011](Benchmark-Models/Bachmann_MSB2011/) | 36 | 113 | 0 | 541 | 20 | 25 | [\[1\]](http://identifiers.org/doi/10.1038/msb.2011.50) |
12+
| [Beer_MolBioSystems2014](Benchmark-Models/Beer_MolBioSystems2014/) | 19 | 72 | 0 | 27132 | 2 | 4 | [\[1\]](http://identifiers.org/doi/10.1039/c3mb70594c) |
13+
| [Bertozzi_PNAS2020](Benchmark-Models/Bertozzi_PNAS2020/) | 2 | 3 | 0 | 138 | 1 | 3 | [\[1\]](http://identifiers.org/pubmed/32616574) |
14+
| [Blasi_CellSystems2016](Benchmark-Models/Blasi_CellSystems2016/) | 1 | 9 | 0 | 252 | 15 | 16 | [\[1\]](http://identifiers.org/doi/10.1016/j.cels.2016.01.002) |
15+
| [Boehm_JProteomeRes2014](Benchmark-Models/Boehm_JProteomeRes2014/) | 1 | 9 | 0 | 48 | 3 | 8 | [\[1\]](http://identifiers.org/doi/10.1021/pr5006923) |
16+
| [Borghans_BiophysChem1997](Benchmark-Models/Borghans_BiophysChem1997/) | 1 | 23 | 0 | 111 | 1 | 3 | [\[1\]](http://identifiers.org/doi/10.1016/s0301-4622(97)00010-0) |
17+
| [Brannmark_JBC2010](Benchmark-Models/Brannmark_JBC2010/) | 8 | 22 | 0 | 43 | 3 | 9 | [\[1\]](http://identifiers.org/doi/10.1074/jbc.M110.106849) |
18+
| [Bruno_JExpBot2016](Benchmark-Models/Bruno_JExpBot2016/) | 6 | 13 | 0 | 77 | 5 | 7 | [\[1\]](http://identifiers.org/doi/10.1093/jxb/erw356) |
19+
| [Chen_MSB2009](Benchmark-Models/Chen_MSB2009/) | 4 | 155 | 0 | 120 | 3 | 500 | [\[1\]](http://identifiers.org/doi/10.1038/msb.2008.74) |
20+
| [Crauste_CellSystems2017](Benchmark-Models/Crauste_CellSystems2017/) | 1 | 12 | 0 | 21 | 4 | 5 | [\[1\]](http://identifiers.org/doi/10.1016/j.cels.2017.01.014) |
21+
| [Elowitz_Nature2000](Benchmark-Models/Elowitz_Nature2000/) | 1 | 21 | 0 | 58 | 1 | 8 | [\[1\]](http://identifiers.org/doi/10.1038/35002125) |
22+
| [Fiedler_BMC2016](Benchmark-Models/Fiedler_BMC2016/) | 3 | 22 | 0 | 72 | 2 | 6 | [\[1\]](http://identifiers.org/doi/10.1186/s12918-016-0319-7) |
23+
| [Fujita_SciSignal2010](Benchmark-Models/Fujita_SciSignal2010/) | 6 | 19 | 0 | 144 | 3 | 9 | |
24+
| [Giordano_Nature2020](Benchmark-Models/Giordano_Nature2020/) | 1 | 50 | 0 | 313 | 7 | 13 | [\[1\]](http://identifiers.org/pubmed/32322102) |
25+
| [Isensee_JCB2018](Benchmark-Models/Isensee_JCB2018/) | 123 | 46 | 0 | 687 | 3 | 25 | [\[1\]](http://identifiers.org/doi/10.1083/jcb.201708053) |
26+
| [Laske_PLOSComputBiol2019](Benchmark-Models/Laske_PLOSComputBiol2019/) | 3 | 13 | 0 | 42 | 13 | 41 | [\[1\]](http://identifiers.org/biomodels.db/BIOMD0000000463) [\[2\]](http://identifiers.org/biomodels.db/MODEL1307270000) [\[3\]](http://identifiers.org/pubmed/22593159) |
27+
| [Lucarelli_CellSystems2018](Benchmark-Models/Lucarelli_CellSystems2018/) | 16 | 84 | 0 | 1755 | 65 | 33 | [\[1\]](http://identifiers.org/doi/10.1016/j.cels.2017.11.010) |
28+
| [Okuonghae_ChaosSolitonsFractals2020](Benchmark-Models/Okuonghae_ChaosSolitonsFractals2020/) | 1 | 16 | 0 | 92 | 2 | 9 | |
29+
| [Oliveira_NatCommun2021](Benchmark-Models/Oliveira_NatCommun2021/) | 1 | 12 | 0 | 120 | 2 | 9 | |
30+
| [Perelson_Science1996](Benchmark-Models/Perelson_Science1996/) | 1 | 3 | 0 | 16 | 1 | 4 | [\[1\]](http://identifiers.org/doi/10.1126/science.271.5255.1582) |
31+
| [Rahman_MBS2016](Benchmark-Models/Rahman_MBS2016/) | 1 | 9 | 0 | 23 | 1 | 7 | |
32+
| [Raimundez_PCB2020](Benchmark-Models/Raimundez_PCB2020/) | 170 | 136 | 0 | 627 | 79 | 22 | |
33+
| [SalazarCavazos_MBoC2020](Benchmark-Models/SalazarCavazos_MBoC2020/) | 4 | 6 | 0 | 18 | 3 | 75 | |
34+
| [Schwen_PONE2014](Benchmark-Models/Schwen_PONE2014/) | 19 | 30 | 0 | 286 | 4 | 11 | [\[1\]](http://identifiers.org/doi/10.1371/journal.pone.0133653) |
35+
| [Sneyd_PNAS2002](Benchmark-Models/Sneyd_PNAS2002/) | 9 | 15 | 0 | 135 | 1 | 6 | [\[1\]](http://identifiers.org/doi/10.1073/pnas.032281999) |
36+
| [Weber_BMC2015](Benchmark-Models/Weber_BMC2015/) | 2 | 36 | 0 | 135 | 8 | 7 | [\[1\]](http://identifiers.org/doi/10.1186/s12918-015-0147-1) |
37+
| [Zhao_QuantBiol2020](Benchmark-Models/Zhao_QuantBiol2020/) | 7 | 28 | 0 | 82 | 1 | 5 | [\[1\]](http://identifiers.org/pubmed/32219006) |
38+
| [Zheng_PNAS2012](Benchmark-Models/Zheng_PNAS2012/) | 1 | 46 | 0 | 60 | 15 | 15 | [\[1\]](http://identifiers.org/doi/10.1073/pnas.1201240109) |
3839

3940
## License
4041

0 commit comments

Comments
 (0)