본문 바로가기
AI & Data Analysis/Paper Reviews

[GENELink] Graph attention network for link prediction of gene regulations from single-cell RNA-sequencing data

by doraemin_dev 2025. 7. 17.

PAPER

https://academic.oup.com/bioinformatics/article/38/19/4522/6663989


GENELink의 목적과 접근 방식

이미 주어진 GRN 그래프 A를 기반으로 학습하고, 그 구조 안에서 잠재된(score) 연결 및 인과관계를 예측하는 것

 


✅ 1. 입력: 부분적인 그래프 A

  • $A \in \mathbb{R}^{N \times N}$: TF-유전자 조절 정보로 구성된 부분적인 인접 행렬
    • $A_{ij}$= 1 → TF i가 유전자 j를 조절함 (이미 알려진 것)
    • 나머지 대부분의 $A_{ij}$는 0 (아예 모르는 거거나 연결 없음)

✅ 2. 학습 목표: 이 그래프 안에서 더 많은 관계를 "추론"하는 것

🎯 구체적으로 말하면:

1. score 예측 (link prediction):

  • $A_{ij}$가 비어 있던 위치에 대해
  • "TF i가 유전자 j를 조절할 가능성은?"이라는 연결 점수를 예측

2. 인과 관계 방향 예측 (causal inference):

  • i→j? or j→i? or 없음?
  • 방향성까지 포함된 예측

✅ 3. 중요한 전제: 그래프 A는 고정

  • 학습 중에는 그래프 구조를 변경하지 않습니다.
  • 즉, 모델은 기존 그래프 A를 사용해 학습하고,
  • 그 구조에 기반해 미지의 링크방향성을 추론합니다.

❗ 모델이 학습 중에 새로운 edge를 추가하거나 삭제하진 않아요.
학습 후 score가 높은 쌍후보 조절 관계로 제안할 수는 있죠.


📘 왜 이렇게 하느냐?

  • 현실의 GRN은 불완전합니다. 일부 TF-유전자 관계만 알려져 있음.
  • ChIP-seq 등으로 일부만 실험적으로 확인했기 때문에,
  • 나머지는 예측 모델이 채워줘야 해요.

✅ 결론 요약

질문 답변
그래프 A는 고정인가요? ✅ 네. 주어진 prior 조절 관계 기반입니다.
모델이 그래프를 바꾸나요? ❌ 아니요. 그래프 위에서 score를 예측할 뿐입니다.
모델의 목표는? ⭐ 기존 그래프에서 잠재된 연결(score) 및 **방향성(causality)**을 추론하는 것

 


Binary Cross-Entropy (BCE)

✅ GENELink에서의 정답이란?

👉 **"TF와 유전자 간에 조절 관계가 있는지 없는지"**를 알려주는 정보입니다.

이건 학습을 위해 미리 준비해 둔 레이블 데이터에서 가져옵니다.
논문에서는 이를 위해 다음과 같은 ground-truth networks를 사용했어요:


📚 정답 레이블(label)을 만드는 방법

▶ Positive samples (레이블 1):

  • 알려진 TF → 유전자 조절 관계들
  • 출처: STRING, ChIP-seq, LOF/GOF 실험 등
  • 예: A_{ij} = 1 → "TF i가 유전자 j를 조절한다" → 정답 yij=1

▶ Negative samples (레이블 0):

  • TF i가 조절하지 않는 것으로 간주되는 유전자 j
  • 즉, Aij=0인 부분 중 일부를 샘플링해서
  • 예: "조절하지 않는다" → 정답 yij=0

※ 주의: 완전히 조절 안 하는지 모를 수도 있기 때문에 uniform negative sampling 또는 hard negative sampling을 사용해서 잘 고릅니다.


✅ BCE는 이 레이블을 기반으로 학습합니다.

수식 다시 보기:

$\text{BCE} = -\sum_{(i,j)} \left[ y_{ij} \log(\hat{y}_{ij}) + (1 - y_{ij}) \log(1 - \hat{y}_{ij}) \right]$

  • yij∈{0,1}: 정답 레이블 (조절 여부)
  • y^ij∈(0,1): 모델이 예측한 조절 확률 (score)
  • 이걸 minimize하면서 학습합니다.

 


✅ 1. A_{ij}y_{ij}: 정답 레이블의 역할

  • Aij=1A_{ij} = 1: TF ii가 유전자 jj를 조절한다고 실험적으로 알려진 관계
  • 학습에서는 이것을 정답 레이블 yij=1y_{ij} = 1 로 사용함
  • 반면, Aij=0A_{ij} = 0인 쌍 중 일부를 뽑아서 → yij=0y_{ij} = 0로 간주 (negative sampling)

즉,

yij∈{0,1}y_{ij} \in \{0,1\}: 학습에 사용되는 실제 레이블 (label)


✅ 2. \vec{e}_i, \vec{e}_jy^ij\hat{y}_{ij}: 예측 score 계산

GAT + MLP를 통해 각 유전자의 벡터 표현을 만든 후:

⬛ 점수(score) 방식:

\hat{y}_{ij} = \sigma\left( \vec{e}_i^\top \cdot \vec{e}_j \right)

  • e⃗i,e⃗j∈Rd\vec{e}_i, \vec{e}_j \in \mathbb{R}^d: 두 유전자의 임베딩
  • e⃗i⊤⋅e⃗j\vec{e}_i^\top \cdot \vec{e}_j: 두 벡터의 내적 → 유사도 (크면 조절 가능성 ↑)
  • σ(⋅)\sigma(\cdot): 시그모이드 함수 → (0,1)(0,1) 사이로 변환 → 예측 확률 y^ij\hat{y}_{ij}

✅ 3. 학습(loss): BCE 사용

BCE=−∑(i,j)[yijlog⁡(y^ij)+(1−yij)log⁡(1−y^ij)]\text{BCE} = - \sum_{(i,j)} \left[ y_{ij} \log(\hat{y}_{ij}) + (1 - y_{ij}) \log(1 - \hat{y}_{ij}) \right]

  • yijy_{ij}: 실제 정답 (A에서 나옴)
  • y^ij\hat{y}_{ij}: 모델 예측 (score)
  • 둘 사이의 차이를 줄이도록 모델 파라미터를 학습

🧠 전체 흐름 요약

단계 내용

Aij=1A_{ij} = 1 → 정답 yij=1y_{ij} = 1, Aij=0A_{ij} = 0 → 샘플링하여 yij=0y_{ij} = 0
GAT + MLP → e⃗i,e⃗j\vec{e}_i, \vec{e}_j 생성
y^ij=σ(e⃗i⊤⋅e⃗j)\hat{y}_{ij} = \sigma(\vec{e}_i^\top \cdot \vec{e}_j)
BCE loss를 통해 yijy_{ij}y^ij\hat{y}_{ij}가 가까워지도록 학습

🔁 추론 시에는?

학습이 끝나면:

  • AijA_{ij}가 비어 있는 (미지의) 유전자 쌍에 대해서도
  • y^ij\hat{y}_{ij}를 계산해서
  • “이 둘이 연결될 가능성은 얼마나 되는가?”를 예측할 수 있습니다

즉,

학습 중에는 A로부터 일부 yijy_{ij}를 알고 있고,
모델은 score를 예측해서 그걸 최대한 맞추도록 학습합니다.
이후에는 A에 없는 부분에 대해 y^ij\hat{y}_{ij}로 잠재적 연결을 찾습니다.