美文网首页生物信息学
Q:ArrayExpress包常用函数及分析?

Q:ArrayExpress包常用函数及分析?

作者: 高大石头 | 来源:发表于2021-04-12 15:07 被阅读0次

    GEO数据库对应的R包是GEOquery,强大的ArrayExpress数据库也有对应的R包——ArrayExpress
    可以通过其访问ArrayExpress数据库,并构建ExpressonSet、AffyBatch和NChannelSet数据结构。

    核心函数:

    • getAE(accession, type="full")

    • ae2bioc(rawset)

    对于处理过的数据:
    cnames <- getcolproc(mexp1422)
    mexp1422proc <- procset(mexp1422,cnames[2])

    1.数据下载

    rm(list = ls())
    library(ArrayExpress)
    library(affy)
    acs="E-MEXP-1422"
    mexp1422 <- getAE(acs,type = "full", local =T ) 
    #type = "raw" 下载raw data
    #type = "processed" 下载processed data
    #type = "full" 两者都下载
    # local = T 当前目录下有,不用再次下载
    
    mexp1422raw <- ae2bioc(mexp1422) #从raw data构建ExpressionSet对象
    
    ## Reading in : E:/panCancer/27-GIlnc/AF15.CEL
    ## Reading in : E:/panCancer/27-GIlnc/AF16.CEL
    ## Reading in : E:/panCancer/27-GIlnc/AF6.CEL
    ## Reading in : E:/panCancer/27-GIlnc/AF14.CEL
    ## Reading in : E:/panCancer/27-GIlnc/AF7.CEL
    ## Reading in : E:/panCancer/27-GIlnc/AF8.CEL
    
    cnames <- getcolproc(mexp1422)
    mexp1422proc <- procset(mexp1422,cnames[2]) #从processed data构建ExpressionSet对象
    
    ## Reading processed data matrix file,  E:/panCancer/27-GIlnc/expression_and_calls.txt.magetab
    

    2.数据预处理

    mexp1422norm <- rma(mexp1422raw) #背景校正归一化
    
    ## Background correcting
    ## Normalizing
    ## Calculating Expression
    
    boxplot(mexp1422norm)
    
    image.png

    可以看出校正后效果挺好

    mexp1422norm1 <- exprs(mexp1422proc)
    boxplot(mexp1422norm1) #可以看出processed data是归一化过的数据
    
    image.png

    3.差异分析

    pd <- pData(mexp1422raw)
    pd <- pd %>% 
      select("Factor.Value..RNAi.")
    colnames(pd) <- "group"
    pd$group <- case_when(pd$group=="GFP siRNA"~"ctrl",
                          pd$group=="PROX1 siRNA #1"~"siRNA1",
                          pd$group=="PROX1 siRNA #2"~"siRNA2")
    group_list <- factor(pd$group,levels = c("ctrl","siRNA1","siRNA2"))
    names(group_list) <- rownames(group_list)
    design <- model.matrix(~0+group_list)
    colnames(design) <- levels(group_list)
    library(limma)
    cont.matrix <- makeContrasts(si1.normal="siRNA1-ctrl",
                                 si2.normal="siRNA2-ctrl",
                                 si2.si1="siRNA2-siRNA1",
                                 levels = design)
    fit <- lmFit(mexp1422norm,design)
    fit2 <- contrasts.fit(fit,cont.matrix)
    fit2 <- eBayes(fit2)
    deg <- topTable(fit2,adjust.method = "BH",sort.by = "F",n=Inf) %>% 
      rownames_to_column("probe_id")
    
    # 探针注释
    library(AnnoProbe)
    probe2id <- idmap("GPL570")
    
    volcanoInput <- probe2id %>% 
      inner_join(deg,by = "probe_id") %>% 
      select(-probe_id)
    

    4. 火山图

    volcanoInput$type <- case_when(volcanoInput$adj.P.Val<0.05&volcanoInput$si2.normal>1 ~ "up",
                                   volcanoInput$adj.P.Val<0.05&volcanoInput$si2.normal< -1 ~ "down",
                                   T~"stable")
    ggplot(volcanoInput,aes(x=si2.normal,y=-log10(adj.P.Val),color=type))+
      geom_point(alpha=0.4,size=3.5)+
      scale_color_manual(values=c("#546de5", "#d2dae2","#ff4757"))+
      geom_vline(xintercept=c(-1,1),lty=4,col="black",lwd=0.8) +
      geom_hline(yintercept = -log10(0.05),lty=4,col="black",lwd=0.8) +
      labs(x="log2(fold change)",
           y="-log10 (p-value)")+
      theme_bw()+
      theme(plot.title = element_text(hjust = 0.5), 
            legend.position="right", 
            legend.title = element_blank())
    
    image.png

    参考链接:

    ArrayExpress

    R语言limma包差异基因分析(两组或两组以上)

    R绘图:ggplot2绘制火山图

    相关文章

      网友评论

        本文标题:Q:ArrayExpress包常用函数及分析?

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