| { |
| "name": "medtrace-brats-seg", |
| "version": "1.0.0", |
| "task": "3D brain tumour segmentation from four MRI sequences", |
| "intended_use": "Produce tumour compartment masks for MEDTRACE's longitudinal measurement pipeline. Research use. Not a diagnostic device and not for clinical decision-making.", |
| "architecture": { |
| "class": "monai.networks.nets.SegResNet", |
| "spatial_dims": 3, |
| "in_channels": 4, |
| "out_channels": 3, |
| "init_filters": 32, |
| "blocks_down": [ |
| 1, |
| 2, |
| 2, |
| 4 |
| ], |
| "blocks_up": [ |
| 1, |
| 1, |
| 1 |
| ], |
| "dropout_prob": 0.2, |
| "parameters": 18798627 |
| }, |
| "input_contract": { |
| "channel_order": [ |
| "t1c", |
| "t1n", |
| "t2f", |
| "t2w" |
| ], |
| "note": "Channel order is not recoverable from the weights. Wrong order, wrong output, no error.", |
| "normalisation": "per case, per channel, zero mean unit variance over NON-ZERO voxels only", |
| "spacing_mm": [ |
| 1.0, |
| 1.0, |
| 1.0 |
| ], |
| "orientation": "as distributed by BraTS 2023 (already co-registered and skull-stripped)", |
| "cropping": "crop to the non-zero bounding box of the summed channels, 4 voxel margin", |
| "patch_size": [ |
| 128, |
| 128, |
| 128 |
| ], |
| "inference": { |
| "method": "sliding window", |
| "overlap": 0.5, |
| "blend": "gaussian" |
| } |
| }, |
| "output_contract": { |
| "activation": "sigmoid, independent per channel", |
| "channels": [ |
| "TC", |
| "WT", |
| "ET" |
| ], |
| "channel_meaning": { |
| "TC": "tumour core = necrotic core + enhancing", |
| "WT": "whole tumour = necrotic core + oedema + enhancing", |
| "ET": "enhancing tumour" |
| }, |
| "overlapping": true, |
| "postprocessing": { |
| "threshold": 0.5, |
| "min_component_voxels": 0, |
| "et_min_voxels": 200 |
| }, |
| "to_integer_labels": { |
| "convention": "BRATS", |
| "mapping": { |
| "1": "necrotic_core", |
| "2": "oedema", |
| "3": "enhancing" |
| }, |
| "procedure": "write WT as 2, then TC as 1, then ET as 3, in that order" |
| } |
| }, |
| "training_data": { |
| "dataset": "BraTS 2023 GLI, challenge training split (the only labelled split)", |
| "split_unit": "subject", |
| "split_seed": 20260813, |
| "cases": { |
| "train": 874, |
| "val": 191, |
| "test": 186 |
| }, |
| "subjects": { |
| "train": 792, |
| "val": 172, |
| "test": 169 |
| }, |
| "label_mapping_verified": true, |
| "excluded_cases": [] |
| }, |
| "training": { |
| "epochs_completed": 37, |
| "epochs_planned": 60, |
| "selected_epoch": 32, |
| "selection_metric": "mean Dice over TC, WT, ET on the validation split", |
| "loss": "DiceFocalLoss(sigmoid=True, squared_pred=True, batch=True)", |
| "optimizer": "AdamW lr=0.0002 wd=1e-05", |
| "scheduler": "CosineAnnealingLR", |
| "precision": "AMP float16", |
| "augmentation": [ |
| "random axis flips", |
| "intensity scale +-10%", |
| "intensity shift +-10%" |
| ], |
| "patch_sampling": "80% centred on whole tumour, 20% uniform", |
| "seed": 20260813 |
| }, |
| "metrics": { |
| "validation": { |
| "TC": { |
| "dice_mean": 0.9015418441673284, |
| "dice_median": 0.947789848286196, |
| "hd95_median": 2.0 |
| }, |
| "WT": { |
| "dice_mean": 0.9177529638232264, |
| "dice_median": 0.939965202760836, |
| "hd95_median": 3.316624879837036 |
| }, |
| "ET": { |
| "dice_mean": 0.8503461605067909, |
| "dice_median": 0.9047415373334963, |
| "hd95_median": 1.4142135381698608 |
| } |
| }, |
| "test": { |
| "TC": { |
| "dice_mean": 0.9078361539305267, |
| "dice_median": 0.9563434942782733, |
| "hd95_median": 2.0, |
| "sensitivity_mean": 0.9165695598827129, |
| "precision_mean": 0.9170155149790782 |
| }, |
| "WT": { |
| "dice_mean": 0.921562897191002, |
| "dice_median": 0.9489419374016819, |
| "hd95_median": 2.4494898319244385, |
| "sensitivity_mean": 0.9247750225794058, |
| "precision_mean": 0.9235932925559869 |
| }, |
| "ET": { |
| "dice_mean": 0.852042452735223, |
| "dice_median": 0.8984435921432055, |
| "hd95_median": 1.4142135381698608, |
| "sensitivity_mean": 0.8833305802745401, |
| "precision_mean": 0.8486887298796273 |
| } |
| }, |
| "empty_region_rule": "BraTS convention: with empty ground truth, Dice is 1 if the prediction is also empty and 0 otherwise. Not averaged away as NaN." |
| }, |
| "limitations": [ |
| "Trained on pre-operative adult glioma only. LUMIERE's post-treatment appearances, including resection cavities and radiation change, are not represented.", |
| "Requires all four sequences. Behaviour with a missing sequence is untested.", |
| "Assumes BraTS preprocessing: skull-stripped, co-registered, 1 mm isotropic.", |
| "Agreement with one annotation protocol on one dataset. Not a measure of clinical accuracy.", |
| "Selection and post-processing tuning both used the validation split, so validation figures are optimistic. Use the test figures." |
| ], |
| "environment": { |
| "monai": "1.6.0", |
| "torch": "2.10.0+cu128", |
| "numpy": "2.0.2", |
| "device": "Tesla T4, 15.6 GB", |
| "amp": true |
| } |
| } |