From 11e1613aac4f51c6a4410fe778c82ae920e1d5a4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Jul 2026 14:10:41 +0000 Subject: [PATCH 1/6] Initial plan From 909e7747da4687464ba5bd9de6c5493546a276d2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Jul 2026 14:23:14 +0000 Subject: [PATCH 2/6] Fix invalid mapping table entries in PySB test cases 0010, 0011, 0013, 0017; add lint regression test --- petabtests/cases/v2.0.0/pysb/0010/0010.py | 8 ++-- .../cases/v2.0.0/pysb/0010/_conditions.tsv | 4 +- .../cases/v2.0.0/pysb/0010/_mapping.tsv | 4 +- petabtests/cases/v2.0.0/pysb/0011/0011.py | 6 +-- .../cases/v2.0.0/pysb/0011/_conditions.tsv | 2 +- .../cases/v2.0.0/pysb/0011/_mapping.tsv | 4 +- petabtests/cases/v2.0.0/pysb/0013/0013.py | 6 +-- .../cases/v2.0.0/pysb/0013/_conditions.tsv | 2 +- .../cases/v2.0.0/pysb/0013/_mapping.tsv | 4 +- petabtests/cases/v2.0.0/pysb/0017/0017.py | 8 ++-- .../cases/v2.0.0/pysb/0017/_conditions.tsv | 6 +-- .../cases/v2.0.0/pysb/0017/_mapping.tsv | 4 +- test/test_general.py | 39 +++++++++++++++++++ 13 files changed, 68 insertions(+), 29 deletions(-) diff --git a/petabtests/cases/v2.0.0/pysb/0010/0010.py b/petabtests/cases/v2.0.0/pysb/0010/0010.py index a0c475f..96d7276 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/0010.py +++ b/petabtests/cases/v2.0.0/pysb/0010/0010.py @@ -24,8 +24,8 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("preeq_c0", k1=0.3, B=0) -problem.add_condition("c0", k1=0.8, B=1) +problem.add_condition("preeq_c0", k1=0.3, B_o=0) +problem.add_condition("c0", k1=0.8, B_o=1) problem.add_experiment("e0", TIME_PREEQUILIBRATION, "preeq_c0", 0, "c0") @@ -35,8 +35,8 @@ problem.add_measurement("obs_a", experiment_id="e0", time=10, measurement=0.1) problem.add_parameter("k2", lb=0, ub=10, nominal_value=0.6, estimate=True) -problem.add_mapping("A", "A_() ** compartment") -problem.add_mapping("B", "B_() ** compartment") +problem.add_mapping("A_o", "A_() ** compartment") +problem.add_mapping("B_o", "B_() ** compartment") # solutions ------------------------------------------------------------------ diff --git a/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv index 01d5b3d..2e21373 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv @@ -1,5 +1,5 @@ conditionId targetId targetValue preeq_c0 k1 0.3 -preeq_c0 B 0.0 +preeq_c0 B_o 0.0 c0 k1 0.8 -c0 B 1.0 +c0 B_o 1.0 diff --git a/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv index 2fee7f7..54ec18f 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A A_() ** compartment -B B_() ** compartment +A_o A_() ** compartment +B_o B_() ** compartment diff --git a/petabtests/cases/v2.0.0/pysb/0011/0011.py b/petabtests/cases/v2.0.0/pysb/0011/0011.py index c904997..b7bb9b3 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/0011.py +++ b/petabtests/cases/v2.0.0/pysb/0011/0011.py @@ -21,7 +21,7 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("c0", B=2) +problem.add_condition("c0", B_o=2) problem.add_experiment("e0", 0, "c0") @@ -33,8 +33,8 @@ problem.add_parameter("k1", lb=0, ub=10, nominal_value=0.8, estimate=True) problem.add_parameter("k2", lb=0, ub=10, nominal_value=0.6, estimate=True) -problem.add_mapping("A", "A_() ** compartment") -problem.add_mapping("B", "B_() ** compartment") +problem.add_mapping("A_o", "A_() ** compartment") +problem.add_mapping("B_o", "B_() ** compartment") # solutions ------------------------------------------------------------------ diff --git a/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv index 5d968f9..334c5ff 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv @@ -1,2 +1,2 @@ conditionId targetId targetValue -c0 B 2.0 +c0 B_o 2.0 diff --git a/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv index 2fee7f7..54ec18f 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A A_() ** compartment -B B_() ** compartment +A_o A_() ** compartment +B_o B_() ** compartment diff --git a/petabtests/cases/v2.0.0/pysb/0013/0013.py b/petabtests/cases/v2.0.0/pysb/0013/0013.py index 0a16c1a..c0c05fb 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/0013.py +++ b/petabtests/cases/v2.0.0/pysb/0013/0013.py @@ -19,7 +19,7 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("c0", B="par") +problem.add_condition("c0", B_o="par") problem.add_experiment("e0", 0, "c0") problem.add_observable("obs_a", "A", noise_formula=0.5) @@ -30,8 +30,8 @@ problem.add_parameter("k2", lb=0, ub=10, nominal_value=0.6, estimate=True) problem.add_parameter("par", lb=0, ub=10, nominal_value=7, estimate=True) -problem.add_mapping("A", "A_() ** compartment") -problem.add_mapping("B", "B_() ** compartment") +problem.add_mapping("A_o", "A_() ** compartment") +problem.add_mapping("B_o", "B_() ** compartment") # solutions ------------------------------------------------------------------ diff --git a/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv index d2e474f..04c824b 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv @@ -1,2 +1,2 @@ conditionId targetId targetValue -c0 B par +c0 B_o par diff --git a/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv index 2fee7f7..54ec18f 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A A_() ** compartment -B B_() ** compartment +A_o A_() ** compartment +B_o B_() ** compartment diff --git a/petabtests/cases/v2.0.0/pysb/0017/0017.py b/petabtests/cases/v2.0.0/pysb/0017/0017.py index d2af56e..fb8ba30 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/0017.py +++ b/petabtests/cases/v2.0.0/pysb/0017/0017.py @@ -32,8 +32,8 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("preeq_c0", k1=0.3, B=2.0, A=0) -problem.add_condition("c0", k1=0.8, A=1) +problem.add_condition("preeq_c0", k1=0.3, B_o=2.0, A_o=0) +problem.add_condition("c0", k1=0.8, A_o=1) problem.add_experiment("e0", TIME_PREEQUILIBRATION, "preeq_c0", 0, "c0") problem.add_observable("obs_a", "A", noise_formula=0.5) problem.add_measurement("obs_a", experiment_id="e0", time=1, measurement=0.7) @@ -41,8 +41,8 @@ problem.add_parameter( "k2", lb=0, ub=10, nominal_value=0.6, scale=LIN, estimate=True ) -problem.add_mapping("A", "A_() ** compartment") -problem.add_mapping("B", "B_() ** compartment") +problem.add_mapping("A_o", "A_() ** compartment") +problem.add_mapping("B_o", "B_() ** compartment") # solutions ------------------------------------------------------------------ diff --git a/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv index 934e234..34068e1 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv @@ -1,6 +1,6 @@ conditionId targetId targetValue preeq_c0 k1 0.3 -preeq_c0 B 2.0 -preeq_c0 A 0.0 +preeq_c0 B_o 2.0 +preeq_c0 A_o 0.0 c0 k1 0.8 -c0 A 1.0 +c0 A_o 1.0 diff --git a/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv index 2fee7f7..54ec18f 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A A_() ** compartment -B B_() ** compartment +A_o A_() ** compartment +B_o B_() ** compartment diff --git a/test/test_general.py b/test/test_general.py index e1178b2..2c7aa9b 100644 --- a/test/test_general.py +++ b/test/test_general.py @@ -1,5 +1,7 @@ import petabtests import os +import pytest +from pathlib import Path def test_cases_dir_exists(): @@ -14,3 +16,40 @@ def test_cases_dir_exists(): assert os.path.isdir( petabtests.get_cases_dir(format_="pysb", version="v2.0.0") ) + + +@pytest.mark.parametrize( + "format_,version", + [ + ("sbml", "v2.0.0"), + ("pysb", "v2.0.0"), + ], +) +def test_lint_all_v2_cases(format_, version): + """Regression test: all v2 test cases must pass PEtab linting.""" + from petab.v2.lint import lint_problem + + cases_dir = petabtests.get_cases_dir(format_=format_, version=version) + cases = sorted( + f.name + for f in os.scandir(cases_dir) + if f.is_dir() and f.name.isdigit() + ) + assert cases, f"No cases found in {cases_dir}" + + failures = {} + for case_id in cases: + yaml_path = cases_dir / case_id / f"_{case_id}.yaml" + if not yaml_path.exists(): + continue + results = lint_problem(yaml_path) + if results: + failures[case_id] = [str(r) for r in results] + + assert not failures, ( + "Linting failed for the following test cases:\n" + + "\n".join( + f" {case_id}: {'; '.join(errs)}" + for case_id, errs in sorted(failures.items()) + ) + ) From a63bad7344ec0e9cfde4d0b12c39eb233ee006d9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Jul 2026 14:29:10 +0000 Subject: [PATCH 3/6] Fix PySB mapping table conflicts: rename observables A/B to A_o/B_o --- petabtests/cases/v2.0.0/pysb/0010/0010.py | 15 +++++----- .../cases/v2.0.0/pysb/0010/_conditions.tsv | 4 +-- .../cases/v2.0.0/pysb/0010/_mapping.tsv | 4 +-- petabtests/cases/v2.0.0/pysb/0010/_model.py | 4 +-- .../cases/v2.0.0/pysb/0010/_observables.tsv | 2 +- .../cases/v2.0.0/pysb/0010/conversion_pysb.py | 29 +++++++++++++++++++ petabtests/cases/v2.0.0/pysb/0011/0011.py | 8 ++--- .../cases/v2.0.0/pysb/0011/_conditions.tsv | 2 +- .../cases/v2.0.0/pysb/0011/_mapping.tsv | 4 +-- petabtests/cases/v2.0.0/pysb/0011/_model.py | 4 +-- .../cases/v2.0.0/pysb/0011/_observables.tsv | 2 +- .../pysb/0011/conversion_modified_pysb.py | 4 +-- petabtests/cases/v2.0.0/pysb/0013/0013.py | 8 ++--- .../cases/v2.0.0/pysb/0013/_conditions.tsv | 2 +- .../cases/v2.0.0/pysb/0013/_mapping.tsv | 4 +-- petabtests/cases/v2.0.0/pysb/0013/_model.py | 4 +-- .../cases/v2.0.0/pysb/0013/_observables.tsv | 2 +- .../pysb/0013/conversion_modified_pysb.py | 4 +-- petabtests/cases/v2.0.0/pysb/0017/0017.py | 14 ++++----- .../cases/v2.0.0/pysb/0017/_conditions.tsv | 6 ++-- .../cases/v2.0.0/pysb/0017/_mapping.tsv | 4 +-- petabtests/cases/v2.0.0/pysb/0017/_model.py | 4 +-- .../cases/v2.0.0/pysb/0017/_observables.tsv | 2 +- .../cases/v2.0.0/pysb/0017/conversion_pysb.py | 29 +++++++++++++++++++ pyproject.toml | 1 + 25 files changed, 113 insertions(+), 53 deletions(-) create mode 100644 petabtests/cases/v2.0.0/pysb/0010/conversion_pysb.py create mode 100644 petabtests/cases/v2.0.0/pysb/0017/conversion_pysb.py diff --git a/petabtests/cases/v2.0.0/pysb/0010/0010.py b/petabtests/cases/v2.0.0/pysb/0010/0010.py index 96d7276..4d3a140 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/0010.py +++ b/petabtests/cases/v2.0.0/pysb/0010/0010.py @@ -1,9 +1,10 @@ from inspect import cleandoc +from pathlib import Path from petab.v2 import Problem from petab.v2.C import * -from petabtests import DEFAULT_PYSB_FILE, PetabV2TestCase, analytical_a +from petabtests import PetabV2TestCase, analytical_a DESCRIPTION = cleandoc(""" ## Objective @@ -24,19 +25,19 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("preeq_c0", k1=0.3, B_o=0) -problem.add_condition("c0", k1=0.8, B_o=1) +problem.add_condition("preeq_c0", k1=0.3, B=0) +problem.add_condition("c0", k1=0.8, B=1) problem.add_experiment("e0", TIME_PREEQUILIBRATION, "preeq_c0", 0, "c0") -problem.add_observable("obs_a", "A", noise_formula=0.5) +problem.add_observable("obs_a", "A_o", noise_formula=0.5) problem.add_measurement("obs_a", experiment_id="e0", time=1, measurement=0.7) problem.add_measurement("obs_a", experiment_id="e0", time=10, measurement=0.1) problem.add_parameter("k2", lb=0, ub=10, nominal_value=0.6, estimate=True) -problem.add_mapping("A_o", "A_() ** compartment") -problem.add_mapping("B_o", "B_() ** compartment") +problem.add_mapping("A", "A_() ** compartment") +problem.add_mapping("B", "B_() ** compartment") # solutions ------------------------------------------------------------------ @@ -56,7 +57,7 @@ brief="Simulation. Preequilibration. One species reinitialized, one not. " "InitialAssignment to species overridden.", description=DESCRIPTION, - model=DEFAULT_PYSB_FILE, + model=Path("conversion_pysb.py"), condition_dfs=[problem.condition_df], observable_dfs=[problem.observable_df], measurement_dfs=[problem.measurement_df], diff --git a/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv index 2e21373..01d5b3d 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv @@ -1,5 +1,5 @@ conditionId targetId targetValue preeq_c0 k1 0.3 -preeq_c0 B_o 0.0 +preeq_c0 B 0.0 c0 k1 0.8 -c0 B_o 1.0 +c0 B 1.0 diff --git a/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv index 54ec18f..2fee7f7 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A_o A_() ** compartment -B_o B_() ** compartment +A A_() ** compartment +B B_() ** compartment diff --git a/petabtests/cases/v2.0.0/pysb/0010/_model.py b/petabtests/cases/v2.0.0/pysb/0010/_model.py index 71263df..d7e8f35 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/_model.py +++ b/petabtests/cases/v2.0.0/pysb/0010/_model.py @@ -25,5 +25,5 @@ Initial(A_() ** compartment, a0) Initial(B_() ** compartment, b0) -Observable("A", A_()) -Observable("B", B_()) +Observable("A_o", A_()) +Observable("B_o", B_()) diff --git a/petabtests/cases/v2.0.0/pysb/0010/_observables.tsv b/petabtests/cases/v2.0.0/pysb/0010/_observables.tsv index 251acc7..d73fd30 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/_observables.tsv +++ b/petabtests/cases/v2.0.0/pysb/0010/_observables.tsv @@ -1,2 +1,2 @@ observableId observableName observableFormula noiseFormula noiseDistribution observablePlaceholders noisePlaceholders -obs_a A 0.500000000000000 normal +obs_a A_o 0.500000000000000 normal diff --git a/petabtests/cases/v2.0.0/pysb/0010/conversion_pysb.py b/petabtests/cases/v2.0.0/pysb/0010/conversion_pysb.py new file mode 100644 index 0000000..d7e8f35 --- /dev/null +++ b/petabtests/cases/v2.0.0/pysb/0010/conversion_pysb.py @@ -0,0 +1,29 @@ +from pysb import ( + Model, + Monomer, + Parameter, + Compartment, + Rule, + Initial, + Observable, +) + +Model() + +Compartment("compartment") + +Monomer("A_") +Monomer("B_") + +Parameter("a0", 1.0) +Parameter("b0", 1.0) +Parameter("k1", 0.0) +Parameter("k2", 0.0) + +Rule("conversion", A_() ** compartment | B_() ** compartment, k1, k2) + +Initial(A_() ** compartment, a0) +Initial(B_() ** compartment, b0) + +Observable("A_o", A_()) +Observable("B_o", B_()) diff --git a/petabtests/cases/v2.0.0/pysb/0011/0011.py b/petabtests/cases/v2.0.0/pysb/0011/0011.py index b7bb9b3..858501c 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/0011.py +++ b/petabtests/cases/v2.0.0/pysb/0011/0011.py @@ -21,11 +21,11 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("c0", B_o=2) +problem.add_condition("c0", B=2) problem.add_experiment("e0", 0, "c0") -problem.add_observable("obs_a", "A", noise_formula=0.5) +problem.add_observable("obs_a", "A_o", noise_formula=0.5) problem.add_measurement("obs_a", experiment_id="e0", time=0, measurement=0.7) problem.add_measurement("obs_a", experiment_id="e0", time=10, measurement=0.1) @@ -33,8 +33,8 @@ problem.add_parameter("k1", lb=0, ub=10, nominal_value=0.8, estimate=True) problem.add_parameter("k2", lb=0, ub=10, nominal_value=0.6, estimate=True) -problem.add_mapping("A_o", "A_() ** compartment") -problem.add_mapping("B_o", "B_() ** compartment") +problem.add_mapping("A", "A_() ** compartment") +problem.add_mapping("B", "B_() ** compartment") # solutions ------------------------------------------------------------------ diff --git a/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv index 334c5ff..5d968f9 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv @@ -1,2 +1,2 @@ conditionId targetId targetValue -c0 B_o 2.0 +c0 B 2.0 diff --git a/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv index 54ec18f..2fee7f7 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A_o A_() ** compartment -B_o B_() ** compartment +A A_() ** compartment +B B_() ** compartment diff --git a/petabtests/cases/v2.0.0/pysb/0011/_model.py b/petabtests/cases/v2.0.0/pysb/0011/_model.py index 57ec588..60ba1e6 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/_model.py +++ b/petabtests/cases/v2.0.0/pysb/0011/_model.py @@ -17,5 +17,5 @@ Initial(A_() ** compartment, a0) Initial(B_() ** compartment, b0) -Observable("A", A_()) -Observable("B", B_()) +Observable("A_o", A_()) +Observable("B_o", B_()) diff --git a/petabtests/cases/v2.0.0/pysb/0011/_observables.tsv b/petabtests/cases/v2.0.0/pysb/0011/_observables.tsv index 251acc7..d73fd30 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/_observables.tsv +++ b/petabtests/cases/v2.0.0/pysb/0011/_observables.tsv @@ -1,2 +1,2 @@ observableId observableName observableFormula noiseFormula noiseDistribution observablePlaceholders noisePlaceholders -obs_a A 0.500000000000000 normal +obs_a A_o 0.500000000000000 normal diff --git a/petabtests/cases/v2.0.0/pysb/0011/conversion_modified_pysb.py b/petabtests/cases/v2.0.0/pysb/0011/conversion_modified_pysb.py index 57ec588..60ba1e6 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/conversion_modified_pysb.py +++ b/petabtests/cases/v2.0.0/pysb/0011/conversion_modified_pysb.py @@ -17,5 +17,5 @@ Initial(A_() ** compartment, a0) Initial(B_() ** compartment, b0) -Observable("A", A_()) -Observable("B", B_()) +Observable("A_o", A_()) +Observable("B_o", B_()) diff --git a/petabtests/cases/v2.0.0/pysb/0013/0013.py b/petabtests/cases/v2.0.0/pysb/0013/0013.py index c0c05fb..4be1bd3 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/0013.py +++ b/petabtests/cases/v2.0.0/pysb/0013/0013.py @@ -19,9 +19,9 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("c0", B_o="par") +problem.add_condition("c0", B="par") problem.add_experiment("e0", 0, "c0") -problem.add_observable("obs_a", "A", noise_formula=0.5) +problem.add_observable("obs_a", "A_o", noise_formula=0.5) problem.add_measurement("obs_a", experiment_id="e0", time=0, measurement=0.7) problem.add_measurement("obs_a", experiment_id="e0", time=10, measurement=0.1) @@ -30,8 +30,8 @@ problem.add_parameter("k2", lb=0, ub=10, nominal_value=0.6, estimate=True) problem.add_parameter("par", lb=0, ub=10, nominal_value=7, estimate=True) -problem.add_mapping("A_o", "A_() ** compartment") -problem.add_mapping("B_o", "B_() ** compartment") +problem.add_mapping("A", "A_() ** compartment") +problem.add_mapping("B", "B_() ** compartment") # solutions ------------------------------------------------------------------ diff --git a/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv index 04c824b..d2e474f 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv @@ -1,2 +1,2 @@ conditionId targetId targetValue -c0 B_o par +c0 B par diff --git a/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv index 54ec18f..2fee7f7 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A_o A_() ** compartment -B_o B_() ** compartment +A A_() ** compartment +B B_() ** compartment diff --git a/petabtests/cases/v2.0.0/pysb/0013/_model.py b/petabtests/cases/v2.0.0/pysb/0013/_model.py index 57ec588..60ba1e6 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/_model.py +++ b/petabtests/cases/v2.0.0/pysb/0013/_model.py @@ -17,5 +17,5 @@ Initial(A_() ** compartment, a0) Initial(B_() ** compartment, b0) -Observable("A", A_()) -Observable("B", B_()) +Observable("A_o", A_()) +Observable("B_o", B_()) diff --git a/petabtests/cases/v2.0.0/pysb/0013/_observables.tsv b/petabtests/cases/v2.0.0/pysb/0013/_observables.tsv index 251acc7..d73fd30 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/_observables.tsv +++ b/petabtests/cases/v2.0.0/pysb/0013/_observables.tsv @@ -1,2 +1,2 @@ observableId observableName observableFormula noiseFormula noiseDistribution observablePlaceholders noisePlaceholders -obs_a A 0.500000000000000 normal +obs_a A_o 0.500000000000000 normal diff --git a/petabtests/cases/v2.0.0/pysb/0013/conversion_modified_pysb.py b/petabtests/cases/v2.0.0/pysb/0013/conversion_modified_pysb.py index 57ec588..60ba1e6 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/conversion_modified_pysb.py +++ b/petabtests/cases/v2.0.0/pysb/0013/conversion_modified_pysb.py @@ -17,5 +17,5 @@ Initial(A_() ** compartment, a0) Initial(B_() ** compartment, b0) -Observable("A", A_()) -Observable("B", B_()) +Observable("A_o", A_()) +Observable("B_o", B_()) diff --git a/petabtests/cases/v2.0.0/pysb/0017/0017.py b/petabtests/cases/v2.0.0/pysb/0017/0017.py index fb8ba30..0cfad62 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/0017.py +++ b/petabtests/cases/v2.0.0/pysb/0017/0017.py @@ -1,10 +1,10 @@ from inspect import cleandoc +from pathlib import Path from petab.v2 import Problem from petab.v2.C import * from petabtests import ( - DEFAULT_PYSB_FILE, PetabV2TestCase, analytical_a, analytical_b, @@ -32,17 +32,17 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("preeq_c0", k1=0.3, B_o=2.0, A_o=0) -problem.add_condition("c0", k1=0.8, A_o=1) +problem.add_condition("preeq_c0", k1=0.3, B=2.0, A=0) +problem.add_condition("c0", k1=0.8, A=1) problem.add_experiment("e0", TIME_PREEQUILIBRATION, "preeq_c0", 0, "c0") -problem.add_observable("obs_a", "A", noise_formula=0.5) +problem.add_observable("obs_a", "A_o", noise_formula=0.5) problem.add_measurement("obs_a", experiment_id="e0", time=1, measurement=0.7) problem.add_measurement("obs_a", experiment_id="e0", time=10, measurement=0.1) problem.add_parameter( "k2", lb=0, ub=10, nominal_value=0.6, scale=LIN, estimate=True ) -problem.add_mapping("A_o", "A_() ** compartment") -problem.add_mapping("B_o", "B_() ** compartment") +problem.add_mapping("A", "A_() ** compartment") +problem.add_mapping("B", "B_() ** compartment") # solutions ------------------------------------------------------------------ @@ -61,7 +61,7 @@ brief="Simulation. Preequilibration. One species reinitialized, one not " "(NaN in condition table). InitialAssignment to species overridden.", description=DESCRIPTION, - model=DEFAULT_PYSB_FILE, + model=Path("conversion_pysb.py"), condition_dfs=[problem.condition_df], observable_dfs=[problem.observable_df], measurement_dfs=[problem.measurement_df], diff --git a/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv index 34068e1..934e234 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv @@ -1,6 +1,6 @@ conditionId targetId targetValue preeq_c0 k1 0.3 -preeq_c0 B_o 2.0 -preeq_c0 A_o 0.0 +preeq_c0 B 2.0 +preeq_c0 A 0.0 c0 k1 0.8 -c0 A_o 1.0 +c0 A 1.0 diff --git a/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv index 54ec18f..2fee7f7 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A_o A_() ** compartment -B_o B_() ** compartment +A A_() ** compartment +B B_() ** compartment diff --git a/petabtests/cases/v2.0.0/pysb/0017/_model.py b/petabtests/cases/v2.0.0/pysb/0017/_model.py index 71263df..d7e8f35 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/_model.py +++ b/petabtests/cases/v2.0.0/pysb/0017/_model.py @@ -25,5 +25,5 @@ Initial(A_() ** compartment, a0) Initial(B_() ** compartment, b0) -Observable("A", A_()) -Observable("B", B_()) +Observable("A_o", A_()) +Observable("B_o", B_()) diff --git a/petabtests/cases/v2.0.0/pysb/0017/_observables.tsv b/petabtests/cases/v2.0.0/pysb/0017/_observables.tsv index 251acc7..d73fd30 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/_observables.tsv +++ b/petabtests/cases/v2.0.0/pysb/0017/_observables.tsv @@ -1,2 +1,2 @@ observableId observableName observableFormula noiseFormula noiseDistribution observablePlaceholders noisePlaceholders -obs_a A 0.500000000000000 normal +obs_a A_o 0.500000000000000 normal diff --git a/petabtests/cases/v2.0.0/pysb/0017/conversion_pysb.py b/petabtests/cases/v2.0.0/pysb/0017/conversion_pysb.py new file mode 100644 index 0000000..d7e8f35 --- /dev/null +++ b/petabtests/cases/v2.0.0/pysb/0017/conversion_pysb.py @@ -0,0 +1,29 @@ +from pysb import ( + Model, + Monomer, + Parameter, + Compartment, + Rule, + Initial, + Observable, +) + +Model() + +Compartment("compartment") + +Monomer("A_") +Monomer("B_") + +Parameter("a0", 1.0) +Parameter("b0", 1.0) +Parameter("k1", 0.0) +Parameter("k2", 0.0) + +Rule("conversion", A_() ** compartment | B_() ** compartment, k1, k2) + +Initial(A_() ** compartment, a0) +Initial(B_() ** compartment, b0) + +Observable("A_o", A_()) +Observable("B_o", B_()) diff --git a/pyproject.toml b/pyproject.toml index ec12816..38da3de 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -56,6 +56,7 @@ exclude = ["petabtests/cases/**/*.md", "cases/**"] [tool.ruff.lint.per-file-ignores] "petabtests/cases/v2.0.0/pysb/*/_model.py" = ["F821"] "petabtests/cases/v2.0.0/pysb/*/conversion_modified_pysb.py" = ["F821"] +"petabtests/cases/v2.0.0/pysb/*/conversion_pysb.py" = ["F821"] "petabtests/conversion_*pysb.py" = ["F821"] # add UP rules for ruff via extend-select From 14003f92d8a3d74d0760c163b41658c0e0774f68 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Jul 2026 14:41:46 +0000 Subject: [PATCH 4/6] Revert unnecessary DEFAULT_PYSB_FILE changes and remove newly generated model files --- petabtests/cases/v2.0.0/pysb/0010/0010.py | 15 +++++----- .../cases/v2.0.0/pysb/0010/_conditions.tsv | 4 +-- .../cases/v2.0.0/pysb/0010/_mapping.tsv | 4 +-- petabtests/cases/v2.0.0/pysb/0010/_model.py | 4 +-- .../cases/v2.0.0/pysb/0010/_observables.tsv | 2 +- .../cases/v2.0.0/pysb/0010/conversion_pysb.py | 29 ------------------- petabtests/cases/v2.0.0/pysb/0011/0011.py | 8 ++--- .../cases/v2.0.0/pysb/0011/_conditions.tsv | 2 +- .../cases/v2.0.0/pysb/0011/_mapping.tsv | 4 +-- petabtests/cases/v2.0.0/pysb/0011/_model.py | 4 +-- .../cases/v2.0.0/pysb/0011/_observables.tsv | 2 +- .../pysb/0011/conversion_modified_pysb.py | 4 +-- petabtests/cases/v2.0.0/pysb/0013/0013.py | 8 ++--- .../cases/v2.0.0/pysb/0013/_conditions.tsv | 2 +- .../cases/v2.0.0/pysb/0013/_mapping.tsv | 4 +-- petabtests/cases/v2.0.0/pysb/0013/_model.py | 4 +-- .../cases/v2.0.0/pysb/0013/_observables.tsv | 2 +- .../pysb/0013/conversion_modified_pysb.py | 4 +-- petabtests/cases/v2.0.0/pysb/0017/0017.py | 14 ++++----- .../cases/v2.0.0/pysb/0017/_conditions.tsv | 6 ++-- .../cases/v2.0.0/pysb/0017/_mapping.tsv | 4 +-- petabtests/cases/v2.0.0/pysb/0017/_model.py | 4 +-- .../cases/v2.0.0/pysb/0017/_observables.tsv | 2 +- .../cases/v2.0.0/pysb/0017/conversion_pysb.py | 29 ------------------- pyproject.toml | 1 - 25 files changed, 53 insertions(+), 113 deletions(-) delete mode 100644 petabtests/cases/v2.0.0/pysb/0010/conversion_pysb.py delete mode 100644 petabtests/cases/v2.0.0/pysb/0017/conversion_pysb.py diff --git a/petabtests/cases/v2.0.0/pysb/0010/0010.py b/petabtests/cases/v2.0.0/pysb/0010/0010.py index 4d3a140..96d7276 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/0010.py +++ b/petabtests/cases/v2.0.0/pysb/0010/0010.py @@ -1,10 +1,9 @@ from inspect import cleandoc -from pathlib import Path from petab.v2 import Problem from petab.v2.C import * -from petabtests import PetabV2TestCase, analytical_a +from petabtests import DEFAULT_PYSB_FILE, PetabV2TestCase, analytical_a DESCRIPTION = cleandoc(""" ## Objective @@ -25,19 +24,19 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("preeq_c0", k1=0.3, B=0) -problem.add_condition("c0", k1=0.8, B=1) +problem.add_condition("preeq_c0", k1=0.3, B_o=0) +problem.add_condition("c0", k1=0.8, B_o=1) problem.add_experiment("e0", TIME_PREEQUILIBRATION, "preeq_c0", 0, "c0") -problem.add_observable("obs_a", "A_o", noise_formula=0.5) +problem.add_observable("obs_a", "A", noise_formula=0.5) problem.add_measurement("obs_a", experiment_id="e0", time=1, measurement=0.7) problem.add_measurement("obs_a", experiment_id="e0", time=10, measurement=0.1) problem.add_parameter("k2", lb=0, ub=10, nominal_value=0.6, estimate=True) -problem.add_mapping("A", "A_() ** compartment") -problem.add_mapping("B", "B_() ** compartment") +problem.add_mapping("A_o", "A_() ** compartment") +problem.add_mapping("B_o", "B_() ** compartment") # solutions ------------------------------------------------------------------ @@ -57,7 +56,7 @@ brief="Simulation. Preequilibration. One species reinitialized, one not. " "InitialAssignment to species overridden.", description=DESCRIPTION, - model=Path("conversion_pysb.py"), + model=DEFAULT_PYSB_FILE, condition_dfs=[problem.condition_df], observable_dfs=[problem.observable_df], measurement_dfs=[problem.measurement_df], diff --git a/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv index 01d5b3d..2e21373 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv @@ -1,5 +1,5 @@ conditionId targetId targetValue preeq_c0 k1 0.3 -preeq_c0 B 0.0 +preeq_c0 B_o 0.0 c0 k1 0.8 -c0 B 1.0 +c0 B_o 1.0 diff --git a/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv index 2fee7f7..54ec18f 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A A_() ** compartment -B B_() ** compartment +A_o A_() ** compartment +B_o B_() ** compartment diff --git a/petabtests/cases/v2.0.0/pysb/0010/_model.py b/petabtests/cases/v2.0.0/pysb/0010/_model.py index d7e8f35..71263df 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/_model.py +++ b/petabtests/cases/v2.0.0/pysb/0010/_model.py @@ -25,5 +25,5 @@ Initial(A_() ** compartment, a0) Initial(B_() ** compartment, b0) -Observable("A_o", A_()) -Observable("B_o", B_()) +Observable("A", A_()) +Observable("B", B_()) diff --git a/petabtests/cases/v2.0.0/pysb/0010/_observables.tsv b/petabtests/cases/v2.0.0/pysb/0010/_observables.tsv index d73fd30..251acc7 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/_observables.tsv +++ b/petabtests/cases/v2.0.0/pysb/0010/_observables.tsv @@ -1,2 +1,2 @@ observableId observableName observableFormula noiseFormula noiseDistribution observablePlaceholders noisePlaceholders -obs_a A_o 0.500000000000000 normal +obs_a A 0.500000000000000 normal diff --git a/petabtests/cases/v2.0.0/pysb/0010/conversion_pysb.py b/petabtests/cases/v2.0.0/pysb/0010/conversion_pysb.py deleted file mode 100644 index d7e8f35..0000000 --- a/petabtests/cases/v2.0.0/pysb/0010/conversion_pysb.py +++ /dev/null @@ -1,29 +0,0 @@ -from pysb import ( - Model, - Monomer, - Parameter, - Compartment, - Rule, - Initial, - Observable, -) - -Model() - -Compartment("compartment") - -Monomer("A_") -Monomer("B_") - -Parameter("a0", 1.0) -Parameter("b0", 1.0) -Parameter("k1", 0.0) -Parameter("k2", 0.0) - -Rule("conversion", A_() ** compartment | B_() ** compartment, k1, k2) - -Initial(A_() ** compartment, a0) -Initial(B_() ** compartment, b0) - -Observable("A_o", A_()) -Observable("B_o", B_()) diff --git a/petabtests/cases/v2.0.0/pysb/0011/0011.py b/petabtests/cases/v2.0.0/pysb/0011/0011.py index 858501c..b7bb9b3 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/0011.py +++ b/petabtests/cases/v2.0.0/pysb/0011/0011.py @@ -21,11 +21,11 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("c0", B=2) +problem.add_condition("c0", B_o=2) problem.add_experiment("e0", 0, "c0") -problem.add_observable("obs_a", "A_o", noise_formula=0.5) +problem.add_observable("obs_a", "A", noise_formula=0.5) problem.add_measurement("obs_a", experiment_id="e0", time=0, measurement=0.7) problem.add_measurement("obs_a", experiment_id="e0", time=10, measurement=0.1) @@ -33,8 +33,8 @@ problem.add_parameter("k1", lb=0, ub=10, nominal_value=0.8, estimate=True) problem.add_parameter("k2", lb=0, ub=10, nominal_value=0.6, estimate=True) -problem.add_mapping("A", "A_() ** compartment") -problem.add_mapping("B", "B_() ** compartment") +problem.add_mapping("A_o", "A_() ** compartment") +problem.add_mapping("B_o", "B_() ** compartment") # solutions ------------------------------------------------------------------ diff --git a/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv index 5d968f9..334c5ff 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv @@ -1,2 +1,2 @@ conditionId targetId targetValue -c0 B 2.0 +c0 B_o 2.0 diff --git a/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv index 2fee7f7..54ec18f 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A A_() ** compartment -B B_() ** compartment +A_o A_() ** compartment +B_o B_() ** compartment diff --git a/petabtests/cases/v2.0.0/pysb/0011/_model.py b/petabtests/cases/v2.0.0/pysb/0011/_model.py index 60ba1e6..57ec588 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/_model.py +++ b/petabtests/cases/v2.0.0/pysb/0011/_model.py @@ -17,5 +17,5 @@ Initial(A_() ** compartment, a0) Initial(B_() ** compartment, b0) -Observable("A_o", A_()) -Observable("B_o", B_()) +Observable("A", A_()) +Observable("B", B_()) diff --git a/petabtests/cases/v2.0.0/pysb/0011/_observables.tsv b/petabtests/cases/v2.0.0/pysb/0011/_observables.tsv index d73fd30..251acc7 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/_observables.tsv +++ b/petabtests/cases/v2.0.0/pysb/0011/_observables.tsv @@ -1,2 +1,2 @@ observableId observableName observableFormula noiseFormula noiseDistribution observablePlaceholders noisePlaceholders -obs_a A_o 0.500000000000000 normal +obs_a A 0.500000000000000 normal diff --git a/petabtests/cases/v2.0.0/pysb/0011/conversion_modified_pysb.py b/petabtests/cases/v2.0.0/pysb/0011/conversion_modified_pysb.py index 60ba1e6..57ec588 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/conversion_modified_pysb.py +++ b/petabtests/cases/v2.0.0/pysb/0011/conversion_modified_pysb.py @@ -17,5 +17,5 @@ Initial(A_() ** compartment, a0) Initial(B_() ** compartment, b0) -Observable("A_o", A_()) -Observable("B_o", B_()) +Observable("A", A_()) +Observable("B", B_()) diff --git a/petabtests/cases/v2.0.0/pysb/0013/0013.py b/petabtests/cases/v2.0.0/pysb/0013/0013.py index 4be1bd3..c0c05fb 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/0013.py +++ b/petabtests/cases/v2.0.0/pysb/0013/0013.py @@ -19,9 +19,9 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("c0", B="par") +problem.add_condition("c0", B_o="par") problem.add_experiment("e0", 0, "c0") -problem.add_observable("obs_a", "A_o", noise_formula=0.5) +problem.add_observable("obs_a", "A", noise_formula=0.5) problem.add_measurement("obs_a", experiment_id="e0", time=0, measurement=0.7) problem.add_measurement("obs_a", experiment_id="e0", time=10, measurement=0.1) @@ -30,8 +30,8 @@ problem.add_parameter("k2", lb=0, ub=10, nominal_value=0.6, estimate=True) problem.add_parameter("par", lb=0, ub=10, nominal_value=7, estimate=True) -problem.add_mapping("A", "A_() ** compartment") -problem.add_mapping("B", "B_() ** compartment") +problem.add_mapping("A_o", "A_() ** compartment") +problem.add_mapping("B_o", "B_() ** compartment") # solutions ------------------------------------------------------------------ diff --git a/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv index d2e474f..04c824b 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv @@ -1,2 +1,2 @@ conditionId targetId targetValue -c0 B par +c0 B_o par diff --git a/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv index 2fee7f7..54ec18f 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A A_() ** compartment -B B_() ** compartment +A_o A_() ** compartment +B_o B_() ** compartment diff --git a/petabtests/cases/v2.0.0/pysb/0013/_model.py b/petabtests/cases/v2.0.0/pysb/0013/_model.py index 60ba1e6..57ec588 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/_model.py +++ b/petabtests/cases/v2.0.0/pysb/0013/_model.py @@ -17,5 +17,5 @@ Initial(A_() ** compartment, a0) Initial(B_() ** compartment, b0) -Observable("A_o", A_()) -Observable("B_o", B_()) +Observable("A", A_()) +Observable("B", B_()) diff --git a/petabtests/cases/v2.0.0/pysb/0013/_observables.tsv b/petabtests/cases/v2.0.0/pysb/0013/_observables.tsv index d73fd30..251acc7 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/_observables.tsv +++ b/petabtests/cases/v2.0.0/pysb/0013/_observables.tsv @@ -1,2 +1,2 @@ observableId observableName observableFormula noiseFormula noiseDistribution observablePlaceholders noisePlaceholders -obs_a A_o 0.500000000000000 normal +obs_a A 0.500000000000000 normal diff --git a/petabtests/cases/v2.0.0/pysb/0013/conversion_modified_pysb.py b/petabtests/cases/v2.0.0/pysb/0013/conversion_modified_pysb.py index 60ba1e6..57ec588 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/conversion_modified_pysb.py +++ b/petabtests/cases/v2.0.0/pysb/0013/conversion_modified_pysb.py @@ -17,5 +17,5 @@ Initial(A_() ** compartment, a0) Initial(B_() ** compartment, b0) -Observable("A_o", A_()) -Observable("B_o", B_()) +Observable("A", A_()) +Observable("B", B_()) diff --git a/petabtests/cases/v2.0.0/pysb/0017/0017.py b/petabtests/cases/v2.0.0/pysb/0017/0017.py index 0cfad62..fb8ba30 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/0017.py +++ b/petabtests/cases/v2.0.0/pysb/0017/0017.py @@ -1,10 +1,10 @@ from inspect import cleandoc -from pathlib import Path from petab.v2 import Problem from petab.v2.C import * from petabtests import ( + DEFAULT_PYSB_FILE, PetabV2TestCase, analytical_a, analytical_b, @@ -32,17 +32,17 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("preeq_c0", k1=0.3, B=2.0, A=0) -problem.add_condition("c0", k1=0.8, A=1) +problem.add_condition("preeq_c0", k1=0.3, B_o=2.0, A_o=0) +problem.add_condition("c0", k1=0.8, A_o=1) problem.add_experiment("e0", TIME_PREEQUILIBRATION, "preeq_c0", 0, "c0") -problem.add_observable("obs_a", "A_o", noise_formula=0.5) +problem.add_observable("obs_a", "A", noise_formula=0.5) problem.add_measurement("obs_a", experiment_id="e0", time=1, measurement=0.7) problem.add_measurement("obs_a", experiment_id="e0", time=10, measurement=0.1) problem.add_parameter( "k2", lb=0, ub=10, nominal_value=0.6, scale=LIN, estimate=True ) -problem.add_mapping("A", "A_() ** compartment") -problem.add_mapping("B", "B_() ** compartment") +problem.add_mapping("A_o", "A_() ** compartment") +problem.add_mapping("B_o", "B_() ** compartment") # solutions ------------------------------------------------------------------ @@ -61,7 +61,7 @@ brief="Simulation. Preequilibration. One species reinitialized, one not " "(NaN in condition table). InitialAssignment to species overridden.", description=DESCRIPTION, - model=Path("conversion_pysb.py"), + model=DEFAULT_PYSB_FILE, condition_dfs=[problem.condition_df], observable_dfs=[problem.observable_df], measurement_dfs=[problem.measurement_df], diff --git a/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv index 934e234..34068e1 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv @@ -1,6 +1,6 @@ conditionId targetId targetValue preeq_c0 k1 0.3 -preeq_c0 B 2.0 -preeq_c0 A 0.0 +preeq_c0 B_o 2.0 +preeq_c0 A_o 0.0 c0 k1 0.8 -c0 A 1.0 +c0 A_o 1.0 diff --git a/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv index 2fee7f7..54ec18f 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A A_() ** compartment -B B_() ** compartment +A_o A_() ** compartment +B_o B_() ** compartment diff --git a/petabtests/cases/v2.0.0/pysb/0017/_model.py b/petabtests/cases/v2.0.0/pysb/0017/_model.py index d7e8f35..71263df 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/_model.py +++ b/petabtests/cases/v2.0.0/pysb/0017/_model.py @@ -25,5 +25,5 @@ Initial(A_() ** compartment, a0) Initial(B_() ** compartment, b0) -Observable("A_o", A_()) -Observable("B_o", B_()) +Observable("A", A_()) +Observable("B", B_()) diff --git a/petabtests/cases/v2.0.0/pysb/0017/_observables.tsv b/petabtests/cases/v2.0.0/pysb/0017/_observables.tsv index d73fd30..251acc7 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/_observables.tsv +++ b/petabtests/cases/v2.0.0/pysb/0017/_observables.tsv @@ -1,2 +1,2 @@ observableId observableName observableFormula noiseFormula noiseDistribution observablePlaceholders noisePlaceholders -obs_a A_o 0.500000000000000 normal +obs_a A 0.500000000000000 normal diff --git a/petabtests/cases/v2.0.0/pysb/0017/conversion_pysb.py b/petabtests/cases/v2.0.0/pysb/0017/conversion_pysb.py deleted file mode 100644 index d7e8f35..0000000 --- a/petabtests/cases/v2.0.0/pysb/0017/conversion_pysb.py +++ /dev/null @@ -1,29 +0,0 @@ -from pysb import ( - Model, - Monomer, - Parameter, - Compartment, - Rule, - Initial, - Observable, -) - -Model() - -Compartment("compartment") - -Monomer("A_") -Monomer("B_") - -Parameter("a0", 1.0) -Parameter("b0", 1.0) -Parameter("k1", 0.0) -Parameter("k2", 0.0) - -Rule("conversion", A_() ** compartment | B_() ** compartment, k1, k2) - -Initial(A_() ** compartment, a0) -Initial(B_() ** compartment, b0) - -Observable("A_o", A_()) -Observable("B_o", B_()) diff --git a/pyproject.toml b/pyproject.toml index 38da3de..ec12816 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -56,7 +56,6 @@ exclude = ["petabtests/cases/**/*.md", "cases/**"] [tool.ruff.lint.per-file-ignores] "petabtests/cases/v2.0.0/pysb/*/_model.py" = ["F821"] "petabtests/cases/v2.0.0/pysb/*/conversion_modified_pysb.py" = ["F821"] -"petabtests/cases/v2.0.0/pysb/*/conversion_pysb.py" = ["F821"] "petabtests/conversion_*pysb.py" = ["F821"] # add UP rules for ruff via extend-select From e3c52378b8a1dffc34eaf5e0b7c00afafe0636d0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Jul 2026 15:00:01 +0000 Subject: [PATCH 5/6] Update progress after renaming PySB mapping IDs --- petabtests/cases/v2.0.0/pysb/0010/0010.py | 8 ++++---- petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv | 4 ++-- petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv | 4 ++-- petabtests/cases/v2.0.0/pysb/0011/0011.py | 6 +++--- petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv | 2 +- petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv | 4 ++-- petabtests/cases/v2.0.0/pysb/0013/0013.py | 6 +++--- petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv | 2 +- petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv | 4 ++-- petabtests/cases/v2.0.0/pysb/0017/0017.py | 8 ++++---- petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv | 6 +++--- petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv | 4 ++-- 12 files changed, 29 insertions(+), 29 deletions(-) diff --git a/petabtests/cases/v2.0.0/pysb/0010/0010.py b/petabtests/cases/v2.0.0/pysb/0010/0010.py index 96d7276..ee25c5e 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/0010.py +++ b/petabtests/cases/v2.0.0/pysb/0010/0010.py @@ -24,8 +24,8 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("preeq_c0", k1=0.3, B_o=0) -problem.add_condition("c0", k1=0.8, B_o=1) +problem.add_condition("preeq_c0", k1=0.3, B_c=0) +problem.add_condition("c0", k1=0.8, B_c=1) problem.add_experiment("e0", TIME_PREEQUILIBRATION, "preeq_c0", 0, "c0") @@ -35,8 +35,8 @@ problem.add_measurement("obs_a", experiment_id="e0", time=10, measurement=0.1) problem.add_parameter("k2", lb=0, ub=10, nominal_value=0.6, estimate=True) -problem.add_mapping("A_o", "A_() ** compartment") -problem.add_mapping("B_o", "B_() ** compartment") +problem.add_mapping("A_c", "A_() ** compartment") +problem.add_mapping("B_c", "B_() ** compartment") # solutions ------------------------------------------------------------------ diff --git a/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv index 2e21373..b8952a9 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0010/_conditions.tsv @@ -1,5 +1,5 @@ conditionId targetId targetValue preeq_c0 k1 0.3 -preeq_c0 B_o 0.0 +preeq_c0 B_c 0.0 c0 k1 0.8 -c0 B_o 1.0 +c0 B_c 1.0 diff --git a/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv index 54ec18f..d9834af 100644 --- a/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0010/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A_o A_() ** compartment -B_o B_() ** compartment +A_c A_() ** compartment +B_c B_() ** compartment diff --git a/petabtests/cases/v2.0.0/pysb/0011/0011.py b/petabtests/cases/v2.0.0/pysb/0011/0011.py index b7bb9b3..629a483 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/0011.py +++ b/petabtests/cases/v2.0.0/pysb/0011/0011.py @@ -21,7 +21,7 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("c0", B_o=2) +problem.add_condition("c0", B_c=2) problem.add_experiment("e0", 0, "c0") @@ -33,8 +33,8 @@ problem.add_parameter("k1", lb=0, ub=10, nominal_value=0.8, estimate=True) problem.add_parameter("k2", lb=0, ub=10, nominal_value=0.6, estimate=True) -problem.add_mapping("A_o", "A_() ** compartment") -problem.add_mapping("B_o", "B_() ** compartment") +problem.add_mapping("A_c", "A_() ** compartment") +problem.add_mapping("B_c", "B_() ** compartment") # solutions ------------------------------------------------------------------ diff --git a/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv index 334c5ff..168f21d 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0011/_conditions.tsv @@ -1,2 +1,2 @@ conditionId targetId targetValue -c0 B_o 2.0 +c0 B_c 2.0 diff --git a/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv index 54ec18f..d9834af 100644 --- a/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0011/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A_o A_() ** compartment -B_o B_() ** compartment +A_c A_() ** compartment +B_c B_() ** compartment diff --git a/petabtests/cases/v2.0.0/pysb/0013/0013.py b/petabtests/cases/v2.0.0/pysb/0013/0013.py index c0c05fb..69d5441 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/0013.py +++ b/petabtests/cases/v2.0.0/pysb/0013/0013.py @@ -19,7 +19,7 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("c0", B_o="par") +problem.add_condition("c0", B_c="par") problem.add_experiment("e0", 0, "c0") problem.add_observable("obs_a", "A", noise_formula=0.5) @@ -30,8 +30,8 @@ problem.add_parameter("k2", lb=0, ub=10, nominal_value=0.6, estimate=True) problem.add_parameter("par", lb=0, ub=10, nominal_value=7, estimate=True) -problem.add_mapping("A_o", "A_() ** compartment") -problem.add_mapping("B_o", "B_() ** compartment") +problem.add_mapping("A_c", "A_() ** compartment") +problem.add_mapping("B_c", "B_() ** compartment") # solutions ------------------------------------------------------------------ diff --git a/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv index 04c824b..646b1f2 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0013/_conditions.tsv @@ -1,2 +1,2 @@ conditionId targetId targetValue -c0 B_o par +c0 B_c par diff --git a/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv index 54ec18f..d9834af 100644 --- a/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0013/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A_o A_() ** compartment -B_o B_() ** compartment +A_c A_() ** compartment +B_c B_() ** compartment diff --git a/petabtests/cases/v2.0.0/pysb/0017/0017.py b/petabtests/cases/v2.0.0/pysb/0017/0017.py index fb8ba30..40ee328 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/0017.py +++ b/petabtests/cases/v2.0.0/pysb/0017/0017.py @@ -32,8 +32,8 @@ # problem -------------------------------------------------------------------- problem = Problem() -problem.add_condition("preeq_c0", k1=0.3, B_o=2.0, A_o=0) -problem.add_condition("c0", k1=0.8, A_o=1) +problem.add_condition("preeq_c0", k1=0.3, B_c=2.0, A_c=0) +problem.add_condition("c0", k1=0.8, A_c=1) problem.add_experiment("e0", TIME_PREEQUILIBRATION, "preeq_c0", 0, "c0") problem.add_observable("obs_a", "A", noise_formula=0.5) problem.add_measurement("obs_a", experiment_id="e0", time=1, measurement=0.7) @@ -41,8 +41,8 @@ problem.add_parameter( "k2", lb=0, ub=10, nominal_value=0.6, scale=LIN, estimate=True ) -problem.add_mapping("A_o", "A_() ** compartment") -problem.add_mapping("B_o", "B_() ** compartment") +problem.add_mapping("A_c", "A_() ** compartment") +problem.add_mapping("B_c", "B_() ** compartment") # solutions ------------------------------------------------------------------ diff --git a/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv b/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv index 34068e1..3e03b6f 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv +++ b/petabtests/cases/v2.0.0/pysb/0017/_conditions.tsv @@ -1,6 +1,6 @@ conditionId targetId targetValue preeq_c0 k1 0.3 -preeq_c0 B_o 2.0 -preeq_c0 A_o 0.0 +preeq_c0 B_c 2.0 +preeq_c0 A_c 0.0 c0 k1 0.8 -c0 A_o 1.0 +c0 A_c 1.0 diff --git a/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv b/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv index 54ec18f..d9834af 100644 --- a/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv +++ b/petabtests/cases/v2.0.0/pysb/0017/_mapping.tsv @@ -1,3 +1,3 @@ petabEntityId modelEntityId name -A_o A_() ** compartment -B_o B_() ** compartment +A_c A_() ** compartment +B_c B_() ** compartment From b86a10edabbd263a5941eeb242d83e7cc3d65977 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 4 Jul 2026 15:00:28 +0000 Subject: [PATCH 6/6] Rename compartment mappings to _c in PySB cases and regenerate artifacts --- test/test_general.py | 1 - 1 file changed, 1 deletion(-) diff --git a/test/test_general.py b/test/test_general.py index 2c7aa9b..ee8b1da 100644 --- a/test/test_general.py +++ b/test/test_general.py @@ -1,7 +1,6 @@ import petabtests import os import pytest -from pathlib import Path def test_cases_dir_exists():