軟體使用者系列(一):sra與fastq資料下載
前言
測序的生信資料往往體量龐大,動輒幾十個G不在話下,常規的下載方式往往會遇到下載速度慢或者下載不成功的問題。但是呢,在復現論文或者學習生信流程的過程中,獲取資料又是第一步的工作,所以總結了一些簡單的資料下載的方式。這裡的資料主要針對有SRA號的測序資料,這些資料是已發表文獻中的高通量測序資料,因為作者也是一枚生信小白,所以記錄成分更多。
目錄
- NCBI-SRA資料庫與EBI-ENA資料庫
- 使用 aria2 從 ENA 直接下載 fastq 檔案
- 使用 fastq-dump 從 SRA 獲取 fastq 檔案
- 使用 rsync 從 NCBI 快速獲取資料
NCBI-SRA資料庫與EBI-ENA資料庫
所有已發表文獻中的高通量測序資料大多會上傳到某個資料庫中方便其他人的下載學習與再研究,這其中受眾最廣的自然是出身NCBI的SRA資料庫。同時出身EBI的ENA資料庫對於下載資料有很多便利之處,所以在具體下載檔案之前先了解一下這兩個資料庫的情況。
補充說明,NCBI與EBI同屬於 INSDC:International Nucleotide Sequence Database Collaboration ,提交給所屬三個資料庫的資料是可以互通的。該架構內容具體如下:
SRA資料庫
SRA資料庫: Sequence Read Archive 是一個儲存高通量測序資料以及比對資訊和元資料(meta data)的資料庫,所有已經發表的文獻中的高通量測序資料基本上都會上傳到該資料庫中,畢竟這個資料庫隸屬於NCBI。

SRA資料庫介面截圖
ENA資料庫
ENA資料庫: European Nucleotide Archive 隸屬於EBI,功能上應該是與SRA類似的,但是其搜尋介面更加親民,並且對於下載fastq檔案以及檢查下載資料完整性更加友好,所以強烈推薦優先使用。具體優劣勢詳見後續說明。

ENA資料庫介面截圖
SRA資料庫的各種編號
- 元資料(meta data)
是指與測序實驗及其實驗樣品相關的資料, 如實驗目的、 實驗設計、 測序平臺、 樣本資料(物種, 菌株,個體表型等),在SRA資料庫中,meta資料分如下層次來儲存:- 研究課題(study)
在 SRA 資料庫中,研究課題的檢索號(accession number)以字首 DRP,ERP 或 SRP 開頭。 - 樣本資訊(sample)
樣本的檢索號以字首 DRS,ERS 或 SRS 開頭。 樣本資訊可以包括物種資訊、 菌株(品系)資訊、家系資訊、表型資料、臨床資料, 組織型別等。 - 實驗資訊(experiment)
實驗的檢索號以字首 DRX,ERX 或 SRX 開頭。 實驗是 SRA 資料庫的最基本單元, 就像 PubMed 資料庫的每一篇文獻是 PubMed資料庫的基本單元一樣。 一個實驗隸屬於某個研究課題,對一個或多個樣本進行測序,產生的測序資料以 runs 的形式儲存於SRA資料庫。
- 研究課題(study)
- 序列資料
包括序列及其質量資訊等,在 SRA 資料庫中以 run 為單元儲存。run 的檢索號以字首 DRR,ERR 或 SRR 開頭。
我們可以來看一個例子,這個例子來源於該文獻。給大家展示以下其中有關野生型小鼠胚胎幹細胞的相關SRA編號如下:

SRA 編號舉例
使用aria2從ENA直接下載fastq檔案
在有關資料庫和SRA編號的鋪墊之後,我們來看看怎樣來下載獲得我們所需要的資料,因為大部分的資料分析流程都要從測序資料的質控開始,而常用的質控軟體所需要的輸入檔案格式一般都是fastq, 所以我們的目標便是從一個已有的SRA號來獲得fastq資料。
ENA資料庫使用
最直接的方式便是利用ENA資料庫,我們這裡繼續使用上面提到的文獻,目標是從ENA資料庫中下載得到2個檢索號以SRR開頭的fastq資料,檢索號分別為:SRR7368841、 SRR7368842 。
首先,在資料庫頁面右上角搜尋欄輸入目標SRA檢索號,確認後稍等片刻可得結果頁面

ENA資料庫檢索結果圖
其次,點選選取 Experiment 可以獲得該實驗下所有的測序序列資料的資訊

ENA資料庫檢索結果圖
欄中獲得直接下載 fastq 檔案的FTP 地址。
獲取直接下載 fastq 檔案的FTP地址

