菜鳥自學之——SRA Toolkit 的下載和使用

guguaihezi發表於2018-07-27

菜鳥自學之——SRA Toolkit 的下載和使用

第一次寫部落格,必須mark一下:2018.07.27


sra toolkit是ncbi上將 .sra檔案轉換為 .fstaq.gz檔案的工具。
1.下載/呼叫 SRA Toolkit
可以直接在linux裡線上下載,要根據自己的系統選擇合適的安裝版本。我檢視了一下主機的linux為redhat型別,沒找到這個型別的版本,又去伺服器看了一下其他人的sratoolkit版本,都是centos_linux,因而選擇這個版本應該是合適的。

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

不清楚版本可將 2.9.2 替換成 current 。
關於呼叫,直接呼叫其他使用者路徑下的工具(locate sratoolkit)會顯示permission denied,顯然是設定了許可權,無法檢視和呼叫其他使用者home目錄下的東西。
但是問題來了,按理說這種常用的軟體公用系統(不知道這個說法對不對,計算機小白輕噴)裡肯定會有,但是我不知道怎麼用命令直接呼叫

下載好之後解壓:

 tar xzvf sratoolkit.2.9.2-centos_linux64.tar.gz

解壓縮之後就可以通過絕對路徑使用,但為了以後使用方便,可以直接用程式名呼叫,最好配置一下環境變數。

mv sratoolkit.2.9.2-centos_linux64 ~/local/app/  #移動到指定資料夾
cd ~/local/app/  #進入本地程式安裝路徑
mv sratoolkit.2.9.2-centos_linux64 sratoolkit #去掉版本號是為了避免因升級而需要修改配置檔案

此處參考> http://blog.shenwei.me/local-blast-installation/

接下來是新增環境變數:

vi ~/.bashrc  #用vi/vim編輯器修改bashrc檔案
i  #由command line進入insertion line
export PATH=$PATH:/home/urname/local/app/sratoolkit/bin
ESC, :wq  #退出vi編輯器並儲存檔案
source ~/.bashrc  #讓配置生效

上面是配置永久生效的辦法,如果只是臨時使用,直接在終端中輸入:

export PATH=$PATH:/home/urname/local/app/sratoolkit/bin

2.從NCBI的SRA庫裡下載資料
關於SRA庫的基礎知識,可以看這裡:https://shengxin.ren/article/16
我是跟著 生信技能樹 學習他們的 HiC資料分析實戰 https://vip.biotrainee.com/d/779-hic ,所以和裡面的教程一樣,我也只下載了 SRR824846一個測序結果集。
下載資料有兩種方法:

wget https://trace.ncbi.nlm.nih.gov/Traces/sra/?run=SRR824846
prefetch SRR824846

本來以為高枕無憂了,結果客戶端顯示連線超時了,只能重登重新下載,請教師兄,學習到了一個讓程式後臺執行的命令nohup,只要伺服器主機沒掉線就行,即使關閉了本地終端視窗或者斷網了也可以繼續執行命令。讓程式後臺執行的命令有好幾種,如nohup/&/disown等,disown是事後補救用的,我沒有多瞭解。一般nohup和&一起用。

nohup 命令可以使命令永久的執行下去,和終端沒有關係,退出終端也不會影響程式的執行; & 是後臺執行的意思,但當使用者退出的時候,命令自動也跟著退出。 那麼,把兩個結合起來nohup 命令 &這樣就能使命令永久的在後臺執行。

nohup prefetch SRR824846 &   

如何檢視程式?如果命令正在當前終端執行:

jobs -l  #可以檢視當前終端生效的程式

如果已經退出,又開啟新的終端:

top  #檢視所有使用者的執行程式,也可以看到自己的程式號
ps -ef|grep urname  ##只檢視自己的程式記錄

如果要終止後臺執行命令:

kill -9 程式號

又遇到了一個坑。。在上面修改環境變數的過程中,我是非常馬虎地把bashrc檔案清空後(因為之前只新增了blast的環境變數,我也沒仔細看是否還有其他內容),再新增了新的環境變數。結果使用者名稱的位置變成了-bash-4.1$。google了一下原因, 表明是

沒有執行 .bash_profile .bashrc 導致的結果。

解決辦法:查了一下網上的教程,據說在 .bash_profile裡修改PS1變數就可以了,但我的問題出在 .bashrc上,不敢再動 .bash_profile了。我肯定問題出在bashrc檔案裡,現在要做的就是把bashrc檔案恢復過來,然而我沒有備份…這裡要敲黑板,.bashrc .bash_profile等環境變數設定檔案是很重要的檔案,修改不當甚至會無法進入linux系統,所以要謹慎修改並在修改前做好備份!
用系統中儲存的.bashrc備份檔案恢復到~/目錄下

cp /etc/skel/.bashrc ~/

之後退出系統再登入,使用者名稱路徑就恢復正常了。

3.檔案拆分及格式轉換
檔案下載完成後放在了home目錄下的ncbi/public/sra 資料夾裡,可以看到新建了一個SRR824846.sra 檔案。在轉換檔案格式前要清楚sra檔案的資料型別,在下載時就能看到其為“paired-end”測序結果。二代測序主要有單端測序和雙端測序兩種方式,具體內容見:https://vip.biotrainee.com/d/127-paired-end-reads ,以及http://www.bio-info-trainee.com/298.html
使用fastq-dump拆分PE檔案時有兩種常用的引數,--split-files--split-3 ,很奇怪,查到以下解釋:

–split-spot: 將雙端測序分為兩份,但是都放在同一個檔案中
–split-files: 將雙端測序分為兩份,放在不同的檔案,但是對於一方有而一方沒有的reads直接丟棄
–split-3 : 將雙端測序分為兩份,放在不同的檔案,但是對於一方有而一方沒有的reads會單獨放在一個資料夾裡

作者:hoptop
連結:https://www.jianshu.com/p/a8d70b66794c

cd ~/ncbi/public/sra/   #將拆分檔案放在sra資料夾裡
fastq-dump --split-3 SRR824846   #將雙端測序檔案拆分為兩個reads

開啟1檔案,得到如圖結果:
現在還看不太懂
不過在上一步可以加上-gzip 命令,輸出gz的壓縮格式,好處是可以節省空間,而且比對軟體一般都支援。(參考hoptop的文章:https://www.jianshu.com/p/a8d70b66794c

相關文章