从 NCBI SRA 数据库下载文件——获取想要的数据

前言

事情是这样的,最近啊,在研究拟南芥叶片的数据,需要下载一批数据,之前整理过Sra-ToolKit的安装使用,这次干脆整理一下我知道的NCBI数据搜索和下载的方式😑
wx_gzh: 猪猪的乌托邦

什么是SRA

全称:Sequence Read Archive,是一个公开可访问的存储和共享高通量测序数据的中心资源库。它由美国国家生物技术信息中心(NCBI)维护,该中心是美国国家医学图书馆(NLM)的一部分。
在这里插入图片描述
SRA数据库:https://www.ncbi.nlm.nih.gov/sra 专注于存储来自各种平台(如Illumina、Ion Torrent、PacBio等)生成的测序数据。这些测序技术生成大量的原始序列数据,通常被称为 reads,可用于各种生物学和生物医学研究目的。SRA数据库提供了一个全面的基础设施来组织、存储和检索测序数据。它支持数据压缩技术以优化存储空间同时保持数据完整性。存储的数据带有重要的元数据注释,包括:实验详细信息,样本信息,测序平台,文库制备方法。确定了所需的数据集,用户可以下载原始测序数据,使用喜欢的生物信息学工具和 pipeline 进行分析。

从SRA检索数据

用户可以通过NCBI网站或通过应用程序接口(APIs)访问SRA数据库。这两种方法都提供了强大的搜索功能,用户可以根据关键词、访问号、研究详情、生物信息或实验属性等找到特定数据集。

在线检索

SRA数据库提供灵活的搜索功能,包括但不限于:关键词,数据访问标识、高级搜索构建器。确保用户可以高效地找到研究所需数据集。

关键词

用户可以在SRA数据库主页的搜索框中输入关键词⤴。可以包括基因、物种、疾病、实验条件或任何其他相关信息。数据库将返回与提供关键词匹配的结果。例如,搜索:bumble bee worker
在这里插入图片描述
如果要缩小搜索结果范围,可以利用搜索结果页面右侧和左侧的各种过滤器。
在这里插入图片描述

数据的 ACCESSION IDs

如果,已经知道要查找的数据集具体的 ACCESSION IDs 或研究名称,可以直接输入这些标识符到搜索框中。这样可以快速检索所需的数据集,无需进行大量的关键字搜索。

Note

  • STUDY,以SRP#、ERP#、DRP#开头
  • SAMPLE,以SRS#、ERS#、DRS#开头
  • EXPERIMENT,以SRX#、ERX#、DRX#开头
  • RUN,以SRR#、ERR#、DRR#开头
  • PROJECT,以PRJNA#、GSE#开头的标识符

ACCESSION IDs 的第一个字母表示数据库源 - 分别为SRA、EBI或DDBJ

例如,刚读了个文章,挺有意思的,想下载它的数据,文章里写着,可以在项目PRJNA730495下获得数据,那么:
在这里插入图片描述
这一次,搜索结果显示与该 Project 相关的所有项目。在页面顶部,还会显示相关的数据集等等
在这里插入图片描述

小练习

高级检索

SRA数据库提供高级搜索功能,允许用户构建更复杂和定制的搜索。可以点击搜索框下方的“advance”,即可访问高级搜索构建器。利用此工具,用户可以创建复杂的查询,以检索符合其特定要求的数据集。

Tip:搜索条件复杂或需要根据多个条件限制搜索时,高级检索很有用

在这里插入图片描述
高级搜索包括多个字段和过滤器,用户可以结合使用这些内容构建查询。这些内容包括:

  • 关键词, Keywords:输入与其研究兴趣相关的具体关键词。
  • 过滤器,Filters:如物种、平台、研究类型、文库来源、仪器型号等,缩小搜索范围。
  • 运算符,Operators:使用逻辑运算符 AND、OR 和 NOT 结合搜索项,创建更精确的查询。
    具体参考 官方 SRA 文档

获取 Run Accessions SRR# 标识符

这个在平时用的比较多,经常看到文章项目下列举了一系列的SRR* Identifiers,可以用于从SRA数据库下载原始测序数据,获取方式:

  • A 在线SRA搜索结果(Search results)
  • B 在线SRA运行选择器(Run Selector)(推荐)
  • C 命令行工具
    在这里插入图片描述

A. SRA Search Results 【例子】

在这里插入图片描述
搜索框中搜索 ACCESSION ID,查看搜索结果并勾选要下载的项目。然后在页面顶部:点击 “Send to” ,选中**“File”,从下拉菜单中选择“Accession List”**,点击 “Create File” 下载文件,保存到要下载原始数据的位置(比如,运行 SRA Toolkit 的位置),默认情况下,下载的文件名为Sra_Acc_List.txt,包含一列:

SRR14567204
SRR14567205
SRR14567206
SRR14567207
SRR14567208
...

B. SRA Run Selector

