Accepted at MICCAI 2025
To set up the environment:
conda env create -f environment.yml
conda activate m2m_regThis project uses data from the ADNI dataset, specifically:
- 18F-FBB PET
- FA (Fractional Anisotropy)
- T1-weighted MRI
We perform PET-MRI and FA-MRI registration. For each subject, we assume the presence of:
- A paired image set (PET-MRI or FA-MRI)
- A segmentation mask derived from the MRI
Note: The segmentation mask is not used during training, but is used for validation purposes only.
We assume that image pairs and segmentation masks are already co-registered. This repository includes only the post-registration steps such as resampling and cropping.
Segmentation (e.g., via FreeSurfer) and registration (e.g., via ANTsPy) steps are not released due to external constraints, but can be replicated using the mentioned tools.
data_root/
└── SubjectID/
├── 256_PET.nii
├── 256_MR.nii
└── seg_MR.nii
- PET-MRI:
sh preprocess/preprocess_ADNI_FBB.sh- FA-MRI:
sh preprocess/preprocess_ADNI_FA.sh- FA skull stripping:
preprocess/synthstrip_fa.py - Merging DKT-based ROI labels:
preprocess/remap_segmentation_label.py
Subject metadata must be provided via a Google Spreadsheet with the following required columns:
PatientIDsetexclude
You must provide the spreadsheet URL as the sheet_url argument when generating the HDF5 file.
~/M2M-Reg/datasets/ADNI_FBB_preprocessed/
└── SubjectID/
├── {SubjectID}_preprocessed_PT.nii
├── {SubjectID}_preprocessed_MR.nii
└── {SubjectID}_preprocessed_seg_map.nii
sh preprocess/generate_hdf5_from_sheet.shLaunch training with:
sh scripts/train.shUse the num_cano argument to control the training strategy, such as:
- Unsupervised
- Semi-supervised (can control the number of pre-aligned pairs used via
num_cano)
Refer to the help message for detailed argument usage.
Run testing with:
sh scripts/test.shThe
target_pidcolumn in the subject Spreadsheet is required and is used to define subject pairings for evaluation.
This codebase is based on: