02

生信人必学ftp站点之NCBI-GEO

NCBI的重要性我就不多说了,Gene Expression Omnibus database (GEO)是由NCBI负责维护的一个数据库,设计初衷是为了收集整理各种表达芯片数据,但是后来也加入了甲基化芯片,lncRNA,miRNA,CNV芯片等各种芯片,甚至高通量测序数据!所有的数据均可以在ftp站点下载:ftp://ftp-trace.ncbi.nih.gov/geo/ Continue reading

28

6种方式下载ENCODE计划的所有数据

DNA元件百科全书(Encyclopedia of DNA Elements, ENCODE)ENCODE计划的重要性我就不多说了,如果大家还不是很了解,可以直接跳到本文末尾去下载一下ENCODE教程,好好学习。该计划采用以下几种高通量测序技术来刻画了超过100种不同的细胞系或者组织内的全基因组范围内的基因调控元件信息。本来只是针对人类的,后来对mouse以及fly等模式生物也开始测这些数据并进行分析了, 叫做 modENCODE
  • chromatin structure (5C)
  • open chromatin (DNase-seq and FAIRE-seq)
  • histone modifications and DNA-binding of over 100 transcription factors (ChIP-seq)
  • RNA transcription (RNAseq and CAGE)

Continue reading

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"

 

03

用R语言包从EBI的arrayexpress数据库里面下载芯片数据

这个包跟GEOquery区别不是很大,只不过一个是正对NCBI的GEO数据库,一个是针对EBI的arrayexpress数据库,只有对写自动化脚本的人来说才有需求,一般个人分析者都是自己去数据库主页里面查找,然后拿到下载链接,一个个下载。
从EBI的arrayexpress数据库里面下载芯片数据:
update to 2016-3-1 11:41:27
63890 experiments
1912744 assays
40.53 TB of archived data 数据量还是蛮大的
所有的data,都可以在ftp服务器里面下载:ftp://ftp.ebi.ac.uk/pub/databases/arrayexpress/data/experiment/BUGS/
根据ID号很整齐的储存着。
也可以用一个R语言包:ArrayExpress R package
2009年,那个时候R语言用的人很少,这个简单的包都可以发文章,现在看来简直不可思议!
其实大部分数据都是跟GEO数据库对应的:比如https://www.ebi.ac.uk/arrayexpress/experiments/E-GEOD-55645/  对应于:GEO - GSE55645
比如对NASH表达数据查找:https://www.ebi.ac.uk/arrayexpress/search.html?query=NASH++expression  30条结果里面只有4条是arrayexpress数据库独有的!
biocLite("ArrayExpress")
library(ArrayExpress)
1
如果用R语言,搜索如下:
可以用sets = queryAE(keywords = "NASH+expression", species = "homo+sapiens")
2
效果是一样的!
下载数据用:
back = getAE("E-MEXP-3291")
下载其实也就是里面存储了链接,直接调用R语言的下载函数即可!
3
一般没必要下载原始测序文件,直接用下面这个函数就可以得到一个数据对象,可以直接得到表达矩阵和实验的metadata

rawset = ArrayExpress("E-MEXP-3291")

29

使用GEOmetadb包来获取对应GEO数据的实验信息

理论上我前面提到的GEOquery包就可以根据一个GSE索引号来获取NCBI提供的所有关于这个GSE索引号的数据了,包括metadata,表达矩阵,soft文件,还有raw data

但是很多时候,那个metadata并不是很整齐,而且一个个下载太麻烦了,所以就需要用R的bioconductor的另一个神奇的包了GEOmetadb

它的示例:http://bioconductor.org/packages/devel/bioc/vignettes/GEOmetadb/inst/doc/GEOmetadb.R

里面还是很多数据库基础知识的
代码托管在github,它的示例代码是这样连接数据库的:
library(GEOmetadb)
if(!file.exists('GEOmetadb.sqlite')) getSQLiteFile()
file.info('GEOmetadb.sqlite')
con <- dbConnect(SQLite(),'GEOmetadb.sqlite')
dbDisconnect(con)
但是一般不会成功,因为这个包把它的GEOmetadb.sqlite文件放在了国外网盘共享,在国内很难访问,推荐大家想办法下载到本地
tmp2
用这个代码就会成功了,需要自己下载GEOmetadb.sqlite文件然后放在指定目录:/path/GEOmetadb.sqlite 需要自己修改
我们的diabetes.GEO.list文件内容如下:
GSE1009
GSE10785
GSE1133
GSE11975
GSE121
GSE12409
那么会产生的表格文件如下:共有32列数据信息,算是蛮全面的了
tmp