进来单细胞相关文献,分析流程层出不穷,博主也来蹭一蹭~,这里我们先分享两种多个单细胞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")
好啦,这次分享就到这里啦~