BioPlayground

🧬
목록으로

다유전자 위험 점수(PRS): 수십만 개 작은 효과를 하나의 숫자로

수십만 개 SNP의 작은 효과를 하나의 위험 점수로 합산하는 PRS. 왜 유의미한 SNP만 쓰면 안 되는지, LDpred의 베이즈 축소 수식으로 직접 유도합니다.

심화
|
22
|
검증 완료 (2026-07-29)
polygenic risk scoreLDpredshrinkage estimatorclinical genomics
진행률0/86 (0%)

S49 개별 변이의 인과 효과에서, 수십만 개를 합친 하나의 점수로

S49(멘델리안 랜덤화)까지는 변이 하나하나의 인과 효과를 따졌습니다. 그런데 당뇨병·관상동맥질환·정신질환 같은 흔한 질병(common disease)은 한두 개의 강력한 변이가 아니라, 개별로는 효과가 미미한 수십만 개의 변이가 함께 작용해 위험을 결정합니다. 이런 질병에서 개인의 유전적 위험을 하나의 숫자로 요약하는 것이 **다유전자 위험 점수(PRS, Polygenic Risk Score)**입니다.

PRSi=j=1Mxijβ^j\text{PRS}_i = \sum_{j=1}^{M} x_{ij}\, \hat{\beta}_j

개체 ii의 유전자형 xijx_{ij}에 GWAS에서 추정한 효과 크기 β^j\hat{\beta}_j를 곱해 모든 SNP에 대해 합산하는 것뿐인, 언뜻 단순해 보이는 식입니다. 그런데 "어떤 β^j\hat{\beta}_j를 쓸 것인가"가 PRS 성능을 좌우하는 핵심 질문입니다. GWAS에서 나온 원본 효과 크기를 그대로 쓰면 왜 문제가 되는지, 그리고 LDpred 같은 베이즈 방법이 이를 어떻게 교정하는지가 이번 편의 핵심입니다.

왜 원본 GWAS 효과 크기를 그대로 쓰면 안 되는가 — 베이즈 축소 유도

클럼핑+임계값(C+T): 가장 단순하지만 한계가 뚜렷한 방법

가장 오래된 방법인 **클럼핑+임계값(Clumping and Thresholding, C+T)**은 GWAS에서 특정 p-value 임계값을 통과한 SNP만 골라(thresholding), 그중 LD로 연관된 것들은 대표 SNP 하나만 남기고(clumping) 나머지를 버립니다. 이 임계값은 흔히 genome-wide significance인 5×1085\times10^{-8}로 고정된다고 오해하기 쉽지만, 실제로는 검증(validation) 코호트에서 여러 후보 임계값(예: 105,103,0.01,0.05,0.510^{-5}, 10^{-3}, 0.01, 0.05, 0.5 등)을 시험해 예측력이 가장 좋은 것을 고르는 것이 표준적인 사용법입니다. 문제는 흔한 질병 대부분이 **다유전자성(polygenic)**이라, 전체 유전 가능성(heritability)의 상당 부분이 genome-wide 유의성에 못 미치는 수십만 개의 "약한 신호" SNP에 분산되어 있다는 점입니다. 유의미한 SNP만 골라 쓰면 이 분산된 신호 대부분을 버리는 셈입니다.

LDpred의 베이즈 모델: 사전분포로 다유전자성을 명시적으로 반영

LDpred(Vilhjálmsson et al., 2015)는 대신 모든 SNP의 진짜 효과 크기 βj\beta_j에 대해 사전분포를 두고, GWAS 관측치로부터 **사후 평균(posterior mean)**을 구해 그것을 가중치로 씁니다. LDpred의 일반 모델은 SNP 중 일부 비율만 효과를 갖는 point-normal(spike-and-slab류) 사전분포를 쓰고 SNP 간 LD 상관행렬까지 반영합니다. 아래 유도는 그중 모든 SNP이 작은 효과를 갖는다고 보는 **무한소 모델(infinitesimal model)**을, 그리고 SNP 간 LD가 없다고 가정한(즉 LD 상관행렬이 항등행렬인) 독립-SNP 교육용 근사로 더 단순화한 것입니다 — 실제 LDpred-inf도 무한소 사전분포를 쓰지만 LD를 반영할 수 있다는 점에서, 아래 스칼라 축소식과는 다릅니다.

