默認(rèn)從ena上直接拉取fq,而且支持多線程批量下載、斷點(diǎn)續(xù)傳、文件md5校驗和重新下載
將速鉑下載工具進(jìn)行封裝,以便高效方便地批量下載SRA測序數(shù)據(jù)。
本腳本試圖將速鉑進(jìn)行封裝,實(shí)現(xiàn)只需提供SRA的ID號,即可完成序列下載和轉(zhuǎn)換。
參考文章:SRA、SAM以及Fastq文件高速下載方法。
默認(rèn)下載源更新為ENA
ENA下載fastq文件實(shí)現(xiàn)了自動的md5校驗,且通過md5校驗信息,自動識別ID對應(yīng)的測序文件是單端還是雙端
輸入下面的命令:
git clone https://gitee.com/wangshun1121/ASCPsra.git
perl ./ASCPsra.pl -h
若一切安裝就緒,則會顯示幫助信息。若部分組件未部署好,則程序會有提示。
需要安裝Parallel::ForkManager和Parallel::Simple兩個perl module,以實(shí)現(xiàn)多個SRA并行下載。命令如下:
sudo cpan install Parallel::ForkManager
sudo cpan install Parallel::Simple
或者通過cpanm安裝(cpanm使用方法看這里):
sudo cpanm --mirror http://mirrors.163.com/cpan Parallel::ForkManager
sudo cpanm --mirror http://mirrors.163.com/cpan Parallel::Simple
官網(wǎng)下載最新版:http://downloads.asperasoft.com/en/downloads/8?list 。
或者,點(diǎn)這里通過百度云盤下載aspera-connect-3.7.4.147727-linux-64.tar.gz。
下載完成后部署aspera connect,下面的命令不要使用ROOT賬戶運(yùn)行:
wget http://download.asperasoft.com/download/sw/connect/3.7.4/aspera-connect-3.7.4.147727-linux-64.tar.gz
tar zxvf aspera-connect-3.7.4.147727-linux-64.tar.gz
bash aspera-connect-3.7.4.147727-linux-64.sh
# 查看是否有.aspera文件夾
cd # 去根目錄
ls -a # 如果看到.aspera文件夾,代表安裝成功
運(yùn)行結(jié)束,在home文件夾的 ~/.aspera/connect 中可發(fā)現(xiàn)部署的工具:
從NCBI的ftp上下載最新的sratoolkit,或者通過百度云盤下載sratoolkit.2.9.0-ubuntu64.tar.gz。安裝方式按照下面的命令進(jìn)行:
wget https://ftp-private.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-ubuntu64.tar.gz
tar zxvf sratoolkit.current-ubuntu64.tar.gz
# 永久添加環(huán)境變量
echo 'export PATH=/path/to/sratoolkit.current-ubuntu64/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
# 檢查程序是否可用
fastq-dump -h
perl ASCPsra.pl -i SRR7166333
直接將SRR7166333的fastq的序列下載在當(dāng)前目錄。RR71663331.fastq.gz和SRR71663332.fastq.gz兩個文件。還有一個md5文件。下載結(jié)束,請使用下面的命令校驗一下文件:
md5sum -c md5
SraAccList.txt中,兩個ID都是大腸桿菌的測序數(shù)據(jù)。其中SRR7167489是雙端數(shù)據(jù),ERR2002452是單端數(shù)據(jù)。
perl ASCPsra.pl -l SraAccList.txt -o ./data -p 2
通過上面的命令,直接將同時下載在./data的文件夾當(dāng)中。-p參數(shù)表示同時下載多少個ID的數(shù)據(jù)。
每個ID都有對應(yīng)的fastq.gz文件。還有一個md5文件,下載結(jié)束務(wù)必校驗一下文件完整性。
文件下載結(jié)束,可將下載命令重新運(yùn)行一遍,程序會自動檢查文件完整性,正確下載的文件會自動跳過,未正確下載的文件會繼續(xù)下載。
這個福利僅限于ENA來源的數(shù)據(jù)。
從SRA下載數(shù)據(jù),需要首先下載.sra格式的文件,然后再通過pfastq-dump(并行封裝的fastq-dump)將.sra文件轉(zhuǎn)換為fastq文件。由于不能直接拿到fastq原始數(shù)據(jù),還要經(jīng)過二次轉(zhuǎn)換,這就是我為何在這個版本中將默認(rèn)的SRA下載源修改成了ENA。
perl ASCPsra.pl -s SRA -i SRR7166333
直接將SRR7166333的fastq的序列下載在當(dāng)前目錄。產(chǎn)生SRR7166333.sra、SRR71663331.fastq.gz和SRR71663332.fastq.gz三個文件。
SRA數(shù)據(jù)源沒有給md5,因為只有完整的SRA文件才能夠成功釋放出fastq。
從SRA數(shù)據(jù)源下數(shù)據(jù),可額外設(shè)定每個SRA轉(zhuǎn)換fastq的線程數(shù),通過 -t參數(shù)指定。
perl ASCPsra.pl -l SRAacc.list -s SRA -p 4 -t 6
目前的版本中,從NCBI SRA源下數(shù)據(jù)的時候,單端數(shù)據(jù)跟雙端數(shù)據(jù)必須分放在不同表格中下載,不能同時下
針對SRA數(shù)據(jù)源,添加單端single end數(shù)據(jù),需添加-single告訴程序這是單端數(shù)據(jù)——否則下載完SRA轉(zhuǎn)換fastq的時候會出錯。(在將來的版本更新中,希望將這個參數(shù)取消,即讓程序自動識別單端與雙端)。
單端數(shù)據(jù)下載實(shí)例見:ERR2002452(SRA,ENA)。
perl ASCPsra.pl -i ERR2002452 -s SRA -single