结合Seurat批量去除环境RNA污染(SoupX)2022-05-19

相似关键词

背景RNA,环境RNA,RNA污染,游离RNA
background mRNAs, ambient RNA, RNA contamination, cell free mRNAs

适用背景

去除环境RNA污染是处理单细胞数据的可选项。环境RNA污染简单来说就是由于实验原因导致某些基因的转录本扩散到大多数细胞,使得部分基因在大多数细胞中均出现高表达的现象,从而影响我们对细胞类型的定义以及其它分析。

要不要去除环境RNA取决于是否数据集看起来是否干净,不同组织收到污染的基因也不太相同,例如在外周血中(PBMC)常见的是血细胞的污染,一般是HBB之类的基因,而在大脑中因为神经元比较多,可能会有兴奋性神经元或抑制性神经元的污染,可能是SLC17A7或GAD1等基因的污染。

例如下图中Slc17a7是小鼠的兴奋性神经元经典marker,在某些非神经元细胞中也高表达,是比较典型的环境RNA污染。因此,对原始矩阵进行校正很有必要。


环境RNA污染示例

SoupX简介

SoupX是一款我们测试过比较好的能有效去除环境RNA的R包软件,使用起来也比较方便。其输入为2个矩阵,一个常规的有做过初步过滤的矩阵toc,也就是直接读入进行后续聚类等分析的矩阵,另一个则是完全没有做过任何过滤的矩阵tod,这个矩阵一般需要自行从bam文件中提取。其原理可以简述为利用全矩阵tod构建背景噪音,筛选出潜在的环境RNA污染,然后对分析矩阵toc进行校正,最终可以返回一个校正后的矩阵。

代码示例

加载需要的包

library(SoupX)
library(Seurat)
library(DropletUtils)

主函数

##参数简介
#toc是分析矩阵,即有过滤的矩阵
#tod是全矩阵,即没有任何过滤的矩阵
#rho是污染比例系数,可自行设置,如果不设置则会自动计算

run_soupx <- function(toc,tod,rho=NULL) {
toc <- Read10X(toc,gene.column=1)
tod <- Read10X(tod,gene.column=1)

#保证基因名一致
tod <- tod[rownames(toc),]

##SoupX帮助文档建议提供分析矩阵的聚类亚群分组,因此这里利用分析矩阵做一个简单聚类
all <- toc
all <- CreateSeuratObject(all)
all <- NormalizeData(all, normalization.method = "LogNormalize", scale.factor = 10000)
all <- FindVariableFeatures(all, selection.method = "vst", nfeatures = 3000)
all.genes <- rownames(all)
all <- ScaleData(all, features = all.genes)
all <- RunPCA(all, features = VariableFeatures(all), npcs = 40, verbose = F)
all <- FindNeighbors(all, dims = 1:30)
all <- FindClusters(all, resolution = 0.5)
all <- RunUMAP(all, dims = 1:30)
#提取聚类后的meta.data信息
matx <- all@meta.data

sc = SoupChannel(tod, toc)
sc = setClusters(sc, setNames(matx$seurat_clusters, rownames(matx)))
#自动计算污染比例系数
if (is.null(rho)) {
tryCatch(
{sc = autoEstCont(sc)}, 
error=function(e) {
#因为自动计算经常会报错,所以如果报错则设置rho为0.2
print("autoEstCont Error !")
sc = setContaminationFraction(sc, 0.2)}
)
}else{
#自行设置污染比例系数
sc = setContaminationFraction(sc, rho)
}
#校正矩阵
out = adjustCounts(sc)
#保存两个矩阵文件
saveRDS(sc,"sc.rds")
#保存校正后的矩阵,输出为10X格式
DropletUtils:::write10xCounts("./soupX_matrix", out,version="3")
}

根据官方文档,污染比例系数可以自动计算,也可以自行设置,一般设置为0.2即可去除99%的环境RNA污染

Our experiments indicate that adding 5% extra removes 90-95% of the soup, 10% gets rid of 95-98% and 20% removes 99% or more.

直接调用函数
run_soupx(toc,tod)
还可以设置污染系数
run_soupx(toc,tod,rho=0.25)

之后如果要批量去除环境RNA可以用写个循环调用此函数。

处理前后效果对比

虽然没有太大的差异,但是细看还是干净了不少,而且一般对矩阵尽量少处理是比较好的,这种轻微处理还是可以接受的。


效果对比图

小结与补充

运行SoupX不怎么耗内存,也不怎么耗时间,不过存在一个问题,就是校正后的表达矩阵数值不是整数了,都成小数了,这个一方面会增加存储,另一方面后续分析中也会比较耗运行内存,可以设置roundToInt=TRUE随机取整强行转成整数。不过,不建议这样做,因为还是尽量对分析矩阵少做处理。
另外,SoupX还可以自行设置污染比较严重的基因集,具体可以查看官方文档。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容