Seurat | 强烈建议收藏的单细胞分析标准流程(基础质控与过滤)(一)
创始人
2024-11-06 16:11:47
0

1. 写在前面

作为现在最火scRNAseq分析包,Seurat当之无愧。😘
本期开始我们介绍一下Seurat包的用法,先从基础质控过滤开始吧。🥳

2.用到的包

rm(list = ls()) library(Seurat) library(tidyverse) library(SingleR) library(celldex) library(RColorBrewer) library(SingleCellExperiment) 

3. 示例数据

3.1 读取10X文件

这里我们提供一个转成gene symbols的可读文件,如果大家拿到的是Ensemble ID,可以用之前介绍的方法进行转换。

adj.matrix <- Read10X("./soupX_pbmc10k_filt") 


3.2 创建Seurat对象

srat <- CreateSeuratObject(adj.matrix,project = "pbmc10k")  srat 


3.3 查看Seurat对象

str(srat) 

4. 提取meta.data

这里我们提取一下meta.data,顺便查看一下表头,主要是三列: 👇

  • dataset ID
  • UMI/cell (nCount_RNA);
  • detected genes/cell (nFeature_RNA)。
meta <- srat@meta.data head(meta) 

5.添加信息

5.1 添加线粒体基因信息

不知道大家还记得线粒体基因吗???🤒
scRNA-seq中,线粒体基因高表达往往代表细胞状态不佳。🧐

srat[["percent.mt"]] <- PercentageFeatureSet(srat, pattern = "^MT-")  head(srat$percent.mt) 


5.2 添加核糖体基因信息

这里我们试一下添加核糖体基因的信息。👀

srat[["percent.rb"]] <- PercentageFeatureSet(srat, pattern = "^RP[SL]")  head(srat$percent.rb) 

6. 去除双细胞

scRNAseq理想情况是每个barcode下只有一个细胞,但在实际情况中会有两个多个细胞共用一个barcode,我们称之为doublets。🫠

识别并去除doublets的方法很多,常用的有:👇

  • Scrublet;
  • doubletCells;
  • cxds;
  • bcds;
  • Hybrid;
  • DoubletDetection;
  • DoubletFinder;
  • Solo;
  • DoubletDecon

这里推荐大家使用DoubletFinder,我们就不进行演示了,以后再做具体介绍。🤗

因为我们事先使用Scrublet做过处理了,这里就直接导入准备好的文件吧。

doublets <- read.table("./scrublet_calls.tsv",header = F,row.names = 1) colnames(doublets) <- c("Doublet_score","Is_doublet") srat <- AddMetaData(srat,doublets) head(srat[[]]) 

7. 可视化

7.1 小提琴图

这里我们用VlnPlot探索一下特征的分布情况。

