首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >🤩 granulator | 快速运行多种反卷积方法计算细胞比例!~

🤩 granulator | 快速运行多种反卷积方法计算细胞比例!~

作者头像
生信漫卷
发布2025-07-27 12:29:48
发布2025-07-27 12:29:48
8400
代码可运行
举报
运行总次数:0
代码可运行

写在前面

昨天去骑车,真的是太热了!~🥵

体力远不如前了,爬坡累成狗!~🐶

用到的包

代码语言:javascript
代码运行次数:0
运行
复制
rm(list = ls())
# if (!requireNamespace("BiocManager", quietly = TRUE))
#     install.packages("BiocManager")
# BiocManager::install("granulator")

library(granulator)

示例数据

bulk data!~

代码语言:javascript
代码运行次数:0
运行
复制
load_ABIS()

bulkRNAseq_ABIS[1:5, 1:5]

Reference profiles!~

代码语言:javascript
代码运行次数:0
运行
复制
sigMatrix_ABIS_S0[1:5, 1:5]

真实细胞比例!~

作为真实结果进行比较!~😘

代码语言:javascript
代码运行次数:0
运行
复制
groundTruth_ABIS[1:5, 1:5]

Workflow

整个流程包括:👇

1️⃣ Reference profiles;

2️⃣ Deconvolution;

3️⃣ Benchmarking;

4️⃣ Correlation.

比较多个reference profiles

这里我们使用多个比较多个reference,比较一下结果。😏

代码语言:javascript
代码运行次数:0
运行
复制
# create list if multiple signature matrices to test simultaneously
sigList = list(
  ABIS_S0 = sigMatrix_ABIS_S0,
  ABIS_S1 = sigMatrix_ABIS_S1, 
  ABIS_S2 = sigMatrix_ABIS_S2, 
  ABIS_S3 = sigMatrix_ABIS_S3)

我们通过使用plot_similarity()计算它们的Kendall Rank相关系数来绘制所有参考谱的细胞类型相似性矩阵.

代码语言:javascript
代码运行次数:0
运行
复制
# plot signature matrix similarity matrices
plot_similarity(sigMatrix=sigList)

对bulk数据进行反卷积

代码语言:javascript
代码运行次数:0
运行
复制
# deconvolute input data using all available methods by default
decon <- deconvolute(m = bulkRNAseq_ABIS, sigMatrix = sigList)

看一下ABIS_S0的反卷积结果!~

代码语言:javascript
代码运行次数:0
运行
复制
# print cell type proportions for svr model on ABIS_S0 reference profile
decon$proportions$svr_ABIS_S0[1:5, 1:5]

可视化!~

代码语言:javascript
代码运行次数:0
运行
复制
# plot cell type proportions for svr model on ABIS_S0 reference profile
plot_proportions(deconvoluted = decon, method = 'svr', signature = 'ABIS_S0')

为了绘制所有估计的细胞类型比例,我们使用函数plot_deconvolute(), 可以比较反卷积方法和细胞类型的结果。

代码语言:javascript
代码运行次数:0
运行
复制
# plot cell type proportions
plot_deconvolute(deconvoluted = decon, scale = TRUE, labels = FALSE)

反卷积方法的Benchmarking

代码语言:javascript
代码运行次数:0
运行
复制
# benchmark methods by correlating estimated to measured cell type proportions
bench <- benchmark(deconvoluted = decon, ground_truth = groundTruth_ABIS)

代码语言:javascript
代码运行次数:0
运行
复制
# print metrics
head(bench$summary)

代码语言:javascript
代码运行次数:0
运行
复制
# print metrics
head(bench$rank)

估计细胞类型比例与测量细胞类型比例的线性回归可以在benchmark()结果上使用plot_regress()可视化。😜

在这里,我们使用sigMatrix_ABIS_S0参考文件分析svr模型在反卷积上的性能。🙊

代码语言:javascript
代码运行次数:0
运行
复制
# plot regression for svr model on ABIS_S0 reference profile
plot_regress(benchmarked = bench, method = 'svr', signature = 'ABIS_S0')

使用函数plot_benchmark()可视化所有方法的汇总统计量。👀

代码语言:javascript
代码运行次数:0
运行
复制
# plot pearson correlation between predictions and true proportions
plot_benchmark(benchmarked = bench, metric = 'pcc')

反卷积比例的相关性分析

代码语言:javascript
代码运行次数:0
运行
复制
# deconvolute input data using selected methods and reference profile matrix
methods <- c('ols','nnls','qprog','rls','svr')
decon <- deconvolute(bulkRNAseq_ABIS, list(ABIS_S2 = sigMatrix_ABIS_S2), methods)

当没有真实数据参考时,我们可以通过使用correlate()函数计算所有方法生成的估计细胞类型比例之间的相关性来评估不同反卷积方法的性能。😀

这里可以看到所有方法之间估计的细胞类型比例高度相关,表明反卷积方法在估计结果上基本一致。😏

代码语言:javascript
代码运行次数:0
运行
复制
# correlation analysis
correl <- correlate(deconvoluted = decon)

# correlation heatmap
plot_correlate(correlated = correl, method="heatmap", legend=TRUE)

代码语言:javascript
代码运行次数:0
运行
复制
# correlation mean summary statistics
head(correl$summary)

代码语言:javascript
代码运行次数:0
运行
复制
# deconvolution method ranking
head(correl$rank)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信漫卷 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面
  • 用到的包
  • 示例数据
  • Workflow
    • 比较多个reference profiles
    • 对bulk数据进行反卷积
    • 反卷积方法的Benchmarking
    • 反卷积比例的相关性分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档