跳转至

148_表达矩阵反卷积方法总结

一句话概述

表达矩阵反卷积(Deconvolution)利用单细胞或预定义参考谱,从bulk RNA-seq数据中推断各细胞类型的比例或表达量,是肿瘤微环境、免疫学和组织异质性研究的核心计算方法。


核心知识点总览

知识点说明
反卷积基本原理将bulk表达看作各细胞类型表达的线性加权和,求解权重(比例)
参考谱(Signature Matrix)各细胞类型特征基因的表达模式,是反卷积的"字典"
CIBERSORTx基于ν-SVR的经典方法,支持单细胞参考和batch校正
MuSiC基于加权非负最小二乘,利用scRNA-seq的细胞层级信息
BisqueRNA分为reference-based和marker-based两种模式
SCDC集成多个scRNA-seq参考数据集,提升鲁棒性
CDSeq无参考(reference-free)的完全盲反卷积方法
dtangle基于标记基因的快速反卷积,不依赖完整参考谱
基准评估使用模拟数据(pseudo-bulk)或流式验证反卷积精度
应用场景肿瘤免疫浸润、组织组成变化、药物响应预测

各步骤详解

第一步:理解反卷积数学模型

白话解释: 一份bulk RNA-seq数据就像一杯混合果汁——你知道总体味道,但想知道苹果汁、橙汁、葡萄汁各占多少。反卷积就是根据各种纯果汁的"味道模板"(参考谱),反推混合比例。

技术原理: 反卷积的核心数学模型为线性混合模型:

$$M = S \times F$$

  • M (m × n):bulk表达矩阵,m个基因 × n个样本
  • S (m × k):签名矩阵(参考谱),m个基因 × k个细胞类型
  • F (k × n):细胞比例矩阵(待求解)

约束条件:F的每列之和为1(比例之和为100%),且所有元素 ≥ 0。

代码示例:概念演示

# 简单线性模型演示
set.seed(42)
# 模拟3种细胞类型的参考谱 (100基因 × 3类型)
S <- matrix(abs(rnorm(300)), nrow = 100, ncol = 3)
colnames(S) <- c("T_cell", "Macrophage", "Fibroblast")

# 真实比例
true_fractions <- c(0.5, 0.3, 0.2)

# 生成模拟bulk表达 (加噪声)
bulk <- S %*% true_fractions + rnorm(100, sd = 0.1)

# 用非负最小二乘求解
library(nnls)
fit <- nnls(S, bulk)
estimated <- coef(fit) / sum(coef(fit))  # 归一化
names(estimated) <- colnames(S)
print(round(estimated, 3))


第二步:CIBERSORTx 反卷积

白话解释: CIBERSORTx是目前引用最多的反卷积工具,就像一个经验丰富的品酒师,不仅能分辨混合比例,还能考虑不同批次葡萄酒的差异(批次校正)。

技术原理: - 使用ν-支持向量回归(ν-SVR)求解反卷积 - 支持从scRNA-seq直接构建参考谱 - 提供三种分析模式: 1. Impute Cell Fractions:估计细胞比例 2. Impute Cell Expressions (group mode):推断各细胞类型在各样本组的基因表达 3. Impute Cell Expressions (high resolution):单样本级别的细胞类型表达

代码示例:

# CIBERSORTx 主要通过网页界面操作: https://cibersortx.stanford.edu/
# 但也可以使用Docker版本本地运行

# 1. 准备参考谱:从scRNA-seq生成签名矩阵
# 输入文件格式:基因 × 细胞类型的平均表达矩阵(tab-separated)
# 列名为细胞类型标签

# 2. 使用Docker运行 (命令行方式)
# docker pull cibersortx/fractions
# docker run -v /path/to/data:/src/data \
#   -v /path/to/output:/src/outdir \
#   cibersortx/fractions \
#   --username your_email \
#   --token your_token \
#   --single_cell TRUE \
#   --refsample sc_reference.txt \
#   --mixture bulk_mixture.txt \
#   --perm 100

# 3. 结果解读
results <- read.delim("CIBERSORTx_Results.txt")
head(results)
# 每行一个样本,每列一个细胞类型的比例
# 最后3列: P-value, Correlation, RMSE

重要参数说明:

