PyAntiGen 1.0.9__tar.gz → 1.0.10__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyantigen-1.0.9 → pyantigen-1.0.10}/PKG-INFO +1 -1
- {pyantigen-1.0.9 → pyantigen-1.0.10}/PyAntiGen.egg-info/PKG-INFO +1 -1
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/RxnDict_to_antimony.py +21 -2
- {pyantigen-1.0.9 → pyantigen-1.0.10}/pyproject.toml +1 -1
- {pyantigen-1.0.9 → pyantigen-1.0.10}/setup.py +1 -1
- {pyantigen-1.0.9 → pyantigen-1.0.10}/LICENSE +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/MANIFEST.in +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/PyAntiGen.egg-info/SOURCES.txt +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/PyAntiGen.egg-info/dependency_links.txt +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/PyAntiGen.egg-info/entry_points.txt +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/PyAntiGen.egg-info/requires.txt +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/PyAntiGen.egg-info/top_level.txt +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/README.md +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/AntimonyGen.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/TelluriumGen.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/__init__.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/antimony_utils.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/cli.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/data_interpolation.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/isotopomer_tools.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/model_generation.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/models.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/module_base.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/pyantigen.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/rate_laws.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/reaction_creation.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/AntiGen_paths.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Anchor_cache.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Deadline.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Evaluator.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Event_times.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Fast_profile.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Fit_cache.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Identifiability.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Model_optimize.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Model_simulate.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Nuisance_sensitivity.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Optimize.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Petab_export.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Preequil_cache.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Profile_checkpoint.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Results.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Sensitivity_analysis.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Simulate.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Flipflop_reference.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Model_generate.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Model_run.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Modules/Data.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Modules/Events.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Modules/Experiment.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Modules/Loss_config.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Modules/Observed_species.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Modules/Optimizer_settings.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Modules/Plots.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Modules/Solver_settings.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Modules/Update_opt_parameters.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Modules/Update_parameters.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/data/ADneg.csv +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/data/ADpos.csv +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/data/Flipflop.csv +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/data/make_flipflop_data.py +0 -0
- {pyantigen-1.0.9 → pyantigen-1.0.10}/setup.cfg +0 -0
|
@@ -504,9 +504,28 @@ def generate_antimony_from_txt(txt_file_path, name):
|
|
|
504
504
|
# Generate the complete script with compartments, species, and reactions
|
|
505
505
|
complete_script = ""
|
|
506
506
|
|
|
507
|
-
# Add compartment declarations
|
|
507
|
+
# Add compartment declarations.
|
|
508
|
+
#
|
|
509
|
+
# ":=" and not "=", deliberately. With "=" Antimony emits an SBML
|
|
510
|
+
# initialAssignment and marks the compartment constant, so the compartment
|
|
511
|
+
# takes a *copy* of V_<name> at t=0 and nothing ever refreshes it. Rate laws
|
|
512
|
+
# reference the V_<name> parameter directly, so the dynamics stay correct,
|
|
513
|
+
# but every concentration -- amount/compartment for a substanceOnly species
|
|
514
|
+
# -- is then computed against a stale size, and setting V_<name> at runtime
|
|
515
|
+
# does not resize the compartment at all.
|
|
516
|
+
#
|
|
517
|
+
# That diverges silently whenever V_<name> is driven by an assignment rule
|
|
518
|
+
# or is assigned between runs. Measured in the Elbert_Esguerra amyloid model
|
|
519
|
+
# on 2026-09-08, where V_LV grows with atrophy: at age 72 the LV compartment
|
|
520
|
+
# was 10.3x smaller than V_LV, so [X_LV] read 10.3x high while the ODEs were
|
|
521
|
+
# right.
|
|
522
|
+
#
|
|
523
|
+
# ":=" makes the compartment an assignment-rule variable that tracks its
|
|
524
|
+
# parameter. Amounts are unaffected (no spurious dilution flux), every rate
|
|
525
|
+
# law is unchanged since they use V_<name>, and concentrations become
|
|
526
|
+
# consistent with the volume the dynamics actually use.
|
|
508
527
|
for compartment in sorted(unique_compartments):
|
|
509
|
-
complete_script += f"compartment {compartment}
|
|
528
|
+
complete_script += f"compartment {compartment} := V_{compartment}\n"
|
|
510
529
|
complete_script += "\n" # Add blank line after compartments
|
|
511
530
|
|
|
512
531
|
# Add species declarations (use explicit compartment map when available)
|
|
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
|
|
2
2
|
|
|
3
3
|
setup(
|
|
4
4
|
name='pyantigen',
|
|
5
|
-
version='1.0.
|
|
5
|
+
version='1.0.10',
|
|
6
6
|
description='A declarative framework for building compartmental Antimony models',
|
|
7
7
|
author='Open Source Contributor',
|
|
8
8
|
packages=find_packages(include=['framework*']),
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Nuisance_sensitivity.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Profile_checkpoint.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Engine/Sensitivity_analysis.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Modules/Optimizer_settings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Modules/Update_opt_parameters.py
RENAMED
|
File without changes
|
{pyantigen-1.0.9 → pyantigen-1.0.10}/framework/template/Example/Modules/Update_parameters.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|