美文网首页
单细胞之计算细胞周期

单细胞之计算细胞周期

作者: 可能性之兽 | 来源:发表于2022-11-26 23:21 被阅读0次
    image.png image.png
    image.png

    使用scan

    ###基因转换
    library(clusterProfiler)
    library(org.Hs.eg.db)
    library(scran)
    hs.pairs <- readRDS(system.file("exdata", "human_cycle_markers.rds", package="scran"))
    # mm.pairs <- readRDS(system.file("exdata", "mouse_cycle_markers.rds", package="scran"))
    str(hs.pairs)
    head(hs.pairs$G1)
    

    不知道为什么scan记录的ID都是ENSEMBL ID,所以要转换,有两种方式

    转换方法2:转换hs.pairs里面的名字
    单细胞专题 | 10.细胞周期分析 (qq.com)

    # x <- names(mm.pairs)[1]
    htrs <- lapply(names(hs.pairs), function(x){
      df <- hs.pairs[[x]]
      first <- bitr(hs.pairs[[x]][,1],
                    fromType= "ENSEMBL", toType="SYMBOL",
                    OrgDb="org.Hs.eg.db")
    
      second <- bitr(hs.pairs[[x]][,2],
                     fromType= "ENSEMBL", toType="SYMBOL",
                     OrgDb="org.Hs.eg.db")
      df <- df[first$ENSEMBL %in% df$first,]
      df <- df[second$ENSEMBL %in% df$second,]
    
      df$first <-  lapply(df$first, function(x){
        first[first$ENSEMBL == x,2][1] 
      })  %>% unlist()
    
      df$second <-  lapply(df$second, function(x){
        second[second$ENSEMBL == x,2][1] 
      })  %>% unlist()
    
      return(df)
    })
    names(htrs) <- names(hs.pairs)
    
    library(scran)
    assigndata <- cyclone(S1_seurat@assays[["RNA"]]@data, pairs=htrs)
    table(assigned$phases)
    # head(assigned$scores)
    # assigned$name<-factor(S1_seurat@meta.data$orig.ident)
    S1_seurat@meta.data$scan_phase<-assigned[["phases"]]
    S1_seurat@meta.data$scan_phase2<-assigndata[["phases"]]
    

    转换方法2:转换自己的Seurat对象的基因名

    ensembl <- mapIds(org.Hs.eg.db, keys=rownames(S1_seurat), 
                      keytype="SYMBOL", column="ENSEMBL")
     head(ensembl)
    assigned <- cyclone(S1_seurat@assays[["RNA"]]@data, pairs=hs.pairs, gene.names=ensembl)
    

    虽然都是scan,但是这两种转换方式最终计算的结果是不完全一致的!!!至于选择哪种,我个人倾向于第一种,因为第二种有些ID是转换不过来的,第一种我粗略的看了一下,基本都转换过来了

    使用Seurat

    2016年的数据集

    S1_seurat <- CellCycleScoring(
      object = S1_seurat,
      g2m.features = cc.genes$g2m.genes,
      s.features = cc.genes$s.genes
    )
    head(x = S1_seurat@meta.data)
    

    2019年的数据集

    s.genes <- cc.genes.updated.2019$s.genes
    g2m.genes <- cc.genes.updated.2019$g2m.genes
    
    srat <- CellCycleScoring(S1_seurat, s.features = s.genes, g2m.features = g2m.genes)
    

    虽然都是Seurat,但是这两个的结果还是有区别的,这个选择哪个,得看数据集的原文

    Scran和Seurat的结果更是差别巨大!!!最终选择哪种,我个人的原则是去看一下这些原文的数据集是来自什么细胞。哪种和自己细胞相近用哪个,如果都不相近,选多的那个。

    相关文章

      网友评论

          本文标题:单细胞之计算细胞周期

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