jdmayfield commited on
Commit
7f02e0e
·
verified ·
1 Parent(s): 80e5cce

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +43 -34
README.md CHANGED
@@ -2,55 +2,64 @@
2
  license: mit
3
  tags:
4
  - medical-imaging
5
- - self-supervised-learning
6
  - ct
7
  - opscc
8
- - hpv-status
9
- - radiology
10
- - multi-institutional
11
  language: en
12
- library_name: pytorch
13
  ---
14
 
15
- # AsymmetryNet
16
 
17
- Segmentation-free framework for predicting HPV status in oropharyngeal
18
- squamous cell carcinoma (OPSCC) from contrast-enhanced neck CT, using a
19
- radiologist-inspired Asymmetry Attention Mechanism (AAM).
20
 
21
- ## Overview
22
 
23
- AsymmetryNet combines three feature streams, none requiring manual or
24
- automated tumor segmentation:
25
 
26
- - **AAM (24 features)**: airway effacement, nodal/soft-tissue asymmetry,
27
- and necrosis, computed via spine-anchored midline detection and
28
- mirrored left-right comparison.
29
- - **MIRP radiomics (185 features)**: first-order, morphological, and
30
- texture features extracted within AAM-defined regions.
31
- - **Imaging encoders**: four candidate backbones compared head-to-head,
32
- DINOv2, SwinUNETR, SuPreM, and 3D ResNet18.
33
 
34
- Evaluated on a pooled multi-institutional cohort (n=1,359; HECKTOR, TCIA
35
- OPC-Radiomics, MICCAI/MD Anderson, and an MGB institutional cohort) using
36
- both a stratified pooled holdout and leave-one-institution-out (LOIO)
37
- cross-validation.
38
 
39
- ## Repository contents
40
 
41
- - `train_mae_swin3d.py` — **deprecated**, from an earlier iteration of
42
- this project (custom 3D MAE-Swin SSL pretraining). Retained for
43
- provenance; not used in the current manuscript's pipeline.
44
- - [additional current pipeline scripts to be added — see note below]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
 
46
  ## Citation
47
 
48
- If you use this work, please cite:
49
  [full citation once accepted/published]
50
 
51
- ## Data availability
52
 
53
- Institutional (MGB) data are proprietary and not redistributable. Public
54
- sources (HECKTOR, TCIA OPC-Radiomics, MICCAI/Kaggle) are available from
55
- their original repositories under their respective data use terms; see
56
- the manuscript's Data Availability statement for details.
 
2
  license: mit
3
  tags:
4
  - medical-imaging
5
+ - radiomics
6
  - ct
7
  - opscc
8
+ - head-and-neck
9
+ - feature-extraction
10
+ - explainable-ai
11
  language: en
12
+ library_name: numpy
13
  ---
14
 
15
+ # AsymmetryNet: Asymmetry Attention Mechanism (AAM)
16
 
17
+ Segmentation-free feature extraction for radiologist-inspired left-right
18
+ asymmetry in head and neck CT, developed for HPV status prediction in
19
+ oropharyngeal squamous cell carcinoma (OPSCC).
20
 
21
+ ## What this code does
22
 
23
+ Given a cropped neck CT volume (NIfTI), this pipeline computes three
24
+ per-slice asymmetry channels across the full volume in a single pass:
25
 
26
+ 1. **Ch1 — Airway lesion**: seeded region growing from the airway lumen,
27
+ bounded by Sobel-detected soft-tissue edges, constrained to the side
28
+ of airway deviation from a spine-anchored midline.
29
+ 2. **Ch2 — Nodal/soft-tissue asymmetry**: mirrored left-right comparison
30
+ of fat-plane and soft-tissue density about the same midline.
31
+ 3. **Ch3 — Necrosis**: per-case, histogram-derived HU-windowed fluid
32
+ detection, restricted to the union of the Ch1 and Ch2 regions.
33
 
34
+ Midline is detected per case via spine-anchored bone-mass/compactness
35
+ scoring, not image center or a fixed landmark.
 
 
36
 
37
+ ## Outputs (per case)
38
 
39
+ - A QC plot (5 representative slices x 5 panels: CT+midline+spine,
40
+ Sobel-cleaned edge map, and the three asymmetry channels).
41
+ - A 4D heatmap NIfTI (`D x H x W x 3`, channels = [airway_lesion, nodal,
42
+ necrosis]) for downstream radiomic feature extraction (e.g., MIRP)
43
+ restricted to these asymmetry-defined regions.
44
+ - A row of ~40 rich per-case features (areas, extents, laterality
45
+ ratios, 3D weighted centroids per channel) appended to a CSV.
46
+
47
+ ## Usage
48
+
49
+ Set `BASE`, `CROP_DIR`, and `MASTER` at the top of the script to your
50
+ own paths. Input volumes are expected as normalized (0-1) or raw-HU
51
+ NIfTI crops at `{CROP_DIR}/{dataset}/{case_id}/crop224.nii.gz`; the
52
+ master index CSV needs `case_id`, `dataset`, `extracted` (bool), and
53
+ optionally `hpv_norm` columns.
54
+
55
+ Parallelized via `ProcessPoolExecutor` and resumable: interrupting and
56
+ restarting skips cases already written to the output CSV.
57
 
58
  ## Citation
59
 
60
+ If you use this code, please cite:
61
  [full citation once accepted/published]
62
 
63
+ ## License
64
 
65
+ MIT