從NCBI-SRA和EBI-ENA數(shù)據(jù)庫下載數(shù)據(jù)

一、簡介

1.NCBI-SRA 數(shù)據(jù)庫

SRA: Sequence Read Archive: It belongs to NCBI (National Center for Biotechnology Information), is a database storing high throughput sequencing (HTS) raw data, alignment information and metadata. Almost all HTS data in published publications will be asked uploading to here, and stored as .sra compressed file format.

SRA數(shù)據(jù)庫: Sequence Read Archive:隸屬NCBI (National Center for Biotechnology Information),它是一個保存大規(guī)模平行測序原始數(shù)據(jù)以及比對信息和元數(shù)據(jù) (metadata) 的數(shù)據(jù)庫,所有已發(fā)表的文獻中高通量測序數(shù)據(jù)基本都上傳至此,方便其他研究者下載及再研究。其中的數(shù)據(jù)則是通過壓縮后以.sra文件格式來保存的,SRA數(shù)據(jù)庫可以用于搜索和展示SRA項目數(shù)據(jù),包括SRA主頁和 Entrez system,由 NCBI 負責維護。SRA數(shù)據(jù)庫中的數(shù)據(jù)分為Studies, Experiments, Samples和相應的Runs四個層次:

  • Study:accession number 以 DRP,SRP,ERP 開頭,表示的是一個特定目的的研究課題,可以包含多個研究機構(gòu)和研究類型等。study 包含了項目的所有 metadata,并有一個 NCBI 和 EBI 共同承認的項目編號(universal project id),一個 study 可以包含多個實驗(experiment)。

  • Sample:accession number以 DRS,SRS,ERS 開頭,表示的是樣品信息。樣本信息可以包括物種信息、菌株(品系) 信息、家系信息、表型數(shù)據(jù)、臨床數(shù)據(jù),組織類型等??梢酝ㄟ^ Trace 來查詢。

  • Experiment:accession number 以 DRX,SRX,ERX 開頭。表示一個實驗記載的實驗設(shè)計(Design),實驗平臺(Platform)和結(jié)果處理 (processing)三部分信息。實驗是 SRA 數(shù)據(jù)庫的最基本單元,一個實驗信息可以同時包含多個結(jié)果集(run)。

  • Run:accession number 以DRR,SRR,ERR 開頭。一個 Run 包括測序序列及質(zhì)量數(shù)據(jù)。

Submission:一個 study 的數(shù)據(jù),可以分多次遞交至 SRA 數(shù)據(jù)庫。比如在一個項目啟動前期,就可以把 study,experiment 的數(shù)據(jù)遞交上去,隨著項目的進展,逐批遞交 run 數(shù)據(jù)。study 等同于項目,submission 等同于批次的概念。

2.EBI-ENA 數(shù)據(jù)庫

ENA: European Nucleotide Archive: It belongs to EBI (European Bioinformatics Institute), although it has the same funtion with SRA, more annotations and friendlier website make it preferable. What’s more, you could download directly fastq.gz files from it.

ENA數(shù)據(jù)庫:European Nucleotide Archive:隸屬EBI (European Bioinformatics Institute),功能等同SRA,并且對保存的數(shù)據(jù)做了注釋,界面相對于SRA更友好,對于有數(shù)據(jù)需求的研究人員來說,ENA數(shù)據(jù)庫最誘人的點應該是可以直接下載fastq (.gz)文件,由 EBI 負責維護。

兩者在主要功能方面非常類似,同時數(shù)據(jù)互通。

二、數(shù)據(jù)下載

1. sra文件下載方式

下載.sra文件是為了獲取該sra相對應的fastq或者sam文件,通過文件格式轉(zhuǎn)換就可以和自己的pipeline對接上,用于直接分析,所以:

第一步,我們需要到SRA或者ENA上搜索我們選擇好的SRR號或者SRS號或者SRP號,先在ENA上搜索,如沒有再去SRA上搜索,因為ENA下載比SRA快。

