논문 작업용 종합 문서. 모든 수치, 기법, Figure 참조를 포함.
바이오마커 패널 명칭: H2C Gene Panel
TCGA-BRCA RNA-seq 유전자 발현 데이터에 Topological Data Analysis(TDA)를 적용하여, 기존 유클리드 통계에서 발견할 수 없었던 암 관련 바이오마커 유전자 조합을 식별한다.
- TDA는 유클리드 분석과 완전히 직교하는 유전자 정보를 발견한다 (Top 200 겹침 = 0, Pathway 겹침 = 0)
- 유클리드에서 비유의미(p>0.05)한 37개 유전자(H2C)만으로 종양/정상 분류 AUC=0.993 달성
- H2C 유전자는 세포골격 리모델링 및 상피세포 침습 Pathway에 농축
- H2C는 BRCA 외 다른 암종에서도 AUC=0.977 — Pan-cancer 위상적 시그니처
- 데이터셋: TCGA RNA-seq, GEO Accession GSE62944
- 원본 규모: 10,005 샘플 × 23,368 유전자 (TPM 정규화)
- 종양: 9,264 샘플 (33개 암종)
- 정상: 741 샘플
- BRCA 서브셋 (TDA 분석용): 1,218 샘플 (종양 1,105 + 정상 113)
- 전체 TCGA (Cross-cancer 검증용): 10,005 샘플
| 단계 | 기법 | 수학적 정의 | 결과 |
|---|---|---|---|
| 1 | Global log1p | x' = log(1 + x) | 분포 정규화, 분산 안정화 |
| 2 | GPU ComBat 배치보정 | Empirical Bayes (Johnson et al., 2007) | 456개 TSS 배치 효과 제거 |
| 3 | 유전자 필터링 | 저발현/저분산 유전자 제거 | 23,368 → 20,862 유전자 |
| 4 | 샘플 필터링 | BRCA 환자 + 품질 기준 | 1,218 → 1,215 샘플 |
log1p를 전역(global)으로 적용하는 이유:
- Cosine distance는 벡터 간 각도(방향)를 측정하므로, 유전자 간 상대적 비율이 핵심
- 유전자별 선택적 log1p는 이 비율을 유전자 의존적으로 왜곡하여 cosine distance의 방향 가정을 깨뜨림
- 전역 log1p는 모든 유전자를 일관되게 압축하여 발현 프로필의 상대 구조를 보존
ComBat 배치보정 (5단계):
STEP 1: Design Matrix 구성
D = [B | C] (batch 원핫 + 공변량)
STEP 2: 표준화
OLS 회귀 → grand mean + 공변량 효과 제거 → 풀링 분산으로 스케일링
s_j = (X_j - grand_mean_j - covar_effects_j) / sqrt(var_pooled_j)
STEP 3: Location-Scale 모델
각 배치 × 유전자에 대해 gamma_hat(위치 이동), delta_hat(스케일) 추정
STEP 4: Empirical Bayes 사후 추정
Normal-Normal 결합 → gamma_star (위치 보정)
Normal-InverseGamma 결합 → delta_star (스케일 보정)
수렴 기준: < 0.0001
STEP 5: 최종 보정
s_corrected = (s - gamma_star) / sqrt(delta_star)
X_corrected = s_corrected × sqrt(var_pooled) + grand_mean + covar_effects
GPU ComBat 구현 (gpu_combat.py):
- PyTorch로 전체 알고리즘 재구현 (RTX 4060, 8GB VRAM)
- float32 정밀도, in-place 연산 (
.sub_(),.div_())으로 메모리 절감 - 유전자 청킹 불필요 (전체 ~21,000 유전자를 한 번에 처리 → 정확한 EB 추정)
- CPU 대비 ~300배 속도 향상 (15분 → 2.8초)
cleaned_tcga_tpm_for_TAE.csv: 1,215 샘플 × 20,862 유전자
전처리 과정에서 다음의 유클리드 기반 통계 분석이 완료되었다 (Data-preprocessing 리포):
| 분석 | 방법 | 주요 발견 |
|---|---|---|
| 발현량 차이 | Welch's T-test (log2 변환) | EGFR(FC=0.41), GATA3(FC=3.17) 등 개별 유전자 |
| 상관관계 | Point-Biserial Correlation | EGFR(-0.477), BRCA2(+0.269) |
| 교란요인 | Chi-square + Cramer's V | TSS와 종양 상태 강한 연관 (V=0.458) |
| Bad genes | Mann-Whitney U | 2,020개 식별, HLA(66.7%), RPL(54.1%) 농축 |
| 암종 비교 | T-test | ESR1 17배, PGR 10.9배 (BRCA 호르몬 의존성 확인) |
→ 이 결과가 Phase 3에서 TDA 발견과의 교차 검증 기준선이 됨
| 문제 | 원인 | 해결 |
|---|---|---|
| OOM (log 변환) | scipy 마스크 배열 오버헤드 | numpy 청크 처리 (1,000 유전자/청크) |
| OOM (ComBat) | neuroCombat 단일 스레드 전체 로드 | GPU ComBat 자체 구현 (PyTorch) |
| CUDA OOM | float64 텐서 1.56GB × 다수 | float32 + in-place 연산 |
| DataFrame 단편화 | 루프 내 컬럼별 수정 | .copy()로 메모리 통합 |
| Distance metric | 유클리드 차원의 저주 | Cosine/Pearson 대안 구현 |
Encoder: 20,862 → 1024 → 256 → latent_dim
Decoder: latent_dim → 256 → 1024 → 20,862
활성함수: LeakyReLU(0.2), BatchNorm1d
출력층: ReLU (TPM 비음수 보장)
기본 구조:
L_total = w_recon × L_recon + w_topo × L_topo
L_recon = MSE(x, x_hat) = (1/n) × Σ(x_i - x_hat_i)²
Topological Loss (거리 행렬 매칭):
- 미니배치 내 pairwise distance matrix 계산:
- Euclidean:
D_ij = sqrt(Σ_k (x_ik - x_jk)² + eps) - Cosine:
D_ij = 1 - cos(x_i, x_j)(각도 기반, 크기 불변) - Pearson:
D_ij = 1 - r(x_i, x_j)(평균중심화 후 cosine)
- Euclidean:
- 양쪽 distance matrix를 [0, 1]로 정규화
L_topo = MSE(D_norm_latent, D_norm_original)
왜 Cosine/Pearson이 Euclidean보다 나은가:
- 유전자 발현 데이터(~20,876차원)에서 Euclidean distance는 차원의 저주로 수렴
- Cosine distance는 벡터 방향(상대적 발현 패턴)만 비교 → 고차원에서도 유효
Adaptive Loss Weighting (Kendall et al., 2018):
L = 0.5 × exp(-s_r) × L_recon + 0.5 × exp(-s_t) × L_topo + 0.5 × s_r + 0.5 × s_t
s_r, s_t = log(σ²) (학습 가능 파라미터, Adam으로 모델과 함께 최적화)
- 고정 가중치의 스케일 불일치 문제 해결 (L_recon ~ 10,000 vs L_topo ~ 0.1)
- log(σ) 항이 정규화 역할 → trivial solution 방지
Sinkhorn OT Loss (최종 사용 버전):
- MSE 대신 Optimal Transport 기반: 각 샘플의 거리를 분포로 취급하여 최적 운반 비용 계산
- Debiased divergence:
OT(orig, lat) - 0.5×OT(lat, lat) - 0.5×OT(orig, orig) ≥ 0 - Envelope Theorem: 수렴 후 dual variable을 detach → VRAM ~50배 절감
- Log-domain: logsumexp로 수치 안정성 확보 (작은 ε에서도 NaN/underflow 방지)
- topo_multiplier: Sinkhorn 거리(~0.6)와 MSE(~10,000)의 스케일 차이 보상
| 파라미터 | 값 |
|---|---|
| 차원 | 16, 32, 64 |
| 거리 메트릭 | Cosine, Pearson, Euclidean |
| 에폭 | 100 |
| Adaptive weighting | w_recon, w_topo 자동 조정 |
| 차원 | Val Total Loss | w_topo | 비고 |
|---|---|---|---|
| 16d | ~4,017 | 0.585 | |
| 32d | ~3,998 | 0.461 | TDA 분석 최적 |
| 64d | ~4,070 | 0.440 |
- Optimizer: Adam (lr=1e-4, weight_decay=1e-5)
- Batch size: ≥ 64 (작은 배치는 distance matrix가 노이즈 → 위상 구조 왜곡)
- GPU: RTX 4060 (8GB VRAM)
- Latent 표현: 1,215 샘플 × {16, 32, 64} 차원
- SMOTE 증강 (Borderline-SMOTE, Han et al., 2005): 1,215 → 2,204 샘플
- Latent space에서 적용 (원본 20,876차원이 아님)
- 이유: 저차원에서 nearest-neighbor가 더 의미 있고, topo loss가 구조를 보존하므로 합성 샘플이 생물학적으로 유효
- 주의: SMOTE 결과를 디코더에 역투영하면 안 됨 (선형 보간이 비선형 manifold를 벗어남)
(A) PCA로 투영한 32d latent space — 종양(분홍)과 정상(파랑)이 분리됨. (B) Top 5 latent 차원의 종양/정상 분포 비교.
Persistent Homology(PH)는 데이터의 위상적 구조(topological structure) — 연결 성분, 루프, 빈 공간 등 — 를 다양한 스케일에서 추적하는 수학적 기법이다. 유클리드 거리나 상관계수가 측정하는 "거리"나 "방향"과 달리, PH는 데이터가 형성하는 형태(shape) 자체를 분석한다.
데이터 포인트 집합 X에 대해 반지름 ε를 0에서 점차 키우면서 단체 복합체(simplicial complex)의 변화를 관찰한다:
ε = 0: 각 포인트가 고립된 점 → K_0 (연결 성분 = 샘플 수)
ε 증가: 가까운 점들이 연결(edge) → K_1 (군집이 형성되기 시작)
ε 증가: 삼각형(2-simplex) 형성 → K_2 (루프가 생겼다 사라짐)
ε → ∞: 모든 점이 하나로 연결 → K_∞ (연결 성분 = 1)
각 단계에서 Homology group을 계산한다:
| Homology | 의미 | 직관적 해석 |
|---|---|---|
| H_0 | 연결 성분(connected components) | 데이터가 몇 개의 군집을 형성하는가? |
| H_1 | 1차원 루프(loops, cycles) | 데이터에 구멍이 뚫린 원형 구조가 있는가? |
| H_2 | 2차원 빈 공간(voids) | 데이터에 빈 구체 같은 구조가 있는가? |
본 연구에서 사용한 단체 복합체 구성 방법:
VR_ε(X) = {σ ⊆ X : d(x_i, x_j) ≤ ε, ∀ x_i, x_j ∈ σ}
즉, 모든 쌍의 거리가 ε 이하인 점 집합이 simplex를 형성한다. ε가 커질수록 더 많은 simplex가 생기고, 위상적 feature가 생성(birth)되거나 소멸(death)된다.
각 위상적 feature의 생애를 (birth, death) 좌표로 기록한다:
Feature f: birth = b (ε=b에서 생성), death = d (ε=d에서 소멸)
Persistence(f) = d - b (feature의 수명, 길수록 의미 있는 구조)
- 대각선(birth = death)에 가까운 점 → 노이즈 (짧은 수명)
- 대각선에서 먼 점 → 유의미한 위상적 구조 (긴 수명)
| 지표 | 정의 | 해석 |
|---|---|---|
| Wasserstein Distance | 두 diagram 간 최적 매칭의 총 비용 | 전체적인 위상 구조 차이 |
| Bottleneck Distance | 최적 매칭에서 가장 큰 단일 차이 | 가장 다른 하나의 feature 차이 |
전통적 TDA는 원본 고차원 데이터에 직접 PH를 적용하지만, 유전자 발현 데이터(20,862차원)에서는 **차원의 저주(curse of dimensionality)**로 인해 pairwise distance가 의미를 잃는다. 본 연구의 핵심 방법론적 기여는 이 문제를 TAE + TDA 조합으로 해결한 것이다:
원본 데이터 (20,862차원)
│
├─ 직접 PH 적용 → 차원의 저주로 distance 붕괴, 의미 없는 결과
│
└─ TAE (topo loss) → 32차원 latent
│
└─ PH 적용 → 위상 구조가 보존된 상태에서 유의미한 분석 가능
왜 TAE가 핵심인가:
- TAE의 Sinkhorn topological loss가 입력/출력 간 pairwise distance 구조를 보존
- 따라서 원본의 위상적 특성이 32차원 latent space에 충실히 인코딩됨
- 32차원에서의 PH 결과가 원본 20,862차원의 위상 구조를 반영
32차원이 최적인 이유 (실험적 확인):
- 16d: 정보 압축이 과도 → 종양/정상의 H1 차이 사라짐 (p=0.595)
- 32d: 위상 구조 보존과 노이즈 제거의 최적 균형 → H1 차이 극대화 (p<0.001)
- 64d: 차원의 저주 효과 시작 → H1 차이 다시 사라짐 (p=0.620)
| 기법 | 구현 | 용도 |
|---|---|---|
| Vietoris-Rips PH | ripser 0.6.14 | H0(연결 성분), H1(루프) 계산 |
| Wasserstein Distance | persim 0.3.8 | Persistence diagram 간 거리 |
| Bottleneck Distance | persim 0.3.8 | 최대 단일 feature 차이 |
| Permutation Test | 자체 구현 | 통계적 유의성 검증 (크기 매칭) |
목적: TAE latent space에서 종양/정상 간 위상적 차이가 존재하는지 확인
스크립트:phase1_tda_setup/explore_ph.py
상세 보고서:phase1_tda_setup/PHASE1_REPORT.md
5가지 latent 설정(16d/32d/64d × cosine/pearson/euclidean)에서 전체 데이터(종양 1,102 vs 정상 113)에 PH를 적용했다.
종양 서브샘플(113개)에서 H1(주황) feature가 정상보다 뚜렷하게 많음
| 설정 | 종양 H1 수 | 정상 H1 수 | 배율 | 비고 |
|---|---|---|---|---|
| 16d_cosine | 488 | 20 | 24.4x | |
| 32d_cosine | 517 | 9 | 57.4x | |
| 64d_cosine | 429 | 12 | 35.8x | |
| 16d_pearson | 427 | 0 | ∞ | 정상에 H1 없음 |
| 16d_euclidean | 553 | 12 | 46.1x |
주의: 이 단계의 큰 배율 차이는 샘플 크기 효과(종양 1,102 vs 정상 113)가 포함되어 있다. Phase 2에서 크기를 매칭하여 검증한다.
| 설정 | 종양 평균 | 정상 평균 | 정상/종양 배율 |
|---|---|---|---|
| 16d_cosine | 0.192 | 0.370 | 1.93x |
| 32d_cosine | 0.267 | 0.394 | 1.47x |
| 64d_cosine | 0.269 | 0.466 | 1.73x |
| 16d_euclidean | 0.130 | 0.346 | 2.66x |
→ 모든 설정에서 정상 조직의 H0 persistence가 더 높음 = 더 뚜렷한 군집 구조
| 설정 | H0 Wasserstein | H1 Wasserstein |
|---|---|---|
| 16d_cosine | 121.67 | 8.16 |
| 32d_cosine | 177.74 | 11.74 |
| 64d_cosine | 182.28 | 8.64 |
| 16d_pearson | 89.07 | 4.61 |
| 16d_euclidean | 76.11 | 4.38 |
→ Cosine 메트릭이 위상적 차이를 가장 잘 포착, 32d에서 H1 Wasserstein 최대
- 종양/정상 간 위상적 차이가 모든 설정에서 관찰됨
- Cosine 메트릭, 32d가 가장 유망
- 단, 샘플 크기 효과 통제 필요 → Phase 2로
목적: Phase 1의 관찰이 샘플 크기 효과가 아닌 진짜 차이인지 검증
스크립트:phase2_persistent_homology/analyze_ph.py
상세 보고서:phase2_persistent_homology/PHASE2_REPORT.md
세 가지 검증을 수행했다:
- Permutation Test: 종양+정상을 합친 후 113 vs 113으로 랜덤 분할, 500회
- H1 Count Test: 종양에서 113개 서브샘플 추출 200회, 정상과 H1 수 비교
- Bootstrap Stability: 정상 113개를 복원추출 200회, PH 안정성 확인
(A) 종양 서브샘플 H1 분포 vs 정상(빨간 점선). (B) H0 persistence bootstrap. (C) 효과 요약.
| 설정 | 정상 H1 수 | 종양 서브샘플 H1 수 (mean±std) | 종양 범위 | p-value |
|---|---|---|---|---|
| 16d_cosine | 15 | 15.0±3.2 | 7–23 | 0.595 (ns) |
| 32d_cosine | 8 | 19.9±3.7 | 10–30 | < 0.001 (***) |
| 64d_cosine | 11 | 10.8±2.8 | 3–19 | 0.620 (ns) |
- 32d_cosine에서만 유의미: 동일 113개씩 비교해도 종양이 2.5배 더 많은 H1 루프
- 200회 서브샘플 중 종양 H1이 정상보다 적은 경우 = 0회
- 종양 서브샘플 **최솟값(10)**마저 정상(8)보다 많음
| 설정 | Metric | Observed | Null (mean±std) | p-value |
|---|---|---|---|---|
| 16d_cosine | H0 Wasserstein | 6.86 | 6.90±2.13 | 0.480 (ns) |
| 32d_cosine | H0 Wasserstein | 13.62 | 9.26±3.07 | 0.094 (ns) |
| 64d_cosine | H0 Wasserstein | 18.55 | 11.39±4.03 | 0.042 (*) |
| 32d_cosine | H1 Wasserstein | 0.90 | 1.34±0.30 | 0.938 (ns) |
→ Wasserstein distance 자체는 대부분 비유의미. 차이는 "거리"가 아니라 "H1 개수"에 있음.
| 설정 | H0 Features (mean±std) | CV(%) | H1 Features (mean±std) | CV(%) |
|---|---|---|---|---|
| 16d_cosine | 84.4±4.4 | 5.2% | 9.7±1.9 | 20.0% |
| 32d_cosine | 84.8±3.9 | 4.6% | 3.6±1.6 | 43.8% |
| 64d_cosine | 84.4±4.3 | 5.1% | 4.5±1.8 | 39.2% |
→ H0는 안정적(CV 5%). H1은 변동 크지만(CV 7) 분포가 완전 분리.44%), 종양(1030)과 정상(0
| Phase 1 주장 | Phase 2 검증 결과 |
|---|---|
| "정상이 더 높은 H0 persistence" | 64d에서만 유의미 (p=0.042), 효과 약함 |
| "종양에 H1이 수십 배 많다" | 32d에서 크기 매칭 후에도 2.5배, p<0.001 → 확정 |
| "Cosine이 최적 메트릭" | 32d_cosine이 유일하게 H1 유의미 → 32d_cosine 확정 |
- 32d_cosine의 H1 루프 차이가 유일하게 통계적으로 유의미 (p < 0.001)
- 이것이 프로젝트의 핵심 발견이며, Phase 3에서 이 루프를 만드는 유전자를 역추적한다
목적: 32d_cosine의 H1 루프를 만드는 유전자를 식별하고, 기존 유클리드 분석과 비교
스크립트:phase3_gene_traceback/traceback_genes.py
상세 보고서:phase3_gene_traceback/PHASE3_REPORT.md
TDA 중요도(gene_j) = Σ_d |∂Decoder(z)/∂z_d|_{gene_j} × Cohen's_d(z_d)
∂Decoder/∂z_d = 디코더 Jacobian (수치 미분, ε=0.01)
Cohen's_d(z_d) = 종양/정상 간 latent 차원 d의 효과 크기
핵심 논리: 종양/정상 차이가 큰 latent 차원 × 디코더에서 민감하게 반응하는 유전자 = 종양의 위상 구조를 만드는 유전자
32개 latent 차원 중 **28개(87.5%)**가 종양/정상 간 유의미 (Bonferroni p<0.05):
| 차원 | Cohen's d | 방향 | p (Bonferroni) |
|---|---|---|---|
| z15 | 0.818 | 종양↑ | 2.1e-18 |
| z26 | 0.811 | 종양↓ | 7.2e-15 |
| z18 | 0.758 | 종양↓ | 2.3e-09 |
| z0 | 0.736 | 종양↓ | 9.0e-06 |
| z9 | 0.734 | 종양↑ | 6.4e-05 |
| ... | ... | ... | ... |
(A) TDA Top 20 유전자 (주황=유클리드 비유의미). (B) TDA 순위 vs 유클리드 순위 (겹침=0)
각 방법의 Top 200 비교:
| 카테고리 | 수 | 설명 |
|---|---|---|
| TDA에서만 발견 | 200 | 유클리드 Top 200에 없음 |
| 유클리드에서만 발견 | 200 | TDA Top 200에 없음 |
| 양쪽 모두 | 0 | 겹침 없음 |
| 순위 | 유전자 | TDA 중요도 | 유클리드 순위 | PB Corr | 유클리드 P-value | 기능 |
|---|---|---|---|---|---|---|
| 1 | ACTB | 1.000 | 9,155 | 0.138 | 2.7e-09 | Beta-actin, 세포골격 |
| 2 | RPS6 | 0.985 | 5,410 | -0.222 | 9.4e-17 | 리보솜 단백질, mTOR 표적 |
| 3 | ACTG1 | 0.978 | 3,785 | 0.279 | 6.1e-19 | Gamma-actin, 세포골격 |
| 5 | RRAGB | 0.926 | 9,135 | -0.138 | 5.4e-14 | mTOR 활성화 |
| 7 | GNG5 | 0.920 | 4,704 | 0.245 | 2.9e-48 | G단백질 신호전달 |
| 8 | EFCAB3 | 0.827 | 20,420 | -0.004 | 0.791 | Ca2+ 결합 (유클리드 ns) |
| 10 | UBE2I | 0.694 | 6,276 | 0.198 | 1.0e-24 | SUMO 경로 |
| 11 | PGC | 0.676 | 20,445 | -0.003 | 0.908 | Pepsinogen C (유클리드 ns) |
| 13 | RPRM | 0.565 | 18,613 | 0.018 | 0.206 | p53 표적, G2 체크포인트 (유클리드 ns) |
| 14 | RPRML | 0.536 | 18,970 | -0.016 | 0.333 | Reprimo-like (유클리드 ns) |
| 18 | HSPB9 | 0.407 | 20,658 | -0.002 | 0.924 | 소형 열충격단백질 (유클리드 ns) |
| 20 | PTPN11 | 0.375 | 3,840 | -0.276 | 1.8e-21 | SHP2, RAS/MAPK 경로 |
굵은 글씨 = 유클리드 p > 0.05 (기존 분석에서 완전히 비유의미)
- TDA와 유클리드가 발견하는 유전자 세트는 완전히 다르다 (겹침 0%)
- TDA Top 30 중 5개는 유클리드에서 p > 0.05 — 기존 어떤 단변량 통계로도 발견 불가능했던 유전자
- 이들을 **H2C Gene Panel (37개)**로 명명
목적: H2C의 Pathway 분석, 분류 성능 검증, Pan-cancer 검증
스크립트:phase4_biological_interpretation/pathway_and_validation.py,cross_cancer_validation.py
상세 보고서:phase4_biological_interpretation/PHASE4_REPORT.md
(A) AUC 비교 — H2C 37개(주황)가 유클리드 ns임에도 AUC=0.993. (B) Feature 수 vs 성능.
| 유전자 세트 | Feature 수 | 분류기 | AUC (mean±std) | F1 |
|---|---|---|---|---|
| Euclidean Top 200 | 200 | LogReg | 1.000±0.000 | 0.998 |
| Euclidean Top 50 | 50 | LogReg | 1.000±0.000 | 0.999 |
| Combined (TDA+Euc) | 200 | RF | 1.000±0.000 | 0.998 |
| TDA Top 200 | 200 | LogReg | 0.999±0.001 | 0.996 |
| TDA Top 100 | 100 | LogReg | 0.999±0.001 | 0.995 |
| H2C (37 genes) | 37 | GB | 0.993±0.011 | 0.993 |
| TDA Top 20 | 20 | LogReg | 0.987±0.005 | 0.981 |
| Latent 32d | 32 | LogReg | 0.940±0.013 | 0.958 |
→ H2C 37개 유전자(유클리드에서 전부 비유의미)로 AUC = 0.993
TDA(빨강): 세포침습, 세포골격, tight junction. 유클리드(파랑): 대사, 이온채널. 겹침 = 0.
TDA Top 200 Pathways (Enrichr, adj. p < 0.05, 19개):
| 순위 | Pathway (KEGG) | adj. p-value | Overlap | 핵심 유전자 |
|---|---|---|---|---|
| 1 | Bacterial invasion of epithelial cells | 1.4e-05 | 9/77 | ACTB, ACTG1, RAC1, PTK2 |
| 2 | Endocytosis | 6.9e-04 | 12/252 | ARF1/4/5, ACTR2/3 |
| 3 | Fluid shear stress & atherosclerosis | 6.9e-04 | 9/139 | VCAM1, CTNNB1, RAC1 |
| 5 | Tight junction | 1.9e-03 | 9/169 | MARVELD2, RAC1, PRKCZ |
| 7 | Leukocyte transendothelial migration | 4.0e-03 | 7/114 | VCAM1, CTNNB1, PTPN11 |
| 9 | Regulation of actin cytoskeleton | 7.4e-03 | 9/218 | MYLK2, RAC1, ACTB |
| 11 | Proteoglycans in cancer | 1.8e-02 | 8/205 | RPS6, CTNNB1, PTPN11 |
유클리드 Top 200 Pathways (adj. p < 0.05, 29개):
| 순위 | Pathway | adj. p-value |
|---|---|---|
| 1 | Cardiac muscle cell action potential | 4.4e-04 |
| 2 | AMPK signaling pathway | 4.1e-03 |
| 3 | ABC transporters | 4.8e-03 |
| 4 | PPAR signaling pathway | 4.8e-03 |
Pathway 겹침:
| TDA | 유클리드 | 겹침 | |
|---|---|---|---|
| 유의미 Pathway | 19 | 29 | 0 |
→ TDA: 세포골격 리모델링, 상피세포 침습, tight junction (구조적/침습적)
→ 유클리드: 에너지 대사, 이온 채널, 지질 대사 (대사적)
BRCA에서 발견한 H2C 37개 유전자를 **TCGA 전체 10,005 샘플(33개 암종)**에서 검증.
H2C 37개 유전자(주황)가 BRCA 외 다른 암종에서도 AUC=0.977 달성.
| 데이터셋 | 종양 | 정상 | H2C AUC | 유클리드 Top37 AUC |
|---|---|---|---|---|
| 전체 암종 | 9,264 | 741 | 0.971 | 0.992 |
| BRCA만 | 1,102 | 113 | 0.957 | 0.999 |
| BRCA 제외 | 8,162 | 628 | 0.977 | 0.990 |
핵심 발견:
- H2C는 BRCA 데이터만으로 발견했으나, BRCA를 제외한 다른 암종에서 오히려 더 높은 성능 (0.977 > 0.957)
- 이는 H2C가 BRCA 특화가 아닌 pan-cancer 위상적 시그니처임을 시사
- 유클리드 Top 37이 약간 높지만(0.99 vs 0.97), H2C는 기존 분석에서 완전히 버려진 유전자만으로 이 성능 달성
- H2C 37개 유전자가 BRCA에서 AUC=0.993, 다른 암종에서도 AUC=0.977
- TDA Pathway(침습/구조)와 유클리드 Pathway(대사) 겹침 = 0
- H2C는 pan-cancer 수준의 위상적 바이오마커
목적: 논문 삽입용 고품질 Figure 생성
스크립트:phase5_visualization_paper/generate_figures.py
전체 결과를 한눈에: (상단) Persistence Diagram + H1 Count Test, (하단) Top 유전자 + Pathway + 분류 성능
TCGA-BRCA RNA-seq (TPM, 1,215 samples)
→ log1p transformation
→ GPU ComBat batch correction (456 TSS batches)
→ Gene filtering (20,862 genes retained)
→ TAE training (Sinkhorn topological loss, cosine metric)
→ 32d latent representation (1,215 samples × 32 dims)
→ Vietoris-Rips Persistent Homology (H0, H1)
→ Size-matched H1 count test (113 vs 113, 200 iterations)
→ Decoder Jacobian-based gene importance scoring
→ H2C gene panel selection (TDA Top 200 ∩ Euclidean p > 0.05 = 37 genes)
→ GO/KEGG pathway enrichment (Enrichr)
→ 5-fold CV classification validation (BRCA, AUC=0.993)
→ Cross-cancer validation (전체 TCGA 10,005 samples, AUC=0.977)
| 검정 | 대상 | 설정 |
|---|---|---|
| Mann-Whitney U | Latent 차원별 종양 vs 정상 | Bonferroni 보정 (×32) |
| Permutation test | Wasserstein/Bottleneck distance | 500회, 113 vs 113 크기 매칭 |
| H1 count test | H1 feature 수 비교 | 200회 종양 서브샘플, size-matched |
| Stratified 5-fold CV | 분류 성능 | AUC, F1, Accuracy |
| Enrichr | Pathway enrichment | GO_BP_2023, GO_MF_2023, KEGG_2021 |
| Cross-cancer 5-fold CV | H2C pan-cancer 검증 | 전체 TCGA 10,005 샘플, BRCA/Non-BRCA 분리 |
| 라이브러리 | 버전 | 용도 |
|---|---|---|
| Python | 3.12.13 | |
| PyTorch | 2.11.0+cu126 | TAE 학습, 디코더 Jacobian |
| ripser | 0.6.14 | Persistent Homology 계산 |
| persim | 0.3.8 | Wasserstein/Bottleneck distance |
| gudhi | 3.12.0 | TDA 보조 |
| scikit-learn | 1.8.0 | 분류, 교차검증 |
| gseapy | 1.1.13 | Pathway enrichment |
| numpy | 2.4.4 | |
| pandas | 3.0.2 |
| Figure | 내용 | 파일 | Phase |
|---|---|---|---|
| Fig 2 | Persistence Diagram: 전체/종양/정상 비교 | fig2_persistence_diagrams.pdf |
1 |
| Fig 3 | 통계 검증: H1 count test + H0 bootstrap | fig3_statistical_validation.pdf |
2 |
| Fig 4 | 유전자 발견: Top 20 + TDA vs 유클리드 산점도 | fig4_gene_discovery.pdf |
3 |
| Fig 5 | Pathway 비교: TDA vs 유클리드 | fig5_pathway_comparison.pdf |
4 |
| Fig 6 | 분류 성능: AUC 비교 + Feature vs 성능 | fig6_classification.pdf |
4 |
| Fig 7 | Latent Space: PCA + Top 차원 boxplot | fig7_latent_space.pdf |
3 |
| Fig 8 | Cross-cancer: H2C pan-cancer AUC | cross_cancer_validation.pdf |
4 |
| Summary | 전체 결과 요약 (6패널) | summary_figure.pdf |
5 |
모든 Figure는 PNG + PDF(벡터)로 저장.
| 한계 | 설명 | 현재 상태 |
|---|---|---|
| 해결: TCGA 33개 암종에서 검증 완료 (AUC=0.977) | ||
| 독립 데이터셋 | TCGA 내부 검증만 수행 | GEO의 다른 RNA-seq 코호트로 외부 검증 필요 |
| 정상 샘플 부족 | BRCA 정상 113개 (9.3%) | Bootstrap으로 보완, Cross-cancer에서 정상 741개로 확대 |
| 실험적 검증 없음 | 컴퓨터 분석만 수행 | Wet-lab functional assay 필요 (후속 연구) |
| TAE 의존성 | 디코더 Jacobian 기반 역추적 | 다른 차원축소(PCA, UMAP) 대비 검증 필요 |
FindVar/
├── result.md ← 이 문서
├── plan.md ← 전체 계획
├── phase1_tda_setup/ ← Phase 1: PH 탐색
│ ├── explore_ph.py
│ ├── PHASE1_REPORT.md
│ └── results/ (CSV + PNG)
├── phase2_persistent_homology/ ← Phase 2: 통계 검증
│ ├── analyze_ph.py
│ ├── PHASE2_REPORT.md
│ └── results/ (CSV + PNG)
├── phase3_gene_traceback/ ← Phase 3: 유전자 역추적
│ ├── traceback_genes.py
│ ├── PHASE3_REPORT.md
│ └── results/ (CSV + PNG)
├── phase4_biological_interpretation/ ← Phase 4: Pathway + 분류 + Cross-cancer
│ ├── pathway_and_validation.py
│ ├── cross_cancer_validation.py
│ ├── PHASE4_REPORT.md
│ └── results/ (CSV + PNG + PDF)
└── phase5_visualization_paper/ ← Phase 5: 논문 Figure
├── generate_figures.py
└── figures/ (PNG + PDF 벡터)







