GEO2R数据下载速度慢、基因注释、差异分析、火山图、热图及后续处理
GEO2R数据分析
首先感谢生信技能树大神jmzeng1314提供的github包,由于我这边访问github比较困难,因此我已经导入到我的 gitee 托管平台 https://gitee.com/swcyo,
特别声明:正版托管地址是https://github.com/jmzeng1314
由于GEO官网下载网址的服务器均位于美国,在国内访问下载麻烦,因此,国内大神jmzeng1314开发了“GEOmirror和AnnoProbe两个神包,二者结合起来可迅速下载GEO数据,并且可以直接注释基因。极力推荐
-需要的包为GEOquery
、GEOmirror和
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富集分析速速的
GEO2R数据下载速度慢、基因注释、差异分析、火山图、热图及后续处理相关推荐
- ML之kmeans:通过数据预处理(分布图箱线图热图/文本转数字/构造特征/编码/PCA)利用kmeans实现汽车产品聚类分析(SSE-平均轮廓系数图/聚类三维图/雷达图/饼图柱形图)/竞品分析之详细
ML之kmeans:通过数据预处理(分布图箱线图热图/文本转数字/构造特征/编码/PCA)利用kmeans实现汽车产品聚类分析(SSE-平均轮廓系数图/聚类三维图/雷达图/饼图柱形图)/竞品分析之详细 ...
- seaborn线性关系数据可视化:时间线图|热图|结构化图表可视化
一.线性关系数据可视化lmplot( ) 表示对所统计的数据做散点图,并拟合一个一元线性回归关系. lmplot(x, y, data, hue=None, col=None, row=None, p ...
- Python生物信息学⑥绘制热图及火山图
Python生物信息学⑥绘制热图及火山图 Python生物信息学③提取差异基因 通过上Python生物信息学③提取差异基因得到了该数据集的差异分析的两个关键参数,1.差异倍数(foldchange)以 ...
- RNA-seq结果图片如何解读(火山图、韦恩图、聚类热图和折线图)
在RNA-seq项目中,常见的结果包括:火山图.韦恩图.聚类热图.log2(ratios)折线图.有向无环图.散点图.代谢通路图.蛋白互作图等.今天我们先来一起学习火山图.韦恩图.聚类热图和折线图的解 ...
- 怎么让热图显示基因名_OmicShare Tools - 基迪奥生物信息绘图云平台
Q1.上传的数据需要保存成什么格式?文件名称和拓展名有没有要求? OmicShare要求上传的数据必须是"制表符分隔的文本文件",文件名可由由英文和数字构成,文件拓展名必须是&qu ...
- geo数据差异分析_答疑呀嘿丨如何对GEO数据库的数据进行差异表达基因分析?
又是一周答疑时间到! 感谢本周答疑老师-上海其明的杨老师,侯老师和张老师! 本周又有一些小伙伴提出了他们的问题,有一些真的对大家比较有参考意义,注意认真阅读哦~ Q1-生信分析 问:想对GEO数据库的 ...
- RNA-seq(2):下载参考基因组及基因注释,及测序数据-学习笔记
今天学习了如题的一些操作.但是并不算成功.本来打算做到quality control,结果大部分时间卡在了下载测序数据上. 参考网站: 下载参考基因组及基因注释) 1.安装ASPERA 1)wget ...
- 运用limma对基因进行差异分析
此次案例我们是要比较ARID1A这个基因突变与不突变两亚类肝癌病人哪些基因的表达存在差异(寻找差异基因). 在之前的三篇TCGA的数据采集文章中,我们已经采集到了所需要的所有数据,具体见下: 那么接下 ...
- 利用TCGA癌症基因进行差异分析
TCGA癌症基因差异分析步骤 文章目录 TCGA癌症基因差异分析步骤 1. 数据库下载 2. 将分散的文件转化为矩阵 3. 将矩阵id转化为基因名 4. 进行差异表达分析 1. 数据库下载 进入TCG ...
最新文章
- R语言distVincentyEllipsoid函数计算大圆距离实战(Great Circle Distance)
- 客户信贷评级 Python 实战
- 解禁策略组、注册表、各种应用程序、控制面板、运行、USB
- js 手机号加密 中间星号表示
- 三星note4安装linux,Leanote Ubuntu 源码安装
- eigen3.3.8帮助文档下载 chm_MAXHUB文档v1.10.1-MAXHUB文档电脑版下载
- lamp环境搭建经验总结
- 程序员终结者还是“白嫖”开源代码?GitHub推出的AI编程辅助工具陷入争议
- easyui框架中关于dialog自带关闭事件的使用
- 实习成长之路——设计模式三:组合与继承有啥关系?为什么说多用组合少用继承?如何选择使用哪种方式?
- 伍德里奇计量经济学导论第5版笔记和课后答案
- CentOS7--安装谷歌浏览器--详细步骤
- GitLab之docker注册Runner
- C/C++ 常用程序库
- 两栏 论文首页 插尾注方法 word2019
- 如何安装配置JDK(保姆级完美解决教程+附百度网盘链接)
- 违反唯一约束条件oracle,oracle imp遇到违反唯一约束条件 (GZW.SYS_C006112)
- 与同事协作一起维护发布同一个npm包,报错You do not have permission to publish
- ORA-3136错误分析——WARNING Inbound Connection Timed Out
- 使用Fairseq微调预训练模型
热门文章
- WEEE电子产品回收注册
- 实际已经定义却出现 error: #20: identifier xxx is undefined 的错误
- 速卖通上线无忧集运计划-中东集运卖家考核方案
- php select sum字段求和,PostgreSQL sum()函数
- 基于Canvas的N宫格拼图
- pandas组队学习 task10-时间序列
- 歌礼公布口服双前药ASC10及其抗病毒核苷类似物ASC10-A抑制奥密克戎变异株的积极数据 | 医药健闻...
- Python 爬取 394452 条《都挺好》弹幕数据,发现弹幕比剧还精彩?
- 天翼云服务器迁移阿里云_云迁移清单:要重点关注的3个关键领域
- [阿里实习]阿里云EMAS团队小程序云Serverless实习工作总结