【问题标题】:merging previously merged objects in Seurat在 Seurat 中合并先前合并的对象
【发布时间】:2020-11-22 03:46:57
【问题描述】:

我有两个通过合并样本制成的 Seurat 对象:

object1 <-merge(A, y=B, add.cell.ids=c("A","B"))
object2 <-merge(C, y=D, add.cell.ids=c("C","D"))

对于每个对象,我都进行了预处理、PCA 和聚类。现在我想合并来自 object1 的集群 1 和来自 object2 的集群 3

cluster1<-subset(object1, ident=1)
cluster3<-subset(object2, ident=1)

clusters1_3<-merge(cluster1, y=cluster3, add.cell.ids=c("1","3"))

但是,当我对 cluster1_3 对象进行聚类时,它会聚类为 A、B、C、D 初始聚类。我做错了什么?

【问题讨论】:

    标签: r seurat


    【解决方案1】:

    您的不同对象会有不同的 PCA。合并 seurat 对象时,会复制 PCA 分数、聚类和 tsne 表示,因此无需重新计算。

    一种选择是再次规范化数据,运行 PCA 等并重新集群,使用一个简单的示例:

    library(Seurat)
    library(patchwork)
    
    process = function(x,id){
              x = RenameCells(x,paste0(id,"_",colnames(x)))
              x = SCTransform(x)
              x = RunPCA(x,npcs =10)
              x = RunTSNE(x,dims=1:10,perplexity=10)
              x = FindNeighbors(x,dims=1:10)
              x = FindClusters(x,algorithm=3,resolution=1)
              return(x)
    }
              
    i1 = sample(ncol(pbmc_small),60)
    i2 = sample(ncol(pbmc_small),60)
    object1 = process(pbmc_small[,i1],"A")
    object2 = process(pbmc_small[,i2],"B")
    

    假设我们从两个对象合并 cluster1:

    FeaturePlot(object1,"CD14",label=TRUE,label.size=5) + FeaturePlot(object2,"CD14",label=TRUE,label.size=5)
    

    你需要重新运行

    cellsA<-subset(object1, ident=1)
    cellsB<-subset(object2, ident=1)
    
    clusters <-merge(cellsA, y=cellsB)
    clusters = SCTransform(clusters)
    clusters = SCTransform(clusters)
    clusters = RunPCA(clusters)
    [....]
    

    如果在此之后,您仍然看到根据数据进行分离,这可能是由于您的数据的批量影响,您需要integrate the seurat objects

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      • 2018-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多