BiosimulantBiosimulant
Docs
Search labs...
Sign inGet Started

Niederer2006 Myocyte Relaxation Lab

About lab

Niederer2006 Myocyte Relaxation Lab

This lab asks: How quickly does the myocyte relax after calcium activation?

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: A quantitative analysis of cardiac myocyte relaxation: a simulation study. 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 quickly does the myocyte relax after calcium activation? 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:

  • Cytosolic calcium
  • Bound calcium
  • Troponin calcium-binding pool
  • Z

The captured run applies the configured troponin pool challenge, changing troponin pool from 0.067593139865 to 0.101389709798 during the challenge window before returning to baseline. It evaluates 1 s of simulated dynamics across Cytosolic calcium, Bound calcium, Troponin calcium-binding pool, Z; read the absolute trajectories, baseline-relative plot, response ranking, and summary table together because the variables use different native scales.

Output Visualizations

The first chart shows the absolute model state trajectories in their native units with the challenge timing included.

What did the model simulate?

The second chart normalizes each trajectory against its baseline so smaller relative shifts are visible beside larger state variables.

What changed after the challenge?

The response ranking summarizes final-minus-baseline changes and highlights which selected variables moved most during the configured run.

Which variables responded most?

The summary table restates the lab question, challenge, simulated duration, strongest response, and interpretation limits in plain language.

What Happened

How the Models Connect

The canvas has two steps:

  1. niederer2006_myocyte_relaxation_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. niederer2006_myocyte_relaxation_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). Look for periodic patterns (action-potential-style depolarisations, oscillations), monotonic trends, or steady-state plateaus.

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.

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/niederer2006_cardiacmyocyterelaxation_model8687196544_model.py is the SBML wrapper (no visualization code).
  • models/core/data/MODEL8687196544.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/niederer2006_myocyte_relaxation_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
troponin_poolSets troponin pool for the scenario.0.067593139865—
relaxation_rateSets relaxation rate for the scenario.0.002—
cooperativitySets cooperativity for the scenario.0.008—

Generic fallback ports

  • integration_step (s, scalar): override the ODE solver step. Smaller is more precise but slower. Default 0.001.
  • 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/niederer2006-myocyte-relaxation

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 1 s with a 0.001 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:MODEL8687196544).
  • This wrapper does not modify the upstream biology. To change rates, initial conditions, or kinetic laws, edit the SBML file in models/core/data/MODEL8687196544.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
Ca_iCa_i(unset)
Ca_bCa_b(unset)
TRPNTRPN0.067593139865
zz0.014417937837
z_maxz_max(unset)
alpha_0alpha_00.008
alpha_r1alpha_r10.002
alpha_r2alpha_r20.00175
n_Reln_Rel3
K_zK_z0.15
n_Hilln_Hill3
Ca_50refCa_50ref0.00105
z_pz_p0.85
beta_1beta_1-4
Ca_50Ca_50(unset)
Ca_TRPN_50Ca_TRPN_50(unset)
K_2K_2(unset)
K_1K_1(unset)
alpha_Tmalpha_Tm(unset)
beta_Tmbeta_Tm(unset)
J_TRPNJ_TRPN(unset)
Ca_TRPN_MaxCa_TRPN_Max0.07
k_offk_off(unset)
k_onk_on100
k_Ref_offk_Ref_off0.2
gamma_trpngamma_trpn2
lambdalambda(unset)
ExtensionRatioExtensionRatio(unset)
dExtensionRatiodtdExtensionRatiodt(unset)
lambda_prevlambda_prev(unset)
overlapoverlap(unset)
beta_0beta_04.9
T_refT_ref56.2
T_BaseT_Base(unset)
T_0T_0(unset)
QQ(unset)
aa0.35
Q_1Q_10
Q_2Q_20
Q_3Q_30
A_1A_1-29
A_2A_2138
A_3A_3129
alpha_1alpha_10.03
alpha_2alpha_20.13
alpha_3alpha_30.625
TensionTension(unset)

SBML Species

Full list of species IDs, for use with initial_conditions.

No species declared in this SBML file.

Two-model lab for Niederer2006 Myocyte Relaxation: 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: A quantitative analysis of cardiac myocyte relaxation: a simulation study. It can be used to explore cardiac dynamics and compare response patterns across conditions.

Runtime

Duration1
Comms Step0.001

Runs

Total0
Completed0
Failed0

Metadata

Packageniederer2006-myocyte-relaxation-lab
Created2026-05-14
Updated2026-05-14
cardiovascularscenariostimulussbmlbiomodels_ebifaithfulvisualization

Manifest