# 关键参数
# --perm 100         : 置换检验次数(评估统计显著性)
# --QN TRUE          : 分位数归一化(推荐用于微阵列数据)
# --absolute FALSE   : FALSE=相对比例; TRUE=绝对模式(需要参考)
# --rmbatchSmode TRUE: S-mode批次校正(跨平台时推荐)
# --rmbatchBmode TRUE: B-mode批次校正(参考谱与bulk来自不同技术)


第三步:MuSiC 反卷积

白话解释: MuSiC的特色是"看人下菜碟"——它会根据基因在不同个体间表达是否稳定来调整权重。表达稳定的基因获得更高权重,不稳定的基因权重降低,这样估计更可靠。

技术原理: - 使用加权非负最小二乘(WNLS)框架 - 利用scRNA-seq中多个供体(subject)的信息 - 对每个基因赋予两层权重: - 跨细胞类型的方差(cell type variance) - 跨个体的方差(cross-subject variance) - 支持递归树形结构(tree-guided)进行层次反卷积

代码示例:

# 安装MuSiC
# devtools::install_github('xuranw/MuSiC')
library(MuSiC)
library(Biobase)

# 1. 准备数据:需要ExpressionSet格式
# 单细胞参考数据
sc.eset <- ExpressionSet(
  assayData = as.matrix(sc_counts),  # 基因 × 细胞 的counts矩阵
  phenoData = AnnotatedDataFrame(sc_meta)  # 需要包含 cellType 和 SubjectName 列
)

# bulk数据
bulk.eset <- ExpressionSet(
  assayData = as.matrix(bulk_counts),
  phenoData = AnnotatedDataFrame(bulk_meta)
)

# 2. 运行MuSiC反卷积
music_result <- music_prop(
  bulk.eset = bulk.eset,
  sc.eset = sc.eset,
  clusters = "cellType",      # 细胞类型列名
  samples = "SubjectName",    # 个体/样本列名
  select.ct = c("T_cell", "B_cell", "Macrophage", "Fibroblast"),  # 选择细胞类型
  verbose = TRUE
)

# 3. 提取结果
estimated_props <- music_result$Est.prop.weighted
head(estimated_props)

# 4. 可视化
library(ggplot2)
library(tidyr)
props_df <- as.data.frame(estimated_props)
props_df$Sample <- rownames(props_df)
props_long <- pivot_longer(props_df, -Sample, names_to = "CellType", values_to = "Proportion")

ggplot(props_long, aes(x = Sample, y = Proportion, fill = CellType)) +
  geom_bar(stat = "identity") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  labs(title = "MuSiC Deconvolution Results")


第四步:BisqueRNA 反卷积

白话解释: BisqueRNA提供两种模式:有参考谱(reference-based)和仅用标记基因(marker-based)。就像识别水果——要么用完整的水果图鉴,要么只凭几个关键特征(颜色、形状)。

技术原理: - Reference-based模式:利用scRNA-seq参考,通过转换(transformation)将单细胞数据投射到bulk空间 - Marker-based模式:仅需要已知的标记基因列表 - 核心创新:通过bulk和sc数据间的线性转换减少平台效应

代码示例:

# 安装
# devtools::install_github('cozygene/bisque')
library(BisqueRNA)
library(Biobase)

# === Reference-based模式 ===
# 准备单细胞和bulk的ExpressionSet
sc.eset <- ExpressionSet(
  assayData = as.matrix(sc_counts),
  phenoData = AnnotatedDataFrame(data.frame(
    cellType = sc_labels,
    SubjectName = sc_subjects,
    row.names = colnames(sc_counts)
  ))
)

bulk.eset <- ExpressionSet(
  assayData = as.matrix(bulk_counts),
  phenoData = AnnotatedDataFrame(bulk_meta)
)

# 运行reference-based反卷积
res_ref <- ReferenceBasedDecomposition(
  bulk.eset = bulk.eset,
  sc.eset = sc.eset,
  cell.types = "cellType",
  subject.names = "SubjectName",
  use.overlap = TRUE  # 使用bulk和sc共有基因
)
print(res_ref$bulk.props)

# === Marker-based模式 ===
# 仅需标记基因列表
markers <- list(
  T_cell = c("CD3D", "CD3E", "CD4", "CD8A"),
  B_cell = c("CD19", "CD79A", "MS4A1"),
  Macrophage = c("CD68", "CD163", "CSF1R")
)

res_marker <- MarkerBasedDecomposition(
  bulk.eset = bulk.eset,
  markers = markers
)
print(res_marker$bulk.props)


