# AMOS22 CT->MRI shared-13 SACFlow-FM runbook This protocol uses AMOS CT as source and AMOS MRI as target. Labels 14 and 15 are mapped to background because the MRI validation split may not contain them. The resulting task has 14 classes: background 0 and foreground labels 1..13. ## 0. Build manifests ```bash AMOS_ROOT=datasets/amos22 bash scripts/amos/00_make_manifests.sh ``` This creates: - `data_json/amos_ct2mr.json`: original CT/MRI split. - `data_json/amos_ct2mr_shared13.json`: labels 14/15 remapped to background, target labels retained. - `data_json/amos_ct2mr_shared13_sfda.json`: same remapping, but target-train labels removed. ## 1. Smoke test ```bash NPROC=1 bash scripts/amos/01_smoke_source_ct.sh ``` ## 2. Main sanity ladder ```bash NPROC=8 bash scripts/amos/train_source_ct.sh bash scripts/amos/eval_source_ct2mri.sh bash scripts/amos/export_memory_ct.sh NPROC=8 bash scripts/amos/train_oracle_mri.sh NPROC=8 bash scripts/amos/run_selftrain_ct2mri.sh NPROC=8 bash scripts/amos/run_peft_ct2mri.sh NPROC=8 bash scripts/amos/run_proto_align_ct2mri.sh NPROC=8 bash scripts/amos/run_sacflow_ct2mri.sh bash scripts/amos/eval_all_main.sh ``` ## 3. SACFlow ablations ```bash NPROC=8 bash scripts/amos/run_sacflow_linear_ct2mri.sh NPROC=8 bash scripts/amos/run_sacflow_whole_feature_ct2mri.sh NPROC=8 bash scripts/amos/run_sacflow_random_subspace_ct2mri.sh ``` ## Notes - Evaluate on `target_val`, because `target_test` in the downloaded AMOS22 release may not include labels. - Use `data_json/amos_ct2mr_shared13_sfda.json` for SFDA/adaptation runs to avoid target-label leakage. - Use `data_json/amos_ct2mr_shared13.json` only for oracle training or debug. - The first table should include source-only, target oracle, self-training, PEFT-only, proto-align, and SACFlow-FM.