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)  #查看每個樣本的細胞數

后續再針對多樣本對象進行單細胞流程分析

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。