IINTS-AF Formula Registry¶
Registry version: iints-formula-registry-v6
These formulas document deterministic SDK code. The local AI may explain them, but it must not derive, solve, or alter them.
Evidence classes: canonical means a direct published equation, adapted means a published model changed for SDK integration, and heuristic means an explicit research assumption that requires calibration and external validation.
No registry entry, including a canonical equation, establishes clinical validity for its parameterization or for the combined simulator.
F01_BERGMAN_GLUCOSE_RHS: Bergman-style glucose concentration balance¶
Category: physiology
Evidence class: adapted
Canonical expression:
Plain-text runtime notation
dG/dt = -(p1_eff + X)G + p1_eff*Gb_eff + Ra + dawn - U_exercise - F_R
Runtime/solved form: Integrated by scipy.solve_ivp over each simulator step; glucose transition is rate-guarded after integration.
Units: G in mg/dL, rates in mg/dL/min
Implementation: src/iints/core/patient/bergman_model.py:_ode
Literature basis: source 1, source 2
Validation note: Research extension of Bergman minimal-model dynamics with added meal, renal, exercise, dawn, glucagon, and HAAF terms.
F02_BERGMAN_REMOTE_INSULIN: Remote insulin action¶
Category: physiology
Evidence class: adapted
Canonical expression:
Plain-text runtime notation
dX/dt = -p2*X + p3_eff*(I - I_ref)
Runtime/solved form: First-order action compartment integrated inside the Bergman ODE RHS.
Units: X in 1/min, I in mU/L
Implementation: src/iints/core/patient/bergman_model.py:_ode
Literature basis: source 1
Validation note: X is a deviation-from-reference action state and can become negative when insulin falls below the pump-supported fasting reference concentration. I_ref is derived from basal delivery, distribution volume and clearance; the configured Ib is used only when basal delivery is zero.
F03_PLASMA_INSULIN_BALANCE: Plasma insulin balance with optional graft secretion¶
Category: physiology
Evidence class: heuristic
Canonical expression:
Plain-text runtime notation
q_sec=gamma*M_graft*max(G-h,0)*V_I; dI/dt=-n*I+(q_sec*(1-f_subq)+Ra_I)/V_I
Runtime/solved form: Integrated in Bergman mode; gamma defaults to 0 for T1D research profiles. If f_subq>0, graft secretion first enters the S1/S2 absorption chain.
Units: I in mU/L, Ra_I in mU/min, V_I in L
Implementation: src/iints/core/patient/bergman_model.py:_ode
Literature basis: source 1
Validation note: Stem-cell/islet graft secretion is an experimental abstraction and is disabled by default for T1D simulation.
F04_SUBCUT_INSULIN_TWO_DEPOT_PK: Two-depot subcutaneous insulin absorption¶
Category: physiology
Evidence class: adapted
Canonical expression:
Plain-text runtime notation
q_sec=gamma*M_graft*max(G-h,0)*V_I; dS1/dt = u_I + q_sec*f_subq - k*S1; dS2/dt = k*S1 - k*S2; U_I = k*S2
Runtime/solved form: Bergman uses k_a; Hovorka uses 1/t_max_I. The state equations are integrated each step.
Units: S1/S2 in mU, u_I/U_I in mU/min
Implementation: src/iints/core/patient/bergman_model.py:_ode, src/iints/core/patient/hovorka_model.py:_ode
Literature basis: source 1
Validation note: Runtime code chooses the insulin absorption time constant deterministically from configured insulin type.
F05_MEAL_ABSORPTION_CHAIN: Meal absorption and glucose appearance¶
Category: physiology
Evidence class: adapted
Canonical expression:
Plain-text runtime notation
Hovorka: dD1/dt=-D1/tmaxG; dD2/dt=D1/tmaxG-D2/tmaxG; U_G=A_G*D2/tmaxG. Bergman adaptation: Q_sto1 -> Q_sto2 -> Q_gut.
Runtime/solved form: Hovorka mode uses the published two-compartment chain. Bergman and advanced modes retain an explicitly adapted stomach/gut chain.
Units: carbohydrate mass in mg; U_G/Ra in mg/min or mg/dL/min after volume scaling
Implementation: src/iints/core/patient/bergman_model.py:_ode, src/iints/core/patient/hovorka_model.py:_ode
Literature basis: source 1, source 2
Validation note: The Hovorka branch follows its published meal equations; the Bergman three-stage branch is an IINTS adaptation and requires dataset calibration.
F06_HOVORKA_GLUCOSE_MASS_BALANCE: Hovorka-style accessible/non-accessible glucose mass balance¶
Category: physiology
Evidence class: adapted
Canonical expression:
Plain-text runtime notation
dQ1/dt = -(NIMGU + F_R) - x1*Q1 + k12*Q2 + EGP0*max(0, 1 - x3 + x_gluc) + U_G + V_G*dawn_rate; dQ2/dt = x1*Q1 - (k12 + x2)*Q2
Runtime/solved form: Integrated by scipy.solve_ivp; concentration is G = Q1 / V_G_dL after integration.
Units: Q1/Q2 in mg, G in mg/dL, mass fluxes in mg/min
Implementation: src/iints/core/patient/hovorka_model.py:_ode
Literature basis: source 1
Validation note: Research Hovorka-style RHS with explicit extensions for glucagon, renal loss, exercise, stress, and a phenomenological dawn input.
F07_HOVORKA_INSULIN_ACTION_CHANNELS: Hovorka-style insulin action channels¶
Category: physiology
Evidence class: heuristic
Canonical expression:
Plain-text runtime notation
dx1/dt=-ka1*x1+kb1*I; dx2/dt=-ka2*x2+kb2*I; dx3/dt=-ka3*x3+kb3*I; kb_i includes molecular_affinity_scalar
Runtime/solved form: kb1/kb2/kb3 are deterministic sensitivity products before ODE integration.
Units: x1/x2 in 1/min-like action states; x3 dimensionless research action
Implementation: src/iints/core/patient/hovorka_model.py:_ode
Literature basis: source 1
Validation note: The Hovorka action-channel topology is literature based, but the overall, tissue-specific, and molecular-affinity scalars are explicit IINTS scenario assumptions. They are not inferred from AlphaFold confidence or ClinVar labels and require independent calibration before quantitative interpretation.
F08_STRESS_EXERCISE_SENSITIVITY: Stress/exercise sensitivity and EGP multipliers¶
Category: physiology
Evidence class: heuristic
Canonical expression:
Plain-text runtime notation
dH_stress/dt=(target_stress-H_stress)/20; dH_exercise/dt=(target_exercise-H_exercise)/10; S_overall=(1-0.7*H_stress)*(1+2*H_exercise); EGP_stress=1+0.5*H_stress
Runtime/solved form: Pseudo-hormone states are first-order deterministic filters of scenario inputs.
Units: dimensionless states, time constants in minutes
Implementation: src/iints/core/patient/hovorka_model.py:_ode
Literature basis: source 1, source 2
Validation note: The sources support the direction of exercise effects on glucose effectiveness, insulin sensitivity, and insulin-independent uptake. The IINTS filter time constants and multiplier coefficients are heuristic scenario parameters, not values identified or clinically validated by those studies. The stress branch is not a cortisol/adrenaline concentration model.
F09_GLUT4_NIMGU_EXERCISE: Exercise-driven GLUT4/NIMGU state¶
Category: physiology
Evidence class: heuristic
Canonical expression:
Plain-text runtime notation
dGLUT4/dt = k_act*H_exercise*(1-GLUT4) - k_deact*GLUT4; NIMGU = F_01c*(1 + 1.5*GLUT4)
Runtime/solved form: Exercise can increase non-insulin-mediated glucose uptake without LLM calculation.
Units: GLUT4 dimensionless, NIMGU in mg/min
Implementation: src/iints/core/patient/hovorka_model.py:_ode
Literature basis: source 1, source 2
Validation note: The sources support exercise-mediated insulin-dependent and insulin-independent glucose utilization. GLUT4 is a bounded latent scenario state here; its activation/deactivation constants and 1.5 uptake multiplier are IINTS heuristics, not measured receptor abundance or a cell-level translocation assay.
F10_CIRCADIAN_DAWN_EGP: Phenomenological dawn glucose-rate perturbation¶
Category: physiology
Evidence class: heuristic
Canonical expression:
Plain-text runtime notation
w(t)=0.5*[1+cos(pi*(t-t_mid)/h)] inside the configured window, otherwise 0; dawn_rate=(s_dawn/60)*w(t)
Runtime/solved form: Computed directly in mg/dL/min. Concentration-domain models add the rate; Hovorka converts it to glucose mass flow using V_G.
Units: dawn_phenomenon_strength: mg/dL/hour; runtime rate: mg/dL/min
Implementation: src/iints/core/patient/physiology.py:dawn_glucose_rate_mgdl_min, src/iints/core/patient/models.py:update, src/iints/core/patient/bergman_model.py:_ode, src/iints/core/patient/hovorka_model.py:_ode, src/iints/core/patient/advanced_metabolic_model.py:_ode
Literature basis: source 1, source 2
Validation note: The sources support circadian variation in glucose regulation. The raised-cosine shape and configured peak rate are an IINTS scenario heuristic, not coefficients estimated from either study. The default is zero, and all backends use the same declared unit.
F11_HYPO_RESCUE_MULTIPLIER: Endogenous hypoglycemia rescue multiplier¶
Category: physiology
Evidence class: heuristic
Canonical expression:
Plain-text runtime notation
Delta=max(0,70-G); a=Delta/(16+Delta); R_rescue=1+a*(1-HAAF)
Runtime/solved form: Computed directly inside ODE RHS before effective EGP is assembled.
Units: G in mg/dL; multiplier dimensionless
Implementation: src/iints/core/patient/bergman_model.py:_ode, src/iints/core/patient/hovorka_model.py:_ode
Literature basis: source 1, source 2
Validation note: Captures the concept of blunted counterregulation; not a diagnostic HAAF model.
F12_HAAF_MEMORY: Hypoglycemia-associated autonomic failure memory¶
Category: physiology
Evidence class: heuristic
Canonical expression:
Plain-text runtime notation
severity=clip((70-G)/16,0,1.5); dHAAF/dt=severity*(1-HAAF)/360-HAAF/4320
Runtime/solved form: Integrated as a bounded state. Material excursions outside [0, 1] fail the step; only solver-scale numerical tolerance is projected back.
Units: dimensionless memory state, rates in 1/min
Implementation: src/iints/core/patient/bergman_model.py:_ode, src/iints/core/patient/hovorka_model.py:_ode
Literature basis: source 1, source 2
Validation note: Research memory state only; never report as clinical hypo-awareness diagnosis.
F13_EXOGENOUS_GLUCAGON_PKPD: Two-depot glucagon PK/PD effect on EGP¶
Category: physiology
Evidence class: adapted
Canonical expression:
Plain-text runtime notation
dY1/dt=u_G-k1*Y1; dY2/dt=k1*Y1-k2*Y2; Gamma=k2*Y2/(W*Cl_F,C); a_G=Gamma/(CE50+Gamma); dx_gluc/dt=k_aG*(S_G*a_G-x_gluc)
Runtime/solved form: Input doses are converted exactly from mg to pg. The two-state PK and clearance output follow Wendt et al.; the bounded effect compartment is an explicit IINTS adaptation.
Units: u_G in pg/min (1 mg = 10^9 pg), Y depots in pg, W in kg, clearance in mL/kg/min, Gamma and CE50 in pg/mL
Implementation: src/iints/core/patient/bergman_model.py:_ode, src/iints/core/patient/hovorka_model.py:_ode
Literature basis: source 1, source 2
Validation note: The PK structure and representative parameter ranges are literature-based. The bounded effect-compartment coupling remains an unvalidated IINTS adaptation.
F14_SMOOTH_RENAL_CLEARANCE: Differentiable renal glucose clearance¶
Category: physiology
Evidence class: heuristic
Canonical expression:
Plain-text runtime notation
softplus(z)=s*log(1+exp(z/s)); z=G-162; F_R=c*softplus(G-162)
Runtime/solved form: Bergman uses concentration loss; Hovorka scales by V_G_dL for mass loss.
Units: G in mg/dL; F_R in mg/dL/min or mg/min after volume scaling
Implementation: src/iints/core/patient/physiology.py:smooth_threshold_excess, src/iints/core/patient/bergman_model.py:_ode, src/iints/core/patient/hovorka_model.py:_ode
Literature basis: source 1, source 2
Validation note: Smooth approximation to avoid discontinuous renal cutoff; threshold is a configurable research approximation.
F15_CGM_ISF_OBSERVATION: CGM blood-to-ISF lag and deterministic observation equation¶
Category: sensor
Evidence class: adapted
Canonical expression:
Plain-text runtime notation
tau_ISF*dISF/dt = BG_lagged - ISF; alpha=1-exp(-dt/tau_ISF); ISF_next = ISF + alpha*(BG_lagged-ISF); CGM = ISF + bias + drift + noise - compression_offset
Runtime/solved form: Exact constant-input first-order update; stochastic noise uses seeded RNG state, not AI.
Units: mg/dL
Implementation: src/iints/core/devices/models.py:SensorModel.read
Literature basis: source 1, source 2
Validation note: Models known CGM lag/noise qualitatively; seeded stochastic terms are reproducible when state is saved.
F16_CIRCADIAN_DAWN_INSULIN_RESISTANCE: Phenomenological dawn insulin-resistance multiplier¶
Category: physiology
Evidence class: heuristic
Canonical expression:
Plain-text runtime notation
w(t) as in F10; M_dawn(t) = 1 - f_dawn*w(t), with 0 <= f_dawn < 1 so M_dawn stays strictly positive
Runtime/solved form: Dimensionless multiplier evaluated per step and applied to the existing insulin-sensitivity factors: p3 in the Bergman and advanced backends, k_b1/k_b2/k_b3 (S_IT, S_ID, S_IE) in Hovorka, and the effective ISF in the simplified backend. It shares the window w(t) of F10, so both dawn components peak together.
Units: dawn_insulin_resistance_fraction: dimensionless fraction in [0, 1)
Implementation: src/iints/core/patient/physiology.py:dawn_insulin_sensitivity_multiplier, src/iints/core/patient/models.py:update, src/iints/core/patient/bergman_model.py:_ode, src/iints/core/patient/hovorka_model.py:_ode, src/iints/core/patient/advanced_metabolic_model.py:_ode
Literature basis: source 1, source 2
Validation note: The sources support a circadian fall in insulin sensitivity toward the early morning, and the first was written as physiological input for in silico artificial-pancreas work. The raised-cosine shape and the peak fraction are an IINTS scenario heuristic, not coefficients estimated from either study. This term exists because F10 alone is dose-cancellable: a controller can out-dose an additive inflow, but not a loss of sensitivity, so an inflow-only dawn flatters an algorithm overnight. The default is zero, which reproduces the pre-existing behaviour exactly.