直接獲取FTP地址
aria2 從FTP地址下載 fastq 檔案
獲得具體地址之後,我們可以通過命令列軟體進行資料的下載,這裡推薦速度飛快的aria2 軟體,linux下具體安裝方式可見該教程。
單個與多個數據下載程式碼:
#single data file downloaded into dir data_download aria2c -d $HOME/data_download/ ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR736/001/SRR7368841/SRR7368841.fastq.gz #multiple data files downloaded into dir data_download aria2c -Z -d $HOME/data_download/ ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR736/001/SRR7368841/SRR7368841.fastq.gz ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR736/002/SRR7368842/SRR7368842.fastq.gz
其中, -d 引數確定的是下載檔案儲存的地址,預設值是當前工作目錄。資料下載過程中會顯示下載進度與下載速度,可以方便時時觀察。下載的資料將會是 fastq.gz 的壓縮形式, 可以直接進行後續的分析。
ENA資料庫的另一個優勢
除了可以直接獲取得到 fastq 檔案外,使用ENA資料庫還有一個優勢是可以確認下載資料的完整性。生信資料的大體量性帶來的下載時間長(期間網路萬一不正常就會波動)可能會造成下載資料的缺失等問題,這些問題一般很難在獲得資料的初期被發現。ENA資料庫提供了md5碼這種途徑來檢查資料的完整性。
簡單來說,依據特定演算法可以從大資料檔案的資料內容計算出一個特定的md5碼,如果資料有缺失,計算所得的md5碼就會與原始的不同,所以我們可以通過計算我們下載所得資料的md5碼並與網站提供的原始md5碼進行比較來判斷下載資料是否有問題,如果相同則證明資料沒問題。
在ENA資料庫結果頁面點選資訊表坐上角的 select column 後可以選擇將 Fastq md5 展示出來

Fastq md5 選擇
針對下載所得的資料檔案,我們可以使用 md5sum 命令進行計算其md5碼。
md5sum file_name.fastq.gz
使用fastq-dump從SRA獲取fastq檔案
如果ENA上有我們所需要的資料的話,下載的過程自然是十分快捷舒服的,但是有可能資料的同步速度沒那麼快,在NCBI上傳的資料還沒同步到ENA的網站上你就要使用了怎麼辦呢?那還是老老實實回到NCBI去下載,NCBI為了方便管理下載者的流量,有其專門的下載軟體 sratoolkit 。
sratoolkit 下載與使用
sratoolkit的下載可以參照官方文件,需要注意的是下載之後的配置路徑,參照官方文件的說明應該是沒有問題的。因為本人使用的是實驗室伺服器裡已經配置好的環境,所以很輕鬆地略過了這一步驟,哈哈哈。
主要使用的工具是 prefetch 和 fastq-dump 。其中, prefetch 主要是用來從NCBI的資料庫中下載得到.sra檔案,檔案將會儲存在如下地址:
~/ncbi/public/sra/
fastq-dump 則可以將下載所得的.sra檔案轉化為.fastq檔案,可以配套 prefetch 獲得fastq檔案,也可以單獨使用下載得到fastq檔案(速度巨慢)。
NCBI 資料下載示例
無論是使用 prefetch 還是 fastq-dump , 我們都可以直接使用SRA檢索號,而不需要使用具體地址。下載示例如下:
#use prefetch and fastq-dump to get fastq.gz file into dir data_download prefetch SRR7368841 fastq-dump -o $HOME/data_download --gzip ~/ncbi/pubilic/sra/*.sra #use fastq-dump to download fastq.gz file into dir data_download fastq-dump -o $HOME/data_download --gzip SRR7368841
使用rsync從NCBI快速獲取資料
這裡應該是要挖一個坑,其實在NCBI上也可以通過尋找FTP地址進行下載。但是如果直接使用 wget 等方法直接去通過FTP地址下載的話,資料是會有丟失的。這裡有另外一種方式( rsync )可以利用NCBI中的FTP地址去下載資料,但是在NCBI上尋找SRA號對應的FTP地址比較麻煩,同時在使用 rsync 時需要對FTP地址進行一定規則的改寫,所以還是有點麻煩的。當然,這種方法的下載速度自然是要比使用 sratoolkit 快上不少。
因為種種原因(嗯,不是純粹因為懶),所以先把這個坑挖下吧,之後有時間再來填坑。但或許要等到ENA下載不了又受不了 fastq-dump 龜速的時候了吧,哈哈哈。
嗯,這就是有關sra與fastq資料下載的個人經驗了,記錄在此也希望能發揮到它能發揮的作用吧。