第二步,下載數(shù)據(jù),從 SRA 數(shù)據(jù)庫下載數(shù)據(jù)有多種方法。

  • ascp快速下載 sra 文件;
  • wget或curl等傳統(tǒng)命令從 FTP 服務器上下載 sra 文件(但是wget和curl下載的sra文件有時候會不完整);
  • NCBI的sratoolkit 工具集中的prefetch、fastq-dump和sam-dump也支持直接下載,
  • biostar handbook中有一個wonderdump腳本也方便下載數(shù)據(jù);

1.1 Aspera

Aspera Connect軟件,這是IBM旗下的商業(yè)高速文件傳輸軟件,隨著高通量數(shù)據(jù)的大量產(chǎn)生,從而對于大文件快速傳輸?shù)男枨?,開始應用到生物領(lǐng)域,與NCBI和EBI有協(xié)作合同,我們可以免費使用它下載高通量測序文件,體驗飛一般的感覺,速度可飚至300-500M/s。下載完成后,本地用fastq-dump提取fastq文件,用sam-dump提取SAM文件。

傳統(tǒng)的FTP、HTTP等數(shù)據(jù)傳輸協(xié)議都是基于TCP的,TCP在遠距離數(shù)據(jù)傳輸中存在一些先天的不足,文件越大、距離越遠,其丟包、延時等問題對于傳輸速度和效率的影響就越大。

(1)Aspera的安裝

下載鏈接

#download aspera lastest version:
wget https://download.asperasoft.com/download/sw/connect/3.8.1/ibm-aspera-connect-3.8.1.161274-linux-g2.12-64.tar.gz

tar xzvf ibm-aspera-connect-3.8.1.161274-linux-g2.12-64.tar.gz

#install aspera in server:
sh ibm-aspera-connect-3.8.1.161274-linux-g2.12-64.sh

#查看是否有.aspera文件夾  

cd         # 去根目錄 
ls -a     # 如果看到.aspera文件夾,代表安裝成功

# 永久添加環(huán)境變量
echo 'export PATH=~/.aspera/connect/bin:$PATH' >> ~/.bashrc  && cp ~/.bashrc~/.bash_profile

source ~/.bashrc ~/.bash_profile

# 查看幫助文檔
ascp --help 

ascp的用法(在線文檔):

ascp [參數(shù)] 目標文件 目標地址

常用參數(shù)
-v verbose mode 嘮叨模式,能讓你實時知道程序在干啥,方便查錯。
-T 取消加密,否則有時候數(shù)據(jù)下載不了
-i 提供私鑰文件的地址,免密從SRA和ENA下載,不能少,地址一般是~/.aspera/connect/etc中的asperaweb_id_dsa.openssh文件
-l 設(shè)置最大傳輸速度,一般200m到500m,如果不設(shè)置,反而速度會比較低,可能有個較低的默認值
-k 斷點續(xù)傳,一般設(shè)置為值1
-Q 用于自適應流量控制,磁盤限制所需
-P 用于SSH身份驗證的TCP端口,一般是33001

(2)ascp 進行SRA數(shù)據(jù)庫下載

ps:記住,SRA數(shù)據(jù)庫的數(shù)據(jù)的存放地址是ftp-private.ncbi.nlm.nih.gov或者ftp.ncbi.nlm.nih.gov,SRA在Aspera的用戶名是anonftp,下載范例:

ascp -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh anonftp@ftp.ncbi.nlm.nih.gov:/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976573/SRR2976573.sra ~/rawdata/ascp/
 
#或者
ascp -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh anonftp@ftp-private.ncbi.nlm.nih.gov:/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976573/SRR2976573.sra ~/rawdata/ascp/

注意:anonftp@ftp-private.ncbi.nlm.nih.govanonftp@ftp.ncbi.nlm.nih.gov后面是“ : ”號,不是路徑/!

