admin管理员组

文章数量:1437372

tinyarray简化GSE75421芯片分析流程

写在开头

在推文GSE75421芯片数据分析-1中,是使用之前的分析流程,一步步的实现芯片数据的下载以及差异富集分析流程

贴心的小洁老师专门写了一个R包——tinyarray用于芯片数据和TCGA转录组数据分析

tinyarray 包简介及使用说明——kimi介绍版

1. 简介

tinyarray 是一个用于简化基因表达数据(如 GEO 和 TCGA 数据库)分析的 R 包。它提供了一系列功能,包括数据下载、差异分析、富集分析、生存分析以及可视化等。该包特别适合处理基因表达矩阵、探针注释和临床信息等任务。

2. 安装方法

在线安装

代码语言:javascript代码运行次数:0运行复制
if (!require(tinyarray)) install.packages("tinyarray")
if (!require(devtools)) install.packages("devtools")
devtools::install_github("xjsun1221/tinyarray", upgrade = FALSE, dependencies = TRUE)

本地安装: 从 GitHub 页面下载 ZIP 文件,然后使用以下命令安装:

代码语言:javascript代码运行次数:0运行复制
devtools::install_local("tinyarray-master.zip", upgrade = FALSE, dependencies = TRUE)
3. 主要功能

以下是 tinyarray 包的主要功能模块:

3.1 数据可视化
  • draw_heatmap():绘制热图。
  • draw_volcano():绘制火山图。
  • draw_venn():绘制维恩图。
  • draw_boxplot():绘制箱线图。
3.2 GEO 数据分析
  • geo_download():通过 GEO 编号下载表达矩阵、临床信息表和平台编号。
  • find_anno():查找芯片平台的注释。
  • get_deg():提供表达矩阵、分组信息和探针注释,返回差异分析结果。
  • quick_enrich():进行简单的富集分析。
3.3 TCGA 数据分析
  • make_tcga_group():根据 TCGA 样本命名规则快速分组。
  • trans_array():替换矩阵的行名,例如将探针名替换为基因名。
  • trans_exp_new():将 TCGA 或 TCGA+GTeX 数据转换为基因 ID。
3.4 生存分析
  • surv_KM():批量进行 KM 生存分析。
  • surv_cox():批量进行单因素 Cox 分析。
  • risk_plot():绘制风险因素三联图。
3.5 网络图相关
  • interaction_to_edges():根据关系表生成网络图的连接表。
  • edges_to_nodes():根据连接表生成节点表。

GEO芯片数据分析实例

还是用到的GSE75421的数据集,照例选择normal和tumor分组进行分析,来看看使用tinayarry能有多简便!

代码语言:javascript代码运行次数:0运行复制
#下载数据
library(tinyarray)
library(stringr)
geo = geo_download("GSE75421")
exp = geo$exp
range(exp)
#exp = log2(exp+1)
boxplot(exp,las = 2)
pd = geo$pd
gpl_number = geo$gpl

使用geo_download函数下载的数据,直接整理提取了需要的信息——exp、pd以及gpl,需要使用到对应内容的时候,按需提取即可

代码语言:javascript代码运行次数:0运行复制
# 分组信息
if(T){
  k1 = str_detect(pd$title,"normal");table(k1)
  k2 = str_detect(pd$title,"tumor");table(k2)
  pd = pd[k1|k2,]
}

p = identical(rownames(pd),colnames(exp));p
if(!p) {
  s = intersect(rownames(pd),colnames(exp))
  exp = exp[,s]
  pd = pd[s,]
}

#整理分组信息
k = str_detect(pd$title,"normal");table(k)
Group = ifelse(k,"normal","tumor")
Group = factor(Group,levels = c("normal","tumor"))

分组信息的整理和之前的类似,还是提取的其中normal和tumor的数据,并且匹配到对应的芯片数据集

代码语言:javascript代码运行次数:0运行复制
# 探针注释,读取需要的注释文件,还是下载的注释文件

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")

到差异分析这一步,就上神奇函数啦!一个get_deg_all就可以搞定,根据提供表达矩阵、分组信息和探针注释,返回差异分析结果。并且还是拼图展示的哦,颜色也进行了美化,这么贴心的小洁老师谁能不爱!

代码语言:javascript代码运行次数:0运行复制
#差异分析和它的可视化
dcp = get_deg_all(exp,Group,ids,entriz = F)
table(dcp$deg$change)
head(dcp$deg)
dcp$plots
library(ggplot2)
ggsave("deg.png",width = 15,height = 5)

富集分析

这里还是要注意因为是小鼠的数据集,所以对应的物种要写明白,默认是human

  • get_deg():提供表达矩阵、分组信息和探针注释,返回差异分析结果。
  • quick_enrich():进行简单的富集分析。
代码语言:javascript代码运行次数:0运行复制
#富集分析
deg = get_deg(exp,Group,ids,species = "mouse")
genes = deg$ENTREZID[deg$change!="stable"]
head(genes)
#有可能因为网络问题报错
g = quick_enrich(genes,destdir = tempdir(),species = "mouse")
names(g)
g[[1]][1:4,1:4]
library(patchwork)
g[[3]]+g[[4]]
ggsave("enrich.png",width = 12,height = 7)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-26,如有侵权请联系 cloudcommunity@tencent 删除数据分析函数可视化数据芯片

本文标签: tinyarray简化GSE75421芯片分析流程