听说你的使用getGEO经常有网络问题?一行代码解决下载GEO表达谱和临床数据

获取更好阅读体验:听说你的使用getGEO经常有网络问题?一行代码解决下载GEO表达谱和临床数据

1. 前言

GEO是做生信经常使用到的数据库了,很多小伙伴不会下载,接过不少这样的单子,其实使用R语言的GEOquery包很容易实现。

但是,使用这个包下载经常会遇到网络问题,有时候总是需要尝试好几次才能下载成功,而且表达谱和临床数据还是要手动提取。

因此,本文就是为了解决这两个问题。

2. download_GEO 使用

小编编写了一个函数,名为 download_GEO,其很大程度上解决了网络问题,因为它可以自动请求30次下载,经过小编一两年的使用,30次是足够的,一般10次以内就会下载成功。

此外还自动保存了RData数据,包含了GPL、表达矩阵和样本注释数据,方便后续调用。还特意将样本注释表另外输出了csv格式,更加方便了我们查看数据集包含哪些样本注释信息,这个很有帮助!

download_GEO仅需提供一个(GSE号)或两个(再加上输出目录,可选)参数就可以自动化运行。

接下来试用一下:

GSE = "GSE9476"
out_dir = "00_GEO_data"

start_time = Sys.time()
download_GEO(GSE = GSE, out_dir = out_dir)
end_time = Sys.time()
end_time - start_time
# INFO [2024-09-09 23:19:25.291245] Querying dataset: GSE9476 ...
# 	Try time 1 ... succeed.
# GPL: GPL96 
# Found 64 samples, 51 metas
# writting sampleAnno to 00_GEO_data/GSE9476_sampleAnno.csv 
# Successed, file save to 00_GEO_data/GSE9476.RData.

# Time difference of 3.40759 secs


可以看出仅仅用了4秒不到的时间就完成了下载。还说明了这个数据集共有64个样本和51个注释信息。

看下输出目录:

cbind(dir(out_dir))
#      [,1]                          
# [1,] "GSE9476.RData"               
# [2,] "GSE9476_sampleAnno.csv"      
# [3,] "GSE9476_series_matrix.txt.gz"

包含了RData、样本注释表和原始数据。

其中RData的内容如下:

names(obj)
# [1] "GPL"        "resM"       "sampleAnno"

分别是GPL平台ID、表达谱和样本注释表。

3. 重复请求的原理

实现重复请求的原理其实很简单,首先要解决的就是报错的问题,R中有个try函数,它可以保存代码报错的结果,是的程序不会中断运行。

因此只要判断下载的那一部分代码是否成功运行就行了,如果不成功继续循环执行下载命令直至成功或者达到尝试次数上限。

4. 视频教学

具体的测试和函数代码,大家可以后台回复【download_GEO】即可获得。

此外,我还开始了B站的视频教学,希望更能帮助到大家。

本文的视频教学点击【阅读原文】即可访问。或复制BV号【BV1V5pEedEge】到B站APP即可观看。

在这里插入图片描述

欢迎评论区沟通交流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值