事情是这样的,最近啊,在研究拟南芥叶片的数据,需要下载一批数据,之前整理过Sra-ToolKit的安装使用,这次干脆整理一下我知道的NCBI数据搜索和下载的方式😑
全称:Sequence Read Archive,是一个公开可访问的存储和共享高通量测序数据的中心资源库。它由美国国家生物技术信息中心(NCBI)维护,该中心是美国国家医学图书馆(NLM)的一部分。
SRA数据库:https://www.ncbi.nlm.nih.gov/sra 专注于存储来自各种平台(如Illumina、Ion Torrent、PacBio等)生成的测序数据。这些测序技术生成大量的原始序列数据,通常被称为 reads,可用于各种生物学和生物医学研究目的。SRA数据库提供了一个全面的基础设施来组织、存储和检索测序数据。它支持数据压缩技术以优化存储空间同时保持数据完整性。存储的数据带有重要的元数据注释,包括:实验详细信息,样本信息,测序平台,文库制备方法。确定了所需的数据集,用户可以下载原始测序数据,使用喜欢的生物信息学工具和 pipeline 进行分析。
用户可以通过NCBI网站或通过应用程序接口(APIs)访问SRA数据库。这两种方法都提供了强大的搜索功能,用户可以根据关键词、访问号、研究详情、生物信息或实验属性等找到特定数据集。
SRA数据库提供灵活的搜索功能,包括但不限于:关键词,数据访问标识、高级搜索构建器。确保用户可以高效地找到研究所需数据集。
用户可以在SRA数据库主页的搜索框中输入关键词⤴。可以包括基因、物种、疾病、实验条件或任何其他相关信息。数据库将返回与提供关键词匹配的结果。例如,搜索:bumble bee worker
如果要缩小搜索结果范围,可以利用搜索结果页面右侧和左侧的各种过滤器。
如果,已经知道要查找的数据集具体的 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:搜索条件复杂或需要根据多个条件限制搜索时,高级检索很有用
高级搜索包括多个字段和过滤器,用户可以结合使用这些内容构建查询。这些内容包括:
这个在平时用的比较多,经常看到文章项目下列举了一系列的SRR* Identifiers,可以用于从SRA数据库下载原始测序数据,获取方式:
搜索框中搜索 ACCESSION ID,查看搜索结果并勾选要下载的项目。然后在页面顶部:点击 “Send to” ,选中**“File”,从下拉菜单中选择“Accession List”**,点击 “Create File” 下载文件,保存到要下载原始数据的位置(比如,运行 SRA Toolkit 的位置),默认情况下,下载的文件名为Sra_Acc_List.txt
,包含一列:
SRR14567204
SRR14567205
SRR14567206
SRR14567207
SRR14567208
...
上图所示,在SRA数据库搜索了项目之后,最上方会有一行提示(红色框框),直接点击那个**“Send results to Run selector”**,后面操作也比较简单,可以下载 AccessionList 文件SRR_Acc_List.txt
,然后用 Sra-Toolkit 下载(比较建议)。当然也可以如下图:
比如,选择一个,直接下载原始的FASTQ/A等,但是有数据大小限制……好像是5G,忘记了……
使用 esearch
和 efetch
,嗯,就是在NCBI Entrez Direct utilities中的,也叫 E-utilities。
Note :
esearch
用于查询各种 NCBI 数据库,包括 SRA 数据库,检索特定信息或搜索结果。efetch
配合-format runinfo
参数,将检索匹配数据集的信息,包括运行访问权限。
安装和使用方法详见: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","-f1> SRR.numbers
结果大概这样:
SRR14567204
SRR14567205
SRR14567206
SRR14567207
...
有了**SRR#**号之后,有三种使用命令行的下载方式:1. 使用 SRA ToolKit (推荐);2. 使用 Linux 命令行工具;3. 使用 Aspera Connect
比较关键的就是安装,详见:https://github.com/ncbi/sra-tools/wiki/01.-Downloading-SRA-Toolkit 或者 Sra-ToolKit的安装使用,当工具安装好了,或者用的服务器、超算上有,则直接用。
ToolKit 中包含的工具挺多的哈,包括:prefetch
、fastq-dump
、sam-dump
、vdb-validate
、vdb-config
、fasterq-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|whileread sra;do(nohup fastq-dump --split-files $sra> sra.log 2>&1&);done
但是需要一定的计算资源
我感觉前一种方式(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 Listwhileread line;dowget https://trace.ncbi.nlm.nih.gov/Traces/sra-reads-be/fastq?acc=${line};done< list_of_ids
咋说呢,这种方式下载比较慢,好像文件太大还不行,5G?所以还是用 SRA ToolKit 吧
说实话哈,我也不知道咋翻译,所以,哈哈哈…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 filein ~/ncbi/public/sra/*;do
fastq-dump --split-files --origfmt--gzip${sra};done
所以哈,还是推荐 SRA ToolKit
全程使用命令行:
esearch -db sra -query PRJNA730495 | efetch -format runinfo |cut -d "," -f 1 > SRR.numbers
parallel --jobs 4 "fastq-dump --split-files --origfmt --gzip {}" ::: SRR.numbers
#!/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","-f1> SRR.numbers
cat SRR.numbers | parallel fastq-dump --split-files --origfmt--gzip-X1000{}
运行:sbatch download_raw_samples.sh
提示:请勿发布广告垃圾评论,否则封号处理!!