在这里插入图片描述
上图所示,在SRA数据库搜索了项目之后,最上方会有一行提示(红色框框),直接点击那个**“Send results to Run selector”**,后面操作也比较简单,可以下载 AccessionList 文件SRR_Acc_List.txt,然后用 Sra-Toolkit 下载(比较建议)。当然也可以如下图:
在这里插入图片描述
比如,选择一个,直接下载原始的FASTQ/A等,但是有数据大小限制……好像是5G,忘记了……

C. 命令行工具

使用 esearchefetch,嗯,就是在NCBI Entrez Direct utilities中的,也叫 E-utilities

Note :
esearch 用于查询各种 NCBI 数据库,包括 SRA 数据库,检索特定信息或搜索结果。
efetch 配合 -format runinfo 参数,将检索匹配数据集的信息,包括运行访问权限。

直接安装 (E-utilities)

安装和使用方法详见:https://www.ncbi.nlm.nih.gov/books/NBK179288/#chapter6_Getting_Started

用法:

esearch -db sra -query "your search terms" | efetch -format runinfo

例子: 检索项目 PRJNA730495

esearch -db sra -query PRJNA730495 | efetch -format runinfo > runinfo.csv

得到的结果大概:

Run,ReleaseDate,LoadDate,spots,bases,spots_with_mates,avgLength,size_MB,AssemblyName,download_path,Experiment,LibraryName,LibraryStrategy,LibrarySelection,LibrarySource,LibraryLayout,InsertSize,InsertDev,Platform,Model,SRAStudy,BioProject,Study_Pubmed_id,ProjectID,Sample,BioSample,SampleType,TaxID,ScientificName,SampleName,g1k_pop_code,source,g1k_analysis_group,Subject_ID,Sex,Disease,Tumor,Affection_Status,Analyte_Type,Histological_Type,Body_Site,CenterName,Submission,dbgap_study_accession,Consent,RunHash,ReadHash
SRR14567204,2021-06-25 18:25:06,2021-05-17 12:50:50,22110877,4422175400,22110877,200,1750,,https://sra-downloadb.be-md.ncbi.nlm.nih.gov/sos3/sra-pub-zq-24/SRR014/14567/SRR14567204/SRR14567204.lite.1,SRX10910477,,RNA-Seq,cDNA,TRANSCRIPTOMIC,PAIRED,0,0,ILLUMINA,Illumina HiSeq 4000,SRP320091,PRJNA730495,3,730495,SRS9000934,SAMN19232003,simple,207648,Bombus terricola,GSM5319034,,,,,,,no,,,,,GEO,SRA1233078,,public,EEDE9E10B2038FD62970B54B892532EE,C9297792C29DD79798BDE466149A11C3
SRR14567205,2021-06-25 18:25:06,2021-05-17 12:54:45,25106715,5021343000,25106715,200,1975,,https://sra-downloadb.be-md.ncbi.nlm.nih.gov/sos3/sra-pub-zq-24/SRR014/14567/SRR14567205/SRR14567205.lite.1,SRX10910478,,RNA-Seq,cDNA,TRANSCRIPTOMIC,PAIRED,0,0,ILLUMINA,Illumina HiSeq 4000,SRP320091,PRJNA730495,3,730495,SRS9000933,SAMN19232002,simple,207648,Bombus terricola,GSM5319035,,,,,,,no,,,,,GEO,SRA1233078,,public,179BB8F87C8E7AEA09AFD31EA47B17CB,15F09D8C96B02C734C1FD0701A5BACF9
SRR14567206,2021-06-25 18:25:06,2021-05-17 12:54:14,21165129,4233025800,21165129,200,1624,,https://sra-downloadb.be-md.ncbi.nlm.nih.gov/sos3/sra-pub-zq-24/SRR014/14567/SRR14567206/SRR14567206.lite.1,SRX10910479,,RNA-Seq,cDNA,TRANSCRIPTOMIC,PAIRED,0,0,ILLUMINA,Illumina HiSeq 4000,SRP320091,PRJNA730495,3,730495,SRS9000935,SAMN19232001,simple,207648,Bombus terricola,GSM5319036,,,,,,,no,,,,,GEO,SRA1233078,,public,F59A9C00EED65826E0F40DF85CA0E512,F76970E0700A354530E7C0F28B0E0599
SRR14567207,2021-06-25 18:25:06,2021-05-17 12:53:18,22777492,4555498400,22777492,200,1775,,https://sra-downloadb.be-md.ncbi.nlm.nih.gov/sos3/sra-pub-zq-24/SRR014/14567/SRR14567207/SRR14567207.lite.1,SRX10910480,,RNA-Seq,cDNA,TRANSCRIPTOMIC,PAIRED,0,0,ILLUMINA,Illumina HiSeq 4000,SRP320091,PRJNA730495,3,730495,SRS9000936,SAMN19232000,simple,207648,Bombus terricola,GSM5319037,,,,,,,no,,,,,GEO,SRA1233078,,public,9A865DAAC8CB2F9336A553C44D371CCB,509CFAFFD98F8877B09D19E31305F0EE
...

当然也可以把其中的 SRR# 标识符单独拎出来:

esearch -db sra -query PRJNA730495 | efetch -format runinfo | cut -d "," -f 1 > SRR.numbers

结果大概这样:

SRR14567204
SRR14567205
SRR14567206
SRR14567207
...

下载 SRA 数据文件

有了**SRR#**号之后,有三种使用命令行的下载方式:1. 使用 SRA ToolKit (推荐);2. 使用 Linux 命令行工具;3. 使用 Aspera Connect

使用 SRA ToolKit

比较关键的就是安装,详见:https://github.com/ncbi/sra-tools/wiki/01.-Downloading-SRA-Toolkit 或者 Sra-ToolKit的安装使用,当工具安装好了,或者用的服务器、超算上有,则直接用。
ToolKit 中包含的工具挺多的哈,包括:prefetchfastq-dumpsam-dumpvdb-validatevdb-configfasterq-dump
在这里插入图片描述
简单的讲,就是从下载(prefetch)到格式转换(fastq-dump、sam-dump)到检查数据完整性(vdb-validate)到升级版、对大数据下载优化(fasterq-dump)的集合。
操作简单,比如想下载SRR447882下的文件,可以使用两种方式,一是使用 prefetch 下载.sra文件然后使用 fastq-dump转成FASTQ格式的文件,二是直接使用 fastq-dump 从下载到格式转换一条龙:fastq-dump SRR447882

下载数据之前要搞清楚,作者上传的是什么格式,测序双端还是单端啊,等等

我大多数的时候,在获取 Sra_Acc_List.txt 后,直接:

cat Sra_Acc_List.txt|while read sra;do (nohup fastq-dump --split-files $sra > sra.log 2>&1 &);done

但是需要一定的计算资源

使用 Linux 命令行

我感觉前一种方式(SRA ToolKit)也算……
但是,接下来介绍的可能更存粹一些……

其实哈,在2019年10月11日的时候,NCBI团队就开始推荐大家使用 SRA ToolKit下载数据了,详见 Users of the SRA FTP site: Try the SRA Toolkit!,
所以哈…其实嗯……还是整理一下吧…

下载东西哈,Linux的内置工具,无非就是 wget 或者 curl,只要提供正确的下载地址就可以。数据下载链接的规则也不难,就是:https://trace.ncbi.nlm.nih.gov/Traces/sra-reads-be/fastq?acc=SRRNNNNNN
PS:据说很久以前是http://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?cmd=dload&run_list=SRRNNNNNN&format=fastq
只要把SRRNNNNNN的部分替换成自己需要的 SRR# ID 就行了。比如:

wget https://trace.ncbi.nlm.nih.gov/Traces/sra-reads-be/fastq?acc=SRR14567204
# 或者
curl -O https://trace.ncbi.nlm.nih.gov/Traces/sra-reads-be/fastq?acc=SRR14567204
# 或者有了 ID List
while read line; do 
wget https://trace.ncbi.nlm.nih.gov/Traces/sra-reads-be/fastq?acc=${line}; 
done < list_of_ids

咋说呢,这种方式下载比较慢,好像文件太大还不行,5G?所以还是用 SRA ToolKit 吧

使用 Aspera Connect

说实话哈,我也不知道咋翻译,所以,哈哈哈…Aspera 使用高速文件传输技术,能够在现有的广域网(WAN)基础设施上快速传输大文件和数据集。(这东西不知道国内有没有限制…没用过)
这个东西下载数据的时候,默认是酷酷都怼到家目录,如果家目录空间不够还得这样:

cd ~
mkdir -p /project/storage/your_dir/ncbi
ln -s /project/storage/your_dir/ncbi

再这样:

prefetch --max-size 100G --transport ascp --ascp-path "/path/to/aspera/3.6.2/bin/ascp|/path/to/aspera/3.6.2/etc/asperaweb_id_dsa.openssh" SRRNNNNNN

下咋好的目录结构大致:

ncbi
└── public
    └── sra
        ├── SRR006189.sra
        └── SRR006190.sra

还得类似这样转换格式:

for sra file in ~/ncbi/public/sra/*; do
fastq-dump --split-files --origfmt --gzip ${sra};
done

所以哈,还是推荐 SRA ToolKit

一个现成的例子

全程使用命令行:

  1. 获取SRR:esearch -db sra -query PRJNA730495 | efetch -format runinfo |cut -d "," -f 1 > SRR.numbers
  2. 下载:parallel --jobs 4 "fastq-dump --split-files --origfmt --gzip {}" ::: SRR.numbers
    或者整理成一个Script:
#!/bin/bash
#SBATCH --nodes=1
#SBATCH --cpus-per-task=8
#SBATCH --time=01:00:00

module load sratoolkit
module load parallel

project='PRJNA730495'

esearch -db sra -query $project | efetch -format runinfo > runinfo.csv
cat runinfo.csv | cut -d "," -f 1 > SRR.numbers
cat SRR.numbers | parallel fastq-dump --split-files --origfmt --gzip -X 1000 {}

运行:sbatch download_raw_samples.sh

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值