βjN ⁣(0,h2M),β^jβjN(βj,σe2)\beta_j \sim \mathcal{N}\!\left(0, \frac{h^2}{M}\right), \qquad \hat{\beta}_j \mid \beta_j \sim \mathcal{N}(\beta_j, \sigma_e^2)

여기서 h2h^2는 형질의 유전 가능성, MM은 전체 SNP 개수, σe2\sigma_e^2는 GWAS 추정치의 표본 분산(대략 표본 수 NN의 역수 스케일)입니다. 정규-정규 켤레 모델의 표준 결과로, 사후 평균은 다음과 같은 축소(shrinkage) 형태를 갖습니다.

E[βjβ^j]=β^j×h2/Mh2/M+σe2\mathbb{E}[\beta_j \mid \hat{\beta}_j] = \hat{\beta}_j \times \frac{h^2/M}{h^2/M + \sigma_e^2}

원본 GWAS 추정치 β^j\hat{\beta}_j에, 1보다 작은 축소 계수를 곱해 0 쪽으로 끌어당기는 것입니다. 이 축소 계수는 정확히 리지 회귀(Ridge Regression)의 정규화 항과 같은 수학적 구조입니다.

손 계산 예제: 다유전자성이 만드는 극단적 축소

유전 가능성 h2=0.3h^2 = 0.3, 전체 SNP M=1,000,000M = 1{,}000{,}000개인 형질을 생각해봅시다. SNP당 사전분산은

h2M=0.31,000,000=3×107\frac{h^2}{M} = \frac{0.3}{1{,}000{,}000} = 3 \times 10^{-7}

GWAS 표본 수 N=100,000N=100{,}000일 때 표준화된 효과 크기 추정 분산은 대략 σe21/N=105\sigma_e^2 \approx 1/N = 10^{-5}입니다. 축소 계수는

3×1073×107+105=3×1071.03×1050.0291\frac{3\times10^{-7}}{3\times10^{-7} + 10^{-5}} = \frac{3\times10^{-7}}{1.03\times10^{-5}} \approx 0.0291

즉 원본 GWAS 효과 크기의 **약 2.9%**만 남기고 나머지는 0 쪽으로 축소됩니다. 원본 추정치가 β^j=0.05\hat{\beta}_j = 0.05였다면, 사후 평균은 0.05×0.02910.001460.05 \times 0.0291 \approx 0.00146까지 줄어듭니다. 개별 SNP 하나의 축소 폭은 이렇게 극단적이지만, 수십만 개 SNP를 모두 더하면 이 작은 조각들이 쌓여 예측력에 기여합니다 — C+T가 유의미한 SNP 몇백 개만 크게 반영하는 것과 정반대의 전략입니다. 다만 표본 밖 예측에서 실제로 얻는 설명 분산(R2R^2)은 유한한 GWAS 표본 크기, LD 참조 오차, 조상 배경 불일치, 모델 오지정 때문에 이론적 SNP 유전 가능성 h2h^2보다 대체로 낮습니다 — "유전 가능성을 회복한다"는 것은 방향성일 뿐, R2R^2h2h^2에 도달한다는 뜻은 아닙니다.

R 실습: 축소 계수와 PRS 계산 재현

r
# 앞의 손 계산 예제를 코드로 재현
h2 <- 0.3; M <- 1e6; N <- 1e5
prior_var <- h2 / M
se2 <- 1 / N
shrinkage <- prior_var / (prior_var + se2)

beta_hat <- 0.05
beta_posterior <- beta_hat * shrinkage
cat(sprintf("축소 계수: %.4f (원본의 %.1f%%)\n", shrinkage, shrinkage * 100))
cat(sprintf("원본 beta: %.5f -> 사후 평균: %.5f\n", beta_hat, beta_posterior))

# 소규모 PRS 계산 예제: 5개 SNP, 원본 vs 축소 가중치 비교
genotype <- c(2, 1, 0, 2, 1)          # 개체의 유전자형(위험 대립유전자 개수)
beta_raw <- c(0.05, -0.03, 0.02, 0.04, -0.01)
beta_shrunk <- beta_raw * shrinkage

