GEO2R数据下载速度慢、基因注释、差异分析、火山图、热图及后续处理

GEO2R数据分析

首先感谢生信技能树大神jmzeng1314提供的github包,由于我这边访问github比较困难,因此我已经导入到我的 gitee 托管平台 https://gitee.com/swcyo,
特别声明:正版托管地址是https://github.com/jmzeng1314
由于GEO官网下载网址的服务器均位于美国,在国内访问下载麻烦,因此,国内大神jmzeng1314开发了“GEOmirror和AnnoProbe两个神包,二者结合起来可迅速下载GEO数据,并且可以直接注释基因。极力推荐
-需要的包为GEOqueryGEOmirror和AnnoProbe`

#安装bioconductor包GEOquery
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("GEOquery")
#安装github包GEOmirror和AnnoProbe
remotes::install_github("jmzeng1314/GEOmirror")
remotes::install_github("jmzeng1314/AnnoProbe")
#三个包同时加载
library(AnnoProbe)
library(GEOmirror)
library(GEOquery) 

操作演示,如GSE42872的下载,矩阵、信息获得、并基因注释
还可以导入以及下载好的数据
在这里插入图片描述

#下载获取GSE13507数据 
gset=AnnoProbe::geoChina('GSE13507')
gset

检查表达式集

eSet=gset[[1]] # 提取表达矩阵 
probes_expr <- exprs(eSet)
dim(probes_expr) 
probes_expr=log2(probes_expr+1) #表达矩阵行log2+1归一化处理 
# 提取表型数据信息 
phenoDat <- pData(eSet) 

得到的表达矩阵并不是symbol,因此需要芯片注释,也就是ID转换,平台注释是在线加载的,但也仅需数秒即可完成


# 对表达芯片的探针进行基因注释

 (gpl=eSet@annotation) 
checkGPL(gpl) 
printGPLInfo(gpl)
 probe2gene=idmap(gpl) 
genes_expr <- filterEM(probes_expr,probe2gene )

以为到这就结束了吗?并不是,还可以继续

limma的经典2组差异分析走一下

## define the group
group_list=factor(c(rep('Normal',68),rep('Cancer',188))) #自己定义分组和数量
##按title自定义,如包含‘bladder’定义为‘cancer’
library(stringr)
group_list=ifelse(str_detect(phenoDat$title,"bladder"),"cancer","normal")
#设置参考水平,对照在前,处理在后
group_list = factor(group_list,
                    levels = c("normal","cancer"))

table(group_list)
library(limma)
design=model.matrix(~factor(group_list))
design
fit=lmFit(genes_expr,design)
fit=eBayes(fit)
DEG=topTable(fit,coef=2,n=Inf)
head(DEG)

对差异分析结果进行一些检验

need_deg=data.frame(symbols=rownames(DEG), logFC=DEG$logFC, p=DEG$P.Value)

火山图走一下,由于没有明显差异,因此没有上下调

deg_volcano(need_deg,1) #第一种图
deg_volcano(need_deg,1,logFC_thred = 0) #设置logFC范围
deg_volcano(need_deg,2) # 第二种图

热图走一下

deg_heatmap(DEG,genes_expr,group_list)
deg_heatmap(DEG,genes_expr,group_list,5) #显示前5对,数字可以自己定义

boxplot也来一下,一看就是基于ggpurb,当然可以自己后续DIY,加显著性标记

check_diff_genes('RAC3',genes_expr,group_list)
check_diff_genes('RAC3',genes_expr,group_list)+stat_compare_means(method = "t.test") #加个P值,手到擒来

有了差异基因和logFC值,结合前面Y叔的神包,GO和KEGG富集分析速速的

  • 10
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮肤小白生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值