BiosimulantBiosimulant
Docs
Search labs...
Sign inGet Started

Guyton1972 Aldosterone Lab

About lab

Guyton1972 Aldosterone Lab

This lab asks: How does aldosterone respond to cardiovascular control signals?

The lab is composed of two sub-models: a core SBML simulator (encoded as SBML, solved by Tellurium) and a dedicated viz presenter that turns the raw simulation state into a friendly timeseries plot and a plain-language "What Happened" summary. The split keeps the SBML wrapper clean and makes it easy to swap or extend the visualization without touching the simulator. This a model from the article: Circulation: overall regulation. It can be used to explore cardiac dynamics and compare response patterns across conditions.

What You'll See

The lab opens as a canvas with three model nodes wired in series: the scenario driver on the left, the core simulator in the middle, and the visualization sub-model on the right. After running, the viz node emits four visualizations: an event-annotated absolute timeseries, a baseline-relative response timeseries, a signed response bar chart, and a question-and-answer table titled What Happened that answers How does aldosterone respond to cardiovascular control signals? in plain language. The viz node also publishes the table as a structured run_summary record that downstream nodes can consume.

Primary variables shown: the core publishes a curated state record for the visualization, and the viz node presents these concepts with user-friendly labels:

  • Renal aldosterone response
  • Aldosterone activity
  • Aldosterone concentration effect
  • Potassium-driven aldosterone effect

The first screenshot shows the canvas and results panel with the absolute aldosterone-control trajectories and baseline-relative angiotensin-drive response. The second scrolls down to the ranked response chart and the What Happened Q&A table for the same run.

Guyton1972 aldosterone lab canvas with absolute and baseline-relative angiotensin-drive response trajectories

Guyton1972 aldosterone ranked response chart and What Happened summary table

How the Models Connect

The canvas has two steps:

  1. guyton1972_aldosterone_core: SBML simulator. Receives every contextual input port (ion concentrations, voltages, conductances, etc. — see below), drives roadrunner, and emits two outputs: state (per-window species/state-variable record) and species_labels (a one-time map of {species_id: human_label} lifted from the SBML <species name=...> attributes).
  2. guyton1972_aldosterone_viz: visualization sub-model. Consumes both state and species_labels from the core, accumulates the per-window history, prettifies the labels, and renders the two visuals plus the run_summary output. No SBML, no roadrunner — pure presentation.

How to Read the Visualizations

The absolute timeseries plot has one curve per state variable in the SBML model and marks when the challenge and recovery windows begin. The baseline-relative plot rescales each curve against the pre-challenge baseline so small but real responses are visible. The x-axis is simulation time in seconds and the y-axis is the variable's value in its native SBML unit (concentrations in mM or mol, voltages in mV, currents in pA, volumes in mL — refer to the SBML file for the exact unit per variable). In the default screenshot, the angiotensin-drive challenge starts at 150 s, changes angiotensin drive from 0.987545 to 1.4813175, and recovery starts at 450 s.

The response bar chart ranks final-minus-baseline changes in native SBML units. The "What Happened" table explains the lab question, the applied challenge, the simulated duration, the strongest response, and the interpretation limits. In the shown run, aldosterone activity is the largest final-minus-baseline responder, increasing by about 1.43 native SBML units, followed by aldosterone concentration effect at about 1.30.

What This Lab Contains

  • lab.yaml declares the two sub-models, runtime, IO, and wiring.
  • wiring-layout.json places the two nodes on the canvas with the connecting edges.
  • models/core/model.yaml describes the SBML simulator package.
  • models/core/src/guyton1972_aldosterone_model0911376350_model.py is the SBML wrapper (no visualization code).
  • models/core/data/MODEL0911376350.xml is the original SBML file from BioModels.
  • models/core/tests/ checks instantiation, output accumulation, and output keys.
  • models/viz/model.yaml describes the visualization sub-model.
  • models/viz/src/guyton1972_aldosterone_viz.py consumes core state + labels and renders timeseries, Q&A table, and the run_summary record.
  • models/viz/tests/ exercises the viz with synthetic state inputs (no SBML or roadrunner needed).

Inputs

This lab exposes a set of contextual scalar ports specific to its SBML, plus three generic fallback ports for everything else.

Contextual ports (recommended)

