- 示例数据:GSE139324有63个samples。
https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE139324
1 - 我们选取其中十个,利用Seurat包下载合并,创建Seurat对象。
1、raw data改名、分组
-
创建Seurat对象,每个样本都需要barcodes.tsv.gz、features.tsv.gz、matrix.mtx.gz三个文件。
标准分组的三个文件 - 多样本时,将每个样本的三个文件改成标准名,并放在独立的文件夹里。
- 如下代码可针对任意数量的样本完成改名,分组。只需修改代码里的
GSE139324_RAW/
为自己的raw_data文件夹名即可。
fs=list.files('./GSE139324_RAW/','^GSM')
fs
library(tidyverse)
samples=str_split(fs,'_',simplify = T)[,1]
lapply(unique(samples),function(x){
y=fs[grepl(x,fs)]
folder=paste0("GSE139324_RAW/", str_split(y[1],'_',simplify = T)[,1])
dir.create(folder,recursive = T)
#为每个样本创建子文件夹
file.rename(paste0("GSE139324_RAW/",y[1]),file.path(folder,"barcodes.tsv.gz"))
#重命名文件,并移动到相应的子文件夹里
file.rename(paste0("GSE139324_RAW/",y[2]),file.path(folder,"features.tsv.gz"))
file.rename(paste0("GSE139324_RAW/",y[3]),file.path(folder,"matrix.mtx.gz"))
})
2、多样本合并
- 有两种方法:一种是直接全部读入,创建对象;另一种方法是先对每个样本创建对象,再将所有对象合并为最终的对象。
library(Seurat)
samples=list.files("GSE139324_RAW/")
samples
dir <- file.path('./GSE139324_RAW',samples)
names(dir) <- samples
#合并方法1
counts <- Read10X(data.dir = dir)
scRNA1 = CreateSeuratObject(counts, min.cells=1)
dim(scRNA1) #查看基因数和细胞总数
table(scRNA1@meta.data$orig.ident) #查看每个样本的细胞数
#合并方法2
scRNAlist <- list()
for(i in 1:length(dir)){
print(i)
counts <- Read10X(data.dir = dir[i])
scRNAlist[[i]] <- CreateSeuratObject(counts, min.cells=1)
}
scRNA2 <- merge(scRNAlist[[1]], y=c(scRNAlist[[2]], scRNAlist[[3]],
scRNAlist[[4]], scRNAlist[[5]], scRNAlist[[6]], scRNAlist[[7]],
scRNAlist[[8]], scRNAlist[[9]], scRNAlist[[10]]))
dim(scRNA2) #查看基因数和细胞总数
table(scRNA2@meta.data$orig.ident) #查看每个样本的细胞数
后续再针对多样本对象进行单细胞流程分析
网友评论