Seurat包合并多个单细胞样本

作者: 小贝学生信 | 来源:发表于2020-09-10 16:29 被阅读0次

    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)  #查看每个样本的细胞数
    

    后续再针对多样本对象进行单细胞流程分析

    相关文章

      网友评论

        本文标题:Seurat包合并多个单细胞样本

        本文链接:https://www.haomeiwen.com/subject/qaupektx.html