查看原文
其他

使用tinyarray包简化你的GEO分析流程!

阿越就是我 医学和生信笔记 2023-02-25

开工!

简介

做生信数据分析的小伙伴一定离不开TCGA和GEO这两个数据库,但是在下载以及整理的数据的过程中就会遇到很多麻烦,比如探针id的转换,各种id的转换,数据的过滤,基本的差异分析,PCA,聚类,批量生存分析等。

真正分析的代码也就那几句,但是整理数据的过程真的是太麻烦了!!

今天介绍的这个tinyarray包就可以帮助我们解决这些问题,大幅度简化你的数据清理过程!

这个包是生信技能树团队小洁老师写的R包哟,真的是太棒啦!!

下载安装

在线安装:

if(!require(devtools))install.packages("devtools")
if(!require(tinyarray))devtools::install_github("xjsun1221/tinyarray",upgrade = F)

下载zip包后本地安装:

devtools::install_local("tinyarray-master.zip",upgrade = F,dependencies = T)

简化GEO数据分析

简化GEO数据下载

library(tinyarray)

# 直接用GSE号即可,默认会通过曾老师的GEO中国镜像下载,超级快,不需要fq
gse <- geo_download("GSE38713")


载入需要的程辑包:AnnoProbe
AnnoProbe v 0.1.0  welcome to use AnnoProbe!
If you use AnnoProbe in published research, please acknowledgements:
We thank Dr.Jianming Zeng(University of Macau), and all the members of his bioinformatics team, biotrainee, for generously sharing their experience and codes.
54675 probes, 43 samples from 0.923767449 to 15.77695556

如果报错可添加by_annopbrobe = T从官方途径下载。

class(gse)
length(gse)

[1"list"
[13

下载来的gse是一个长度为3的列表,第1个就是表达矩阵,第2个是样本信息(pdata),第3个是GPL信息

exp <- gse$exp
exp[1:4,1:4# 标准的表达矩阵,行是基因,列是样本

        GSM948550 GSM948551 GSM948552 GSM948553
1007_s_at  9.735874  9.271060  9.885801  9.306324
1053_at    7.403046  7.751990  7.579300  5.986061
117_at     2.670557  2.677983  2.758533  2.720663
121_at     4.118984  4.211329  4.787708  4.141341
View(gse$pd)
gse$gpl

[1"GPL570"
group_list=c(rep('normal',13),rep('UC',30))
group_list <- factor(group_list,levels = c("normal","UC"))
table(group_list) 
## group_list
## normal     UC 
##     13     30

简化ID转换

简化GEO数据探针转换:

ids <- AnnoProbe::idmap('GPL570'# 配合AnnoProbe
## Setting options('download.file.method.GEOquery'='auto')
## Setting options('GEOquery.inmemory.gpl'=FALSE)
exp1 <- trans_array(exp, ids)

exp1[1:4,1:4]

41937 of 54675 rownames matched
20188 rownames transformed after duplicate rows removed
       GSM948550 GSM948551 GSM948552 GSM948553
RFC2    7.403046  7.751990  7.579300  5.986061
HSPA6   2.670557  2.677983  2.758533  2.720663
PAX8    4.118984  4.211329  4.787708  4.141341
GUCA1A  2.265967  2.257482  2.270735  2.287381

连带着把探针重复的问题也一起解决了,是不是非常方便呢!

简化差异分析

一句代码,完成差异分析,火山图,热图,PCA,简直不能更棒!

deg <- get_deg_all(
  exp = exp, # 表达矩阵(探针转换前的)
  group_list = group_list, # 分组信息
  ids = ids, # 探针和基因名的对应表
  logFC_cutoff = 1# logFC
  scale_before = F# 是否scale
  cluster_cols = T # 热图聚类
)

'select()' returned 1:many mapping between keys and columns
[1"313 down genes,410 up genes"

deg也是一个列表,第1个是差异分析结果,第2个是上下调基因,第3个是3张图。

head(deg[[1]])
image-20220204115124398
str(deg[[2]])

List of 1
 $ deg:List of 3
  ..$ up  :'data.frame'410 obs. of  2 variables:
  .. ..$ upgenes : chr [1:410"MANF" "PSME4" "ANKRD22" "SDF2L1" ...
  .. ..$ upprobes: chr [1:410"202655_at" "212219_at" "238439_at" "218681_s_at" ...
  ..$ down:'data.frame'313 obs. of  2 variables:
  .. ..$ downgenes : chr [1:313"TRPM6" "CDKN2B" "CDKN2B-AS1" "LRRN2" ...
  .. ..$ downprobes: chr [1:313"221102_s_at" "207530_s_at" "1559884_at" "205154_at" ...
  ..$ diff:'data.frame'723 obs. of  2 variables:
  .. ..$ diffgenes : chr [1:723"MANF" "PSME4" "ANKRD22" "SDF2L1" ...
  .. ..$ diffprobes: chr [1:723"202655_at" "212219_at" "238439_at" "218681_s_at" ...
deg[[3]]
image-20220204115152573

这个包的功能远不止此,还可以:简化TCGA数据的ID转换、多组的差异分析、批量生存分析、快速探索表达矩阵等。更多精彩,欢迎到作者的Github中学习!



以上就是今天的内容,希望对你有帮助哦!欢迎点赞、在看、关注、转发

欢迎在评论区留言或直接添加我的微信!


END



往期精彩内容:

R语言和医学统计学系列(11):球形检验


R语言和医学统计学系列(10):正态性和方差齐性检验


R语言和医学统计学系列(9):多重检验


R语言和医学统计学系列(6):重复测量方差分析


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存