乐于分享
好东西不私藏

SRR数据的下载与多线高效程处理

SRR数据的下载与多线高效程处理

一.什么是SRR数据

SRA(Sequence Read  Archive)是 NCBI开创的用于DNA、RNA等高通量测序数据高效存储的文件格式。SRA开发了针对高通量测序数据的特有压缩算法,常可达到2-4倍的压缩率。但SRA不仅仅是相关数据的压缩结果,还包含了相关数据的元数据,质量打分、序列及实验信息。下载和转换sra数据的过程是提取和重组上述信息的操作,不是简单的解压缩,理解该原理,是应用sra数据的关键。
SRA的数据结构如下:
  1. 研究层次(Study):常以SRP为起始标志,代表一个研究项目。
  2. 样本层次(Sample):常以SRS为起始标志,代表产生数据的生物样本。
  3. 实验层次(Experiment):常以SRX为起始标志,用于记录相关实验设计。
  4. 运行层次(Run):常以SRR为起始标志,代表测序数据,是我们直接下载和处理的数据。各 SRR数据均有多个“spot”,各spot代表一次测序产生的数据。在双端测序中,各 spot 由两条读段(read,及常见的R1和R2),本文后续介绍的fasterq-dump程序在运行的过程中需要加入–split-3 参数,其目的即是为了处理R1和R2的正确分配。
在本文后续介绍的prefetch法数据下载中,SRP、SRS、SRX、SRR号均可用于下载相应的SRR数据,SRA号不可用于下载对应的SRR数据。

二.如何获取SRA数据相关信息

2.1.网页一:SRA Explorer

https://sra-explorer.info/

2.2.网页二:SRA Run/File Selector (个人觉得更好用)

https://www.ncbi.nlm.nih.gov/Traces/study/

三.需要用到的软件

3.1.sratoolkit

主要用到该软件包中的prefetch和fasterq-dump程序,prefetch根据SRR号下载数据,fasterq-dump可多线程将srr文件转换为fastq。注意fasterq-dump和fastq-dump(单线程程序,一个是比较级,一个是原级)的区别。
软件网址:https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/,最好用最新版,最新版代current字样。需根据你的使用平台Windows、mac还是liunx,系统版本是centos还是ubuntu等,自行查找了解相关信息的方法。

3.1.1.conda安装

不推荐,自行查找相关方法。

3.1.2.手动安装(建议手动安装)

对于无复杂依赖关系的软件,均建议收到安装,如该软件(sratoolkit)。选择相应版本后直接下载至普通电脑上。若是在linux服务器上使用,可右键获取链接后用wget或其他软件下载,也可将前述下载在普通电脑上的文件传至服务器后安装。如下实例(linux上通过链接下载):
mkdir ~/software #在家目录下建立软件文件夹,如果已有,可忽略cd software #进入软件文件夹#下载sratoolkitwget -c -b https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/3.4.1/sratoolkit.3.4.1-alma_linux64.tar.gz#解压即用tar -zxvf sratoolkit.3.4.1-alma_linux64.tar.gz#将软件加入环境变量,注意用追加(>>),而不是覆盖(>)重定向。如果不将软件加入环境变量,需用绝对路径调用软件echo 'PATH=$HOME/software/sratoolkit.3.4.1-alma_linux64/bin:$PATH' >>~/.bash_profile. ~/.bash_profile #重新激活环境,即可用相关软件

3.2.pigz

多线程压缩工具,可有可无,自行安装,安装不了就用自带的gzip压缩软件或其他压缩软件压缩。利用fasterq-dump转换得到的fastq文件没有压缩,需进行压缩以节约空间。

四.数据下载与处理

4.1.基于SSR号的prefetch法

查找需要的数据的项目号或序列号,以下以项目号PRJNA111397和上述sra selector网页为例演示:

4.1.1.输入项目号并点击search。

4.1.2.点击Metadata或Accession获取SRR序列号

点击Metadata后获得SraRunTable.csv,该表格记载了目标数据相关的详细信息,打开该文件,文件第一列以SRR开头的序列号即为所需信息。点击‘Accession List’后获得SRR_Acc_List.txt文件, 打开即为SRR号。

4.1.3.批量下载数据(取2个srr数据做演示)

mkdir PRJNA111397 && cd PRJNA111397 #建立并进入数据文件夹for srr in SRR013550 SRR013551do #-X限定可下载的SRR文件的大小,默认大小只有20G,如果服务器线程不够,不要一次性把SRR号输入到for行后面,可分批次输入和下载    prefetch -X 500GB $srr >log.$srr.prefetch 2>&1 & done#下载完成后须检测log文件,查看下载是否成功(具HTTPS download succeed字样),如果失败(具failed或error字样,也可能是别的标识),需重新下载。

4.1.4.将srr数据批量转换为fastq(多线程高效)

传统的fastq-dump程序只能单线程转换srr为fastq,现在(2026年4月)的fasterq-dump已经支持多线程完成该工作。
for srr in SRR013550 SRR013551do    fasterq-dump $srr --split-3 >log.$srr.fasterqdumpdone

4.1.5.批量压缩

可以用pigz(多线程,需自行安装),也可用gzip(系统通常自带)。
for srr in SRR013550 SRR013551do     pigz -p 10 $srr*.fastq #-p指定线程数done

4.1.6.确认文件下载无误后可删除SRR文件以节约空间

操作的log可保留
rm -r SRR*

4.2.基于文件地址(prefetch下载失败时可用该方法)

prefetch可能下载失败,无法进入相关网页和获取数据,可直接查找相关文件链接,下载并处理。

4.2.1.在BioProject数据库查找相关信息

4.2.2.点击测序数据SRA Experiments数目进入数据详情页

4.2.3获取srr文件地址

依次点击send to,File,Summary和RunInfo,选中后,点击Creat File得到SraRunInfo.csv和sra_result.csv文件,二者记录了数据相关的详细信息,数据下载地址通常在SraRunInfo.csv中,小概率在sra_result.csv中

4.2.4.利用wget下载数据和后续处理

以两个数据作为演示对象。
SRR013550 SRR013551
从上述表格复制下载地址,如下,注意该方法获得的SRR文件后有特殊后者,而4.1基于SSR号的prefetch法得到的为SSR开头的文件夹里的sra后缀的文件。
https://sra-downloadb.be-md.ncbi.nlm.nih.gov/sos5/sra-pub-zq-11/SRR000/013/SRR013550/SRR013550.sralite.1https://sra-downloadb.be-md.ncbi.nlm.nih.gov/sos5/sra-pub-zq-11/SRR000/013/SRR013551/SRR013550.sralite.1
mkdir PRJNA111397 && cd PRJNA111397 #建立数据文件夹并进入#数据下载wget -c -b https://sra-downloadb.be-md.ncbi.nlm.nih.gov/sos5/sra-pub-zq-11/SRR000/013/SRR013550/SRR013550.sralite.1wget -c -b https://sra-downloadb.be-md.ncbi.nlm.nih.gov/sos5/sra-pub-zq-11/SRR000/013/SRR013551/SRR013551.sralite.1#for循环处理数据,这个是直接用文件名for srr in SRR013550.sralite.1 SRR013550.sralite.1do   fasterq-dump -e 10 $srr --split-3 >log.fstrq.dump.$srr 2>&1 & #srr转fastqdonepigz -p 50 SRR*.fastq >log.pigz.fastq.pigz 2>&1 & #压缩文件mkdir srrmv SRR* srr/mv srr/*.fastq .rm srr -rf #确认数据无误后删除srr文件
以上