批量下载NCBI数据的利器——Entrez Direct

今天给大家带来一款通过命令行对NCBI站点的数据库进行批量检索和下载,并为编程处理提供方便平台的强大工具Entrez Direct。其作者是来自NCBI的Jonathan Kans。

主要介绍下面三个常用命令:

esearch:对进行Entrez检索。

efilter:对esearch的检索结果进行过滤。

efetch:对上面两个操作的结果进行抓取(下载)。

废话少说,直接上示例。比如你想批量获取cyclin(细胞周期素)的fasta格式的蛋白序列,执行下面的操作就可以了:

esearch -db protein -query "cyclin" | efetch -format fasta

很简单吧?

不过这样一来会得到很多结果,有一些并非我们想要的,而且可能比较耗时(对整个NCBI Protein数据库进行检索绝不是一件轻松的事)。所以在实际操作中我们往往要对检索词加以进一步修饰,那么就要让检索的靶向性更明确。比如,可以限定只在题目(title)字段中出现cyclin的序列:

esearch -db protein -query "cyclin[title]" | efetch -format fasta

假如你只对拟南芥(Arabidopsis thaliana)中的cyclin感兴趣,那么只需要进一步限制物种:

esearch -db protein -query ‘cyclin[title] AND “Arabidopsis thaliana”[orgn]' | efetch -format fasta

当然也用Entrez Direct提供的efilter命令:

esearch -db protein -query "cyclin[title]" | efilter -query '"Arabidopsis thaliana"[orgn]' | efetch -format fasta

现在可以检验下结果(见下图)。果然,只有拟南芥的cyclin被钓出来了

如果你想进一步限制,只希望查找RefSeq数据库中包含的、长度在300aa以上的、来自拟南芥的cyclin的蛋白序列,并且以Genbank格式下载,只需运行下面的命令:

esearch -db protein -query "cyclin[title]" | efilter -query '"Arabidopsis thaliana"[orgn] AND 300:100000[slen]' -source 'refseq' | efetch -format gb

当然,如果你已经知道了ID,那就大可不必如此麻烦了,直接在查询中输入即可,方法是这样的:

esearch -db protein –query “NP_001331659[ACCN]” |efetch -format gb

千万不要因为前面的例子都是cyclin蛋白序列而误会Entrez Direct只可以用于序列的下载。实际上,文献、结构、基因、表达等诸多数据库都在Entrez Direct的掌控范围内。举个例子吧,执行下面的操作,你就可以对今年国内一共发表了哪些CNS论文有一个感性的认识:

esearch -db pubmed -query ‘China[affiliation] AND “Nature[journal] or Science[journal] or Cell[journal]”’ | efilter –maxdate 2017 –mindate 2017 | efetch -format abstract

Entrez Direct的功能还有很多,由于篇(我)幅(也)所(不)限(熟)就不在这里一一介绍了。有兴趣的读者可以浏览https://www.ncbi.nlm.nih.gov/books/NBK179288/。总之,不论是你需要编程根据ID下载大量序列,还是大规模搜索NCBI的数据库,Entrez Direct都将成为你的攻城利器。

功能强大的Entrez Direct安装却十分便捷,在任何一台装有Perl的Linux操作系统电脑上均可轻松完成,只须下载ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/Entrez Direct.tar.gz。

最后补充一点,如果需要批量下载,但又不想进行命令行操作,有没有其他方法呢?为此,NCBI提供了强大的Batch Entrez(https://www.ncbi.nlm.nih.gov/sites/batchentrez)。你只需选择合适数据库并上传一个包含有你想要的条目的ID 的list就可以了(见下图)。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180103B00W2500?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券