GEO数据挖掘系列,第16篇学习笔记:使用R包tinyarray简化GEO芯片分析过程
tinyarray
是小洁老师写的R包,先前代码实操的8篇解读笔记中的代码,可简化成以下代码
0.准备工作
rm(list = ls())
options(timeout = 10000)#打破下载时间的限制
options(scipen = 20)#不要以科学计数法表述
library(tinyarray)
packageVersion("tinyarray")# 2.2.9和2.3.0两个版本有问题,建议更新到最新版本
library(stringr)
1.下载数据
该方法涵盖了GEOquery和AnnoProbe两种方法
gse = "GSE7305"
geo = geo_download(gse)
#如果是2019年后的数据,需要:
#geo = geo_download(gse,by_annopbrobe = F)
运行结果告诉了我们探针数量、样本数量、表达量的数值范围
图1
并且得到变量geo,点击查看发现exp、pd、gpl已经被整合好了
图2
2.exp、pd、Group、ids
#检查表达矩阵exp
exp = geo$exp
range(exp)
exp = log2(exp+1)#看情况决定是否运行
boxplot(exp,las = 2)
#得到临床信息pd
pd = geo$pd
#得到分组信息Group
k = str_detect(pd$title,"Normal");table(k)
Group = ifelse(k,"Normal","Disease")
Group = factor(Group,levels = c("Normal","Disease"))
#得到探针注释ids
find_anno(geo$gpl)
ids 'GPL570')
head(ids)
3.差异分析和它的可视化
dcp = get_deg_all(exp,Group,ids,entriz = F)#先不转换entrizID,先画图
table(dcp$deg$change)
head(dcp$deg)
dcp$plots