<aside>
https://github.com/BernsteinLab/Myeloid-Glioma
- Programs, Origins, and Niches of Immunomodulatory Myeloid Cells in Gliomas (Nature, 2025) : cNMF를 사용해서 연구했던 paper
https://github.com/dylkot/cNMF
</aside>
cNMF (Consensus Non-negative Matrix Factorization)
- 유전자 발현 행렬을 '세포 상태(program)'와 '세포별 프로그램 사용 정도'로 분해하는 비지도 학습 방법
- scRNA-seq의 유전자 발현 행렬을 비음수 행렬 분해하여, **세포별 프로그램 사용량(W)**과 **프로그램별 유전자 구성을 나타내는 행렬(H)**을 추출하고, 이를 여러 반복 실행을 통해 안정적으로 통합하는 방식.
- 목적: scRNA-seq 데이터의 고차원 유전자 발현 행렬에서 각 세포가 어떤 유전자 프로그램(gene expression program)을 사용하는지를 추출
- cNMF의 기본 원리: NMF (Non-negative Matrix Factorization)
- NMF의 문제점을 보완해서 나온 것이, cNMF
- cNMF 실행 단계
-
여러 번 NMF를 반복 실행 (다른 random seed로)
-
반복 실행에서 나오는 반복적으로 안정적인 결과만 골라냄
→ 즉, 프로그램들이 얼마나 일관되게 재현되는지를 측정
-
결과적으로 재현성 있는 프로그램들만 선택
- NMF 한 번 실행할 때마다 결과가 살짝 달라져 (local minima 때문) 이를 극복하기 위해 여러 번 실행해서 자주 나오는 결과를 consensus로 채택
- cNMF의 장점
-
세포 유형(cell type)과 세포 상태(cell state)를 구분해서 표현 가능
(예: 같은 microglia여도 염증 상태인지 억제 상태인지 구분)
-
기존의 clustering(Louvain 등)은 cell type + state가 섞여 표현됨 → 덜 해석 가능
[github] Input & hyperparameters
[github] Output