聚類分析的目的
在典型的 scRNA-seq 實驗中,我們會獲得成千上萬個細胞的高維基因表達數據。聚類(Clustering)是將具有相似轉錄組特徵的細胞歸類在一起的關鍵步驟。本區塊概述了為何我們需要進行這項分析。
識別細胞異質性
發現在看似單一的組織樣本中,實際存在哪些不同的、具備特異功能的細胞群體。
發現新細胞類型
透過無監督學習,識別出傳統生物學實驗方法尚未定義或極為稀有的細胞子集。
細胞類型鑑定
分群後,結合已知的標誌基因(Marker Genes),為每個未知的群體貼上精確的生物學標籤。
聚類前的關鍵預處理
聚類不能直接作用於原始表達矩陣。原始數據充滿了技術噪聲和維度冗餘。本區塊展示了數據進入聚類演算法前,必須經歷的三個標準化與降維步驟。
A 歸一化與轉換 (Normalization & Transformation)
為消除細胞間測序深度(Sequencing Depth)的物理差異:
- 庫容歸一化:將每個細胞的總表達量縮放到一個常數(例如 10,000)。
- 對數轉換:使用
log(x + 1)減少數據的偏態性,穩定方差。
B 高變異基因選擇 (Feature Selection)
並非所有基因都對區分細胞類型有用(如管家基因)。
C 降維 (Dimensionality Reduction)
解決高維數據帶來的「維度災難」。
利用 PCA (主成分分析) 將數千個基因的維度投影到前 30-50 個最具代表性的主成分上。後續的聚類演算法通常是在這個 PCA 降維空間中運行的。
主流聚類演算法比較
在完成數據降維後,核心的數學分群工作即將展開。本區塊比較了目前 scRNA-seq 領域中最常討論的兩種聚類演算法邏輯。
基於圖論的聚類
Graph-based Clustering
這是 Seurat (R) 和 Scanpy (Python) 等主流軟體的默認核心方法。
運作三步驟:
-
1
構建 KNN 圖
計算細胞在 PCA 空間中的距離,為每個細胞找到最近的 K 個鄰居,建立網絡。
-
2
計算邊的權重
使用 Shared Nearest Neighbor (SNN) 算法優化細胞間連接的權重。
-
3
社區發現 (Community Detection)
使用 Louvain (優化模塊度) 或 Leiden (產生更具連通性的群體) 演算法將網絡切割成群集。
K-means 聚類
K-means Clustering
傳統機器學習中非常經典的算法,但在單細胞分析中面臨挑戰。
⚙️ 原理
必須預先指定期望的聚類數量 $K$,算法通過不斷迭代移動質心(Centroids)來將細胞分群。
⚠️ 在 scRNA-seq 中較少使用的原因
- 生物學上,研究者通常無法預知確切的細胞群體數量 ($K$ 值)。
- K-means 假設簇是凸形且大小相似的,難以處理形狀複雜、大小差異巨大的單細胞數據分佈。
參數調整與 UMAP 視覺化模擬
聚類完成後,我們使用 UMAP 或 t-SNE 將高維數據投射到 2D 平面上。而在基於圖論的聚類中,Resolution (分辨率) 是決定分群細緻度的核心參數。請拖動下方滑桿觀察其影響。
當前狀態:識別大類
低 Resolution: 產生的群體較少,細胞被歸類為廣泛的系譜。例如圖中將細胞區分為「T 細胞系」與「B 細胞系」兩大類。適合宏觀概覽。
t-SNE:擅長展示局部結構,但可能壓縮不同群體間的距離。 UMAP:目前最流行,更好地保留全局結構。
評估鑑定與常見陷阱
聚類只是一個數學上的分群,最後且最重要的一步是賦予其生物學意義(註釋),同時避開數據分析中常見的技術陷阱。本區塊總結了註釋方法與需警戒的錯誤。
如何賦予 Cluster 生物學意義?
比較目標 Cluster 與其他所有細胞,尋找表達量顯著升高的標誌基因 (Markers)。
使用如 SingleR 或 Azimuth 等軟體,將您的聚類結果與高質量的參考數據集進行演算法對比。
這是黃金標準。由領域專家根據已知文獻中的標誌基因列表,審查並確認演算法的分類結果。
聚類分析常見陷阱警戒區
✂️ 過度聚類 (Over-clustering)
現象: 將同一個細胞類型錯誤地拆分成多個群體。
原因: Resolution 設置過高,或者演算法將純粹的技術噪聲(如不同的實驗批次、測序深度微小差異)誤認為生物學異質性。
🧪 批次效應 (Batch Effects)
現象: 聚類結果反映了樣本的來源(如:醫院 A vs 醫院 B),而不是真實的細胞類型。
解法: 如果不同實驗樣本混合分析,必須在聚類前使用專門的數據整合(Integration)演算法(如 Seurat Integration, Harmony)來消除批次差異。
👯 雙細胞 (Doublets)
現象: 在 UMAP 圖上形成處於兩個大群中間的「橋樑」小群,無法用單一細胞類型的 marker 解釋。
原因: 實驗過程中,兩個不同的細胞被錯誤地包裹在同一個液滴中被捕捉。其表達譜混合了兩種細胞的特徵。需透過 DoubletFinder 等工具過濾。