往期系列

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")

练习

  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")

从图中可以看出,大部分细胞能检测到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")

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

上图显示来源于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 countedfilter_by_total_counts &# sufficient endogenous RNAfilter_by_ERCC &# remove cells with unusual number of reads in MT genesfilter_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")

手动过滤和自动过滤比较

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

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

答案

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

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

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

    往期系列 亨贝格实验室单细胞转录组数据分析(一) 亨贝格实验室单细胞转录组数据分析(二) 亨贝格实验室单细胞转录组数据分析(三) 亨贝格实验室单细胞转录组数据分析(四) 亨贝格实验室单细胞转录组数据分 ...

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

    往期系列 Hemberg-lab单细胞转录组数据分析(一) Hemberg-lab单细胞转录组数据分析(二) Hemberg-lab单细胞转录组数据分析(三) Hemberg-lab单细胞转录组数据分 ...

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

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

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

    Hemberg-lab单细胞转录组数据分析(一) Hemberg-lab单细胞转录组数据分析(二) Hemberg-lab单细胞转录组数据分析(三) 收藏|北大生信平台"单细胞分析.染色质分 ...

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

    Hemberg-lab单细胞转录组数据分析(一) Hemberg-lab单细胞转录组数据分析(二) 收藏|北大生信平台"单细胞分析.染色质分析"视频和PPT分享 生信老司机以中心法 ...

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

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

  7. seurat提取表达矩阵_Hemberg-lab单细胞转录组数据分析

    单细胞RNA-seq简介 混合RNA-seq2000年末的重大技术突破,取代微阵列表达芯片被广泛使用 通过混合大量细胞获取足够RNA用于建库测序,来定量每个基因的平均表达水平 用于比较转录组,例如比较 ...

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

    在别人的电子书,你的电子书,都在bookdown一文中推荐过这一篇教程(https://hemberg-lab.github.io/scRNA.seq.course),从2016年一直更新到2018年 ...

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

    单细胞测序实验方法 开发scRNA-seq的新实验方法和操作手册是目前很火的研究领域,而且最近这些年已经发表了一些改进方法.上图可以看出检测的细胞数目以指数形式增加,以下是一份不完全的列表: STRT ...

最新文章

  1. android 语音自动播报,Android 语音播报实现
  2. 用openCV去除文字中乱入的线条
  3. chap10 构建Web内容的技术
  4. python dict遍历_Python学习笔记:19个pythonic编程习惯,让你的Python入门更优雅
  5. python版权问题_关于版权问题 · Issue #62 · hankcs/HanLP · GitHub
  6. nubia android root权限,获取中兴NX403a (Nubia Z5S Mini Android 4.2)ROOT权限教程,新手必看...
  7. 查看锁表进程SQL语句
  8. Servlet 浅析
  9. Hadoop笔记整理(二):HDFS
  10. 帆软高级函数应用之时间函数
  11. mac install wget
  12. java泛型方法的使用
  13. Matlab·Simulink的使用—【S函数的创建与应用】
  14. 锯齿波FMCW测距、测速的原理
  15. Java程序:编程模拟和表达老虎Tiger和猫咪Cat等具体种类的生物都是一种动物。即它们都具有共同的名字属性name和运动行为run,只不过具体的名字叫法不同,运动行为的具体方式也不同。
  16. Excel的筛选功能应用教你在大数据中筛选出需要的数据
  17. android多行文本输入,android EditText多行文本输入的若干问题
  18. STM32-RS485通信软硬件实现
  19. htmlUnit的读取js渲染的页面
  20. 过敏性鼻炎、感冒、哮喘

热门文章

  1. 《大数据》第1期“研究”——大数据管理系统评测基准的 挑战与研究进展(上)...
  2. 【MySQL】MySQL监视器无法启动的可能情况
  3. 【Python】Sklearn线性回归模型预测波士顿房价并绘图
  4. 【数据结构与算法】基础数据结构与算法大全
  5. 关于 WSGI、uwsgi和uWSGI的区别及基于 uWSGI和gunicorn 部署python web 简述
  6. 前端MVVM模式及其在Vue和React中的体现
  7. shell:判断一个进程是否存在
  8. VNC 远程控制工具软件
  9. [转]CISCO IOS命名规则
  10. [数据库字典]简单的3个SQL视图搞定所有SqlServer数据库字典