Quantitative Human Physiology
Overview
248 atomic equations across 9 physiological domains with full dependency tracking. Each equation is a standalone Python module with compute functions, parameters, and metadata.
Architecture
scripts/ ├── foundations/ # 20 equations - transport, diffusion, thermodynamics ├── membrane/ # 18 equations - channels, pumps, potential ├── excitable/ # 22 equations - action potentials, muscle ├── nervous/ # 27 equations - synapses, sensory, motor ├── cardiovascular/ # 31 equations - heart, circulation, hemodynamics ├── respiratory/ # 41 equations - ventilation, gas exchange ├── renal/ # 30 equations - filtration, clearance ├── gastrointestinal/ # 34 equations - digestion, absorption └── endocrine/ # 25 equations - hormones, feedback
Quick Import
Import entire domains
from scripts import cardiovascular, respiratory, renal
Import specific equations
from scripts.cardiovascular.cardiac import cardiac_output, ejection_fraction from scripts.respiratory.gas_exchange import alveolar_gas_equation from scripts.renal.clearance import clearance, filtered_load
Import foundations used across domains
from scripts.foundations.transport import poiseuille_flow from scripts.foundations.thermodynamics import nernst_equation
Core Principles
Conservation Laws
-
Mass: Input = Output + Accumulation
-
Energy: Follow thermodynamic constraints
-
Charge: Maintain electroneutrality
Transport Classification
-
Bulk flow: Pressure-driven (Poiseuille)
-
Diffusion: Concentration-driven (Fick)
-
Active transport: ATP-coupled pumps
Essential Equations
Transport
Poiseuille's Law (laminar flow):
Q = (πr⁴/8η) × (ΔP/L)
Flow scales with radius⁴. Doubling vessel radius → 16× flow.
Fick's First Law (diffusion):
J = -D × (dC/dx)
Diffusion time scaling:
t = x²/(2D)
Membrane Potential
Nernst equation (single ion equilibrium):
E = (RT/zF) × ln(C_out/C_in)
At 37°C: E ≈ (61.5/z) × log₁₀(C_out/C_in) mV
Goldman-Hodgkin-Katz (multiple ions):
V_m = (RT/F) × ln[(P_K[K]_o + P_Na[Na]_o + P_Cl[Cl]_i) / (P_K[K]_i + P_Na[Na]_i + P_Cl[Cl]_o)]
Kinetics
Michaelis-Menten:
J = J_max × [S] / (K_m + [S])
Hill equation (cooperativity):
J = J_max × [S]ⁿ / (K₀.₅ⁿ + [S]ⁿ)
Cross-Domain Equations
These foundational equations are used across multiple physiological systems:
Equation Primary Also Used In Import
Nernst foundations membrane, excitable, nervous, cardiovascular, renal from scripts.foundations.thermodynamics import nernst_equation
Fick Diffusion foundations respiratory, renal, cardiovascular from scripts.foundations.diffusion import fick_flux
Poiseuille foundations cardiovascular, renal from scripts.foundations.transport import poiseuille_flow
Michaelis-Menten foundations renal, gastrointestinal, endocrine from scripts.foundations.kinetics import michaelis_menten
Hill foundations excitable, cardiovascular, respiratory, endocrine from scripts.foundations.kinetics import hill_equation
Henderson-Hasselbalch foundations respiratory, renal from scripts.foundations.thermodynamics import henderson_hasselbalch
Starling Forces cardiovascular renal, gastrointestinal from scripts.cardiovascular.microcirculation import starling_filtration
Goldman-Hodgkin-Katz membrane excitable, nervous, cardiovascular from scripts.membrane.potential import ghk_potential
Domain Reference Files
Load specific references for detailed domain analysis:
Domain Reference Equations Key Topics
Physical Foundations references/physical-foundations.md
20 Poiseuille, Laplace, diffusion, thermodynamics
Membranes & Transport references/membranes-transport.md
18 Channels, pumps, osmosis, Donnan equilibrium
Excitable Cells references/excitable-cells.md
22 Action potentials, Hodgkin-Huxley, muscle
Nervous System references/nervous-system.md
27 Synapses, sensory, motor control
Cardiovascular references/cardiovascular.md
31 Frank-Starling, hemodynamics, ECG
Respiratory references/respiratory.md
41 Lung mechanics, V/Q matching, acid-base
Renal references/renal.md
30 GFR, tubular function, countercurrent
Gastrointestinal references/gastrointestinal.md
34 Secretion, absorption, motility
Endocrine references/endocrine.md
25 Hormone kinetics, HPA axis, feedback
Dependency Graph
See graph/dependency-graph.json for full equation dependencies.
Key Dependency Chains
-
Membrane → Action Potential: Nernst → GHK → HH membrane current → Na/K currents
-
Oxygen Cascade: Hill saturation → O₂ content → O₂ delivery → Fick principle
-
Renal Clearance: RPF → filtration fraction → GFR → clearance → fractional excretion
-
HPA Axis: CRH dynamics → ACTH dynamics → Cortisol dynamics → feedback gain
Functional Clusters
See graph/clusters.json for equation groupings by physiological function:
-
Transport & Fluid Mechanics (7 equations)
-
Electrochemical Gradients (5 equations)
-
Excitation-Contraction Coupling (5 equations)
-
Oxygen Transport Cascade (6 equations)
-
Acid-Base Homeostasis (5 equations)
-
Renal Filtration & Clearance (6 equations)
-
Hormone Kinetics & Feedback (5 equations)
-
Synaptic & Neural Signaling (5 equations)
-
GI Secretion & Absorption (5 equations)
-
Cardiovascular Regulation (5 equations)
Physical Constants
Constant Symbol Value Units
Gas constant R 8.314 J/(mol·K)
Faraday constant F 96,485 C/mol
Body temperature T 310 K
Example Usage
Calculate Nernst potential for K⁺:
from scripts.foundations.thermodynamics import nernst_equation E_K = nernst_equation.compute(z=1, C_out=4, C_in=140) # ≈ -95 mV
Calculate cardiac output:
from scripts.cardiovascular.cardiac import cardiac_output CO = cardiac_output.compute(heart_rate=70, stroke_volume=0.070) # 4.9 L/min
Calculate GFR from Starling forces:
from scripts.renal.glomerular import gfr_from_nfp, net_filtration_pressure NFP = net_filtration_pressure.compute(P_gc=50, P_bs=15, pi_gc=25, pi_bs=0) GFR = gfr_from_nfp.compute(Kf=12.5, NFP=NFP) # mL/min
Physiological Reference Values
Parameter Normal Range
Resting membrane potential -70 to -90 mV
Cardiac output 4-8 L/min
Blood pressure 120/80 mmHg
GFR 90-120 mL/min
Arterial pH 7.35-7.45
PaO₂ 80-100 mmHg
PaCO₂ 35-45 mmHg
Problem-Solving Workflow
-
Identify the process: Flow, diffusion, electrical, kinetics?
-
List knowns with units: Enforce dimensional consistency
-
Select equation module: Match process to appropriate domain
-
Calculate: Use .compute() method with parameters
-
Validate: Check result against physiological ranges
-
Interpret: Explain biological significance
Load domain-specific references when detailed mechanisms needed beyond core equations.