使用REST API批量下载ENCODE数据

  • A+
所属分类:Epigenetics

本篇主要内容

本篇主要介绍两种方法,搜索并批量下载ENCODE数据。

方法一:在页面中搜索并获取下载地址

  1. 进入ENCODE portal主页:https://www.encodeproject.org/。
    使用REST API批量下载ENCODE数据
  2. 点击matrix,在搜索框搜索。比如“ctcf chip-seq k562” 。同时可以点击页面左方导航栏进行过滤。
    使用REST API批量下载ENCODE数据
  3. 点击切换到列表模式。
    使用REST API批量下载ENCODE数据

使用REST API批量下载ENCODE数据

4.  点击页面中的Download,下载一个名为files.txt的文件。这个文件的第一行是页面中所有文件的metadata。从第二行开始就是下载链接了。使用wget或者curl可以直接下载。

使用REST API批量下载ENCODE数据

使用REST API批量下载ENCODE数据

方法二:写代码搜索后批量下载

可以发现方法一中的files.txt的URL有相同的模式(BASE_URL + QUERY)。

BASE_URL= 'https://www.encodeproject.org'

QUERY = '/files/[accession number]/@@download/[accession number].[format]'

那么对于一个Experiment,我们如何获取所有原始文件和结果文件(fastq,bam,bed等)的下载地址(QUERY)呢?

举例来说,我们点击方法一中搜索得到第一个实验(Experiment),accession number为ENCSR000BNK,可以通过在URL后面加上?format=json查看这个实验的所有metadata(JSON格式),页面地址为
https://www.encodeproject.org/experiments/ENCSR000BNK/?format=json

我们需要的下载链接(QUERY),就是其中的一个名为href的metadata。
使用REST API批量下载ENCODE数据

写代码搜索下载的实质就是通过RESTful API同ENCODE的metadata数据库交互,取得我们需要的metadata(以JSON的格式),然后获取文件下载地址“href”。

直接上代码,使用上述的ENCSR000BNK为例:

这样文件就下载到本地了。

参考信息:

ENCODE REST API:https://www.encodeproject.org/help/rest-api/

ENCODE DCC github:https://github.com/ENCODE-DCC

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: