【3.5】 一级核酸数据库-GEO(基因表达数据库)

基因表达数据库(GEO,Gene Expression Omnibus database,https://www.ncbi.nlm.nih.gov/geo/ )是由NCBI负责维护的一个数据库,设计初衷是为了收集整理各种表达芯片数据,但是后来也加入了甲基化芯片,lncRNA,miRNA,CNV芯片等各种芯片,甚至高通量测序数据,是目前最大、最全面的公共基因表达数据资源。所有的数据均可以在ftp站点下载:ftp://ftp-trace.ncbi.nih.gov/geo/

首先,我们在GEO的主页( https://www.ncbi.nlm.nih.gov/geo/ )可以看到:

Browse Content
Repository Browser
DataSets: 4348
Series: 87717
Platforms: 17572
Samples: 2165066

截止到2017年8月17日,统计信息如上,可以看到数据量已经很恐怖了。

**一、GEO数据库基础知识 **

GEO Dataset (GDS) 数据集的ID号
GEO Series (GSE) study的ID号
GEO Platform (GPL) 芯片平台
GEO Sample (GSM) 样本ID号

这些数据都可以在ftp里面直接下载。

二、数据上传

上传的方式:

  1. 网页
  2. Excel表格
  3. 软件
  4. MINiML格式上传

详细上传方法,参见:https://www.ncbi.nlm.nih.gov/geo/info/submission.html

提交Affymetrix芯片数据到GEO数据库 http://www.biotrainee.com/thread-810-1-1.html

三、数据挖掘

  1. Entrez GEO-DataSets

官网: http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gds

收录整个实验数据,可以通过技术类型,作者,物种和实验变量等信息来进行搜索。一旦相关数据被查询到,可以通过提供上面的小工具做一些分析,比如:热电图分析,表达分析,亚群的影响等

2.Entrez GEO-Profiles

官网:https://www.ncbi.nlm.nih.gov/geoprofiles/

收录单个基因的表达谱数据。可以通过基因名字,GenBank编号,SAGE标签,GEO编号等来进行搜索

3.GEO BLAST

GEO Blast界面容许用户根据核酸序列的相似性来搜索相关的GEO-Profiles 所有的BLAST结果中“E”的标签代表这个数据跟GEO-Profiles表达数据相关。

  1. 数据下载

我们一般是拿到了GSE的study ID号,然后直接把什么的url修改一下,就可以看到关于该study的所以描述信息,是用的什么测序平台(芯片数据,或者高通量测序),测了多少个样本,来自于哪篇文章! 所有需要的数据均可以下载,而且都是在上面的ftp里面可以根据规律去找到的,甚至可以自己拼接下载的url链接,来做批量化处理!

例如:用GSE75528,则在https://www.ncbi.nlm.nih.gov/geo/ 官网上直接搜索GSE75528 或直接输入 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE75528 修改这个url最末尾的GSE号码就可以进入自己想去的任何研究的GEO页面。

如果是芯片数据,那么就需要自己仔细看GPL平台里面关于每个探针对应的注释信息,才能利用好别人的数据。 如果是高通量测序数据,一般要同步进入该GSE对应的SRA里面去下载sra数据,然后转为fastq格式数据,自己做处理!

四、其他

  1. 联系方式

上传数据或查询数据有问题,可以联系 geo@ncbi.nlm.nih.gov

  1. 写一个Python脚本下载GEO数据

脚本逻辑很简单:

  1. 根据GEO accession找到FTP地址
  2. 用wget循环下载FTP地址下的数据
#!/bin/python3
import refrom urllib.request
import urlopen
import os
def main(geo):
# find the FTP address from [url=https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GEO]https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GEO[/url]
   response = urlopen("https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc={}".format(geo))
    pattern = re.compile("<a href=\"(.*?)\">\(ftp\)</a>")
    # use wget from shell to download SRA data
   ftp_address = re.search(pattern,response.read().decode('utf-8')).group(1)
    os.system(' wget -nd -r 1 -A *.sra ' + ftp_address)

if __name__ == '__main__':
    from sys import argv
    main(argv[1])
  1. 数据分析

5行代码搞定GEO学习总结版:http://www.biotrainee.com/thread-612-1-1.html

参考资料:

http://www.bio-info-trainee.com/1835.html

https://www.ncbi.nlm.nih.gov/geo/info/GEOHandoutFinal.pdf

个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn

Sam avatar
About Sam
专注生物信息 专注转化医学