美文网首页
GEO数据处理详细代码及分析

GEO数据处理详细代码及分析

作者: 小白兔和小毛驴 | 来源:发表于2021-11-07 20:00 被阅读0次

    GEO表达芯片平台 — GPL14951,注释文件探索过程及GSE140082芯片数据处理过程代码

    rm(list = ls())

    ###当getGEO执行时提示内存不够时,加上这句

    Sys.setenv("VROOM_CONNECTION_SIZE"=99999999)

    library(GEOquery)

    eSet <- getGEO("GSE140082",

                  destdir = '.',

                  getGPL = F)

    exprSet <- exprs(eSet[[1]])

    exprSet <- exprs(eSet[[2]])#针对于数据集有两个平台的,看自己需要选择哪个平台的

    ex <- exprSet

    qx <- as.numeric(quantile(ex, c(0., 0.25, 0.5, 0.75, 0.99, 1.0), na.rm=T))

    LogC <- (qx[5] > 100) ||

      (qx[6]-qx[1] > 50 && qx[2] > 0) ||

      (qx[2] > 0 && qx[2] < 1 && qx[4] > 1 && qx[4] < 2)

    if (LogC) { ex[which(ex <= 0)] <- NaN

    exprSet <- log2(ex)

    print("log2 transform finished")}else{print("log2 transform not needed")}

    library(limma)

    exprSet=normalizeBetweenArrays(exprSet)

    boxplot(exprSet,outline=FALSE,notch=T,col=group_list,las=2)

    anno <- data.table::fread("GPL14951-11332.txt")#读取从GEO下载的GPL14951的平台注释信息

    colnames(anno)

    probe2symbol <- anno[,c("ID","Symbol")]#取需要的列

    colnames(probe2symbol) <- c("PROBE_ID", "SYMBOL_ID")#改名,让他适合下面的自定义函数

    library(dplyr)

    library(tibble)

    library(tidyr)

    {

      p2g <- function(exprSet,probe2symbol){

        exprSet <- as.data.frame(exprSet)

        p2g_eset <- exprSet %>%

          rownames_to_column(var="PROBE_ID") %>% #合并探针的信息

          inner_join(probe2symbol,by="PROBE_ID") %>% #去掉多余信息

          select(-PROBE_ID) %>% #重新排列

          dplyr::select(SYMBOL_ID,everything()) %>% #求出平均数(这边的点号代表上一步产出的数据)

          mutate(rowMean = rowMeans(.[grep("GSM", names(.))])) %>% #去除symbol中的NA

          filter(SYMBOL_ID != "NA") %>% #把表达量的平均值按从大到小排序

          arrange(desc(rowMean)) %>% # symbol留下第一个

          distinct(SYMBOL_ID,.keep_all = T) %>% #反向选择去除rowMean这一列

          dplyr::select(-rowMean) %>% # 列名变成行名

          column_to_rownames(var = "SYMBOL_ID")

        save(p2g_eset, file = "p2g_eset.Rdata")

        return(p2g_eset)

      }

      p2g_eset <- p2g(exprSet = exprSet, probe2symbol = probe2symbol)

      load("p2g_eset.Rdata")

    }

    library(hugene10sttranscriptcluster.db)

    library('org.Hs.eg.db')

    entrezid<-AnnotationDbi::select(org.Hs.eg.db, keys=row.names(p2g_eset),

                                    columns=c("ENTREZID"), #目标格式

                                    keytype="SYMBOL") #当前格式

    entrezid<-na.omit(entrezid)

    gse140082_Exp<-na.omit(p2g_eset[match(entrezid[,1],row.names(p2g_eset)),])

    gse140082_GID<-as.numeric(entrezid[match(row.names(gse140082_Exp),entrezid[,1]),2])

    gse140082_Label<-read.table("./gse140082_Label.txt",header=T,stringsAsFactors = F,sep = "\t")

    #####统一以月为单位的生存时间

    gse140082_Label[,5]<-gse140082_Label[,5]/30

    gse140082_Label[,7]<-gse140082_Label[,7]/30

    save(gse140082_Exp,gse140082_GID,gse140082_Label,file = 'geo_tcga_data/gse140082.RData')

    2.样本表达谱数据中有NA怎么处理

    参考此链接进行处理:https://www.jianshu.com/p/66d3966be42f


    相关文章

      网友评论

          本文标题:GEO数据处理详细代码及分析

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