测序数据下载工具——aspera或prefetch从SRA或ENA数据库下载NGS测序原始数据的方法
写在前面
- 下面所有内容均是在老师提供的账号上,根据课堂内容进行和完成的
- 部分文件为老师提供
安装方式均选择了一种进行上机演示
1. Aspera高速下载工具的安装和使用
- 作为主流的生物数据库,NCBI和ENA存储了大量的生物序列或测序数据。有些高通量测序数据,动辄几百Mb,甚至于几个Gb,在传输的时候往往耗费不少时间。
- IBM Aspera FASP技术,能够突破网络传输瓶颈,以最大速度传输文件链接: https://www.ibm.com/products/aspera;是我们下载这些数据的理想选择。
1.1.安装
1.1.1. conda安装
- 对于Aspera Connect软件包,可以使用Conda进行搜索和安装。
-
首先,使用以下命令在Conda上搜索可安装的Aspera版本:
conda search aspera* -c hcc
这将显示可用的Aspera软件包及其版本。
-
选择想要安装的版本,并使用以下命令进行安装(以4.2.6版为例):
conda install aspera=4.2.6 -c hcc
你可以将版本号替换为自己所需要的版本号。
-
Conda会自动解决依赖关系并安装Aspera Connect软件包。
-
完成安装后,可以按照Aspera Connect的官方文档使用它。
1.1.2. 预编译安装
-
确保你已经安装了wget工具。安装了就省略这一步,如果没有安装,使用以下命令进行安装:
sudo apt update sudo apt install wget
-
使用以下命令下载Aspera Connect软件包(自行选择版本下载):
wget https://d3gcli72yxqn2z.cloudfront.net/downloads/connect/latest/bin/ibm-aspera- connect_4.2.6.393_linux_x86_64.tar.gz #4.2.7版:wget https://d3gcli72yxqn2z.cloudfront.net/downloads/connect/latest/bin/ibm-aspera-connect_4.2.7.445_linux_x86_64.tar.gz
-
下载完成后,解压缩软件包:
tar -zxvf ibm-aspera-connect_4.2.6.393_linux_x86_64.tar.gz
-
运行安装脚本:
bash ./ibm-aspera-connect_4.2.6.393_linux_x86_64.sh
-
完成安装后,可以使用以下命令检查ascp命令的帮助信息:
~/.aspera/connect/bin/ascp -h
-
执行以下命令将ascp命令添加到系统路径中:
echo 'export PATH=~/.aspera/connect/bin:$PATH' >> ~/.bashrc source ~/.bashrc
-
显示ascp命令的帮助信息,这样你就可以在任何位置使用ascp命令了:
ascp -h
1.1.3. 上机演示
- 老师已经提前为我们准备好了预编译的安装包,我直接复制过来解压缩的
- 我在运行命令
bash ./ibm-aspera-connect_4.2.6.393_linux_x86_64.sh
后显示
意思是:Installing IBM Aspera Connect Deploying IBM Aspera Connect (/disk1/user202131107010081/.aspera/connect) for the current user only. Unable to update desktop database, IBM Aspera Connect may not be able to auto-launch Install complete.
IBM Aspera Connect已经成功安装,并放置在当前用户的目录下(/disk1/user202131107010081/.aspera/connect)。
然而,由于更新桌面数据库失败,可能导致IBM Aspera Connect无法自动启动。
1.2. 使用
- 最近aspera从SRA数据库下载的时候,总是显示出错信息:
ascp: Failed to open TCP connection for SSH, exiting. Session Stop (Error: Failed to open TCP connection for SSH)
- 解决办法:
- 换用ENA数据库下载
- 用prefetch下载
1.2.1. ENA数据库检索数据文件和下载
- ENA数据库检索数据文件下载链接:ENA网站(https://www.ebi.ac.uk/ena/browser/home)
1.2.2. 步骤详解
- 在ENA主页输入SRA号,搜索
- 在Show column Selection中,勾选
- fastq_aspera
- sra_aspera
- Download report中,选择TSV
3. 在下载的report文件中,得到fasp下载链接
- 一个是fastq格式的,一个是sra格式的
1.2.3. 从ENA数据库下载SRR6208854文件指令示例
- ascp下载
- 注意ascp常用参数的使用,了解-P参数, -k 和-i参数的运用
ascp -P 33001 -k 1 -l 200m -T -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:/vol1/fastq/SRR620/004/SRR6208854/SRR6208854.fastq.gz ./ #了解ascp常用参数 #ascp -h
- 解压查看原始测试数据
gunzip -c /disk1/shares/SRR6208854.fastq.gz |less
1.3. aspera connect下载
- 参考链接:https://ena-docs.readthedocs.io/en/latest/retrieval/file-download.html#using-aspera
- 使用
##用法: ascp [option] source destination ##重要参数: -P TCP port used for SSH authentication #eg:使用端口号1234进行身份验证:ascp -P 1234 source destination -Q Enable fair transfer policy -T Disable encryption #eg:禁用加密进行传输:ascp -T source destination -i Private-key file name (id_rsa) #eg:使用名为id_rsa的私钥文件进行传输:ascp -i id_rsa source destination -k Resume criterion: 0,3,2,1 -l Max transfer rate #eg:限制传输速率为1Mbps:ascp -l 1000000 source destination
1.3.1. 读取访问密钥文件
- 4.2版本以上的aspera connect不提供asperaweb_id_dsa.openssh文件了
- 我在biostars上看到关于此问题解决的一条评论,觉得很有帮助(参考内容链接:https://www.biostars.org/p/93482/)
我想我应该在这里添加一个评论,因为我相信这是一个更普遍的问题,仍然可能以其他方式发生,而不是上面解决的。当Aspera Connect命令行客户端(ascp)无法读取或访问密钥文件时,它似乎在每种情况下都通过请求密码短语来响应。如果这种情况发生在你身上,这里有一些方法可以尝试:
- 您是否使用最新版本的客户端和正确的密钥文件?(例如,不要像上面讨论的那样使用带有最新代码的putty版本的密钥)。
- 给出密钥文件的完整路径——我没有在所有情况下都测试过,但在我的MacBook上,ascp客户端无法解析与密钥文件的相对关系,只有在我给出完整路径时才有效。通配符可以工作,因为它被shell解析为完整路径。
- 确保密钥文件的权限/所有权是正确的。当前用户应该拥有该文件并具有读取权限。
这可能会让人感到困惑,因为ascp从不抱怨丢失的文件或糟糕的权限,但如果它要求一个密码短语,那可能是因为它找不到/读取密钥文件。
解决方式
- 将下面的字符存入
~/.aspera/connect/etc/asperaweb_id_dsa.openssh
即可
-----BEGIN DSA PRIVATE KEY-----
MIIBuwIBAAKBgQDkKQHD6m4yIxgjsey6Pny46acZXERsJHy54p/BqXIyYkVOAkEp
KgvT3qTTNmykWWw4ovOP1+Di1c/2FpYcllcTphkWcS8lA7j012mUEecXavXjPPG0
i3t5vtB8xLy33kQ3e9v9/Lwh0xcRfua0d5UfFwopBIAXvJAr3B6raps8+QIVALws
yeqsx3EolCaCVXJf+61ceJppAoGAPoPtEP4yzHG2XtcxCfXab4u9zE6wPz4ePJt0
UTn3fUvnQmJT7i0KVCRr3g2H2OZMWF12y0jUq8QBuZ2so3CHee7W1VmAdbN7Fxc+
cyV9nE6zURqAaPyt2bE+rgM1pP6LQUYxgD3xKdv1ZG+kDIDEf6U3onjcKbmA6ckx
T6GavoACgYEAobapDv5p2foH+cG5K07sIFD9r0RD7uKJnlqjYAXzFc8U76wXKgu6
WXup2ac0Co+RnZp7Hsa9G+E+iJ6poI9pOR08XTdPly4yDULNST4PwlfrbSFT9FVh
zkWfpOvAUc8fkQAhZqv/PE6VhFQ8w03Z8GpqXx7b3NvBR+EfIx368KoCFEyfl0vH
Ta7g6mGwIMXrdTQQ8fZs
-----END DSA PRIVATE KEY-----
1.3.2. 输入指令和上机演示
输入以下指令进入文本编辑
nano ~/.aspera/connect/etc/asperaweb_id_dsa.openssh
输入以下字符:
-----BEGIN DSA PRIVATE KEY-----
MIIBuwIBAAKBgQDkKQHD6m4yIxgjsey6Pny46acZXERsJHy54p/BqXIyYkVOAkEp
KgvT3qTTNmykWWw4ovOP1+Di1c/2FpYcllcTphkWcS8lA7j012mUEecXavXjPPG0
i3t5vtB8xLy33kQ3e9v9/Lwh0xcRfua0d5UfFwopBIAXvJAr3B6raps8+QIVALws
yeqsx3EolCaCVXJf+61ceJppAoGAPoPtEP4yzHG2XtcxCfXab4u9zE6wPz4ePJt0
UTn3fUvnQmJT7i0KVCRr3g2H2OZMWF12y0jUq8QBuZ2so3CHee7W1VmAdbN7Fxc+
cyV9nE6zURqAaPyt2bE+rgM1pP6LQUYxgD3xKdv1ZG+kDIDEf6U3onjcKbmA6ckx
T6GavoACgYEAobapDv5p2foH+cG5K07sIFD9r0RD7uKJnlqjYAXzFc8U76wXKgu6
WXup2ac0Co+RnZp7Hsa9G+E+iJ6poI9pOR08XTdPly4yDULNST4PwlfrbSFT9FVh
zkWfpOvAUc8fkQAhZqv/PE6VhFQ8w03Z8GpqXx7b3NvBR+EfIx368KoCFEyfl0vH
Ta7g6mGwIMXrdTQQ8fZs
-----END DSA PRIVATE KEY-----
上机演示
ctrl+O 保存文件; ctrl+W 查询字符串;
ctrl +C 说明目前光标所在处的行数和列数等信息;
ctrl+ _ 可以直接输入行号,让光标快速移到该行;
2. SRA toolkit的安装与使用
- 现在NCBI的SRA数据库,已不推荐(不能)使用Aspera来下载数据链接: https://github.com/ncbi/sra-tools/wiki/Avoid-using-ascp-directly-for-downloads
- 而NCBI官方推出的SRA toolkits是从SRA数据库下载SRA文件(prefetch),解压SRA文件(fastq-dump)的重要工具
2.1.安装
2.1.1. 有sudo权限
-
使用wget命令下载setup-apt.sh文件:
wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/3.0.7/setup-apt.sh
-
运行脚本,使用sudo bash命令:
sudo bash setup-apt.sh
运行脚本可能需要一些时间,可能需要等一会儿。
2.1.2. 无sudo权限,预编译安装
-
使用wget命令下载sratoolkit.3.0.7-ubuntu64.tar.gz文件(以sratoolkit.3.0.7-ubuntu64.tar.gz为例):
wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/3.0.7/sratoolkit.3.0.7-ubuntu64.tar.gz
-
使用tar命令解压缩下载的tar.gz文件,并将其放在~/Biosofts目录下:
tar zvxf sratoolkit.3.0.7-ubuntu64.tar.gz -C ~/Biosofts
-
进入解压缩后的bin目录:
cd ~/Biosofts/sratoolkit.3.0.7-ubuntu64/bin
-
运行prefetch命令的帮助选项来验证安装是否成功:
./prefetch -h
-
将SRAToolkit的bin目录添加到环境变量中,以便可以在任何位置直接运行SRAToolkit的命令。将以下代码添加到~/.bashrc文件中,PATH后面不要有空格:
echo 'export PATH=~/Biosofts/sratoolkit.3.0.7-ubuntu64/bin:$PATH' >> ~/.bashrc
-
使用source命令使.bashrc文件中的更改生效:
source ~/.bashrc
现在,你就可以在任何位置运行SRAToolkit的命令了。
2.1.3. 上机演示
prefetch -h命令后出现帮助界面,安装成功
2.2. 使用
2.2.1. SRA文件的下载(prefetch)
-
对于单个SRA文件的下载,使用以下命令:
prefetch SRR6232298
这将使用SRAToolkit的prefetch命令下载SRR6232298对应的SRA文件。
-
对于批量下载多个SRA文件,如果这些文件的命名方式遵循类似SRR*或SRR的模式,可以使用通配符来批量下载。例如,如果要下载SRR100、SRR200和SRR300的文件,可以使用以下命令:
prefetch SRR***
下载多个SRA文件可能需要一些时间,具体时间取决于文件的大小和网络速度。
2.2.2. SRA文件转为fastq文件(fastq-dump)
- 对于下载的SRA文件,可以使用
fastq-dump
命令将其转换为FASTQ格式文件,并选择是否拆分成多个文件。
-
对于单个SRA文件的转换,使用以下命令:
fastq-dump --split-files SRR6232298/SRR6232298.sra
这将转换SRR6232298.sra文件为两个FASTQ格式文件,即SRR6232298_1.fastq和SRR6232298_2.fastq。
-
将FASTQ文件进行压缩以节省空间,可以使用
gunzip
命令,例如:gunzip SRR6232298_1.fastq gunzip SRR6232298_2.fastq
这将压缩两个FASTQ文件为SRR6232298_1.fastq.gz和SRR6232298_2.fastq.gz。
-
直接查看FASTQ文件的内容,可以使用
gunzip
命令解压缩.gz文件,并通过管道传递给less
命令进行分页浏览:gunzip -c SRR6208854_1.fastq.gz | less
这将解压缩SRR6208854_1.fastq.gz文件并使用
less
命令进行浏览。 -
将FASTQ文件转存到指定目录,可以使用
-O
参数指定输出目录:fastq-dump --split-3 SRR6232298.sra -O ~/Seq
这将将SRR6232298.sra文件转换为三个FASTQ文件,并将它们保存到~/Seq目录中。
-
更快解压:
fasterq-dump -h
批量解压:
--split-files or --split-3
2.2.3. 上机演示
下载单个SRA文件
解压SRA文件
按q退出上图界面