第五步:SCDC 集成多参考反卷积

白话解释: SCDC的哲学是"兼听则明"——如果有多套单细胞参考数据,与其只用一套,不如综合利用所有参考数据集,取长补短,得到更稳健的结果。

技术原理: - 基于ENSEMBLE思想整合多个scRNA-seq参考数据集 - 通过加权组合各参考的反卷积结果 - 权重由交叉验证或信息准则确定 - 当只有一个参考时退化为MuSiC风格的单参考反卷积

代码示例:

# 安装
# devtools::install_github('meichendong/SCDC')
library(SCDC)
library(Biobase)

# 准备多个参考数据集
sc.eset1 <- ExpressionSet(assayData = as.matrix(sc_counts1),
  phenoData = AnnotatedDataFrame(sc_meta1))  # 参考数据集1
sc.eset2 <- ExpressionSet(assayData = as.matrix(sc_counts2),
  phenoData = AnnotatedDataFrame(sc_meta2))  # 参考数据集2

bulk.eset <- ExpressionSet(assayData = as.matrix(bulk_counts),
  phenoData = AnnotatedDataFrame(bulk_meta))

# SCDC集成反卷积
scdc_result <- SCDC_ENSEMBLE(
  bulk.eset = bulk.eset,
  sc.eset.list = list(ref1 = sc.eset1, ref2 = sc.eset2),
  ct.varname = "cellType",
  sample = "SubjectName",
  ct.sub = c("T_cell", "B_cell", "Macrophage", "Fibroblast"),
  search.length = 0.01  # 网格搜索步长
)

# 查看集成权重和比例
print(scdc_result$w_table)      # 各参考数据集的权重
print(scdc_result$prop.est.mvw) # 最终估计比例


第六步:CDSeq 无参考反卷积

白话解释: CDSeq是"盲听"方法——不需要任何参考谱,直接从bulk数据中同时发现细胞类型和估计比例。类似于信号处理中的盲源分离。

技术原理: - 基于潜在狄利克雷分配(LDA)模型 - 将bulk RNA-seq类比为"文档",基因类比为"词汇",细胞类型类比为"主题" - 同时估计: 1. 细胞类型特异基因表达谱(gene-expression profiles, GEPs) 2. 细胞类型比例(sample-specific cell type proportions) - 需要预先指定细胞类型数目T

代码示例:

# 安装
# devtools::install_github("kkang7/CDSeq_R_Package")
library(CDSeq)

# 输入:bulk counts矩阵 (基因 × 样本)
bulk_matrix <- as.matrix(bulk_counts)

# 运行CDSeq
cdseq_result <- CDSeq(
  bulk_data = bulk_matrix,
  cell_type_number = 5,       # 预估细胞类型数
  mcmc_iterations = 700,      # MCMC迭代次数
  dilution_factor = 1,        # 稀释因子
  block_number = 6,           # 块数(并行)
  gene_length = gene_lengths, # 基因长度(用于TPM校正, 可选)
  reference_gep = NULL        # NULL表示无参考
)

# 结果
estimated_gep <- cdseq_result$estGEP       # 估计的细胞类型表达谱
estimated_prop <- cdseq_result$estProp      # 估计的细胞比例

# 细胞类型注释:将估计的GEP与已知marker比对
# 这一步需要手动或利用已知marker进行注释


第七步:dtangle 快速标记基因反卷积

白话解释: dtangle走的是"简单实用"路线——选好每种细胞类型的标记基因,快速计算比例。速度快,对大数据集友好。

技术原理: - 基于标记基因的线性模型 - 使用比例变换(log-ratio)来选择标记基因 - 标记基因选择策略:按表达差异度排序,取top n个 - 支持纯化参考谱或混合参考谱

代码示例:

# 安装
# install.packages("dtangle")
library(dtangle)

# 输入数据
# pure_samples: 纯化细胞类型的表达矩阵
# mixture: bulk混合样本的表达矩阵
# pure_samples和mixture需要在同一个矩阵中

# 合并数据
Y <- rbind(pure_samples, mixture_samples)

# 定义哪些行是纯参考
pure_indices <- list(
  T_cell = 1:10,         # 行1-10是纯T细胞
  B_cell = 11:20,        # 行11-20是纯B细胞
  Macrophage = 21:30     # 行21-30是纯巨噬细胞
)

