Reproducibility package for: "Intravenous oxygen microbubbles during cardiopulmonary resuscitation: a mechanistic simulation study"
收藏资源简介:
Reproducibility deposit for a mechanistic simulation study of intravenous oxygen polymeric microbubbles (oPMB) during cardiopulmonary resuscitation and in the physiologically difficult airway. This deposit lets any reader reproduce the reported numerical results and figures from source. A single random seed (20260610) governs the Monte Carlo generator and the Sobol sampling, so the analysis is deterministically reproducible in the pinned environment. The principal analyses and all figures reproduce through the documented workflow. Two secondary sensitivities reported in the Supplementary Material are regenerated by documented function calls rather than by the workflow: the delivery-attenuation sweep of ESM S5.2 and the widened Uniform(0, 40%) illustrative penalty distribution of ESM S5.5. MANIFEST.md gives the exact call for each. CONTENTS oxygen_model_v2.py — core model: shared oxygen-transport core (Severinghaus dissociation with Bohr correction, shunt mixing, supply-limited oxygen uptake, carrier loading bounded by spare haemoglobin capacity), the two scenario simulators (difficult airway, CPR-supported arrest) and the bag-valve-mask extension. pipeline_v2.py — seeded Monte Carlo for both scenarios, 2,000 iterations each, cumulative and first-crossing endpoints. pipeline3_v2.py — threshold, oxygen-demand-ceiling and perfusion-penalty sweeps; bag-valve-mask deterministic sweep and Monte Carlo; swine calibration. sobol_v2.py — variance-based global sensitivity analysis (Sobol, SALib), 1,024 base samples and 10,240 evaluations per scenario. freeze_v2.py — regenerates the frozen numbers into one machine-readable results file and saves the raw Monte Carlo arrays. make_figures_v2.py — all manuscript and supplementary figures from the frozen results. test_specification.py — twenty automated checks of specified model behaviour. data/swine_fig4b_values.csv — group-mean arterial SaO2 by minute, extracted from the open-access Source Data of Garcia Mancebo et al. 2024 (Fig 4b), used as the comparison target for the swine calibration. results/ — results_v2.json (deterministic, Monte Carlo, sweep and calibration outputs, with seed and library versions recorded), sobol_v2.json (first- and total-order Sobol indices, both scenarios), mc_arrays_v2.npz (raw Monte Carlo arrays and deterministic trajectories). figures/ — Figure_1 to Figure_5 (main text) and Figure_S1 to Figure_S4. Figure_S_threshold_v2.png is Supplementary Figure S5. Figure_S6_flow_penalty_v2.png is Supplementary Figure S6; the filename retains earlier wording, while the quantity plotted is a penalty on effective cerebral and coronary perfusion. MANIFEST.md — table-and-figure to code map. requirements.txt — pinned environment. LICENSE — MIT. ENVIRONMENT AND WORKFLOW Python 3.12.3 with NumPy 2.4.4, SciPy 1.17.1, Matplotlib 3.10.8, SALib 1.5.2. pip install -r requirements.txt python3 sobol_v2.py # seeded Sobol -> results/sobol_v2.json python3 freeze_v2.py results # frozen numbers -> results/results_v2.json + arrays python3 make_figures_v2.py figures # all figures -> figures/*.png python3 test_specification.py # 20 checks, all must pass The Sobol step takes several minutes; the other two run in about two minutes combined. freeze_v2.py also writes short auto-generated MANIFEST.md, README.md and requirements.txt into its output directory; with the command above these appear inside results/ and duplicate the fuller files in the package root, which are not modified. The test script prints each check with PASS or FAIL alongside a description phrased as the failure mode, so descriptions read as negative statements even when the check passes. results_v2.json records the seed and the library versions used, so files generated in a different environment will differ in those recorded fields. NOTES ON INTERPRETATION The context of use is exploratory hypothesis generation and prioritisation of preclinical experiments, not clinical prediction or decision support. The arrest endpoint is cumulative time above an illustrative cerebral oxygen-delivery threshold of 0.5 mL O2/100 g/min. It is a physiological surrogate, not survival or neurological outcome, and the threshold is not an established boundary for neuronal viability. Its influence is reported as a sensitivity analysis across 0.5 to 2.0. The modelled scenario is CPR-supported hypoxaemic arrest with inadequate pulmonary oxygenation. "Asphyxial" refers to the swine experiment, not to the modelled scenario. The 60 mL/min oxygen figure is an assumed whole-body oxygen-demand ceiling during CPR, not a measured human intra-arrest value. Actual uptake is the lower of that ceiling and the amount extractable from available systemic oxygen delivery. The deterministic sweep covers 40 to 300 mL/min; incremental benefit is approximately flat above 60 mL/min because uptake becomes delivery-limited. All arrest simulations use a fixed 20-minute horizon; curves reaching that horizon are horizon-censored, not biologically plateaued. The one-litre infusion is a candidate modelled dose whose human deliverability is unestablished. The higher-dose schedule is a dose-scaling sensitivity only: it implies 1.68 L of foam at the base-case capacity infused at 280 mL/min during CPR, closer to the swine protocol per kilogram but less plausible as a clinical regimen. The swine analysis is a calibration and component-level plausibility check of the oxygen-delivery and haemoglobin-capacity-limited loading implementation. CPR-generated flow was fitted within the prespecified fitting range to match the measured trajectory and was not independently reported in the source study. It is not independent validation of the human-scale prediction, and no integrated adult-CPR validation is available. Monte Carlo distributions reflect parameter uncertainty under author-selected input distributions, not Bayesian updating from observed data. Reported proportions are conditional on those distributions and on the fixed threshold, and do not incorporate structural model uncertainty. The perfusion penalty is applied only to reported cerebral and coronary delivery. Systemic flow, the circulating oxygen pool and oxygen uptake are left unpenalised, so reduced effective perfusion cannot artificially conserve oxygen. The Uniform(0, 30%) and Uniform(0, 40%) ranges are illustrative penalty distributions, not elicited or estimated priors. The lower uncertainty bound of zero is a structural consequence of a model that adds oxygen and omits harmful mechanisms. It is not evidence of safety. The intervention-only perfusion penalty is an explicit but uncalibrated harm bound. SOURCE DATA ATTRIBUTION data/swine_fig4b_values.csv is derived from the open-access Source Data of: Garcia Mancebo J, Sack K, Hartford J, et al. Systemically injected oxygen within rapidly dissolving microbubbles improves the outcomes of severe hypoxaemia in swine. Nature Biomedical Engineering 2024;8(11):1396-1411. https://doi.org/10.1038/s41551-024-01266-8 (CC BY 4.0)