熟悉的人應該知道,NCBI-SRA數(shù)據(jù)庫的sra文件前面的地址都是一樣的/sra/sra-instant/reads/ByRun/sra/SRR/...,可以根據(jù)需要下載的sra文件來編寫腳本進行批量下載sra文件!

/sra/sra-instant/reads/ByRun/sra/{SRR|ERR|DRR}/<first 6 characters of accession>/<accession>/<accession>.sra

因為sra文件前面的地址是一樣的,除了后兩個字段,所以也可以通過把sra文件的id寫到一個文檔,使用ascp批量下載文檔中所有的sra文件,舉例如下:

SRR_Download_List中包含如下:

/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976568/SRR2976568.sra
/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976569/SRR2976569.sra 
/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976570/SRR2976570.sra 
/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976571/SRR2976571.sra 
/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976572/SRR2976572.sra 
/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976573/SRR2976573.sra

使用 ascp批量下載該List下的sra文件:

ascp  -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh  --mode recv --host ftp-private.ncbi.nlm.nih.gov --user anonftp --file-list SRR_Download_List  ~/rawdata/ascp/

#或者,host不同的情況下:
ascp  -v -QT -l 400m -P33001 -k1 -i  ~/.aspera/connect/etc/asperaweb_id_dsa.openssh  --mode recv --host ftp.ncbi.nlm.nih.gov --user anonftp --file-listSRR_Download_List   ~/rawdata/ascp/
(3)sratoolkit進行SRA數(shù)據(jù)庫下載

NCBI 開發(fā)了 sratoolkit 工具來幫助處理 SRA 數(shù)據(jù),正確配置后可以很方便的下載 SRA 數(shù)據(jù)??梢灾苯訌?NCBI 上下載。最新的源碼可以在 Github 獲得。

另外,如果你安裝并設(shè)置了 Aspera Connect,那么 prefetch 會優(yōu)先使用ascp方式來下載,如果沒有安裝或則ascp下載失敗,則切換成 HTTP 方式下載 sra 數(shù)據(jù)。另外 fastq-dump 命令(大概的命令)也能從遠端直接下載數(shù)據(jù),加上-X 1參數(shù),會預先下載最前的5個 reads,加上-Z參數(shù),則會將這些 reads 打印到終端輸出。

/path of sratoolkit/prefetch -t ascp -a “~/.aspera/connect/etc/asperaweb_id_dsa.openssh” SRR2976573

/path of sratoolkit/fastq-dump -X 5 -Z SRR2976573

批量下載

cat sra.txt
SRR10951024
SRR10951025
SRR10951026
SRR10951027
SRR10951028
SRR10951029
SRR10951030
SRR10951031
SRR10951032
SRR10951033
SRR10951034
SRR10951035
SRR10951036
SRR10951037
SRR10951038


/path of sratoolkit/prefetch --option-file sra.txt

/path of sratoolkit/fastq-dump --fasta "default"  SRR10951038/SRR10951038.sra

(4)ascp進行ENA數(shù)據(jù)庫下載

從ENA數(shù)據(jù)庫進行下載,ENA數(shù)據(jù)庫的數(shù)據(jù)存放位置是fasp.sra.ebi.ac.uk,ENA在Aspera的用戶名是era-fasp,era-fasp@fasp.sra.ebi.ac.uk。如果要從ENA數(shù)據(jù)庫下載SRR2976573,我們先搜索:

image

從截圖中,我們可以發(fā)現(xiàn)我們可以自己設(shè)定顯示哪些title(如:FASTQ files (Aspera)、FASTQ files (FTP)、NCBI SRA file (FTP)、NCBI SRA file (Aspera))在表格中,再點擊下載TEXT,可以在本地保存需要的信息,以便后期的數(shù)據(jù)下載。

單個數(shù)據(jù)下載例子,可以是sra文件,也可以是fastq.gz文件:

sra文件下載:

ascp -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:/vol1/srr/SRR297/003/SRR2976573 ~/rawdata/ascp/

FASTQ文件下載;