# 运行dtangle
dt_result <- dtangle(
  Y = Y,
  pure_samples = pure_indices,
  n_markers = 50,        # 每种细胞类型的标记基因数
  data_type = "rna-seq", # 数据类型
  marker_method = "ratio" # 标记基因选择方法
)

# 查看结果
head(dt_result$estimates)  # 估计的细胞比例
dt_result$markers          # 选择的标记基因


第八步:方法综合对比与选择

白话解释: 没有一种方法在所有场景下都最好。选择方法取决于你有什么数据、需要什么结果、以及计算资源。

方法对比表:

特征CIBERSORTxMuSiCBisqueRNASCDCCDSeqdtangle
参考需求scRNA-seq或签名矩阵scRNA-seq(需多供体)scRNA-seq或标记基因多个scRNA-seq无参考纯化参考或标记基因
算法核心ν-SVRWNLS线性转换集成WNLSLDA线性模型
细胞类型表达支持(高分辨率)不支持不支持不支持支持(GEP)不支持
运行速度中等中等慢(MCMC)最快
批次校正内置S/B-mode通过权重缓解内置转换通过集成缓解
统计检验置换检验P值交叉验证
是否需要注册是(网页版需token)
语言R/DockerRRRRR

选择决策树代码:

# 方法选择建议逻辑
choose_deconv_method <- function(has_scrna, n_refs, need_gep, n_samples) {
  if (!has_scrna) {
    if (n_samples >= 20) return("CDSeq (无参考)")
    else return("dtangle (标记基因) 或 CIBERSORT (LM22内置谱)")
  }
  if (n_refs > 1) return("SCDC (多参考集成)")
  if (need_gep) return("CIBERSORTx (高分辨率模式)")
  return("MuSiC 或 BisqueRNA (单参考)")
}

# 示例
choose_deconv_method(has_scrna = TRUE, n_refs = 1, need_gep = FALSE, n_samples = 50)
# [1] "MuSiC 或 BisqueRNA (单参考)"


第九步:基准评估与验证

白话解释: 反卷积结果是否准确?需要验证。常用方法包括:用模拟数据(pseudo-bulk)检验、与流式细胞术比较、多种方法交叉验证。

代码示例:构建pseudo-bulk进行评估

# 从scRNA-seq构建pseudo-bulk (已知比例)
library(Seurat)

# 假设已有Seurat对象 sc_obj, 细胞类型在 sc_obj$celltype
create_pseudobulk <- function(sc_obj, n_samples = 20, n_cells = 500) {
  cell_types <- unique(sc_obj$celltype)
  pseudo_list <- list()
  true_props <- matrix(0, nrow = n_samples, ncol = length(cell_types))
  colnames(true_props) <- cell_types

  for (i in 1:n_samples) {
    # 随机生成比例 (Dirichlet分布)
    props <- rgamma(length(cell_types), shape = 2)
    props <- props / sum(props)
    true_props[i, ] <- props

    # 按比例抽取细胞
    cells_selected <- c()
    for (j in seq_along(cell_types)) {
      ct_cells <- WhichCells(sc_obj, expression = celltype == cell_types[j])
      n_select <- round(props[j] * n_cells)
      if (n_select > 0 & length(ct_cells) > 0) {
        cells_selected <- c(cells_selected, sample(ct_cells, min(n_select, length(ct_cells))))
      }
    }

    # 汇总为pseudo-bulk
    pseudo_list[[i]] <- rowSums(GetAssayData(sc_obj, slot = "counts")[, cells_selected])
  }

  pseudo_bulk <- do.call(cbind, pseudo_list)
  colnames(pseudo_bulk) <- paste0("Pseudo_", 1:n_samples)
  return(list(bulk = pseudo_bulk, true_props = true_props))
}

# 创建pseudo-bulk
pb <- create_pseudobulk(sc_obj, n_samples = 30)

# 用各方法反卷积后与 pb$true_props 比较
# 评估指标:Pearson相关系数、RMSE、Lin's CCC
library(DescTools)
cor(estimated_props, pb$true_props)          # Pearson相关
sqrt(mean((estimated_props - pb$true_props)^2))  # RMSE
CCC(estimated_props[,1], pb$true_props[,1])  # 一致性相关系数


实战命令

