Commit graph

9 commits

Author SHA1 Message Date
51abbf1150 feat: update script names and enhance iterative evaluation with table generation and plotting 2026-10-08 06:13:27 +08:00
e7721760f2 Enhance MONAI training scripts and models for Pipeline B and C
- Updated `05_monai_run_iterative.py` to include legacy mode and improved configuration options for training.
- Introduced `UNetBAligned` class in `monai_common.py` for deep supervision and instance normalization.
- Modified `train_transform` and `make_dataloader` in `monai_common.py` to support B-aligned data protocol with Z-score normalization and augmentation.
- Added new loss functions `nn_dc_and_ce` and `b_dc_and_ce` in `losses.py` for improved training performance.
- Enhanced `Unet3D` architecture in `unet3d.py` to support leaky ReLU and deep supervision.
- Created new augmentation functions in `augment_b.py` for Pipeline B's training, including rotation, scaling, and noise.
- Implemented new training scripts `run_b_100ep_stages.sh` and `run_c_bloss_100ep_after_b.sh` for structured training and evaluation.
- Updated dataset handling in `dataset.py` to accommodate new augmentation and normalization strategies.
2026-10-08 05:28:15 +08:00
5aabe950bd feat(benchmark): extend training to 20 epochs and improve checkpoint handling for nnU-Net 2026-10-06 07:27:30 +08:00
99bea82841 feat(benchmark): update benchmarking scripts with enhanced loss functions and dataset handling 2026-10-06 05:47:03 +08:00
2453fb48ba feat(dataset): add row-level exclusion curation for labeled volumes
Introduce src/exclusions.py (rules: total TV > 1e6 mm3, single target
< 100 mm3, non-brain NTUH keys) and scripts/make_tv_slices.py, a
first-stage curation script that classifies every labeled row right
after the source fetch and writes TV-slice QA figures to
data/tv_slices/{inclusion,exclusion}/.

05_build_splits.py re-applies the same rules after split assignment:
kept rows retain their split, excluded subjects still count in the
subject-level shuffle boundaries, and the audit trail is written to
data/manifests/excluded.jsonl. Label stats run in a
ProcessPoolExecutor (32 workers).

Move proc_row into src/common.py and add labeled_source_rows() so the
curation stage and the split builder share one processed-row view.

Document the 143-row exclusion audit and the interim 10-epoch
benchmark results in BENCHMARKING.md; update the README data layout
and script tables.
2026-10-05 16:53:56 +08:00
41c88b2a67 feat(registration): implement best-of-ANTs registration for CT to T1c alignment and enhance benchmarking scripts 2026-10-04 22:22:11 +08:00
7ac9979c62 fix(docs): update conda environment name to longitudinal-313 and Python version to 3.13
feat(benchmark): add IMPACT pipeline for CT to T1c registration
2026-09-28 21:01:45 +08:00
8fe1818c7d Enhance T1c series selection and reconstruction processes
- Updated regex patterns for improved matching of series names and tags.
- Added functionality to reject non-head series based on study and series descriptions.
- Implemented max voxel spacing check to filter out series with excessive spacing.
- Enhanced the reconstruction script to handle dynamic-frame series exclusions and artifact pruning.
- Modified output paths for reconstructed NIfTI files and added QA screenshot generation.
- Improved argument parsing in benchmark and pseudo-labeling scripts for better flexibility.
- Introduced a new script for generating QA screenshots from reconstructed volumes.
2026-09-27 07:14:17 +08:00
a15123f878 feat(benchmarking): add pipeline benchmarking tools
Add a new benchmarking script and documentation to facilitate
performance comparisons between the different implemented pipelines.

- Create `scripts/benchmark_pipelines.py` for automated evaluation
- Add `BENCHMARKING.md` to outline benchmarking procedures and metrics
2026-09-26 13:18:25 +08:00