美文网首页
数据标准化-单细胞转录组分析的数据标准化预处理scRNA-seq

数据标准化-单细胞转录组分析的数据标准化预处理scRNA-seq

作者: 一车小面包人 | 来源:发表于2023-09-05 17:46 被阅读0次

    背景:单细胞转录组常规分析流程的数据标准化(归一化)预处理。

    两种方法:
    1.log
    2.sct
    其实这两种标准化方法与批次校正的两种方法息息相关,是多批次数据集校正批次的基础。

    • 标准化(归一化)
      生物差异或者测序等技术差异会影响同一种细胞的细胞间的测序计数深度分布,单细胞测序数据中的细胞间差异可能会包含这部分测序误差,等价于计数矩阵中包含了变化很大的方差项。
      “归一化”的预处理步骤旨在通过将“UMI的方差”缩放到指定的范围,从而调整数据集中的原始UMI计数分布以实现模型建模。
      查看原始的UMI分布:
    library(Seurat)
    library(ggplot2)
    library(dplyr)
    sc<-readRDS("./sc_qc.rds") #'读取质控后的rds
    j=as.data.frame(colSums(sc))
    colnames(j)=("V1")
    h=ggplot(j)+
            geom_histogram(aes(x=V1))+
            xlab(label = "UMI count per cell")
            #ggsave(h, file="hist.pdf", width=12, height=6)
            ggsave(h, file="hist_before.png", width=12, height=6)
    
    norm_before.png
    • log标准化
    sc_1<-sc%>%NormalizeData()%>%FindVariableFeatures(nfeatures=2000) %>%
          ScaleData(features=rownames(sc)) #'log标准化
    j=as.data.frame(colSums(sc_1))
    colnames(j)=("V1")
    h=ggplot(j)+
            geom_histogram(aes(x=V1))+
            xlab(label = "UMI count per cell")
            #ggsave(h, file="hist.pdf", width=12, height=6)
            ggsave(h, file="log.png", width=12, height=6)
    
    log.png
    • sct标准化
    sc_2<- SCTransform(sc,assay = Assays(sc)[1])
    j=as.data.frame(colSums(sc_2))
    colnames(j)=("V1")
    h=ggplot(j)+
            geom_histogram(aes(x=V1))+
            xlab(label = "UMI count per cell")
            #ggsave(h, file="hist.pdf", width=12, height=6)
            ggsave(h, file="sct.png", width=12, height=6)
    
    sct.png
    • log和sct结构浅比较
      那么log和sct标准化后有什么区别呢?通过str(sc_1)查看log后的数据结构:
      str(sc_1).png
      可以看见,sc_1中sc_1$RNA这个数据存储结构中多了sc_1$RNA@data数据,这里存放的是log标准化后的counts矩阵,sc_1$RNA@scale.data存放了scale后的counts矩阵,而sc_1$RNA@var.features存放了寻找出来的2000个高变基因的名字。
      继续通过str(sc_2)查看sct标准化后的数据结构:
      首先找到sc_2$SCT:
      sc_2SCT.png
      这是做了sct标准化才会新出现的一个数据结构,如果是log标准化就没有这个结构。RNA和SCT是seurat对象的数据结构,sct标准化的结果都在这个sc_2$SCT结构中,而log标准化的结果都在sc_1$RNA结构中。
      sc_2$SCT下拉,可以看见这个结构中也保存了sct标准化后的counts矩阵sc_2$SCT@data,sct标准化找到的高变基因sc_2$SCT@var.features,sct标准化后的scale矩阵sc_2$SCT@scale.data
      sc_2SCT.png
      这里有个小tips,sct标准化默认寻找的是3000个高变基因,可以看len(sc_2$SCT@var.features)==3000
      sct标准化后的分析默认使用的是data$SCT中的矩阵,可以使用DefaultAssay(data)="RNA"进行修改。
      此外,sct数据结构中的@data的细胞数可能会少于@counts,而sct的@counts和RNA的@data才是等维度的。
      counts.png

    总结:sct标准化一步(一行代码)就做了log标准化的三步骤:标准化、寻找高变基因、scale。

    相关文章

      网友评论

          本文标题:数据标准化-单细胞转录组分析的数据标准化预处理scRNA-seq

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