These map a human-friendly port name onto a real SBML global parameter. Wire them from upstream nodes or set them in lab.yaml runtime.initial_inputs. Each scalar override is applied to roadrunner before the next advance_window call.

InputMeaningDefaultUnit
angiotensin_driveSets angiotensin drive for the scenario.0.987545—
potassium_effectSets potassium effect for the scenario.4.44092—
sympathetic_driveSets sympathetic drive for the scenario.0.65—

Generic fallback ports

  • integration_step (s, scalar): override the ODE solver step. Smaller is more precise but slower. Default 1.
  • parameter_overrides (record, dict of {parameter_id: value}): apply override values to any SBML global parameter listed in the SBML Parameters table below — useful when you need to override a parameter that has no contextual port. Applied before each window.
  • initial_conditions (record, dict of {species_id: value}): override the starting concentration of any species in the SBML Species table below. Applied at setup and on reset.

Outputs

  • scenario_metadata (from scenario): scenario name, active challenge input, baseline/challenge/recovery timing, and event markers used by the visualizations.
  • state (from core): a record of every species and state variable in the SBML model at each communication step. Units are mixed; see the SBML file for per-species units.
  • run_summary (from viz): structured Q&A record echoing the rows in the "What Happened" table — {duration_s, point_count, state_variable_count, rows}. Useful for downstream nodes that want to consume the same plain-language summary the user sees in the visualization.

Running in Biosimulant Desktop

Import the lab source folder directly:

biosimulant labs import labs/guyton1972-aldosterone

Then open the imported lab and press Run. The results should include the state-variable timeseries and the What Happened Q&A table.

Notes

  • The bundled run uses a baseline plus challenge scenario so the first visualization shows a physiological perturbation without changing the upstream SBML equations.
  • Default run length is 600 s with a 1 s communication step. These are conservative defaults chosen by category (single-cell electrophysiology vs whole-system circulation vs slow regulatory loop). Tune them in lab.yaml.
  • Requires tellurium==2.2.11.2. The first import compiles the SBML to LLVM in-process.
  • License: CC0 (from upstream BioModels entry biomodels_ebi:MODEL0911376350).
  • This wrapper does not modify the upstream biology. To change rates, initial conditions, or kinetic laws, edit the SBML file in models/core/data/MODEL0911376350.xml directly.

Advanced SBML Identifiers

SBML Parameters

Full list of global parameter IDs, for use with parameter_overrides. Defaults come from the upstream SBML.

Parameter IDNameDefault Value
ANMANM0.987545
CKECKE4.44092
ANMALANMAL(unset)
OSMALOSMAL(unset)
AMR1AMR1(unset)
AMRBSCAMRBSC(unset)
AMRTAMRT(unset)
AMRAMR(unset)
AMCAMC1
AMAM(unset)
AM1AM1(unset)
AMKAMK(unset)
AMKTAMKT(unset)
AMNAAMNA(unset)
AMNATAMNAT(unset)
ANMALDANMALD2.5
AMKMULAMKMUL12
ALDINFALDINF0
ALDKNSALDKNS0
AMTAMT60
AM1ULAM1UL5
AM1LLAM1LL0
AMCSNSAMCSNS0.65
ALDMMALDMM2.5
AMKMAMKM0.5
AMNAMAMNAM0.8
AMNAULAMNAUL15
AMNALLAMNALL0.04
tutime_unit1

SBML Species

Full list of species IDs, for use with initial_conditions.

No species declared in this SBML file.

Two-model lab for Guyton1972 Aldosterone: a core SBML simulator wired into a dedicated visualization sub-model that turns the raw state into friendly timeseries and a plain-language summary. This a model from the article: Circulation: overall regulation. It can be used to explore cardiac dynamics and compare response patterns across conditions.

Runtime

Duration600
Comms Step1

Runs

Total0
Completed0
Failed0

Metadata

Packageguyton1972-aldosterone-lab
Created2026-05-14
Updated2026-05-14
cardiovascularscenariostimulussbmlbiomodels_ebifaithfulvisualization

Manifest

