admin管理员组

文章数量:1437379

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"))
代码语言:javascript代码运行次数:0运行复制
#获取探针注释
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

多分组的数据,get_deg_all仍然可以帮你简化操作,目前是三分组就两两差异分析,四个或五个分组的数据是后面几个组与第一个组差异分析,暂不支持其他的做法和更多的分组。——小洁老师

代码语言:javascript代码运行次数:0运行复制
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_allget_deg以及quick_enrich函数时候,一定要注意使用species = "mouse"指定好对应的物种!

写在结尾

这次是真的有好好学习数据挖掘,不仅将之前的课程笔记进行了完善,还跑完了GEO-learn的代码,发现原来之前觉得很难的可视化的结果图,理清思路整理好数据后也可以很轻松的得到!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-26,如有侵权请联系 cloudcommunity@tencent 删除工作可视化数据芯片数据分析

本文标签: tinyarray简化多分组芯片数据分析