# === 环境准备 ===
# R包安装
Rscript -e '
install.packages(c("nnls", "dtangle", "DescTools"))
if (!require("BiocManager")) install.packages("BiocManager")
BiocManager::install(c("Biobase", "SingleCellExperiment"))
devtools::install_github("xuranw/MuSiC")
devtools::install_github("cozygene/bisque")
devtools::install_github("meichendong/SCDC")
devtools::install_github("kkang7/CDSeq_R_Package")
'

# === CIBERSORTx Docker版本 ===
docker pull cibersortx/fractions
docker run -v $(pwd)/data:/src/data -v $(pwd)/output:/src/outdir \
  cibersortx/fractions \
  --username your@email.com \
  --token YOUR_TOKEN \
  --single_cell TRUE \
  --refsample sc_reference.txt \
  --mixture bulk_mixture.txt \
  --perm 100

# === 批量运行MuSiC反卷积脚本 ===
Rscript run_music.R --sc_data sc_eset.rds \
  --bulk_data bulk_eset.rds \
  --cell_types "T_cell,B_cell,Macrophage" \
  --output music_results.csv

# === Pseudo-bulk基准评估 ===
Rscript benchmark_deconv.R --sc_obj seurat_obj.rds \
  --n_pseudo 50 \
  --methods "MuSiC,BisqueRNA,dtangle" \
  --output benchmark_results.pdf

面试常问点

Q1:反卷积的基本数学模型是什么?

A: 反卷积基于线性混合模型 M = S × F。M 是 bulk 表达矩阵(m基因 × n样本),S 是签名矩阵(m基因 × k细胞类型),F 是待求解的比例矩阵(k细胞类型 × n样本)。约束条件是 F 的每列非负且和为1。不同方法的核心区别在于如何求解 F:CIBERSORTx 用 ν-SVR,MuSiC 用加权非负最小二乘,CDSeq 用 LDA 主题模型。

Q2:CIBERSORTx 的 S-mode 和 B-mode 批次校正有什么区别?

A: S-mode 校正的是签名矩阵(Signature matrix)中的批次效应——当单细胞参考和 bulk 数据来自不同技术平台时使用。B-mode 校正的是 bulk 混合数据本身的批次效应——当不同批次的 bulk 样本需要一起分析时使用。实践中,跨平台(如 scRNA-seq 参考 + 微阵列 bulk)时建议同时开启两者。

Q3:MuSiC 的"多供体加权"机制解决了什么问题?

A: 解决了基因在不同个体间表达波动导致反卷积不稳定的问题。如果一个基因在不同供体的同一细胞类型中表达变异很大(cross-subject variance高),说明这个基因不是一个可靠的"标记",MuSiC 会降低它的权重。反之,表达稳定的基因获得高权重。这比单纯使用所有基因或固定标记基因列表更鲁棒。

Q4:什么场景下应该选择无参考方法 CDSeq?

A: 当没有匹配的 scRNA-seq 参考数据时。例如:(1) 研究的组织/物种没有公开的单细胞数据;(2) 研究新的或罕见细胞类型,现有参考谱可能遗漏;(3) 想发现未知的细胞组分。但 CDSeq 需要较多样本(建议 ≥20),计算量大(MCMC),且估计的细胞类型需要人工注释。

Q5:如何验证反卷积结果的准确性?

A: 三个层面:(1) 模拟验证:从 scRNA-seq 构建 pseudo-bulk(已知真实比例),比较估计值与真实值的 Pearson 相关、RMSE、CCC;(2) 实验验证:将反卷积结果与流式细胞术(FACS)或免疫组化(IHC)定量结果比较;(3) 交叉验证:多种反卷积方法的结果是否一致——一致性高说明结果可靠。

Q6:反卷积估计的是"相对比例"还是"绝对含量"?

A: 大多数方法默认估计相对比例(各细胞类型之和 = 1)。CIBERSORTx 提供绝对模式(absolute mode),可以估计每种细胞类型的绝对丰度,但需要额外假设(如参考基因表达的绝对水平)。相对比例的陷阱在于:如果某种主要细胞类型比例变化大,其他所有细胞类型的相对比例都会受影响(组成性数据问题)。

Q7:参考谱的质量如何影响反卷积结果?