ascp -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:/vol1/fastq/SRR297/003/SRR2976573/SRR2976573_1.fastq.gz ~/rawdata/ascp/

ascp -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:/vol1/fastq/SRR297/003/SRR2976573/SRR2976573_2.fastq.gz ~/rawdata/ascp/

批量從ENA下載數(shù)據(jù),比如我們在ENA搜索SRP067062,我們得到如下截圖:

image

結(jié)果設(shè)置顯示項目,再下載TEXT,我們可以得到:

image

分為SRA文件的txt和FASTQ文件的TXT:

ENA-Aspera-FASTQ.txt:

/vol1/fastq/SRR297/002/SRR2976562/SRR2976562_1.fastq.gz

/vol1/fastq/SRR297/002/SRR2976562/SRR2976562_2.fastq.gz

/vol1/fastq/SRR297/003/SRR2976563/SRR2976563_1.fastq.gz

/vol1/fastq/SRR297/003/SRR2976563/SRR2976563_2.fastq.gz

/vol1/fastq/SRR297/008/SRR2976568/SRR2976568_1.fastq.gz

/vol1/fastq/SRR297/008/SRR2976568/SRR2976568_2.fastq.gz

/vol1/fastq/SRR297/009/SRR2976569/SRR2976569_1.fastq.gz

/vol1/fastq/SRR297/009/SRR2976569/SRR2976569_2.fastq.gz

/vol1/fastq/SRR297/002/SRR2976572/SRR2976572_1.fastq.gz

/vol1/fastq/SRR297/002/SRR2976572/SRR2976572_2.fastq.gz

/vol1/fastq/SRR297/003/SRR2976573/SRR2976573_1.fastq.gz

/vol1/fastq/SRR297/003/SRR2976573/SRR2976573_2.fastq.gz

ENA-Aspera-SRA.txt:

/vol1/srr/SRR297/002/SRR2976562

/vol1/srr/SRR297/003/SRR2976563

/vol1/srr/SRR297/008/SRR2976568

/vol1/srr/SRR297/009/SRR2976569

/vol1/srr/SRR297/002/SRR2976572

/vol1/srr/SRR297/003/SRR2976573


批量下載代碼:

ascp -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh--mode recv --host fasp.sra.ebi.ac.uk --user era-fasp --file-list ENA-Aspera-FASTQ.txt ~/rawdata/ascp/

上面代碼下載FASTQ.gz文件,下面代碼下載的是SRA文件;

ascp -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh --mode recv --host fasp.sra.ebi.ac.uk --user era-fasp --file-list ENA-Aspera-SRA.txt ~/rawdata/ascp/


遇到的問題

ascp下載ENA數(shù)據(jù)的時候有可能會出現(xiàn)Session Stop,解決方案:

第一、把ascp 的-l 不要設(shè)置的太大了,一般設(shè)置為500m就可以了;

第二、在root權(quán)限下設(shè)置udp端口,使用iptable設(shè)置如下:

iptables -I INPUT -p udp --dport 33001 -j ACCEPT

iptables -I OUTPUT -p udp --dport 33001 -j ACCEPT

總結(jié)

Aspera Connect的下載速度是最快的,相對于sratoolkit的套件下載和wget或者curl下載;并且Aspera的下載可以下載fastq文件和SRA文件,免去了SRA轉(zhuǎn)至FASTQ的過程,該過程很耗時,特別耗時!

參考資料

https://blog.csdn.net/herokoking/article/details/78890567

https://ngs-data-for-pathogen-analysis.readthedocs.io/zh_CN/latest/chapter_01/01_get_data.html

https://anjingwd.github.io/AnJingwd.github.io/2017/08/06/SRA%E6%A0%BC%E5%BC%8F%E6%95%B0%E6%8D%AE%E5%8A%A0%E9%80%9F%E4%B8%8B%E8%BD%BD%E6%89%93%E5%8C%85%E8%A7%A3%E5%86%B3/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容