Integrate baselines from CNMC_PAI (organizer baseline) - #143
Conversation
There was a problem hiding this comment.
Pull request overview
Adds BraTS25_B (organizer baseline) entries for seven BraTS25 task algorithms — Adult Glioma Pre/Post, Africa, Meningioma, Meningioma RT, Metastases, Pediatric, and Inpainting — plumbing them through enums, YAML metadata, README tables, and updating the rank-integrity test to recognize the new B suffix.
Changes:
- Add
BraTS25_Benum members inbrats/constants.pyand matching YAML entries (withaparida12/brats2025:*Docker images) in seven task metadata files, including a newBaselinerank anchor in each. - Update
tests/utils/test_algorithm_config.pyrank parser to map suffixB→Baselinewhile preserving existing tie-suffix handling. - Add README rows and an explanatory footnote for each new baseline, plus a BraTS-PEDs 2026 dataset paper link.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| brats/constants.py | Adds BraTS25_B enum entries with docstrings to seven *Algorithms enums |
| brats/data/meta/adult_glioma_pre_and_post_treatment.yml | New baseline anchor and BraTS25_B entry using aparida12/brats2025:gli |
| brats/data/meta/africa.yml | New baseline anchor and BraTS25_B entry using aparida12/brats2025:ssa (requires_root) |
| brats/data/meta/meningioma.yml | New baseline anchor and BraTS25_B entry using aparida12/brats2025:men |
| brats/data/meta/meningioma_rt.yml | New baseline anchor and BraTS25_B entry using aparida12/brats2025:menrt (requires_root) |
| brats/data/meta/metastases.yml | New baseline anchor and BraTS25_B entry using aparida12/brats2025:met (requires_root) |
| brats/data/meta/pediatric.yml | New baseline anchor and BraTS25_B entry using aparida12/brats2025:peds (requires_root) |
| brats/data/meta/inpainting.yml | New baseline anchor and BraTS25_B entry using aparida12/brats2025:inpt |
| tests/utils/test_algorithm_config.py | Extends rank parsing to map suffix B to Baseline |
| README.md | Adds Baseline* rows and footnotes for seven task sections, plus a PEDs 2026 dataset paper link |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@Astarakee as I understand it your baseline is not integrated here? Should we integrate these into this same PR? Probably the Enums should account for the two Baselines, maybe by going for |
I used BraTS25_B to be consistent with the format for the other Enums. We could use BraTS25_B1, B2... for Baseline 1, Baseline 2 etc.? |
I will follow the same way that Zhifan applied; for GLI, METs, MENpre, and MENrt all in 2025. |
Okay, I suggest having both baselines in the same PR, so please build upon @zjiang0529 's work and extend this PR. Would that work for you? |
|
@MarcelRosier should we download the docker images and reupload them to our repo, or keep it as it is? |
For me that suggests some kind of ranking between the baselines, hence I proposed |
Have we decided on the name yet? A/B is clearer than 1/2, but using BraTS25_Baseline_A and B could make the columns wider and have three parts. Maybe BraTS25_BaselineA/B or BraTS25_BA/BB? |
we could do that for control and consistency, but it's not strictly necessary |
MarcelRosier
left a comment
There was a problem hiding this comment.
Did not get the chance to actually test it, but it looks solid. Just settle on a naming convention and ensure it does not break the tests (might be the case currently if we want to support multiple baselines). Also, I would advise moving images to the brainles repo for consistency. I can support with that if we agree on that
|
@zjiang0529 |
|
@zjiang0529 I get this error: ⠋ Running inference...Container finished with an error: File "/project/runner.py", line 104, in infer_single Running inference for task: MEN-RT FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmp9pwx4fre/inp/BraTS-MEN-RT-0000-1/BraTS-MEN-RT-0000-1_t1c.nii.gz' -> '/tmp/tmp9pwx4fre/inp/BraTS-MEN-RT-0000-1/BraTS-MEN-RT-0000-1_0000.nii.gz' |
|
@PaulaTBz This is due to a naming inconsistency in the official MENRT dataset. Other tasks use I guess your sample data file follows the correct "-" naming conversion. You could test with a MENRT file, an intentionally "wrongly" named sample file, or the file naming in the official MENRT dataset would need to be changed, which is outside of our control. Best, |
PaulaTBz
left a comment
There was a problem hiding this comment.
Apart from the two small issues regarding "requires_root" and the special naming convention of input data for Meningioma RT, all baselines run successfully.
|
Since all changes have been approved, could you please consider validating and merging the PR? Thanks. |
There was a problem hiding this comment.
A few items still have to addressed @zjiang0529:
Must fix (blocking merge)
-
brats/data/meta/meningioma_rt.yml—BraTS25_Bmissingsubject_modality_separator: "_"
4 of 6 existing MENRT algorithms set this field (BraTS25_1, 25_2, 24_1, 24_3). Theaparida12/brats2025:menrtcontainer expects"_"(underscore) as the modality separator — Paula's testing confirmed this is the cause of theFileNotFoundError. Without it, the default"-"is used and the container's internal rename logic fails. -
brats/data/meta/inpainting.yml—BraTS25_Bmissingrequires_root: true
The container needs root access to run. Paula confirmed adding this fixes the "Not enough output files" error.
Discuss
-
Naming convention —
BraTS25_Bwill conflict when Astarakee's baselines are added
If Astarakee also addsBraTS25_Bto the same enum, it'll be a duplicate key. Options raised in the thread wereBraTS25_BA/BB,BraTS25_BaselineA/B, etc. Would be good to settle this before the next set of baselines lands. -
Astarakee's baselines to be added to this same PR
As discussed above — Astarakee agreed to follow the same pattern. Should we wait for those commits before merging? -
Docker image hosting —
aparida12/brats2025:*vs reuploading tobrainles/
I advised moving them to thebrainles/org for consistency and offered to help. Not a blocker, but worth deciding.
|
Thank you for pointing out these changes. If I understand correctly, the action plan is as follows. Could you confirm? Easy fixes:
Still unclear: |
|
@PaulaTBz can you please take care of the image uploads? |
I suggest going for |
|
Thanks! |
|
I pushed all baseline images to the brainles namespace on docker hub |
cool, now the paths need to be adjusted ;) |
I can do it, but I'll post the new paths here as well for reference: brainles/brats25_ssa_baseline The tag is always latest. I'll wait for Zhifan to make the modifications and merge his branch, then I'll update the paths in a separate PR. (I think that makes the most sense) :) |
|
any progress or blockers here? @zjiang0529 @PaulaTBz |
Nothing blocking the merge from my side, assuming the small issues I mentioned above and the question about the naming convention have been addressed. Once this is merged, I'll open a new PR with the updated pointers to the brainles docker hub name space for consistency :) |
In response to Issue #116, add baselines from CNMC_PAI for 7 tasks.