#scRNA
library(Seurat)
library(Matrix)
library(stringr)
#更改目录至 解压后数据所在的路径
setwd("./data")
#查看当前有哪些文件
fs=list.files('./','^GSM')
fs
#提取样本名
samples=str_split(fs,'_',simplify = T)[,2]
#按照下划线分割,然后四二个元素作为样本名
unique(samples)
#建立样本文件夹,然后更改对应的三个文件的名字
lapply(unique(samples),function(x){
y=fs[grepl(x,fs)]
folder=paste(str_split(y[1],'_',simplify = T)[,2],collapse = '')
dir.create(folder, recursive = T)
file.rename(y[1],file.path(folder,"barcodes.tsv.gz"))
file.rename(y[2],file.path(folder,"features.tsv.gz")) #注意版本
file.rename(y[3],file.path(folder,"matrix.mtx.gz"))
})
folders=list. Files('./')
folders
#批量读取16个10X单细胞转录组数据文件夹
sceList = lapply(folders,function(folder)
{ CreateSeuratObject(counts = Read10X(folder),
project = folder )}
sce.all <- merge(sceList[[1]],
y = c(sceList[[2]],sceList[[3]],
sceList[[4]],sceList[[5]], sceList[[6]],sceList[[7]],
sceList[[8]],sceList[[9]],
sceList[[10]], sceList[[11]],
sceList[[12]],sceList[[13]],
sceList[[14]],sceList[[15]],
sceList[[16]]),
add.cell.ids = folders, #添加样本名
project = "scRNA")