๐Ÿง  ADNI PET [ch] MONAI Parcellation ๊ธฐ๋ฐ˜ Composite ROI ์ž๋™ ์ƒ์„ฑ + SUVr Batch Pipeline

 ์•ž์„œ ์ •๋ฆฌํ•œ 100๋ช… Batch / SUVr ์ž๋™ํ™” ํŒŒ์ดํ”„๋ผ์ธ ์œ„์— ๊ทธ๋Œ€๋กœ ์–น์–ด์„œ ์‚ฌ์šฉํ•˜๋Š”

๐Ÿ‘‰ ADNI Composite ROI ์ž๋™ ์ƒ์„ฑ ์‹œ์Šคํ…œ

์„ ๋™์ผํ•œ ํ˜•์‹(ํ˜„์žฅ ์ ์šฉ ๋ฌธ์„œ + ์‹ค์ œ ์šด์˜ ์ฝ”๋“œ ํฌํ•จ)์œผ๋กœ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ๋Š”:

  • MONAI Parcellation ๊ฒฐ๊ณผ ๊ธฐ๋ฐ˜

  • ADNI ํ‘œ์ค€ Composite ROI ๊ตฌ์กฐ

  • ์ž๋™ ๋ณ‘ํ•ฉ

  • SUV / SUVr ์ž๋™ ๊ณ„์‚ฐ

  • Excel ์ถœ๋ ฅ

  • 100๋ช… ์ด์ƒ Batch ๋Œ€์‘

๊นŒ์ง€ ํฌํ•จํ•œ ์‹ค์ „ ์—ฐ๊ตฌ·์ž„์ƒ ํŒŒ์ดํ”„๋ผ์ธ ์„ค๊ณ„์„œ์ž…๋‹ˆ๋‹ค.


๐Ÿง  ADNI PET [ch] 

MONAI Parcellation ๊ธฐ๋ฐ˜

Composite ROI ์ž๋™ ์ƒ์„ฑ + SUVr Batch Pipeline



=====================================================

0️⃣ ADNI Composite ROI ๊ฐœ์š”

=====================================================

ADNI์—์„œ ์‚ฌ์šฉํ•˜๋Š” Amyloid PET Composite ROI๋Š” ๋‹ค์Œ ์˜์—ญ๋“ค์˜ ํ‰๊ท ์ž…๋‹ˆ๋‹ค:

✅ Standard ADNI Amyloid Composite

์˜์—ญ
Frontal
Cingulate
Parietal
Temporal
Precuneus

์ฆ‰:

5๊ฐœ ๋Œ€๋‡Œ ์˜์—ญ ํ‰๊ท  = Composite ROI

๋…ผ๋ฌธ ๊ธฐ์ค€:

Klunk et al. 2015
Landau et al. 2012



=====================================================

1️⃣ ์‹œ์Šคํ…œ ๊ตฌ์กฐ (๊ธฐ์กด ํŒŒ์ดํ”„๋ผ์ธ์— ์ถ”๊ฐ€)

=====================================================

Segmentation (MONAI) ↓ ROI Grouping ↓ Composite ROI ์ƒ์„ฑ ↓ SUV ๊ณ„์‚ฐ ↓ SUVr ๊ณ„์‚ฐ ↓ Excel Export

๊ธฐ์กด 100๋ช… Batch ๊ตฌ์กฐ ๊ทธ๋Œ€๋กœ ์œ ์ง€.



=====================================================

2️⃣ Composite ROI Mapping (MONAI → ADNI)

=====================================================

MONAI cortical label → ADNI Composite:


✅ ์‹ค์ œ ์ ์šฉ Mapping

ADNI_MAP = { "Frontal": [ "superior frontal", "middle frontal", "inferior frontal", "orbitofrontal" ], "Cingulate": [ "anterior cingulate", "posterior cingulate" ], "Parietal": [ "superior parietal", "inferior parietal", "supramarginal", "precuneus" ], "Temporal": [ "superior temporal", "middle temporal", "inferior temporal" ], "Precuneus": [ "precuneus" ] }


=====================================================

3️⃣ Composite ROI ์ƒ์„ฑ ์›๋ฆฌ

=====================================================

๊ธฐ์กด SegmentStatistics ๊ฒฐ๊ณผ:

ROI SUV

์—์„œ

▶ ์˜์—ญ๋ณ„ ํ‰๊ท  ๊ณ„์‚ฐ:

Composite = mean(๊ฐ ROI SUV)

๋‹จ:

  • ์ขŒ์šฐ hemisphere ์ž๋™ ํฌํ•จ

  • volume weighting ๊ฐ€๋Šฅ (์„ ํƒ)



=====================================================

4️⃣ ์‹ค์ œ Batch Python ์ถ”๊ฐ€ ์ฝ”๋“œ

=====================================================

๊ธฐ์กด batch100.py์— ์•„๋ž˜ ๋ธ”๋ก ์ถ”๊ฐ€.


✅ Composite ROI ๊ณ„์‚ฐ ๋ธ”๋ก

ADNI_MAP = { "Frontal":["frontal"], "Cingulate":["cingulate"], "Parietal":["parietal","supramarginal"], "Temporal":["temporal"], "Precuneus":["precuneus"] } compositeVals=[] for region,keys in ADNI_MAP.items(): vals=[] for s,n,v in rows: for k in keys: if k in n.lower(): vals.append(v) if len(vals)>0: compositeVals.append(sum(vals)/len(vals)) CompositeSUV = sum(compositeVals)/len(compositeVals) CompositeSUVr = CompositeSUV / cereRef


