公開文獻的序列下載工具 Python bioinfokit + SRA Toolkit: 16S rRNA 為例 -4

定序完後的資料在哪裡 ? – SRA (Sequence Read Archive)

前一回我們探討了 NGS 從 DNA 樣本到上機 (上 Illumina 機器定序),今天找找前人上機後的資料,究竟都去哪裡了~ 如果已經有一批定序資料下載好等著你練習了,那麼就往下看下一篇XD

SRA (Sequence Read Archive) 資料庫存放全世界研究的定序資料,基本上要發有關定序資料分析結果的 Paper 通常都會要求上傳到這兒,包含 RNA seq、Single cell sequencing、Whole genome sequencing、Metagenomic、16S rRNA 等,通常–>就代表很多人不乖

從文獻取得 accession number 首先,得先在 Paper 中拿到一串 accession number,有上傳到 SRA 的 Paper 則會在文中以: Data Availability、repositories、accession number、accession SRPXXXXXX 關鍵字出現:

帶著 Accession number 去餵 SRA Run Selector

以範例 1 來說,帶著 SRP131074 餵給 SRA Run Selector:


在 Common Fields 中確認基本資訊是否與文獻提及的內容相符 (檢體類型、序列類型等),通常我還會確認是否有 Platform: ILLUMINA、LibraryLayout: PAIRED、metagenome 等關鍵字。

挑選想分析的序列資料

往下滑會看到表格,從 Library Name、Sample Name推敲每個序列檔案代表的資訊,通常會與 Paper 中分組的代號相關,好心一點會放在文獻的 Supplementary Material,實務上很多都寫得不清不楚,所以需要一點推敲,在這裡我勾擇 CC,代表 已經發展成大腸癌的患者檢體 (Colorectal Cancer):

下載 Accession List 勾選後,可以往上滑點 Accession List 下載每個序列檔案的代號:

後續 SRA Toolkit 會根據 Accession List 檔案抓取資料,偷偷點開下載的檔案,其實很單純,就是剛剛勾選的序列檔案代號。

安裝序列下載工具 Python bioinfokit & SRA Toolkit

現在帶著 Accession List 要去 Linux 準備下載序列資料啦! 16S rRNA 序列檔案大小雖然較 RNA seq 小,但是樣本數一多還是很可觀的,SRA Toolkit 提供使用者可以快速下載 NCBI SRA 資料庫上的序列資料,會依照你給的 Accession List 到 SRA database 下載資料。但是對於一次需要下載數十個甚至數百個定序資料分析,就需要 Python bioinfokit 提供批量下載的功能。

16S 的資料分析往往需要好幾十個以上的樣本菌相比較,才能看出整體菌相差異性。

下列流程是預設使用者使用 Linux,並已安裝完 Anaconda 或 Miniconda

批量下載定序資料 – Python bioinfokit

先用 conda 創造一個虛擬環境,避免跟原本的你使用的 python 環境打架。

  • 可以把 conda 想成一種包含 Python 與各類幫助分析套件的軟體,在 conda 建立虛擬環境 (就像是沙盒),可以幫助我們從事不同的分析使軟體彼此不衝突,例如: 下載序列軟體放在一個沙盒、分析序列軟體放在另一個沙盒。
conda create --name SRA_download python==3.8

會顯示的畫面 (以 miniconda 為例) :

[XXXXXX@localhost]$ conda create --name SRA_download
      Collecting package metadata (current_repodata.json): done
      Solving environment: done
 ## Package Plan ##
      environment location: /home/XXXXXX/miniconda3/envs/SRA_download
      Proceed ([y]/n)?

輸入 y 後 Enter,會顯示的畫面 :

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
  #
  # To activate this environment, use
  #
  #     $ conda activate SRA_download
  #
  # To deactivate an active environment, use
  #
  #     $ conda deactivate

創造完之後,輸入以下指令進入 SRA_download 虛擬環境 :

conda activate SRA_download

成功的話會在你的名稱前面出現 (SRA_download) :

(SRA_download) [XXXXXX@localhost ~]$

安裝 bioinfokit python 套件:

conda install -c bioconda bioinfokit

