1.NCBI SRA Toolkits安装和使用-学习记录

1,900 阅读4分钟

一、下载SRA Toolkits

下载链接:Ubuntu Linux 64 位架构

使用wget直接在服务器上下载:wget  https://github.com/ncbi/sra-tools/wiki/01.-Downloading-SRA-Toolkit/sratoolkit.3.0.7-ubuntu64.tar.gz
使用wget下载的文件不对,解压不了,使用file命令查看后发现是HTML文件,不是 gzip文件,于是直接下载在使用Xftp上传到服务器上。
使用tar命令解压文件:tar xzvf sratoolkit.3.0.7-ubuntu64.tar.gz

二、环境配置

环境变量配置方式一:临时的,关闭后终端后要重新设置

配置环境变量:export PATH=$PATH:$PWD/sratoolkit.3.0.7-ubuntu64/bin
这里的$PWD是所处的当前位置,此时我的当前位置在:/home/users-data/liukai/WorkEnvironment/SRA-Toolkits/
也可以直接使用绝对路径进行配置:export PATH=$PATH:~/WorkEnvironment/SRA-Toolkits/sratoolkit.3.0.7-ubuntu64/bin

环境变量设置方式二:修改环境变量配置文件,永久性的

修改配置文件:vim ~/.bashrc
添加配置环境:export PATH="/home/users-data/liukai/WorkEnvironment/SRA-Toolkits/sratoolkit.3.0.7-ubuntu64/bin:$PATH"
退出保存
使立即生效:source ~/.bashrc

验证:which fastq-dump

返回如下位置结果,表示安装与环境配置成功
/home/users-data/liukai/WorkEnvironment/SRA-Toolkits/sratoolkit.3.0.7-ubuntu64/bin/fastq-dump 

测试工具包是否正常运行: fastq-dump --stdout -X 2 SRR390728

返回结果如下:

