vesperlight的个人博客分享 http://blog.sciencenet.cn/u/vesperlight

博文

使用Aspera批量下载GeneBank和EMBL数据库数据

已有 6165 次阅读 2021-1-21 21:13 |个人分类:linux|系统分类:科研笔记

    如果想下载GeneBank和EMBL的数据有很多种方法,对于小量的数据我们可以用ftp下载工具或wget等工具直接下载,对于大的数据为了保证数据下载的速度和稳定性,建议最好使用Aspera进行下载。Aspera成立于2004年,2013年被IBM收购。Aspera软件对于大数据的传递有很好的支持,在包括生命科学领域内的数据传输有很广的市场。


1、Aspera的安装和配置

因为数据分析在服务器上,所以这里介绍的是linux下的aspera connect的安装和配置。 

(1)登录https://www.ibm.com/products/aspera,先注册一个ibm账号(需要邮箱验证),然后登录。

(2)进入https://www.ibm.com/aspera/connect/,选择点击”请参阅所有安装程序“而不是下载,因为点击上面的下载按钮会默认下载你当前操作系统的版本。

image.png

选择你要的程序版本,我的是linux系统,所以选第三个。

image.png

(3)安装

将tar.gz压缩的aspera connect上传到服务器,在终端中输入tar -xzvf ibm-aspera-connect-3.11.0.5-linux-g2.12-64.sh.tar.gz解压。解压后是一个sh脚本,运行./ibm-aspera-connect-3.11.0.5-linux-g2.12-64.sh即可完成安装。安装好的程序位于~/.aspera中

(4)参数配置

ncbi的aspera hankbook(https://www.ncbi.nlm.nih.gov/books/NBK242625/)有详细的描述和用法。其中最主要的是端口的问题。由于UDP传输需要33001-33009端口的开启,所以至少要打开一个端口。这里使用iptables命令去开放端口33001。

sudo iptables -I INTPUT -p udp --dport 33001 -j ACCEPT

sudo iptables -I OUTPUT -p udp --dport 33001 -j ACCEPT


2、使用aspera从GeneBank和EMBL下载数据

aspera的下载工具ascp默认安装在~/.aspera/connect/bin/ascp,密钥位于~/.aspera/connect/etc/,可以下载单个文件也可以以list的形式批量下载。这里以embl为例:

单个数据下载:

~/.aspera/connect/bin/ascp -Q -k 1 -l 1000m -P 33001 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:/vol1/run/ERR398/ERR3989160/HG03350.final.cram ./

-Q:不加密传输

-k 1:支持断点续传

-l:最大下载速度,注意这里是bit/s。可以根据你的带宽之类的进行设定。比如100m。

-P 33001:端口

-i:秘钥位置

最后是:用户名@ftp地址:/文件位置

如果是genebank,用户名为anonftp,地址为ftp.ncbi.nlm.nih.gov

如果是embl,用户名为era-fasp,地址为 ftp.sra.ebi.ac.uk

./表示下载再当前路径下,也可以指定其他位置。



批量下载:

批量下载需要准备一个txt格式的list,大概的样子是:

image.png

~/.aspera/connect/bin/ascp -Q -k 1 -l 1000m -P 33001 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh  --user era-fasp --mode recv --host fasp.sra.ebi.ac.uk --file-list ~/list.txt  ./

这里跟单样品下载有一些不同,--user指定用户名,--mode指定模式为下载recv,--host指定主机,--file-list后指定list文件,最后还是一样的为下载文件位置。如果是genebank则一样修改用户名和主机即可。


如果中间断开了直接重新运行这条命令就可以续传。当然有一个问题是如果不能及时发现程序卡住或者断开链接就会浪费很多时间,所以我在上一篇文章中提供了使用crontab定期检查进程的方式实现进程守护http://blog.sciencenet.cn/blog-2379401-1268143.html




https://blog.sciencenet.cn/blog-2379401-1268304.html

上一篇:基于crontab的进程守护方法
下一篇:宏基因组/转录组去除宿主污染
收藏 IP: 125.69.92.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-25 17:07

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部