輸入 y 後 Enter,會經歷一段漫長的過程(?,直到看到這三行出現就對了~

Preparing transaction: done
Verifying transaction: done
Executing transaction: done

再裝這些套件:

pip install NumPy scikit-learn seaborn pandas matplotlib SciPy matplotlib_venn adjustText statsmodels tabulate textwrap3

跑出 Successfully 的相關訊息就全部安裝完成拉~

'Successfully' built matplotlib_venn adjustText
Installing collected packages: textwrap3, pytz, threadpoolctl, tabulate, six, pyparsing,        pillow, NumPy, kiwisolver, joblib, fonttools, cycler, SciPy, python-dateutil, patsy,            packaging, scikit-learn, pandas, matplotlib, statsmodels, seaborn, matplotlib_venn, adjustText

'Successfully' installed NumPy-1.23.2 SciPy-1.9.1 adjustText-0.7.3 cycler-0.11.0 fonttools-4.37.1 joblib-1.1.0 kiwisolver-1.4.4 matplotlib-3.5.3 matplotlib_venn-0.11.7 packaging-21.3 pandas-1.4.4 patsy-0.5.2 pillow-9.2.0 pyparsing-3.0.9 python-dateutil-2.8.2 pytz 2022.2.1 scikit-learn-1.1.2 seaborn-0.11.2 six-1.16.0 statsmodels-0.13.2 tabulate-0.8.10 textwrap3-0.9.2 threadpoolctl-3.1.0

(Renesh Bedre, 2020)

定序資料工具 – SRA Toolkit

下載 3.0.0 版本 SRA Toolkit 壓縮安裝檔到本機:

wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/3.0.0/sratoolkit.3.0.0-ubuntu64.tar.gz

解壓縮安裝檔:

tar -zxvf sratoolkit.3.0.0-ubuntu64.tar.gz

你在的目錄會多一個 sratoolkit.3.0.0-ubuntu64 資料夾,就是主程式。接著設定環境變數:

export PATH=$PATH:$PWD/sratoolkit.3.0.0-ubuntu64/bin

Reference: Github

調整預設設定

vdb-config -i

會顯示的畫面:

紅色底線的字母就代表進入需要按的按鍵:


按 T 進入 TOOLS,再按 P ,上下鍵選擇 current directory,再按 S 儲存,再按 o 代表 ok ,按兩次 Esc 即可離開。

下載小資料試試

你的目錄應該要有:

  • 最一開始下載的檔案 SRR_Acc_List.txt,將他放到 Linux 目錄,
    這邊也提供範例檔案包含六種序列 SRR_Acc_List.txt:
SRR6498087
SRR6498088
SRR6498089
SRR6498090
SRR6498091
SRR6498092

(Yang, Tzu-Wei, et al., 2019)

  • 接著我們製作一個 python 執行檔,檔名可自訂,教學方便叫做 batch_download.py,內容如下 (可以在 Linux 以 vim 創建或是在 Windows / Mac 建好傳上去)
 from bioinfokit.analys import fastq
          fastq.sra_bd(file='SRR_Acc_List.txt', t=16, other_opts='--split-files' )
  • t=16,代表使用 16 核心
  • file='SRR_Acc_List.txt',代表包含序列編號的檔案
  • other_opts='--split-files',代表輸出的檔案要將Forward Reverse分別以_1, _2 表示

執行 batch_download.py:

python batch_download.py

會顯示的畫面:

Downloading SRR6498087
Downloading SRR6498088
Downloading SRR6498089  
Downloading SRR6498090
Downloading SRR6498091
Downloading SRR6498092      

等到下一行再次出現,就代表完成啦 !

[XXXXXX@localhost ~]$

可以 ll 查看目錄是否有該檔案:

-rw-r--r--  1 XXXXXX users 28171694 Aug 23 15:10 SRR6498087_1.fastq
-rw-r--r--  1 XXXXXX users 28171694 Aug 23 15:10 SRR6498087_2.fastq
-rw-r--r--  1 XXXXXX users 26139160 Aug 23 15:11 SRR6498088_1.fastq
-rw-r--r--  1 XXXXXX users 26139160 Aug 23 15:11 SRR6498088_2.fastq
-rw-r--r--  1 XXXXXX users 64697336 Aug 23 15:13 SRR6498089_1.fastq
-rw-r--r--  1 XXXXXX users 64697336 Aug 23 15:13 SRR6498089_2.fastq
-rw-r--r--  1 XXXXXX users 28171694 Aug 23 15:10 SRR6498090_1.fastq
-rw-r--r--  1 XXXXXX users 28171694 Aug 23 15:10 SRR6498090_2.fastq
-rw-r--r--  1 XXXXXX users 26139160 Aug 23 15:11 SRR6498091_1.fastq
-rw-r--r--  1 XXXXXX users 26139160 Aug 23 15:11 SRR6498091_2.fastq
-rw-r--r--  1 XXXXXX users 64697336 Aug 23 15:13 SRR6498092_1.fastq
-rw-r--r--  1 XXXXXX users 64697336 Aug 23 15:13 SRR6498092_2.fastq    

如果發現檔案名稱並非 .gz 副檔名結尾的壓縮檔,記得將檔案做壓縮,避免後續分析報錯

gzip *.fastq

到這裡都順利,可以將 sratoolkit.3.0.0-ubuntu64.tar.gz 殘餘的安裝檔刪除。

rm sratoolkit.3.0.0-ubuntu64.tar.gz

下次需要下載序列資料時

只要啟動虛擬環境就可以從本篇的「下載小資料試試」,就能繼續分析新的資料。

conda activate SRA_download

而離開環境的方式:

conda deactivate

就會看到前面的括號環境名稱消失,就是成功離開。

拿到序列資料後,下回補充一些小知識,就準備跑分析 !


QIIME2 創業 培養 定序 彰師 微生物分析 鐵人賽系列