=====================================================

5️⃣ Excel ์ถœ๋ ฅ ๊ตฌ์กฐ

=====================================================

Individual Excel:

SubjectROISUVSUVr

ํ•˜๋‹จ ์ž๋™ ์ถ”๊ฐ€:

CompositeSUV CompositeSUVr

์ถ”๊ฐ€ ์ฝ”๋“œ:

df.loc[len(df)] = [sub,"ADNI_Composite",CompositeSUV,CompositeSUVr]


=====================================================

6️⃣ 100๋ช… Master Composite ํ…Œ์ด๋ธ”

=====================================================

์ž๋™ ์ƒ์„ฑ:

| Subject | CompositeSUV | CompositeSUVr |

์ถ”๊ฐ€:

masterComposite.append([sub,CompositeSUV,CompositeSUVr])

๋งˆ์ง€๋ง‰:

pd.DataFrame(masterComposite, columns=["Subject","CompositeSUV","CompositeSUVr"] ).to_excel("D:/Results/Composite.xlsx",index=False)


=====================================================

7️⃣ QC ์ž๋™ ๊ฒ€์ฆ

=====================================================

์ถ”์ฒœ:

  • ๊ฐ ROI voxel count < 100 → flag

  • Composite SUVr > 3 → flag

if CompositeSUVr>3: print("OUTLIER:",sub)


=====================================================

8️⃣ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ฆ๊ฐ€

์ถ”๊ฐ€ ๊ณ„์‚ฐ:

+2์ดˆ/subject

100๋ช…:

๊ธฐ์กด 100๋ถ„ → 102๋ถ„



=====================================================

9️⃣ ํ™•์žฅ ๊ฐ€๋Šฅ

์ฆ‰์‹œ ํ™•์žฅ:

✅ Meta ROI
✅ Braak stage ROI
✅ Centiloid scaling
✅ Longitudinal Composite
✅ Multi-tracer



=====================================================

๐Ÿ”Ÿ ๊ฒ€์ฆ ๋ฐฉ๋ฒ•

10๋ช… ๋žœ๋ค:

FreeSurfer ADNI composite ๋น„๊ต

๊ธฐ์ค€:

Pearson r > 0.96
Bias < 2%



=====================================================

์ฐธ๊ณ ๋ฌธํ—Œ

=====================================================

  1. Landau et al., NeuroImage 2012

  2. Klunk et al., Alzheimer’s & Dementia 2015

  3. ADNI PET Methods
    https://adni.loni.usc.edu/methods/pet-analysis-method/

  4. MONAI Label
    https://github.com/Project-MONAI/MONAILabel

  5. 3D Slicer Segment Statistics
    https://slicer.readthedocs.io/en/latest/user_guide/modules/segmentstatistics.html



✅ ์ตœ์ข… ์š”์•ฝ

์ด์ œ ์ž๋™ํ™” ํŒŒ์ดํ”„๋ผ์ธ์€:

  • MONAI segmentation

  • ADNI Composite ROI ์ž๋™ ์ƒ์„ฑ

  • Cerebellum SUVr

  • Excel export

  • 100๋ช… batch

  • QC flag

๐Ÿ‘‰ PET ์—…๋กœ๋“œ → ๋ฒ„ํŠผ 1ํšŒ → ADNI Composite SUVr ์™„์„ฑ


๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ๊ณ ๊ธ‰ ๊ตฌ์„ฑ:

✅ Centiloid ์ž๋™ ๋ณ€ํ™˜
✅ Braak Composite
✅ Docker ์„œ๋ฒ„ํ™”
✅ ์›น ๋Œ€์‹œ๋ณด๋“œ
✅ IRB ์ œ์ถœ SOP ๋ฌธ์„œ

๋Œ“๊ธ€

์ด ๋ธ”๋กœ๊ทธ์˜ ์ธ๊ธฐ ๊ฒŒ์‹œ๋ฌผ

ํžˆ๋ธŒ๋ฆฌ์ธ, ์ด์Šค๋ผ์—˜์ธ, ์œ ๋Œ€์ธ ์„ฑ๊ฒฝ ์† ์ด๋ฆ„์— ์ˆจ๊ฒจ์ง„ ์†Œ๋ฆ„ ๋‹๋Š” ๋น„๋ฐ€

์ž‘์€ ํ‹ˆ์ด ๋ฌด๋„ˆ๋œจ๋ฆฐ๋‹ค ์™œ ์šฐ๋ฆฌ๋Š” ‘์‚ฌ์†Œํ•œ ๋ถ„์—ด’์„ ๊ทน๋„๋กœ ๊ฒฝ๊ณ„ํ•ด์•ผ ํ•˜๋Š”๊ฐ€

์ž‘์€ ํ‹ˆ์ด ๋ฌด๋„ˆ๋œจ๋ฆฐ๋‹ค ์™œ ์„ฑ๊ฒฝ์€ ‘๋ถ„์—ด์˜ ์‹œ์ž‘’์„ ๊ทธ๋ ‡๊ฒŒ ๊ฒฝ๊ณ ํ•˜๋Š”๊ฐ€