A: 参考谱质量是反卷积精度的第一决定因素。关键影响因素包括:(1) 细胞类型覆盖度——缺失的细胞类型会导致其信号被错误分配给其他类型;(2) 组织匹配度——不同组织中同一细胞类型的表达谱可能不同;(3) 技术平台匹配——scRNA-seq(3' vs 5' vs full-length)和 bulk RNA-seq 的技术偏差;(4) 参考数据量——细胞数太少会导致参考谱噪声大。


易错点

1. 输入数据未正确归一化

错误: 对 CIBERSORTx 输入 counts 而非 TPM/FPKM,或对 MuSiC 输入归一化后的数据而非 raw counts。 正确做法: CIBERSORTx 网页版建议使用 TPM 或 FPKM(非 log 转换);MuSiC 和 BisqueRNA 需要 raw counts 作为输入,内部会处理归一化。务必阅读每个工具的文档。

2. 签名矩阵中遗漏关键细胞类型

错误: 参考谱只包含免疫细胞,但 bulk 中含有大量上皮细胞或成纤维细胞。 后果: 遗漏细胞类型的信号会被错误分配给参考谱中的其他类型,所有估计值都不准确。 正确做法: 确保参考谱覆盖 bulk 中所有主要细胞类型,可以添加一个"其他"(other)类别。

3. 批次效应未处理

错误: 单细胞参考来自10x 3'数据,bulk来自Total RNA-seq,直接反卷积。 正确做法: 使用 CIBERSORTx 的 S-mode/B-mode 批次校正,或在构建参考谱时选择与 bulk 技术更匹配的单细胞数据。

4. CDSeq 细胞类型数目 T 设置不当

错误: 随意设置细胞类型数,或使用过大的 T 导致过拟合。 正确做法: 使用 BIC/AIC 等信息准则选择最优 T,或根据先验知识设置合理范围,多跑几个 T 比较结果稳定性。

5. 将反卷积比例直接用于因果推断

错误: 发现肿瘤组中 T 细胞比例低于正常组,直接结论"T 细胞减少导致肿瘤"。 正确做法: 反卷积给出的是关联性估计,受采样偏差和组成性数据影响。需要结合实验验证(FACS, IHC)和因果推断方法(如孟德尔随机化)。

6. 忽略置换检验的 P 值

错误: CIBERSORTx 结果中 P > 0.05 的样本仍纳入下游分析。 正确做法: P > 0.05 表示反卷积对该样本不可靠(模型拟合差),应检查原因(可能是样本质量差或参考谱不匹配)并考虑排除。

7. 混淆相对比例与绝对变化

错误: 组间某细胞类型的相对比例升高,结论为该细胞类型绝对数量增加。 正确做法: 相对比例是零和约束的——某类型比例升高可能是因为另一类型比例降低。需要用绝对模式或结合总细胞数信息来判断绝对变化方向。


补充知识

相关工具扩展

  • TIMER2.0: 综合免疫反卷积平台,集成多种方法(TIMER, CIBERSORT, quanTIseq等)
  • immunedeconv: R包,统一接口调用多种反卷积方法
  • Scaden: 基于深度学习的反卷积(训练数据为模拟pseudo-bulk)
  • BayesPrism: 贝叶斯框架反卷积,同时估计比例和细胞类型特异表达
  • DWLS: 阻尼加权最小二乘法
  • SPOTlight: 专门用于空间转录组的反卷积

数据资源

  • LM22: CIBERSORTx 内置的22种免疫细胞签名矩阵(基于微阵列)
  • Blueprint/ENCODE: 免疫细胞参考表观基因组数据
  • Human Cell Atlas: 综合单细胞参考数据
  • Tabula Sapiens/Muris: 人/小鼠多组织单细胞图谱

理论深化

  • 组成性数据分析(CoDA):反卷积比例属于组成性数据(compositional data),各成分之和受约束。直接对比例做统计检验需要注意假阳性,推荐使用 CLR(centered log-ratio) 转换后再进行差异分析。
  • 参考谱选择的bias-variance tradeoff:参考谱中包含更多细胞亚型(如CD4+ T 细分为Th1/Th2/Treg)可以提供更高分辨率,但也增加了参数数量和共线性风险。需要根据研究问题选择合适的粒度。

最新趋势

  • 空间反卷积:将反卷积思想扩展到空间转录组(Visium等)的每个spot
  • 多组学反卷积:利用DNA甲基化、染色质可及性等多组学数据进行联合反卷积
  • 基于Transformer的方法:利用注意力机制捕捉基因间复杂关系进行反卷积