Read 2 spots for SRR390728
Written 2 spots for SRR390728
@SRR390728.1 1 length=72
CATTCTTCACGTAGTTCTCGAGCCTTGGTTTTCAGCGATGGAGAATGACTTTGACAAGCTGAGAGAAGNTNC
+SRR390728.1 1 length=72
;;;;;;;;;;;;;;;;;;;;;;;;;;;9;;665142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;96&&&&(
@SRR390728.2 2 length=72
AAGTAGGTCTCGTCTGTGTTTTCTACGAGCTTGTGTTCCAGCTGACCCACTCCCTGGGTGGGGGGACTGGGT
+SRR390728.2 2 length=72
;;;;;;;;;;;;;;;;;4;;;;3;393.1+4&&5&&;;;;;;;;;;;;;;;;;;;;;<9;<;;;;;464262

三、工具包配置

命令:sdb-config -i进入快速工具包配置界面:

返回结果如下图所示,包含四个选项和六个配置页

image.png

1、常规配置MAIN:

  • [启用远程访问]
    如果启用,则指示 sra-tools 通过 https 从远程位置获取数据。远程位置是 NCBI、AWS 或 GCP 的服务器。如果您关闭此复选框并且没有可用的本地数据(通过下载),SRA 工具包将无法找到任何数据。
  • [首选具有简化基本质量分数的 SRA Lite 文件] 如果启用,则指示 sra-tools在可用时获取SRA Lite版本的数据。SRA Lite 格式更小并且包含简化的质量分数。

2、缓存配置CACHE

  • [启用本地文件缓存功能]
    启用本地文件缓存可以缓存到文件中。如果无法配置公共位置,则仅应在特殊情况下(例如计算集群)禁用此功能。
  • [公共用户存储]
    不同的位置位于“用户公共存储库”是持久的。这意味着如果工具使用了特定的加入,则存储文件将保留在该位置。如果同一个或另一个工具再次使用此访问,则无需远程访问位置,从而提高了速度。
  • [进程本地]
    该工具完成其工作后,“进程本地”存储器将自动删除。

image.png

3、AWS配置

勾选“E”能够获取付费资源,但也需要提供相应的证明 勾选“R”获取免费资源

image.png

** 4、GCP配置**

类似AWS配置

image.png

5、网络代理配置NET

"网络代理"(Network Proxy)是一个用于管理网络连接的设置。网络代理是一个位于你和互联网之间的中间服务器,充当了你与外部服务器之间的中继站点。

配置网络代理的主要用途是确保你的计算机能够与NCBI(美国国家生物技术信息中心)的服务器进行通信,以便下载SRA数据。如果你的计算机位于受限制的网络环境中,可能需要配置网络代理以允许工具包通过代理服务器连接到NCBI服务器。

image.png

6、下载工具TOOLS 默认勾选第一个,下载的数据将会自动保存到缓存(CACHE)设置的目录下。

勾选第二个会将下载的文件保存到当前工作目录。

image.png

四、云凭证:AWS和GCP

要访问 SRA 云数据,您需要向 vdb-config 提供 AWS (Amazon Web Services) 访问密钥或 GCP (Google Cloud Platform) 服务帐户。

获取亚马逊云凭证

登录 AWS 并选择[IAM 服务](https://console.aws.amazon.com/iam/home#/home)
选择左侧的“用户”。
选择您要使用的用户名。
单击“安全凭证”选项卡。
单击“创建访问密钥”按钮。
单击“下载 .csv 文件”按钮。
将 CSV 文件保存到您的计算机,并将其复制到 vdb-config 指定的位置。

获取谷歌云凭证

登录 GCP 并选择[IAM 服务](https://console.cloud.google.com/iam-admin/)。
从左侧面板中选择“服务帐户”。
单击顶部的“+ 创建服务帐户”按钮。
为服务帐户提供名称和描述
选择存储 -> 存储对象查看器角色,然后按继续。
按“+ 创建密钥”按钮。
选择 JSONJSON 文件保存到您的计算机,并将其复制到 vdb-config 指定的位置。

五、连接超时

# 等待成功连接
/libs/kns/connect/timeout       # mS to wait for a successful connection 
# 等待数据可供读取
/libs/kns/connect/timeout/read  # mS to wait for data to become available to read
# 等待输出缓冲区接受数据
/libs/kns/connect/timeout/write # mS to wait for output buffer to accept data

# 等待HTTP相应
/http/timeout/read              # mS to wait for an HTTP response
# 等待发送HTTP请求
/http/timeout/write             # mS to wait to send an HTTP request

设置格式:vdb-config -s /http/timeout/read=10000

六、Prefetch和fastq-dump

使用 prefetch + fasterq-dump 的组合是从 SRA-accession 中提取 FASTQ 文件的最快方式。prefetch 工具会下载所有必要的文件到您的计算机上。如果下载没有成功,可以多次调用 prefetch 工具。它不会每次都从头开始下载;相反,它会从上一次调用失败的地方继续下载。

Prefetch具有默认的最大下载限制

prefetch默认的最大下载大小限制为 20G。
如果请求的 accession 大于 20G,您需要增加该限制,比如:$prefetch SRR1951777 --max-size 420000000000
您还可以使用vdb-dump工具和--info 选项来查询 accession 的大小。例如:vdb-dump SRR000001 --info 可以告诉您这个 accession 有多大(以及其他信息)。

SRA Toolkits下载数据

1、所需硬盘空间估算

在执行提取操作之前,您应该快速估算所需的硬盘空间。
最终的 fastq 文件大小约为 accession 大小的 7 倍。
在转换过程中,fasterq-dump 工具需要大约等于最终 fastq 文件大小 1.5 倍的临时空间(临时空间或称为 scratch 空间)。
总体来说,转换过程中所需的空间约为 accession 大小的 17 倍。

2、prefetch下载

默认情况下,`prefetch <accession>` 将下载 `<accession>` 运行文件及其依赖项到 `<accession>` 目录中。
例如,`prefetch SRR000001` 将在当前目录创建一个名为 `SRR000001` 的目录。

如果 prefetch 失败,请再次运行相同的 prefetch 命令,下载将会继续。
当 `<accession>` 目录已经存在时,运行 `prefetch <accession>` 将下载缺失的参考序列文件到 `<accession>` 目录中。

目前,无法下载缺失的 vdbcache 文件 - 它是为了加速处理某些 accession 而需要的。
如果远程存在 vdbcache 文件,它将被使用。
如果没有互联网访问并且给定 accession 存在 vdbcache 文件,那么对 accession 的转换将需要相当长的时间。

3、fastq-dump格式转换

默认情况下,在与运行 `prefetch <accession>` 相同的目录中运行 `fasterq-dump [options] <accession>`。
fastq 文件将在当前目录中创建。如果希望将这些输出文件创建在不同的目录中,请使用 `--outdir` 选项。

如果您需要移动 `prefetch <accession>` 下载的结果,请移动整个 `<accession>` 目录,不要重命名它。
然后切换到 `<accession>` 目录的父目录,并在该目录中运行 `fasterq-dump` 工具。

如果您已经预提取了所有文件且没有互联网访问,请运行 `vdb-config -i` 并关闭远程访问。

注意:本文档中提到的 Accessions 是运行 Accessions,例如 SRR000001DRR000002ERR000003

4、prefetch参数说明


--max-size <size>:限制下载的数据大小。可以使用这个选项来设置下载数据的最大限制,以避免下载过大的数据集。
--resume:如果下载中断,使用 `--resume` 选项可以继续下载,而不是重新开始。
--ascp:使用 `--ascp` 选项可以指定使用 Aspera Connect 工具来进行下载,从而提高下载速度。
--http:强制使用 HTTP 协议下载数据,而不使用 Aspera Connect。
--no-ascp:禁用 Aspera Connect 下载,强制使用 HTTP 协议。
--anon:使用匿名身份下载数据。这对于无需登录到 NCBI 帐户的情况很有用。

5、fastq-dump参数说明

--outdir <directory>:该选项允许您指定输出 FASTQ 文件的目录。
--split-3:默认情况下,`fastq-dump` 会将 PE(paired-end)数据拆分为两个文件,分别包含正向和反向测序数据。使用 `--split-3` 选项可以将数据拆分为三个文件,包括正向、反向和未配对的序列。
--gzip:使用 `--gzip` 选项可以在生成 FASTQ 文件时将其压缩成 GZIP 格式,以节省存储空间。
--skip-technical:如果测序数据包含技术序列(如 Illumina 的索引序列),您可以使用 `--skip-technical` 选项跳过这些技术序列的处理,以提取实际的测序数据。
--clip:使用 `--clip` 选项可以将质量低于指定阈值的测序片段从输出中剪切掉。例如,`fastq-dump SRR123456 --clip 20` 将删除质量低于阈值 20 的片段。
--read-filter <filter>:您可以使用 `--read-filter` 选项来定义自定义的读取过滤器,根据您的需求对读取进行过滤。这可以用于自定义质量控制和过滤操作。
--readids <read_id_file>:使用 `--readids` 选项可以指定一个文本文件,其中包含要提取的读取的 ID 列表。这对于从数据集中选择特定的读取非常有用。