目录

一、SRA数据库

二、SRA数据库下载

1.SRA Toolkit下载数据

1.1. 下载压缩包

1.2. 解压及配置环境

1.3.下载.sra文件以及转换.fastq文件

2、wget, curl 下载数据

3、aspera下载数据

4、grabseqs下载数据

sra转化为fastq


一、SRA数据库

SRA(Sequence ReadArchive)数据库是用于存储二代测序的原始数据,包括 454,Illumina,SOLiD,IonTorrent,Helicos 和 CompleteGenomics。除了原始序列数据外,SRA现在也存在raw reads在参考基因的比对信息。

根据SRA数据产生的特点,将SRA数据分为四类:

  • Studies-- 研究课题

  • Experiments-- 实验设计

  • Runs-- 测序结果集

  • Samples-- 样品信息

SRA中数据结构的层次关系为:Studies->Experiments->Samples->Runs.

  • Studies是就实验目标而言的,一个study 可能包含多个Experiment。

  • Experiments包含了Sample、DNA source、测序平台、数据处理等信息。

  • 一个Experiment可能包含一个或多个runs。

  • Runs 表示测序仪运行所产生的reads。

SRA数据库用不同的前缀加以区分:

  • ERP或SRP表示Studies;

  • SRS 表示 Samples;

  • SRX 表示 Experiments;

  • SRR 表示 Runs;

二、SRA数据库下载

1.SRA Toolkit下载数据

SRA Toolkit是ncbi下载.sra文件和转换.fastq文件的极好工具
首先,到ncbi官网点击Download–>Download tools,找到SRA Toolkit,点击Download,找适合自己的版本,我是Ubuntu Linux64位,复制链接,在服务器上用wget下载。

1.1. 下载压缩包

mkdir ~/SRAToolkit    #先建立一个放工具的文件夹
cd ~/SRAToolkit
wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.10.9/sratoolkit.2.10.9-ubuntu64.tar.gz

1.2. 解压及配置环境

tar xzvf sratoolkit.2.10.9-ubuntu64.tar.gz

配置环境

echo 'export PATH=$PATH:$HOME/SRAToolkit/sratoolkit.2.10.9-ubuntu64/bin ' >> ~/.bashrc
source ~/.bashrc
vdb-config --interactive    #会出现一个框架,按字母x键退出,然后就可以使用啦

1.3.下载.sra文件以及转换.fastq文件

方式一:直接输入SRR号

prefetch SRR1553610    #下载.sra文件
fastq-dump --split-e ./SRR1553610/SRR1553610.sra  #将.sra文件转换成.fastq文件

方式二:当只有PRJNA号时,可通过EDirect获取runinfo或手动在SRA页面下载信息

a.bioProject页面获取

 

导出为SraAccList的txt文件,里面包含所有需下载的sra的id号,此文件为下文中的sra.ids

直接运行

prefetch --option-file SraAccList.txt

b.通过EDirect获取runinfo

要下载EDirect,具体步骤EDirect在linux和mac下的安装

esearch -db sra -query PRJNA257197  | efetch -format runinfo > runinfo.txt
$ cat runinfo.txt |head
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
SRR1972917,2015-04-14 13:59:24,2015-04-14 13:56:53,4377867,884329134,4377867,202,486,,https://sra-download.ncbi.nlm.nih.gov/traces/sra27/SRR/001926/SRR1972917,SRX994194,G5723.1.l1,RNA-Seq,cDNA,TRANSCRIPTOMIC,PAIRED,0,0,ILLUMINA,Illumina HiSeq 2500,SRP045416,PRJNA257197,2,257197,SRS908519,SAMN03254208,simple,186538,Zaire ebolavirus,G5723.1,,,,,,,no,,,,,BI,SRA178666,,public,4C15DC4E43EA2DD6DA211DCDB3E400F0,94BEB800D624CB20C04DD09D0C56BC86
SRR1972918,2015-04-14 13:58:26,2015-04-14 13:56:34,3856384,778989568,3856384,202,457,,https://sra-download.ncbi.nlm.nih.gov/traces/sra27/SRR/001926/SRR1972918,SRX994195,G5731.1.l1,RNA-Seq,cDNA,TRANSCRIPTOMIC,PAIRED,0,0,ILLUMINA,Illumina HiSeq 2500,SRP045416,PRJNA257197,2,257197,SRS908518,SAMN03254209,simple,186538,Zaire ebolavirus,G5731.1,,,,,,,no,,,,,BI,SRA178666,,public,63AE692146061962D2BA889EAF5A86CA,F910CC0D2C1F588AD0EB8C1DDE93AD14
......

