Python 机器学习 基础 之 无监督学习 【主成分分析(PCA) / 非负矩阵分解(NMF)/ t-SNE 流形学习】在单细胞转录组分析中的应用:PCA、NMF与t-SNE

无监督学习在单细胞转录组分析中的应用:PCA、NMF与t-SNE

一、主成分分析(PCA)

基本原理
PCA是一种线性降维方法,通过将高维数据投影到正交的主成分轴上,保留数据的主要方差。其核心是通过特征值分解或奇异值分解(SVD),找到最能代表原始数据变异的低维空间。

文献中的应用场景
  1. 第一篇文献(ESCC研究)

    • 用于量化上皮细胞的肿瘤内和肿瘤间异质性,通过主成分计算细胞与全局/患者平均的距离,评估异质性水平(图2d,e)。
    • 对单细胞转录组数据降维,作为t-SNE可视化的预处理步骤(如CD45+和CD45-细胞的聚类分析)。
  2. 第二篇文献(胰腺癌研究)

    • 对单细胞基因表达矩阵降维,减少计算复杂度,为后续聚类和可视化做准备。
Python实现示例
import numpy as np
from sklearn.decomposition import PCA
import scanpy as sc

# 假设data为单细胞基因表达矩阵(细胞×基因)
pca = PCA(n_components=50)  # 保留50个主成分
reduced_data = pca.fit_transform(data)

# 计算主成分解释的方差比例
explained_variance = pca.explained_variance_ratio_

# 使用scanpy进行PCA分析(单细胞数据常用流程)
adata = sc.AnnData(data)
sc.tl.pca(adata, n_comps=50)
sc.pl.pca_variance_ratio(adata, log=True)
二、非负矩阵分解(NMF)

基本原理
NMF将非负矩阵分解为两个非负矩阵的乘积(V≈W×H\mathbf{V} \approx \mathbf{W} \times \mathbf{H}VW×H),其中W\mathbf{W}W表示样本在各组分上的权重,H\mathbf{H}H表示组分的特征基因表达模式。非负约束使结果更符合生物学解释(如基因表达量非负、分子亚型的组合性)。

文献中的应用场景
  1. 第二篇文献(胰腺癌研究)
    • 对bulk转录组数据分解,识别经典型、基底样型等分子亚型,与单细胞亚簇(如Ep_TRIM54、Ep_KRT6A)的功能注释关联(图2G, 5F)。
    • 通过NMFSignature 10验证单细胞亚簇Ep_PIFO的纤毛功能特征(补充图S9I-J)。
Python实现示例
from sklearn.decomposition import NMF
import pandas as pd

# 假设expression_matrix为bulk基因表达矩阵(基因×样本)
nmf = NMF(n_components=2, init='nndsvd', random_state=42)
W = nmf.fit_transform(expression_matrix.T)  # 样本×亚型权重
H = nmf.components_  # 亚型×基因特征

# 识别各亚型的标记基因
def get_subtype_markers(H, gene_names, n_top=20):
    markers = {}
    for i in range(H.shape[0]):
        top_indices = np.argsort(H[i])[::-1][:n_top]
        markers[f"Subtype{i+1}"] = gene_names[top_indices]
    return markers

gene_names = expression_matrix.index.values
subtype_markers = get_subtype_markers(H, gene_names)
三、t-SNE流形学习

基本原理
t-SNE(t-分布随机邻域嵌入)将高维数据映射到二维空间,通过保持数据点的局部邻域关系实现可视化。它将高维距离转换为概率分布,再用t-分布拟合低维空间的分布,突出数据的局部结构。

文献中的应用场景
  1. 第一篇文献(ESCC研究)

    • 可视化CD45+和CD45-细胞的聚类结果,展示上皮细胞、免疫细胞等群体的分布(图1b,c, 图2a)。
    • 分析上皮细胞亚簇的异质性,区分Group1和Group2簇(图2a,b)。
  2. 第二篇文献(胰腺癌研究)

    • 对单细胞亚簇降维可视化,展示癌细胞(如Ep_VGLL1)和成纤维细胞的分布(图1D,F, 图4C)。
Python实现示例
from sklearn.manifold import TSNE
import matplotlib.pyplot as plt

# 假设reduced_data为PCA降维后的数据(n_samples × n_components)
tsne = TSNE(n_components=2, perplexity=30, learning_rate=200, n_iter=1000)
tsne_results = tsne.fit_transform(reduced_data)

# 可视化(结合细胞簇标签)
plt.figure(figsize=(8, 6))
plt.scatter(tsne_results[:, 0], tsne_results[:, 1], c=cell_labels, cmap='viridis')
plt.title('t-SNE Visualization of Single-Cell Clusters')
plt.show()

# 使用scanpy进行t-SNE分析(单细胞数据常用流程)
sc.tl.tsne(adata, n_pcs=50)
sc.pl.tsne(adata, color=['cell_type', 'patient_id'])

三种方法的对比与选择

方法核心特点适用场景文献中的作用
PCA线性降维,保留全局方差数据预处理、异质性量化评估肿瘤内/间异质性、降维预处理
NMF非负分解,识别组合性特征分子亚型分类、标记基因发现定义胰腺癌经典/基底样子型、关联单细胞亚簇功能
t-SNE非线性降维,保持局部结构高维数据可视化展示细胞簇分布、验证亚簇异质性

在单细胞转录组分析中,通常先通过PCA降维减少噪声,再用NMF识别生物学亚型,最后用t-SNE可视化细胞分布,三者结合可全面解析肿瘤微环境的异质性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值