ssGSEA分析

作者: 谢京合 | 来源:发表于2021-04-26 12:08 被阅读0次

    ssGSEA即单样本GSEA分析,主要可以用来量化免疫浸润。

    免疫浸润是什么?
    要是直白的解释就是免疫细胞渗透到肿瘤组织的程度。
    一般我们说肿瘤组织当中的成分,首先想到的是肿瘤细胞。
    但是,肿瘤组织里面还包含有很多免疫细胞,B细胞、T细胞、单核巨噬细胞等等。
    那么,那么ssGSEA其实就是计算这些免疫细胞在肿瘤组织当中的比例。


    Cellular Constituents of Immune Escape within the Tumor Microenvironment

    在定量免疫浸润之前,需要先在TISIDB下载免疫细胞的数据集。
    下载地址:(http://cis.hku.hk/TISIDB/download.php)
    对下载得到的数据进行处理。

    library(tidyverse)
    options(stringsAsFactors = F)
    setwd("E:/8资料/2.干细胞/4.ssGSEA")
    
    geneSet <- read.csv("CellMarker.CSV",header = F)
    class(geneSet)
    geneSet <- geneSet %>% column_to_rownames("V1")%>%t()
    View(geneSet)
    a <- geneSet
    a <- a[1:nrow(a),]
    View(a)
    set <- colnames(a)
    l <- list()
    View(set)
    for (i in set) {
    +   x <-  as.character(a[,i])
    +   x <- x[nchar(x)!=0]
    +   x <-  as.character(x)
    +   l[[i]] <-x
    + }
    View(l)
    class(l)
    save(l,file = "./gene_set.Rdata")
    

    然后,ssGSEA可以用R 当中的GSVA包来计算。

    #计算GSVA
    #安装GSVA
    #if (!requireNamespace("BiocManager", quietly = TRUE))
    #    install.packages("BiocManager")
    
    #BiocManager::install("GSVA")
    #网络不好的时候会报错,检查一下网线重新安装就好了。
    library(GSVA)
    library(limma)
    load(file = "./gene_set.Rdata")
    
    #导入FPKM数据。而且必须是symble的。因为免疫基因的数据是symble。
    fpkm <- read.table("RNAmatrix_symble.txt", header=T)
    rownames(fpkm) <- fpkm[,1]
    rows <- rownames(unique(fpkm['id']))
    fpkm <- fpkm[rows,]
    rownames(fpkm) <- fpkm[,1]
    fpkm <- fpkm[,-1]
    fpkm[1:3,1:3]
    dat <- as.matrix(fpkm)
    
    ssgsea<- gsva(dat,l, method='ssgsea', kcdf='Gaussian',abs.ranking=TRUE)
    #基因集需要是list为对象。
    #默认情况下,kcdf="Gaussian",适用于输入表达式值连续的情况,如对数尺度的微阵列荧光单元、RNA-seq log-CPMs、log-RPKMs或log-TPMs。
    #当输入表达式值是整数计数时,比如那些从RNA-seq实验中得到的值,那么这个参数应该设置为kcdf="Poisson"
    
    #Min-Max标准化是指对原始数据进行线性变换,将值映射到[0,1]之间
    #这里是将每个样本中不同的免疫细胞比例标准化到0-1之间
    ssgsea.1 <- ssgsea
    for (i in colnames(ssgsea)) {
      #i <- colnames(ssgsea)[1]
      ssgsea.1[,i] <- (ssgsea[,i] -min(ssgsea[,i]))/(max(ssgsea[,i] )-min(ssgsea[,i] ))
    
    }
    apply(ssgsea.1[,1:6], 2, range)
    
    
    #画热图
    library(pheatmap)
    #因为需要显示癌症组和癌旁组,所以需要导入表达谱的表型数据
    colData <-read.csv("RNAmatrix_condition.csv", header=TRUE)
    group <- data.frame(colData$condition)
    rownames(group)=colnames(dat)
    #画图
    pheatmap(ssgsea.1,
             show_colnames = F,
             cluster_rows = T,
             cluster_cols = F,
             annotation_col=group,
             fontsize=5)
    #输出热图
    library(export)
    graph2ppt(file="pheatmap.ppt", width=10, aspectr=2)
    
    

    量化免疫浸润,还有一种方法是CIBERSORT,他的结果是各个免疫细胞在一个样本中的占有率。之后有空再讲吧。

    相关文章

      网友评论

        本文标题:ssGSEA分析

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