pyRadPlan-dosecalc-Bayes-proton-lung
Bayesian proton dose predictor (ConvBayes_new + blitz BayesianLSTM). Given a CT cuboid and a bixel energy, it predicts a local dose cuboid together with a Monte-Carlo predictive variance, estimated from an ensemble of seeded forward passes (the BayesianLSTM samples fresh weights from its posterior on every call).
Loadable via pyRadPlan.ml.load_model and usable directly as the AIBeamletEngine dose-calculation engine in pyRadPlan:
pln.prop_dose_calc = {"engine": "AIBeamlet", "model": "pyRadPlan-dosecalc-Bayes-proton-lung"}
Repository contents
Follows the pyRadPlan ML model contract (pyRadPlan.ml):
| File | Purpose |
|---|---|
model.py |
ConvBayes_new network definition |
preprocessor.py |
ConvBayesEnsemblePreprocessor — input assembly + Monte-Carlo ensemble inference + output scaling |
weights.safetensors |
Trained weights |
model_config.json |
Declarative model/preprocessing/dose-calc configuration |
Outputs
physical_dose— Monte-Carlo mean dosevariance— predictive variance (Gy²) across the ensemble
The ensemble size defaults to 100 (model_preprocessing.ensemble_size in model_config.json), and can be overridden per plan via pln.prop_dose_calc["ensemble_size"].
Training assumptions
- Radiation mode: protons
- Energy range: 75–160 MeV
- Trained machine: Generic
- Sampling grid: 2 mm spacing, 52 mm lateral range, depth range [-220, 100] mm
Predictions outside this range are not guaranteed to be accurate; AIBeamletEngine warns when the plan falls outside the declared range.
Security note: loading this model executes
model.py/preprocessor.pyshipped in this repository (gated behindtrust_remote_code, defaultTrueinpyRadPlan.ml).