首页 > 其他分享 >Hemberg-lab单细胞转录组数据分析(九)- Scater包单细胞过滤

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

时间:2023-05-02 22:32:15浏览次数:33  
标签:样品 ## 过滤 细胞 Hemberg lab 单细胞 counts umi


细胞质控

文库大小

查看每个样品(细胞)检测到的总分子数 (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 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")

手动过滤和自动过滤比较

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

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

答案

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


标签:样品,##,过滤,细胞,Hemberg,lab,单细胞,counts,umi
From: https://blog.51cto.com/u_16077014/6240323

相关文章

  • [网络安全]sqli-labs Less-2 解题详析
    往期回顾:[[网络安全]sqli-labsLess-1解题详析](https://blog.csdn.net/2301_77485708/article/details/130410800?spm=1001.2014.3001.5502)判断注入类型GET1and1=1,回显如下:GET1and1=2,没有回显:说明该漏洞类型为整型注入。判断注入点个数GET1orderby3,回显如下:GE......
  • [网络安全]sqli-labs Less-3 解题详析
    判断注入类型GET1'and'1'='1,回显如下:GET1'and'1'='2:没有回显,说明该漏洞类型为GET型单引号字符型注入判断注入点个数GET1'orderby2--+,回显如下:由上图可知,sql语法中给$id加上了()猜测后端语句为SELECT*FROMxxwhereid=('$id')故构造GET1')orderby3-......
  • [网络安全]sqli-labs Less-4 解题详析
    判断注入类型GET1"and"1"="1,回显如下:GET1"and"1"="2没有回显,说明该漏洞类型为GET型双引号字符型注入判断注入点个数GET1"orderby3--+由上图可知,sql语法中给$id加上了()猜测后端语句为SELECT*FROMxxwhereid=("$id")故构造GET1')orderby3--+,此时后......
  • [网络安全]sqli-labs Less-5 解题详析
    往期sqli-labs在该博客中,读者可自行浏览。[秋说的博客](https://blog.csdn.net/2301_77485708?spm=1000.2115.3001.5343)该博客实操性较高,请读者`躬身实践`判断注入类型GET1'and'1'='1回显如下:GET1'and'1'='2没有回显,说明该漏洞类型为GET型单引号字符型注入判断注入......
  • 解决Matlab在Linux下无法使用hardware OpenGL的问题
    解决Matlab在Linux下无法使用hardwareOpenGL的问题1报错信息在命令行使用命令matlab-nodesktop-nosplash启动Matlab时,出现如下报错:MATLABisselectingSOFTWAREOPENGLrendering.在查阅ArchWikiMatlabOpenGLAcceleration栏目后,发现这是因为Matlab未启用OpenGL硬件加......
  • OFDM图像传输系统matlab仿真,以图片作为数据源进行发送,接收端还原图片,对比MPSK,MQAM
    1.算法仿真效果matlab2022a仿真结果如下:        2.算法涉及理论知识概要        移动视频图像传输,广泛用于公安指挥车、交通事故勘探车、消防武警现场指挥车和海关、油田、矿山、水利、电力、金融、海事,以及其它的紧急、应急指挥系统,主要作用是将......
  • m基于matlab的AODV,leach自组网网络平台仿真,对比吞吐量,端到端时延,丢包率,剩余节点
    1.算法仿真效果matlab2022a仿真结果如下:     2.算法涉及理论知识概要       AODV是一种应用于无线网状网络的路由协议。它源节点需要发送数据时才进行路由发现。当没有数据发送请求时并不执行。在路由发现过程中首先检查路由表中是否存在从源节点到目的......
  • No service of type Factory<LoggingManagerInternal> available in ProjectScopeServ
    最近从GitHub上down下来一个项目,却在导入到AS的时候一直报Error:NoserviceoftypeFactory<LoggingManagerInternal>availableinProjectScopeServices.这个错误clean一下项目之后,报出了详细错误信息接下来仔细看异常信息,Couldnotcreatepluginoftype'AndroidMavenPlugin......
  • m分别使用meanshift和camshift两种算法实现人员跟踪并输出人员移动曲线matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:    2.算法涉及理论知识概要       meanshift算法其实通过名字就可以看到该算法的核心,mean(均值),shift(偏移),简单的说,也就是有一个点,它的周围有很多个点 我们计算点 移动到每个点 所需要的偏移量之和,求平均,就得到......
  • 时序预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络时间序列预
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......