所以需要提取,分隔的第一列,并且grepSRR开头的数据

cat runinfo.txt | cut -f 1 -d ","|grep SRR > sra.ids

然后下载即可

prefetch --option-file sra.ids

c.多线程下载 

cat sra.txt | parallel -j 10 "prefetch {}"

10为线程数, sra为txt格式,需要转换转换Windows回车为Linux换行sed -i 's/\r//' sra.txt

继续bash

cat sra.ids|sed 's/SRR/fastq-dump --split-files SRR/' |bash

2、wget, curl 下载数据

  第二种下载方式,wget, curl 命令直接下载。用这种方式下载数据需要知道数据的下载链接,如何获取数据链接呢?获取数据链接也有两种方式,一是通过NCBI网页,二是通过SRA toolkit。
  先说通过网页如何获取,当我们在“SRA”数据库中搜索SRR后,点击下面表格中的SRR号如“SRR14368330”,会跳转到页面如下:

切换到‘Data access’界面,就找到数据链接了,如下截图:

  通过SRA toolkit获得数据链接就更省事了,到SRA toolkit软件的bin目录下找到srapath软件,一行命令就可以了:

srapath SRR1482463
#结果如下
https://sra-downloadb.be-md.ncbi.nlm.nih.gov/sos1/sra-pub-run-5/SRR1482463/SRR1482463.2

找到链接就可以用wget来下载数据了:

wget -c -t 0 -O path/SRR1482463.sra  https://sra-downloadb.be-md.ncbi.nlm.nih.gov/sos1/sra-pub-run-5/SRR1482463/SRR1482463.2
#-c -t 配合使用可以防止下载数据的过程中链接中断的问题,-O则可以指定下载路径和文件名。

3、aspera下载数据

第三种下载方式,就是使用aspera软件来下载数据:

#软件下载与安装
$ wget https://download.asperasoft.com/download/sw/connect/3.9.1/ibm-aspera-connect-3.9.1.171801-linux-g2.12-64.tar.gz
$ tar zxvf ibm-aspera-connect-3.9.1.171801-linux-g2.12-64.tar.gz
$ bash ibm-aspera-connect-3.9.1.171801-linux-g2.12-64.sh

#数据下载
ascp -v -k 1 -T -l 200m -i <path>/asperaweb_id_dsa.openssh anonftp@ftp.ncbi.nlm.nih.gov:/blast/db/FASTA/nt.gz 

4、grabseqs下载数据

  第四种下载方式是使用grabseqs软件来下载数据,该软件是比较新的软件,可以将下载的sra数据直接转换为fastq文件,相比于上面三种省略了sra -> fastq的转换步骤,可谓是一步到位。因为该软件会调用fastq-dump直接将sra拆分成fastq,所以你得提前安装好fastq-dump。该软件是基于python3,可使用pip安装相当方便。安装和使用方法如下:

#安装
pip3 install grabseqs
#下载数据
grabseqs sra -t 6 SRR000000 SRP000000 PRJNA000000

sra转化为fastq

  当我们拿到了sra数据并不能直接使用,需要将其转为fastq文件。数据都拿到了,转化格式当然是很简单的事了,就是跑一行命令的事情。使用SRA Toolskit中的fastq-dump软件即可。值得注意地是如果数据是pair-end的格式最好加参数--split-3,这样对于一方有而另一方没有的reads就会单独放在一个文件里。

#sra -> fastq
fastq-dump SRR1482463.sra --split-3 --gzip --defline-qual '+'  -A filename -O outdir

四种方式你学会了,其实方式不重要,选择一个适合自己的方式即可,重要是能够获取到自己想要的数据,毕竟科研的本质是要数据来支持自己的研究。

注意:运行prefetch时可能出现如下报错

根据错误信息中的链接,SRA已经从HTTP转移到HTTPS,使SRA工具包的所有以前的版本都被淘汰。因此可能原因是下载的SRAtools版本过低,需要更新版本。最后注意硬盘容量。
Reference: 

https://blog.csdn.net/weixin_45214599/article/details/114847650

https://www.jianshu.com/p/b9cea71b3a56

NCBI下载SRA数据的4种方法 - 简书 (jianshu.com)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