Code, preregistrations and per-seed results for:
Chen C-W, Wang T-C, Ko Y-F. A decoder branch for the cardiac component of lung EIT: a preregistered, parameter-matched evaluation across measurement-noise levels. Submitted to Scientific Reports, 2026 (tag
v1.1-submission; the earlier tagv1.0-submissionis the Physiological Measurement submission of 2026-09-26, returned without review).
The semi-Siamese U-Net separates the cardiac from the ventilatory component of GREIT-reconstructed lung EIT images with a decoder branch dedicated to the cardiac output. This repository holds everything needed to regenerate the two preregistered studies and the registered addendum: EIDORS data generation, training, scoring, the SNR sweep, the retrained 20 dB contrast, figures, tables, and the simulated-review and citation-verification record that the manuscript's Acknowledgements refer to.
| Path | What |
|---|---|
PREREGISTRATION.md, .sha256 |
Study 1 (lung endpoint, n = 10), hashed 2026-08-28; §8 deviation log |
PREREGISTRATION_HEART.md, .sha256 |
Study 2 (heart endpoint, n = 58), hashed 2026-08-29; §8 deviation log; §9 addendum (retrained 20 dB contrast, 35/25 dB levels, geometry bootstrap), hashed 2026-09-23 before any of its runs |
RESULTS_STUDY2.md |
Laboratory record of every number, in registered order |
METRIC_DEFECT_2026-09-18.md |
The scoring defect found after unblinding, and its correction |
tools/ |
MATLAB/EIDORS data generation (gen_dataset.m, gen_snr_sweep.m, gen_snr_full.m, fwd_triple.m), training (train_arms.py, arms.py), scoring (evaluate.py), analyses (h3_snr.py, rel_err_sweep.py, noise_perturbation.py, geom_bootstrap.py, verify_manuscript_numbers.py), figures and tables (make_fig*.py, make_tables.py, make_table3.py, make_table_s9.py, figstyle.py), citation registry (cite.py, apply_ref_overrides.py). tools/PlotNeuralNet/ is a vendored copy of HarisIqbal88/PlotNeuralNet (MIT) used for the architecture diagrams |
results_v2_fix/ |
40 dB primary analysis (five arms × 58 seeds): per_seed.csv, per_image.csv, summary.json |
results_v2_snr{60,50,40,35,30,25,20}_heart_fix/, ..._lung_fix/ |
Evaluation-only sweep of the 40 dB-trained models |
results_20db_fix/ |
Addendum §9.2: D and B_wide trained and evaluated at 20 dB |
results_v1_*_fix/ |
Study 1 |
results/ |
Derived files: tables/ (Tables 1–3 and Table S9), geom_bootstrap.json, noise_perturbation_40_to_20.json, manuscript_numbers.json, sweep_all_arms_heart.json, env_mini.json |
figures/ |
Fig. 1–4, S1 architecture diagrams, S3 |
refs/ |
Citation registry generated by cite.py from Crossref/PubMed, with the per-entry check table and the documented overrides (overrides.json, each with its source and date) |
review_record/ |
Simulated peer-review panels (round 1 of 2026-09-23 and its re-review; round 2 of 2026-10-06 and its re-review of 2026-10-07, with the five seats' cards and the three-gate verification artefacts), author triage and revision authority for every round, citation audits, the revision patches and their apply reports, as referred to in the Methods (Use of artificial intelligence tools) |
preds.npz |
The six dumped test frames behind Fig. 4 |
.gitignore excludes datasets (*.mat, regenerable), checkpoints (*.pt, 406 files ≈ 17 GB, available on request) and run folders.
- Data (MATLAB R2026a, EIDORS v3.8, Netgen 6.1; the phantom and noise helpers
p2_*.mare in the companion projectEIT_noise_geometry/src, referenced by relative path in the scripts):gen_dataset('data/v2', 3600, 'snr_db', 40)→gen_snr_sweep([60 50 40 35 30 25 20])→gen_snr_full(20). - Training (Python 3.9, PyTorch 2.8, one machine per contrast):
python3 tools/train_arms.py --data data/v2/dataset.mat --arms B B_wide C C_wide D --seeds $(seq 0 57) --out runs --prereg PREREGISTRATION_HEART.md; the addendum:bash tools/run_addendum_mini.sh <sweep-root>. - Scoring:
python3 tools/evaluate.py --data <dataset.mat> --runs <runs> --out <results dir> --primary D B_wide --channel heart(the corrected quarter-amplitude path is the default;--qa-space normalisedreproduces the defective pre-2026-09-18 numbers). - Numbers, tables, figures:
python3 tools/verify_manuscript_numbers.py,make_tables.py,make_table3.py,make_table_s9.py,bash tools/build_figures.sh. - Manuscript deliverable:
python3 tools/format_convert_scirep.py <draft.md> <out.md>(Nature-style numbered references rendered bycite.pyfrom the registry inrefs/), thenpython3 tools/pack_submission_scirep.py.
Every training run writes the SHA-256 of the preregistration it ran under into run_meta.json.
Code (tools/) is released under the MIT License (LICENSE). Data, results, figures and written records are released under CC BY 4.0 (LICENSE-DATA). tools/PlotNeuralNet/ retains its own MIT licence.
Yen-Fen Ko, Department of Biomedical Engineering, China Medical University, Taichung, Taiwan — kklven@gmail.com — ORCID 0000-0003-2986-9984