콘텐츠로 이동

09. 한 샘플의 pathway 활성도 보기

유전자 하나가 튀는지만 보면 종양에서 어떤 생물학적 프로그램이 함께 작동하는지 놓칠 수 있습니다. 관련 유전자 여러 개의 발현 순위를 묶으면 한 샘플에서도 pathway 활성도를 비교할 수 있습니다.

이 수업의 질문: 특정 pathway의 유전자들이 이 샘플에서 함께 높게 발현되는가?

검색 결과의 상위 문서에 특정 태그가 계속 나타나는지 검사하는 알고리즘과 닮았습니다. 유전자를 발현량으로 정렬한 뒤, 위에서부터 스캔하면서 대상 gene set의 멤버를 만나면 점수를 올립니다.

ranked_genes = sort_by_expression(sample, descending=True)
running_score = 0
for gene in ranked_genes:
running_score += hit_weight(gene) if gene in gene_set else miss_penalty

실제 ssGSEA는 순위와 가중치, 정규화 규칙을 더 사용하지만, 정렬 → 멤버십 검사 → 누적 점수라는 제어 흐름은 이 코드로 잡을 수 있습니다.

발현량 행렬이 나오면, 한 샘플만으로도 아웃라이어 탐색을 넘어 유전자 여러 개가 함께 만드는 신호를 볼 수 있습니다.

  • ssGSEA: 어떤 생물학적 프로그램(pathway) 이 이 샘플에서 활성화돼 있나?
  • 차원축소(UMAP): 이 샘플은 어떤 샘플들과 비슷한가?

ssGSEA: 개별 pathway가 얼마나 켜져 있나

섹션 제목: “ssGSEA: 개별 pathway가 얼마나 켜져 있나”

ssGSEA(single-sample Gene Set Enrichment Analysis)는 한 샘플 안에서 특정 pathway와 관련된 유전자들이 얼마나 함께 높은지 점수로 매깁니다. 분석에서는 pathway를 유전자 집합(gene set) 으로 표현합니다(예: HP_OSTEOSARCOMA = CDKN2A·TP53·MDM2·RB1·RPL/RPS 계열 등).

입력과 출력의 shape도 바뀝니다.

유전자 × 샘플 발현량 행렬 + pathway별 유전자 집합 → pathway × 샘플 점수 행렬

유전자 수만 개짜리 열 하나가 pathway 수백~수천 개의 점수로 요약됩니다. 따라서 어떤 유전자가 점수를 만들었는지 세부 정보가 압축되고, 서로 유전자를 공유하는 pathway의 점수는 독립적이지 않을 수 있습니다.

계산 원리는 순위 기반 누적 점수입니다.

  1. 샘플 안 모든 유전자를 발현량 높은 순으로 정렬한다.
  2. 위에서부터 하나씩 내려가며, 그 유전자가 대상 pathway에 속하면 점수를 올리고, 아니면 내린다.
  3. 이 누적 점수가 가장 크게 벌어진 지점을 enrichment score로 쓴다.

pathway 유전자들이 발현 상위에 많이 몰려 있을수록 높은 점수가 됩니다. R에서는 GSVA 패키지로 계산합니다.

ssGSEA와 달리 여러 샘플의 조건 차이를 보는 일반 GSEA는 GSE251845 실습의 전체 유전자 순위 분석에서 실행합니다. 둘 다 순위를 따라 누적 점수를 계산하지만, 입력과 답하는 질문은 다릅니다.

library(GSVA)
gsva_param <- ssgseaParam(
exprData = combined_mat, # 유전자 x 샘플 발현량 행렬
geneSets = gene_sets, # pathway별 gene set
alpha = 0.25, normalize = TRUE
)
ssgsea_scores <- gsva(gsva_param)

여기에 GTEx(정상)·EBI/PCAWG(암) 같은 레퍼런스 코호트를 함께 넣고 비교하면, 내 샘플의 pathway 활성도가 정상·다른 암 대비 어디쯤인지 보입니다.

골육종 gene set ssGSEA 점수: 내 샘플(Tempus·Boston)이 GTEx 정상·EBI 암 분포 대비 높게 위치

HP_OSTEOSARCOMA 유전자 집합의 ssGSEA 점수 분포. GTEx 정상·근육·EBI 암 코호트의 상자그림 위로, 내 종양 샘플(My Tempus·My Boston, 삼각형)이 더 높게 찍혀 골육종 관련 프로그램이 상대적으로 더 활성화돼 있음을 보여준다.

ssGSEA는 한 샘플의 유전자를 발현량 순서로 세운 뒤, 특정 pathway의 유전자들이 위쪽에 함께 모이는지 점수로 나타냅니다.

유전자별 발현 순위 + pathway 유전자 집합 → 순위 누적 점수 → 샘플별 pathway 활성도

점수는 절대적인 활성·비활성 판정이 아닙니다. 같은 방식으로 계산한 정상조직과 다른 암의 점수 분포에 놓고 상대적인 위치를 봅니다.

다음 발현이 비슷한 샘플 찾기에서는 유전자 전체 패턴이 어떤 암·조직 샘플과 가까운지 확인합니다.