VlnPlot(srat,          fill.by = "feature", # "feature", "ident"         features = c("nFeature_RNA","nCount_RNA","percent.mt","percent.rb"),         ncol = 4, pt.size = 0.1) +   theme(plot.title = element_text(size=10)) 


7.2 散点图

这里利用散点图,我们看一下不同变量间的相关性

FeatureScatter(srat, feature1 = "nCount_RNA", feature2 = "percent.mt") 


FeatureScatter(srat, feature1 = "nCount_RNA", feature2 = "nFeature_RNA") 


FeatureScatter(srat, feature1 = "nCount_RNA", feature2 = "percent.rb") 


FeatureScatter(srat, feature1 = "percent.rb", feature2 = "percent.mt") 


FeatureScatter(srat, feature1 = "nFeature_RNA", feature2 = "Doublet_score") 

Note!

  • 这里我们可以看到高线粒体基因与低UMI计数相关,可以理解为死细胞。 🫠
  • 再看一下核糖体基因与线粒体基因,显著负相关。 😉
  • doublet基因表达数之间也有一定的相关性

8. 添加信息

8.1 过滤

接着我们定义一下过滤条件,将质量差非单细胞的数据剔除掉。🫵

srat[['QC']] <- ifelse(srat@meta.data$Is_doublet == 'True',                        'Doublet','Pass')  srat[['QC']] <- ifelse(srat@meta.data$nFeature_RNA < 500 &                         srat@meta.data$QC == 'Pass',                        'Low_nFeature', srat@meta.data$QC                        )  srat[['QC']] <- ifelse(srat@meta.data$nFeature_RNA < 500 &                         srat@meta.data$QC != 'Pass' &                         srat@meta.data$QC != 'Low_nFeature',                        paste('Low_nFeature', srat@meta.data$QC, sep = ','),                        srat@meta.data$QC                        )  srat[['QC']] <- ifelse(srat@meta.data$percent.mt > 15 &                        srat@meta.data$QC == 'Pass',                        'High_MT',srat@meta.data$QC                        )  srat[['QC']] <- ifelse(srat@meta.data$nFeature_RNA < 500 &                        srat@meta.data$QC != 'Pass' &                         srat@meta.data$QC !='High_MT',                        paste('High_MT',srat@meta.data$QC,sep = ','),                        srat@meta.data$QC                        )  table(srat[['QC']]) 

8.2 可视化

这里我们只将通过过滤条件的数据展示出来,大家可以和过滤前的比较一下。

VlnPlot(subset(srat, subset = QC == 'Pass'),          features = c("nFeature_RNA", "nCount_RNA", "percent.mt","percent.rb"),          ncol = 4, pt.size = 0.1) +   theme(plot.title = element_text(size=10)) 


花蛤
最后祝大家早日不卷!~

需要示例数据的小伙伴,在公众号回复Seurat获取吧!

点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰

相关内容

热门资讯

曝光了解!多乐跑如何增加胜率(... 曝光了解!多乐跑如何增加胜率(辅助)微乐长沙麻将都是是有辅助app(哔哩哔哩)1、打开软件启动之后找...
专业了解!敢拍小程序靠谱吗(辅... 专业了解!敢拍小程序靠谱吗(辅助)边锋老友二打一竟然是真的辅助脚本(哔哩哔哩)1、下载好敢拍小程序靠...
教你了解!雀友会潮汕辅助(辅助... 教你了解!雀友会潮汕辅助(辅助)吉祥麻将原来是有辅助app(哔哩哔哩)1、进入到雀友会潮汕辅助是否有...
辅助了解!全来潜山跑风破解版安... 辅助了解!全来潜山跑风破解版安卓(辅助)山东麻将确实是有辅助安装(哔哩哔哩)1、下载好全来潜山跑风破...
解谜了解!微信小程序哥哥打大a... 解谜了解!微信小程序哥哥打大a辅助器(辅助)圣盛晃晃麻将切实有挂辅助安装(哔哩哔哩)1、微信小程序哥...
关于了解!黑桃a3哟西破解版(... 关于了解!黑桃a3哟西破解版(辅助)飘飘切实是真的辅助器(哔哩哔哩)在进入黑桃a3哟西破解版软件靠谱...
透视了解!哈局八张透视辅助(辅... 透视了解!哈局八张透视辅助(辅助)荔枝竞技都是真的有辅助软件(哔哩哔哩)1、让任何用户在无需哈局八张...
开挂了解!天酷辅助器(辅助)欢... 开挂了解!天酷辅助器(辅助)欢喜510k切实真的是有辅助下载(哔哩哔哩)1、天酷辅助器透视辅助软件激...
分享了解!新老夫子较二八年(辅... 分享了解!新老夫子较二八年(辅助)雀友会2广东潮汕麻将都是真的是有辅助app(哔哩哔哩)新老夫子较二...
解迷了解!传送屋万能辅助器(辅... 解迷了解!传送屋万能辅助器(辅助)婺婺都是有挂辅助软件(哔哩哔哩)1、传送屋万能辅助器免费辅助多个强...