{
  "io": {
    "inputs": [
      {
        "name": "integration_step",
        "maps_to": "niederer2006_myocyte_relaxation_core.integration_step"
      },
      {
        "name": "parameter_overrides",
        "maps_to": "niederer2006_myocyte_relaxation_core.parameter_overrides"
      },
      {
        "name": "initial_conditions",
        "maps_to": "niederer2006_myocyte_relaxation_core.initial_conditions"
      }
    ],
    "outputs": [
      {
        "name": "scenario_metadata",
        "maps_to": "niederer2006_myocyte_relaxation_scenario.scenario_metadata"
      },
      {
        "name": "state",
        "maps_to": "niederer2006_myocyte_relaxation_core.state"
      },
      {
        "name": "run_summary",
        "maps_to": "niederer2006_myocyte_relaxation_viz.run_summary"
      }
    ]
  },
  "title": "Niederer2006 Myocyte Relaxation Lab",
  "models": [
    {
      "path": "owned/models/niederer2006_myocyte_relaxation_scenario",
      "alias": "niederer2006_myocyte_relaxation_scenario",
      "parameters": {
        "schedule": {
          "cooperativity": {
            "unit": "dimensionless",
            "label": "cooperativity",
            "active": false,
            "baseline": 0.008,
            "recovery": 0.008,
            "challenge": 0.008,
            "description": "Scenario-controlled cooperativity value."
          },
          "troponin_pool": {
            "unit": "dimensionless",
            "label": "troponin pool",
            "active": true,
            "baseline": 0.067593139865,
            "recovery": 0.067593139865,
            "challenge": 0.1013897097975,
            "description": "Scenario-controlled troponin pool value."
          },
          "relaxation_rate": {
            "unit": "dimensionless",
            "label": "relaxation rate",
            "active": false,
            "baseline": 0.002,
            "recovery": 0.002,
            "challenge": 0.002,
            "description": "Scenario-controlled relaxation rate value."
          }
        },
        "scenario_name": "Troponin pool challenge",
        "baseline_until": 0.25,
        "challenge_until": 0.75,
        "scenario_description": "Baseline is followed by a troponin pool challenge and recovery period."
      },
      "provenance": {
        "owned_path": "owned/models/niederer2006_myocyte_relaxation_scenario"
      }
    },
    {
      "path": "owned/models/niederer2006_myocyte_relaxation_core",
      "alias": "niederer2006_myocyte_relaxation_core",
      "parameters": {
        "model_path": "data/MODEL8687196544.xml",
        "integration_step": 0.001
      },
      "provenance": {
        "owned_path": "owned/models/niederer2006_myocyte_relaxation_core"
      }
    },
    {
      "path": "owned/models/niederer2006_myocyte_relaxation_viz",
      "alias": "niederer2006_myocyte_relaxation_viz",
      "parameters": {
        "lab_title": "Niederer2006 Myocyte Relaxation",
        "lab_question": "How quickly does the myocyte relax after calcium activation?",
        "integration_step": 0.001
      },
      "provenance": {
        "owned_path": "owned/models/niederer2006_myocyte_relaxation_viz"
      }
    }
  ],
  "wiring": [
    {
      "to": [
        "niederer2006_myocyte_relaxation_core.troponin_pool"
      ],
      "from": "niederer2006_myocyte_relaxation_scenario.troponin_pool"
    },
    {
      "to": [
        "niederer2006_myocyte_relaxation_core.relaxation_rate"
      ],
      "from": "niederer2006_myocyte_relaxation_scenario.relaxation_rate"
    },
    {
      "to": [
        "niederer2006_myocyte_relaxation_core.cooperativity"
      ],
      "from": "niederer2006_myocyte_relaxation_scenario.cooperativity"
    },
    {
      "to": [
        "niederer2006_myocyte_relaxation_viz.scenario_metadata"
      ],
      "from": "niederer2006_myocyte_relaxation_scenario.scenario_metadata"
    },
    {
      "to": [
        "niederer2006_myocyte_relaxation_viz.state"
      ],
      "from": "niederer2006_myocyte_relaxation_core.state"
    },
    {
      "to": [
        "niederer2006_myocyte_relaxation_viz.species_labels"
      ],
      "from": "niederer2006_myocyte_relaxation_core.species_labels"
    }
  ],
  "runtime": {
    "duration": 1,
    "initial_inputs": {
      "niederer2006_myocyte_relaxation_core": {
        "integration_step": 0.001,
        "initial_conditions": {
          "payload": {}
        },
        "parameter_overrides": {
          "payload": {}
        }
      }
    },
    "communication_step": 0.001
  },
  "description": "Two-model lab for Niederer2006 Myocyte Relaxation: 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: A quantitative analysis of cardiac myocyte relaxation: a simulation study. 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.