tinyarray简化多分组芯片数据分析
写在开头
前两天尝试了从头开始分析GSE75421芯片数据集——GSE75421芯片数据分析-1,也基于tinyarray简化GSE75421芯片分析流程,用几行代码就完成了分析,并且得到了好看的图
那既然准备工作都做的差不多了,这次就来看看使用GSE75421全部12个数据进行多分组芯片数据分析叭!
这里还是使用tinyarray简化多分组芯片数据分析,让我们一起看看多分组数据如何进行分析叭!
下载数据并获取需要的信息
代码语言:javascript代码运行次数:0运行复制#加载需要的R包
library(tinyarray)
packageVersion("tinyarray")
library(stringr)
#根据数据集编号使用geo_download下载数据
geo = geo_download("GSE75421")
#分别提取整理需要的数据
exp = geo$exp
#判断数据范围查看是否需要取log,不需要的话就注释掉取log的操作
range(exp)
#exp = log2(exp+1)
#箱线图查看
boxplot(exp,las = 2)
pd = geo$pd
gpl_number = geo$gpl
分组信息在pd的title列,所以从中提取需要的关键词整理为对应的分组即可
分组向量与探针注释整理
代码语言:javascript代码运行次数:0运行复制#整理分组信息且设置因子排序
Group=str_split(pd$title," ",simplify = T)[,1]
Group=factor(Group,levels = c("normal","hyperplasia","dysplasia","tumor"))
#获取探针注释
gpl_number
find_anno(gpl_number)
get_gpl_txt(gpl_number,download = T)
a = read.delim("GPL18802.txt",skip = 8,comment.char = "!")
colnames(a)
ids = a[,1:2]
#如果有空行怎么去掉
k = ids$GeneSymbol!=""
ids = ids[k,]
colnames(ids)=c("probe_id","symbol")
head(ids)
使用find_anno
没有找到对应的探针注释,所以还是使用get_gpl_txt
下载到本地之后读取进来,提取需要的列
差异分析——tinyarray
代码语言:javascript代码运行次数:0运行复制多分组的数据,get_deg_all仍然可以帮你简化操作,目前是三分组就两两差异分析,四个或五个分组的数据是后面几个组与第一个组差异分析,暂不支持其他的做法和更多的分组。——小洁老师
dcp = get_deg_all(exp,Group,ids,logFC_cutoff = 0.585,entriz = F,species = "mouse")
dcp$plots
ggplot2::ggsave("deg_all.png",width = 15,height = 10)
GSE75421数据为四分组数据,使用get_deg_all
分析会使用后三个组一次和normal组进行比较
结果会dcp数据会保存差异基因,以及需要的结果图表,可以提取plots结果进行展示
数据集质量以及分组情况可以基于结果图自行判断
富集分析
代码语言:javascript代码运行次数:0运行复制富集分析的输入数据是差异基因名字,只要你提供一组基因名就能做,要分别做三次还是取交集或合集一起做都可以,没有标准答案。——小洁老师
deg = get_deg(exp,Group,ids,logFC_cutoff = 0.585,species = "mouse")
g1 = deg[[1]]$ENTREZID[deg[[1]]$change!="stable"]
g2 = deg[[2]]$ENTREZID[deg[[2]]$change!="stable"]
g3 = deg[[3]]$ENTREZID[deg[[3]]$change!="stable"]
#T交集,F合集
if(F){
genes = tinyarray::intersect_all(g1,g2,g3)
}else{
genes = tinyarray::union_all(g1,g2,g3)
}
head(genes)
#有可能因为网络问题报错
g = quick_enrich(genes,destdir = tempdir(),species = "mouse")
names(g)
g[[1]][1:4,1:4]
library(patchwork)
g[[3]]+g[[4]]
ggplot2::ggsave("enrich_all.png",width = 12,height = 7)
这里使用的是差异基因的合集进行的富集分析展示,结果如图
需要注意的点是:一定要注意物种,在get_deg_all
、get_deg
以及quick_enrich
函数时候,一定要注意使用species = "mouse"
指定好对应的物种!
写在结尾
这次是真的有好好学习数据挖掘,不仅将之前的课程笔记进行了完善,还跑完了GEO-learn的代码,发现原来之前觉得很难的可视化的结果图,理清思路整理好数据后也可以很轻松的得到!