Hemberg-lab单细胞转录组数据分析(九)- Scater包单细胞过滤

往期系列

Hemberg-lab单细胞转录组数据分析(一)

Hemberg-lab单细胞转录组数据分析(二)

Hemberg-lab单细胞转录组数据分析(三)

Hemberg-lab单细胞转录组数据分析(四)

Hemberg-lab单细胞转录组数据分析(五)

Hemberg-lab单细胞转录组数据分析(六)

Hemberg-lab单细胞转录组数据分析(七)-导入10X和SmartSeq2数据Tabula Muris

Hemberg-lab单细胞转录组数据分析(八)- Scater包输入导入和存储

收藏|北大生信平台"单细胞分析、染色质分析"视频和PPT分享

该如何自学入门生物信息学

生物信息之程序学习

收藏|你想要的生信学习系列教程-宝典在手,生信无忧

细胞质控

文库大小

查看每个样品(细胞)检测到的总分子数 (UMI count)或总reads数 (reads count),拥有很少的reads或分子数的样品可能是细胞破损或捕获失败,应该移除。

hist(
    umi$total_counts,
    breaks = 100
)
abline(v = 25000, col = "red")
image

练习

  1. 我们的过滤移除了多少细胞?

  2. 每个细胞中检测到的分子数的分布预期是怎样的?

答案

filter_by_total_counts <- (umi$total_counts > 25000)
table(filter_by_total_counts)
## filter_by_total_counts
## FALSE  TRUE 
##    46   818

检测到的基因数

除了确保每个样品的测序深度,也需要保证测序reads在转录本中分布均衡,而不是集中在少数高表达的基因上。每个样品检测到的基因数也是衡量样品质量好坏的一个标准。

# 原文这个地方有误,可能是版本问题
hist(
    umi$total_features_by_counts,
    breaks = 100
)
abline(v = 7000, col = "red")
image

从图中可以看出,大部分细胞能检测到7,000-10,000基因,这对高深度scRNA-seq是正常的。当然这个受测序深度和实验方法的影响。比如居于droplet的方法或样品测序深度低时每个细胞检测到的基因数要少一些,表现在图上是,左侧拖尾严重。如果细胞之间的基因检出率相当,应该符合正态分布。因此选择移除分布尾部的细胞 (本例中是检测出的基因数少于7000的细胞)。

练习2: 移除了多少细胞?

答案

## filter_by_expr_features
## FALSE  TRUE 
##   116   748

ERCCs和MTs

另外一个测量细胞质量的方式是比较ERCC spike-in测到的reads数与内源转录本测到的reads数的比例,可以衡量捕获到的内源性RNA的总量。如果spike in的reads数很高,则表示起始内源性RNA总量低,可能是由于细胞死亡或胁迫诱导的RNA降解导致的,也有可能是细胞体积小。

plotColData(    umi,    x = "total_features_by_counts",    y = "pct_counts_MT",    colour = "batch")
image
plotColData(
    umi,
    x = "total_features_by_counts",
    y = "pct_counts_MT",
    colour = "batch"
)
image

上图显示来源于NA19098.r2批次的细胞有较高的ERCC/内源RNA比例。作者在文章中证实这一点,说这个批次的细胞体积小。

练习 3:移除NA19098.r2批次的细胞和线粒体基因表达量超过10%的细胞。

答案

filter_by_ERCC <- umi$batch != "NA19098.r2"
table(filter_by_ERCC)
## filter_by_ERCC
## FALSE  TRUE 
##    96   768
filter_by_MT <- umi$pct_counts_MT < 10
table(filter_by_MT)
## filter_by_MT
## FALSE  TRUE 
##    31   833

练习 4: 如果研究的数据集细胞大小不同(正常细胞、衰老细胞),那么ERCC与内源基因被测到的比例会是怎么的分布?

答案:小的细胞 (normal)比大的细胞(senescent,衰老)有更高比例的ERCC reads。

细胞过滤

手动过滤

基于前面的分析定义一个过滤器,不满足任何一个条件的细胞都过滤掉:

umi$use <- (
    # sufficient features (genes)
    filter_by_expr_features &
    # sufficient molecules counted
    filter_by_total_counts &
    # sufficient endogenous RNA
    filter_by_ERCC &
    # remove cells with unusual number of reads in MT genes
    filter_by_MT
)
table(umi$use)
## 
## FALSE  TRUE 
##   207   657

自动过滤

scater提供了一个根据质控数据进行PCA分析进而自动挑出异常细胞的方法。默认,下面这些统计量将用于PCA异常细胞检测的分析:

  • pct_counts_top_100_features

  • total_features_by_counts

  • pct_counts_feature_controls

  • n_detected_feature_controls

  • log10_counts_endogenous_features

  • log10_counts_feature_controls

scater首先生成一个行是细胞,列是细胞中对应的上述质控数据的值,然后使用mvoutlier包筛选质控数据与大部分细胞不同的样品定义为低质量细胞。 package on the QC metrics for all cells. This will identify cells that have substantially different QC metrics from the others, possibly corresponding to low-quality cells. We can visualize any outliers using a principal components plot as shown below:

umi <- runPCA(umi, use_coldata = TRUE, 
              detect_outliers = TRUE)
reducedDimNames(umi)
## [1] "PCA_coldata"

鉴定结果存储于umi变量的$outlier部分,指示细胞是否被判断未异常细胞。自动异常细胞检测是很有意义的,可以作为工厂化大批量模式使用,但特异性的手动检测数据集和根据结果、实验调整过滤是推荐的方式。

table(umi$outlier)

## ## FALSE  TRUE 
##   791    73

绘制PCA结果展示异常细胞分布:

plotReducedDim(umi, use_dimred = "PCA_coldata",
               size_by = "total_features_by_counts", shape_by = "use", 
               colour_by="outlier")
image

手动过滤和自动过滤比较

练习 5: 绘制Venn图比较自动和手动两个方式检测出的异常细胞

提示: 使用limma包里的vennCountsvennDiagram函数绘制。生信宝典说,使用高颜值在线绘图工具http://www.ehbio.com/ImageGP更方便。

答案

image

还有一种方式是使用中位数绝对偏差作为判断样品异常的标准。以测序文库大小为例,假设样品中的Total read count是,所有样品中Total read count的中位数是,那么样品 Total read count的绝对偏差就是。 的样品会被移除 (移除测序深度低的样品)。为了增强过滤的鲁棒性,依据样品测序的文库大小检测到的基因数目过滤时会先对相应对数值进行对数转换。依据ERCC spike-in基因的比例线粒体基因的比例过滤时,的样品会被移除 (移除检测到的内源基因少的样品)。

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