官方推荐使用SRATOOLKIT,那义无反顾的就用它吧
准备篇
首先:打开官网 NCBI SRA Tool Kit下载最新的SRA版本软件,有四种平台软件可选。注意自己下的版本是否符合自己的操作系统。请注意:由于软件更替,下面的源可能并不是最新的(截止到2019/7/23)。请各位同学仔细甄别!
- CentOS Linux 64 bit architecture
- Ubuntu Linux 64 bit architecture
- MacOS 64 bit architecture
- MS Windows 64 bit architecture
其次,点击并下载ASPERA。windows系统下直接安装即可,linux安装下面有详细步骤。
安装篇
Ubuntu:
首先安装sratoolkit
方法一:apt安装
首先:确保你的apt源是最新的,如果不是最新的清执行:
apt-get update
其次:安装sratoolkit
apt install sra-toolkit
再次:检查sratoolkit是否安装成功:
prefetch -v
出现版本号或者命令参数则安装成功。
最终:当你不需要它的时候就可以卸载掉(作者比较惨,阿里云上的存储空间不太够,所以下载完后就删掉了):
apt remove sra-toolkit
方法二:解压添加进入环境变量:
首先:下载并解压Ubuntu平台的sratoolkit安装包:
weget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.9.6-1/sratoolkit.2.9.6-1-ubuntu64.tar.gz
tar zxvf sratoolkit.2.9.6-1-ubuntu64.tar.gz
其次:把sratoolkit扔进环境变量并刷新,请注意要把下面的路径换成自己的路径,如果不知道自己的路径在哪可以用pwd
命令查看:
echo 'export export PATH=$PATH:YOUR_PATH/sratoolkit.2.9.6-1-ubuntu64/bin' >> ~/.bash_profile
source ~/.bash_profile
最后:检查sratoolkit是否安装成功,同上,略。
其次安装IBM ASPERA
首先:下载并解压linux下的ASPERA软件
wget https://download.asperasoft.com/download/sw/connect/3.9.5/ibm-aspera-connect-3.9.5.172984-linux-g2.12-64.tar.gz
tar zxvf ibm-aspera-connect-3.9.5.172984-linux-g2.12-64.tar.gz
最后:安装IBM ASPERA(这里需要注意一点,安装这个软件时必需为非root用户),安装完毕后即可自动添加进入环境变量。
bash aspera-connect-3.9.5.172984-linux-64.sh
Windows:
由于服务器网络状况不理想,而且主机间存在防火墙隔离。所以将SRA数据库下载到本地并上传到服务器是个不错的选择。
首先:下载最新sratoolkit安装包并解压(看文件结构感觉跟Blast的运行方式一致,如果有相关经验的同学就可以忽略不计了)。
其次:使用windows徽标键(好像是这么叫)+R,输入CMD,cd /d
进入解压后的目录。
再次:cd
进入\bin
文件夹:
最后:检查安装是否正常(操作如上),当然在这一步也可将bin文件夹中的prefetch.exe
加入到全局系统变量中,这样就可以不用敲打文件路径,可以直接执行。但像我这种懒人,添加到环境变量还是算了,能少写一行绝对多写一行。
应用篇:
想想大家应该都是批量下载,所以单个文件下载的方式我就不介绍了,主要介绍下批量下载
首先,打开SRA RUN Selector,输入自己想要下载的文件的SRA编号,点击上面的“望远镜”摁钮进行搜索:
其次:我就随便找了个SRS的号演示一下,下面这张图片中包含了一定的试验参数及测序平台,因为搞批量嘛,当然是全选。全选后点击后面“Download”中的“Accession List”。然后将这个列表文件保存下来,就可以执行下面操作。
Ubuntu:
首先cd
到你放置SRR_ACC_List.txt
的目录中,然后:
prefetch --option-file SRR_Acc_List.txt
下载就开始了,下面就显示了当前序列信息下载的队列,其中Downloading via fasp,证明你正在使用Aspera进行下载,如果服务器不限速的话,很快就能下载完毕。如果,显示通过http,则证明Aspera安装存在问题,请注意仔细按照上面修改。当然,下载完成后你可以使用locate
命令轻松找到这个文件下载在哪。一般默认保存在用户目录下/root/ncbi/sar中。
Windows:
还是那个问题,服务器有防火墙,同时服务器网络情况不好,需要下载到本地计算机环境中。这一部分我就着重介绍一下。
首先,使用cmd进入对应目录:
其次,执行上面linux中的那个命令:
prefetch --option-file SRR_Acc_List.txt
然后,开始下载,但采用的都是通过http/https的下载方式,对于作者的移动网来说。情况就是不断超时,然后队列被迫中断,具体情况是这个样子的:
虽本地安装了Aspera,但不同于linux下prefetch,windows下的Aspera并不会自动调用Aspera。查了官方的手册后发现,需要在prefetch下加入Aspera的文件路径,以达到调用的目的,具体命令如下:
prefetch -a "C:\Users\Lab-Fang\AppData\Local\Programs\Aspera\Aspera Connect\bin\ascp.exe#ascp文件目录|C:\Users\Lab-Fang\AppData\Local\Programs\Aspera\Aspera Connect\etc\asperaweb_id_dsa.openssh#ascp证书路径" --option-file SRR_Acc_List.txt
这里有一点要强调ascp软件中etc目录下有多个通讯证书,我首先尝试了官方推荐的.putty证书,但是无法获得具体的认证。失败原因显示为:
2019-07-24T13:11:06 prefetch.2.9.3 err: ascp.exe: failed to authenticate, exiting.
2019-07-24T13:11:06 prefetch.2.9.3 err: Session Stop (Error: failed to authenticate)
2019-07-24T13:11:06 prefetch.2.9.3: ascp.exe: failed to authenticate, exiting. Session Stop (Error: failed to authenticate)
然后经外国友人指导后,发现导致这一问题的原因大部分为3个:
- 你的aspera 版本并不是最新版本
- 你的cmd不支持使用的.putty证书,需要切换为.openssh证书,这样就可以完成身份认证(恰巧windows 10中已经支持了部分ssh命令)
- 你的网络问题
修正了上述三个问题并加入了对应的软件路径,你就可以愉快的使用Aspera执行高速文件下载了!
学校有些限速规定,下载速度为10 M/s,几乎可以跑满整个带宽。
下次介绍下如何使用sratoolkit完成一些格式整理工作
参考资料:
- Question: Key Passphrase For Ascp File Transfer (Ebi, Ncbi) https://www.biostars.org/p/93482/