Divyanshu Tak
V0-commit
5a169ab
# MCI Classification
<p align="left">
<img src="mci.jpeg" width="200" alt="MCI Classification Example"/>
</p>
## Overview
We present the MCI classification training and inference code for BrainIAC as a downstream task. The pipeline is trained and infered on T1 scans, with AUC and F1 as evaluation metric.
## Data Requirements
- **Input**: T1-weighted MR scans
- **Format**: NIFTI (.nii.gz)
- **Preprocessing**: Bias field corrected, registered to standard space, skull stripped, histogram normalized (optional)
- **CSV Structure**:
```
pat_id,scandate,label
subject001,20240101,1 # 1 for MCI, 0 for healthy control
```
refer to [ quickstart.ipynb](../quickstart.ipynb) to find how to preprocess data and generate csv file.
## Setup
1. **Configuration**:
change the [config.yml](../config.yml) file accordingly.
```yaml
# config.yml
data:
train_csv: "path/to/train.csv"
val_csv: "path/to/val.csv"
test_csv: "path/to/test.csv"
root_dir: "../data/sample/processed"
collate: 1 # single scan framework
checkpoints: "./checkpoints/mci_model.00" # for inference/testing
train:
finetune: 'yes' # yes to finetune the entire model
freeze: 'no' # yes to freeze the resnet backbone
weights: ./checkpoints/brainiac.ckpt # path to brainiac weights
```
2. **Training**:
```bash
python -m MCIclassification.train_mci
```
3. **Inference**:
```bash
python -m MCIclassification.infer_mci
```