{
  "io": {
    "inputs": [
      {
        "name": "integration_step",
        "maps_to": "guyton1972_aldosterone_core.integration_step"
      },
      {
        "name": "parameter_overrides",
        "maps_to": "guyton1972_aldosterone_core.parameter_overrides"
      },
      {
        "name": "initial_conditions",
        "maps_to": "guyton1972_aldosterone_core.initial_conditions"
      }
    ],
    "outputs": [
      {
        "name": "scenario_metadata",
        "maps_to": "guyton1972_aldosterone_scenario.scenario_metadata"
      },
      {
        "name": "state",
        "maps_to": "guyton1972_aldosterone_core.state"
      },
      {
        "name": "run_summary",
        "maps_to": "guyton1972_aldosterone_viz.run_summary"
      }
    ]
  },
  "title": "Guyton1972 Aldosterone Lab",
  "models": [
    {
      "path": "owned/models/guyton1972_aldosterone_scenario",
      "alias": "guyton1972_aldosterone_scenario",
      "parameters": {
        "schedule": {
          "potassium_effect": {
            "unit": "dimensionless",
            "label": "potassium effect",
            "active": false,
            "baseline": 4.44092,
            "recovery": 4.44092,
            "challenge": 4.44092,
            "description": "Scenario-controlled potassium effect value."
          },
          "angiotensin_drive": {
            "unit": "dimensionless",
            "label": "angiotensin drive",
            "active": true,
            "baseline": 0.987545,
            "recovery": 0.987545,
            "challenge": 1.4813175,
            "description": "Scenario-controlled angiotensin drive value."
          },
          "sympathetic_drive": {
            "unit": "dimensionless",
            "label": "sympathetic drive",
            "active": false,
            "baseline": 0.65,
            "recovery": 0.65,
            "challenge": 0.65,
            "description": "Scenario-controlled sympathetic drive value."
          }
        },
        "scenario_name": "Cardiovascular control challenge",
        "baseline_until": 150,
        "challenge_until": 450,
        "scenario_description": "Baseline is followed by a angiotensin drive challenge and recovery period."
      },
      "provenance": {
        "owned_path": "owned/models/guyton1972_aldosterone_scenario"
      }
    },
    {
      "path": "owned/models/guyton1972_aldosterone_core",
      "alias": "guyton1972_aldosterone_core",
      "parameters": {
        "model_path": "data/MODEL0911376350.xml",
        "integration_step": 1
      },
      "provenance": {
        "owned_path": "owned/models/guyton1972_aldosterone_core"
      }
    },
    {
      "path": "owned/models/guyton1972_aldosterone_viz",
      "alias": "guyton1972_aldosterone_viz",
      "parameters": {
        "lab_title": "Guyton1972 Aldosterone",
        "lab_question": "How does aldosterone respond to cardiovascular control signals?",
        "integration_step": 1
      },
      "provenance": {
        "owned_path": "owned/models/guyton1972_aldosterone_viz"
      }
    }
  ],
  "wiring": [
    {
      "to": [
        "guyton1972_aldosterone_core.angiotensin_drive"
      ],
      "from": "guyton1972_aldosterone_scenario.angiotensin_drive"
    },
    {
      "to": [
        "guyton1972_aldosterone_core.potassium_effect"
      ],
      "from": "guyton1972_aldosterone_scenario.potassium_effect"
    },
    {
      "to": [
        "guyton1972_aldosterone_core.sympathetic_drive"
      ],
      "from": "guyton1972_aldosterone_scenario.sympathetic_drive"
    },
    {
      "to": [
        "guyton1972_aldosterone_viz.scenario_metadata"
      ],
      "from": "guyton1972_aldosterone_scenario.scenario_metadata"
    },
    {
      "to": [
        "guyton1972_aldosterone_viz.state"
      ],
      "from": "guyton1972_aldosterone_core.state"
    },
    {
      "to": [
        "guyton1972_aldosterone_viz.species_labels"
      ],
      "from": "guyton1972_aldosterone_core.species_labels"
    }
  ],
  "runtime": {
    "duration": 600,
    "initial_inputs": {
      "guyton1972_aldosterone_core": {
        "integration_step": 1,
        "initial_conditions": {
          "payload": {}
        },
        "parameter_overrides": {
          "payload": {}
        }
      }
    },
    "communication_step": 1
  },
  "description": "Two-model lab for Guyton1972 Aldosterone: a core SBML simulator wired into a dedicated visualization sub-model that turns the raw state into friendly timeseries and a plain-language summary. This a model from the article: Circulation: overall regulation. It can be used to explore cardiac dynamics and compare response patterns across conditions.",
  "schema_version": "2.0"
}

Sign in to start your own run. Public-lab history stays visible here.

Select a run from History to view its results.