美文网首页生信
GEO芯片数据下载及清洗

GEO芯片数据下载及清洗

作者: PriscillaBai | 来源:发表于2019-07-12 08:53 被阅读212次
    1. 获得平台探针注释信息
    #source("https://bioconductor.org/biocLite.R")
    #biocLite("GEOquery")
    setwd("/Users/baiyunfan/desktop/GEO")
    library(GEOquery)
    GPL <- getGEO("GPL17843")
    probe<-GPL@dataTable@table
    

    这个probe矩阵里就有详细的探针信息啦~其中第15行是gene_symbol,接下来会用到


    1. 获取表达谱数据和表型矩阵
    expr.df <- read.table(file = "GSE84957_series_matrix.txt", header =TRUE, 
                          comment.char = "!", row.names=1)
    
    Data <- getGEO(filename="GSE84957_series_matrix.txt")
    pData <- pData(phenoData(Data))
    

    这里的expr.df是读取我们预先下载好的表达谱矩阵,而getGEO是直接在线读取数据,二者选取一种方法即可~

    1. 将探针和symbol对应上
    symbol<-sapply(1:dim(expr.df)[1],function(i){as.character(probe[which(probe[,1]==rownames(expr.df)[i]),15])})
    expr.df<-cbind(symbol,expr.df)
    
    1. 由于多个探针对应着一个基因,所以把相同的基因的表达谱数据取平均数

    更正:感谢@生信技能树@土豆学生信 的友情指导。经深入学习后发现,多个探针对应同一基因的情况可以取最大值,平均数和中位数,各有优缺点,用什么方法目前尚无定论。平均数是比较保守,本实验暂且用平均值来计算。

    uni<-as.character(unique(expr.df[,1]))
    uni<-uni[-2]
    test<-matrix(data=NA,ncol=19,nrow=1)
    test<-as.data.frame(test)
    colnames(test)<-colnames(expr.df)
    expr.df[,1]<-as.character(expr.df[,1])
    expr.df<-expr.df[-which(expr.df[,1]==""),]
    for(i in 1:length(uni)){if(length(which(expr.df[,1]==uni[i]))!=1){test<-rbind(test,c(uni[i],colMeans(expr.df[which(expr.df[,1]==uni[i]),-1])))}else{test<-rbind(test,expr.df[which(expr.df[,1]==uni[i]),])}}
    test<-test[-1,]
    

    就得到最终矩阵啦~

    最后安利一波生信技能树的B站良心课程,免费的,免费的,免费的,质量好,质量好,质量好。


    相关文章

      网友评论

        本文标题:GEO芯片数据下载及清洗

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