cat("원본 가중치 PRS:", sum(genotype * beta_raw), "\n")
cat("축소 가중치 PRS:", sum(genotype * beta_shrunk), "\n")

CS 매핑

  • 리지 회귀(Ridge Regression): 사전분포에서 유도된 축소 계수 공식은, L2 정규화가 최소제곱 추정치를 0 쪽으로 당기는 리지 회귀 해와 대수적으로 동일합니다. 사전분산 h2/Mh^2/M이 작을수록(더 많은 SNP에 분산될수록) 정규화 강도가 세지는 것도 같은 논리입니다.
  • 경험적 베이즈(Empirical Bayes): 사전분포의 초모수(h2h^2, MM)를 데이터(GWAS 요약 통계량 전체)로부터 추정해 사후 평균을 계산하는 것은, 하이퍼파라미터를 데이터 기반으로 정하는 경험적 베이즈의 전형적 적용입니다.
  • 선형 가중합 모델: PRS 자체는 특성(SNP 유전자형)에 학습된 가중치를 곱해 더하는 선형회귀 예측값과 정확히 같은 형태입니다 — 다만 가중치를 만드는 방식(축소 여부)이 성능을 가릅니다.

자주 만나는 결함

  • 훈련·검증 코호트 인구집단 불일치(Portability 문제): 유럽계 GWAS로 만든 PRS를 다른 조상 배경의 개인에게 그대로 적용하면 LD 구조와 대립유전자 빈도 차이로 예측력이 크게 떨어집니다. 임상 적용 전 대상 인구집단에서의 검증이 필수입니다.
  • 설명 분산(R2R^2)만 보고 임상적 유용성 판단: PRS가 통계적으로 유의미하게 분산을 설명해도, 개별 예측의 절대적 정확도(양성 예측도 등)는 유병률과 기존 위험 요인 대비 증분 정보량에 따라 달라집니다. R2R^2나 AUC 하나만으로 "임상에 쓸 만하다"고 단정하기는 이릅니다.
  • LD 구조를 무시한 무한소 모델을 항상 정답으로 가정: 위 유도는 LD가 없다고 가정한 단순화(LDpred-inf)입니다. 실제 LDpred/PRS-CS는 SNP 간 LD 상관행렬을 반영한 더 복잡한 사후분포를 씁니다. 이 단순화는 원리를 보여주기 위한 것이며, 정확한 스코어는 LD를 반영한 소프트웨어로 계산해야 합니다.

더 깊게 파고 싶다면

본문은 BPD 연구진이 직접 재구성한 서술입니다. 원 논문과 공식 문서로 심화해봅시다.

  • LDpred 원 논문: Vilhjálmsson et al. (2015), Modeling Linkage Disequilibrium Increases Accuracy of Polygenic Risk Scores, American Journal of Human Genetics, 97(4):576–592.
  • PRS-CS 원 논문: Ge et al. (2019), Polygenic prediction via Bayesian regression and continuous shrinkage priors, Nature Communications.
  • PRSice-2 원 논문: Choi & O'Reilly (2019), PRSice-2: Polygenic Risk Score software for biobank-scale data, GigaScience.
  • PRS 임상 응용 논문: Khera et al. (2018), Genome-wide polygenic scores for common diseases identify individuals with risk equivalent to monogenic mutations, Nature Genetics.

이로써 S42(GWAS 연관성 검정)부터 S50(PRS 임상 응용)까지, "변이를 찾고 → 진짜 원인을 좁히고 → 발현·조직으로 연결하고 → 집단 구조를 다루고 → 초다형성 영역을 읽고 → 대형 변이를 검출하고 → 인과관계를 검증하고 → 마지막으로 예측 점수로 합산하는" GWAS·집단유전학 9편 시리즈를 완결했습니다. System S2 티어(S26~S50) 25편도 이 편으로 마무리됩니다.

다음은 완전히 다른 층위 — 서열·구조 데이터 자체를 학습한 **파운데이션 모델(Foundation Model)**로 유전체를 다루는 Fullstack 티어입니다. F01편에서는 Rosetta부터 AlphaFold까지, 단백질 구조 예측의 역사를 되짚어봅니다.