单细胞scDist细胞扰动差异分析学习

文摘   2024-10-04 22:02   日本  

scDist通过分析不同状态下细胞的距离来找到差异最大的细胞亚群(见下图的A),然后再分析每一个细胞亚群的PCA通过线性的混合模型并结合最终的系数去预估不同干预方式下细胞群之间的距离。

Augur是通过对每一个细胞进行AUC评分并排序最终找到扰动最佳的细胞群,开发者认为Augur忽略了样本间的异质性,可能会导致由于样本本身的异质性而导致差异的出现。

笔者在回溯Augur代码的时候发现开发者其实已在函数中设置了矫正参数(可以用于批次矫正/样本矫正等),但开发者认为Augur并不能很好的把样本误差更抹去(可以读一读参考资料中的scDist的文章),即使使用了harmony去矫正之后也无法处理的很完美。

但笔者认为我们并不应该去重点关注样本间的差异,因为样本间的差异就应该是存在的,要以一个整体去看待纳入分析的样本,因此不同干预方式去处理了样本之后出现的扰动差异是样本本身的异质性导致的,但是也有可能是真实存在的扰动结果。

因此笔者认为scDist可以作为Augur的辅助分析,来验证Augur的结果。

分析流程

1.导入
rm(list = ls())
V5_path = "/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/seurat5/"
.libPaths(V5_path)
.libPaths()
library(stringr)
library(Seurat)
library(scDist)
library(dplyr)
library(patchwork)
library(viridis)
library(qs)
library(BiocParallel)
register(MulticoreParam(workers = 4, progressbar = TRUE))

load("scRNA.Rdata")
2.数据预处理
# check
table(scRNA$orig.ident)
table(scRNA$celltype)

dat <- scRNA@meta.data
# 增加一下批次信息,转换成数字
dat$batch <- ifelse(grepl("sample2|sample4|sample6", dat$orig.ident), "1""2")
# 增加一下分组信息,这里是随意编造的
dat$group <- ifelse(grepl("sample[1-3]", dat$orig.ident), "con""treat")
scRNA@meta.data <- dat
3.scDist分析
dat <- GetAssayData(scRNA,layer = "counts"#其实是需要normalize data,但这样也行
out <- scDist(dat,scRNA@meta.data,
              fixed.effects = "group",
              random.effects="batch",
              clusters="celltype")
qsave(out,"out.qs")

out$results
#                      Dist. 95% CI (low) 95% CI (upper)        p.val
# CD4+ T-cells      113.06663     85.67429      141.45175 0.0000099999
# Fibroblasts       583.03755    522.70365      658.58584 0.0000099999
# B-cells           211.53939     45.76088      443.12152 0.7932920671
# CD8+ T-cells      138.91180    116.46147      162.53086 0.0000099999
# Neutrophils        42.07108     34.69947       48.30078 0.0000099999
# Monocytes         165.83546     76.16444      221.11992 0.0000099999
# Adipocytes         89.43945     61.25896      119.64719 0.0000099999
# NK cells          118.44792     34.25347      175.22504 0.0000099999
# Endothelial cells   0.00000      0.00000       66.57318 0.2874671253
4.可视化
DistPlot(out)

scDist分析结果,细胞的排序和Augur的AUC分数排序存在较大的不同。Augur分析结果

distGenes(out, cluster = "Fibroblasts")

展示一下差异基因

plotBetas(out,cluster = "Fibroblasts")

不同主成分的影响程度

FDRDistPlot(out)

这个图既说明了不同细胞亚群之间的距离差异排序,也说明了不同处理后细胞亚群是否存在统计学差异。所有的图片都是基于ggplot绘制的,可以提取原始数据自行修改美化。

参考资料:

1、Robust identification of perturbed cell types in single-cell RNA-seq data. Nat Commun.2024 Sep 1;15(1):7610.

2、scDist:

https://github.com/phillipnicol/scDist/tree/master

3、生信碱移:

https://mp.weixin.qq.com/s/N-XEc9xFCnwf4PHbaraGaw

:若对内容有疑惑或者有发现明确错误的朋友,请联系后台(欢迎交流)。更多内容可关注公众号:生信方舟

- END -


生信方舟
执着医学,热爱科研。站在巨人的肩膀上,学习和整理各种知识。
 最新文章