01.单细胞分析之多个10x单细胞数据合并和质检

本文介绍了在R语言中使用Seurat库合并多个10x单细胞数据集的方法,包括指定路径循环读取和分别读取后通过merge函数合并。同时,作者还展示了单细胞数据的质检过程,如线粒体基因比例和红细胞比例的计算,以及结果的可视化和保存。
摘要由CSDN通过智能技术生成

进来单细胞相关文献,分析流程层出不穷,博主也来蹭一蹭~,这里我们先分享两种多个单细胞10x数据合并的方法

1.指定路径,循环读取合并

我们先准备10x单细胞数据,如下图

我们把10x单细胞数据,都放在一个叫 data的文件夹中,这个文件夹中又包括三个我们需要的数据,点开对应其中的一个,就是我们需要的10x单细胞数据,这里博主是合并三个数据,代码如下:

rm(list = ls())
library(Seurat)
library(tidyverse)
library(dplyr)
library(patchwork)

setwd("E:/ww2024.02.05")#设置文件夹data所在位置
data_dir <- paste0(getwd(),"/data")       
samples=list.files(data_dir)
dir=file.path(data_dir,samples)
afdata <- Read10X(data.dir = dir)

af <- CreateSeuratObject(counts = afdata, 
                         project = "SeuratObject", 
                         min.cells = 3,
                         min.features = 200)
afidens=mapvalues(Idents(af), from = levels(Idents(af)), to = samples)
Idents(af)=afidens
af$Type=Idents(af)

这就表示成功了

2.分别读取每一个10x单细胞数据,通过merge 函数合并

rm(list = ls())
library(Seurat)
library(tidyverse)
library(dplyr)
library(patchwork)
setwd("E:/ww2024.02.05/data")#设置文件夹data所在位置

#分别读取data文件中每个单细胞数据

GSM4837523=Read10X("./GSM4837523/")
GSM4837525=Read10X('./GSM4837525/')
GSM4837527=Read10X('./GSM4837527/')

GSM4837523=CreateSeuratObject(GSM4837523,project = 'GSM4837523')
GSM4837525=CreateSeuratObject(GSM4837525,project = 'GSM4837525')
GSM4837527=CreateSeuratObject(GSM4837527,project = 'GSM4837527')

#通过merge函数合并

af <- merge(GSM4837523,y=c(GSM4837525,GSM4837527))
af@meta.data$tissue_type=af@meta.data$orig.ident
af@meta.data$tissue_type=stringr::str_remove(af@meta.data$tissue_type,'[0-9]')#去除数字

3.单细胞数据质检

#样本线粒基因比例
af[["percent.mt"]] <- PercentageFeatureSet(af, pattern = "^MT-")

#样本红细胞比例
HB.genes <- c("HBA1","HBA2","HBB","HBD","HBE1","HBG1","HBG2","HBM","HBQ1","HBZ")
HB_m <- match(HB.genes, rownames(af@assays$RNA)) 
HB.genes <- rownames(af@assays$RNA)[HB_m] 
HB.genes <- HB.genes[!is.na(HB.genes)] 
af[["percent.HB"]]<-PercentageFeatureSet(af, features=HB.genes)

#可视化
col.num <- length(levels(af@active.ident))
violin <- VlnPlot(af,
                  features = c("nFeature_RNA", "nCount_RNA", "percent.mt","percent.HB"), 
                  cols =rainbow(col.num), 
                  pt.size = 0.01, #不需要显示点,可以设置pt.size = 0
                  ncol = 4) + 
  theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank()) 

violin

#保存图片
ggsave("01.QC-vlnplot_before_qc.pdf", plot = violin, width = 12, height = 6) 

最后结果是这样的,生成名为01.QC-vlnplot_before_qc.pdf的文件,后续的话,博主会写关于nFeature、nCount、percent.mt和percent.HB结合自己的数据去设置阈值,而不是通用的那一套照搬照抄。

4.保留结果

#保存名为af.rds的文件,用于后续分析
saveRDS(af,"af.rds")

好啦,这次分享就到这里啦~
 

  • 16
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值