14

没有必要用R包GEOquery

以前我写过如何使用GEOquery和GEOmetadb, 它们的确很强大,也很好用,做芯片数据pipeline的时候可以省很多力,但最近很多朋友都反应它联网有问题,经常无法下载数据!

为了解决这个问题,我仔细又研究了一下GEO数据库,其实官网本身就提供了WEB API接口,直接根据需求定制化下载数据!

我们使用GEO数据,无非就是想根据study ID号(比如:GSE1009)得到它的raw CEL文件,或者表达矩阵,或者样本分组信息!!!

如果用R包GEOquery来完成这个目的,请参考我的说明书

其实raw CEL文件,直接自己拼接url即可

ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE1nnn/GSE1009/matrix/GSE1009_series_matrix.txt.gz

##表达矩阵,需要用在R里面read,skip掉注释信息,tab键分割

ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE1nnn/GSE1009/suppl/GSE1009_RAW.tar

##芯片原始数据,用affy包来读取

http://www.ncbi.nlm.nih.gov/geo/browse/?view=samples&series=1009&mode=csv  

###样本分组信息

根据任意study ID号,非常容易就可以拼接出这些url,完全hold住GEOquery这个包的所有功能!

如果该研究涉及到的样本较多,你还可以根据下面的文件列表来有选择性的抓取样本!

ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE1nnn/GSE1009/suppl/filelist.txt

你要明白的就是浏览器的get请求而已,把下面的字符串组合成一个完整的URL即可

view=series&   ## 四种,
zsort=date&
mode=csv&    ##很重要,可以直接下载csv文件
page=$i&
display=5000    ##很重要
查看总数:curl --silent "http://www.ncbi.nlm.nih.gov/geo/browse/" | grep "total_count"