首页 > 代码库 > 使用GEOquery下载GEO数据--转载
使用GEOquery下载GEO数据--转载
最近需要下载一大批GEO上的数据,问题是我要下载的Methylation数据根本就没有sra文件,换言之不能使用Aspera之类的数据进行下载。但是后来我发现了GEOquery
这个不错的R包,不知道是网络问题还是怎么,GEOquery有时候运行也不太稳定,但是总体来说,很好地解决了我的问题。
首先假设我们想要下载的数据是GSE77445,这是一批DNA甲基化数据,我们可以在R语言中安装GEOquery之后,载入R包,然后直接输入:
Data <- getGEO("GSE77445",destdir="./")
- 1
我也没有太多研究,但是上述代码中,前一个参数就是你想要下载的GSE编号,后一个参数不能省略,是你指定的文件下载保存的路径。GEOquery其实也就是自动把文件下载下来,然后进行载入分析而已。
在命令输入之后,会自动开始下载一些Seriers数据(比如GSE77445_series_matrix.txt.gz),我也不知道为什么为什么它会自动下载这个文件。然后理论上程序会自动进行处理。整个过程非常漫长,估计要将近一个小时的样子,这还只是一个300M不到的小数据集。
然后如果顺利的话,你这一行命令可以顺利跑完,你会得到处理好的Data,但是这个数据还是一个S4结构体,并不是我们想要的矩阵研究形式。所以你可以用下面的代码获得相应的矩阵和样本数据:
myMatrix <- Data@GSE77445_series_matrix.txt.gz@assayData$exprs
myPDfile <- pData(phenoData(Data@GSE77445_series_matrix.txt.gz))
另外在一些时候,文件下载完以后,就会出现错误,但是在那种时候,文件其实已经被下载到了你指定的目录下了,如果是那样的话,你可以重新载入这个已经下载好的文件:
Data <- getGEO(filename="./GSE77445_series_matrix.txt.gz")
- 1
这一次就不需要加入目录参数,然后又需要过好久好久,程序一般就不会失败了,在处理完以后,用 下面两行代码获取矩阵数据和样本数据:
myMatrix <- Data@assayData$exprs
myPDfile <- pData(phenoData(Data))
- 1
- 2
经过我的测试,我用上述办法下载了十多套DNA甲基化数据,基本上还是很可靠的。但是有时候下载的series_matrix数据其实不能用,例如GSE77716这一套就不能用,这种就没有办法了,我唯一会的办法,就是从网站上去下载其他原格式数据,例如作者上传上去的Matrix或者Raw IDAT数据。
不过所谓不能用更多情况下是因为数据内不包含矩阵数据,一般来说都会包含有样本的数据,我下载的所有系列数据不一定都成功了,但是样本数据都有。如果你实在没有办法整理出起样本数据,这也不失为一个办法……
不得不吐槽一句,GEO我也是看的醉了……数据格式每一套都不一样,更要命的是有些数据下载下来都看不懂是什么鬼。有些提供了Raw IDAT文件的,又不提供Sample.csv文件,处理起来费时费力。
我是真的觉得学术界应该花点力气做一些整理规范工作……Biocondcutor就是这其中的翘楚案例。
另外我一直想下载一批较大的GEO数据:GSE87571,想要最原始的那一批6.1G大小的IDAT文件,但是一直都无法下载下来。有知道更好的办法的同学可以告诉我一下。
使用GEOquery下载GEO数据--转载