前文鏈接:
圖形化開放式生信分析系統開發 - 1 需求分析及技術實現
圖形化開放式生信分析系統開發 - 2 樣本信息處理
圖形化開放式生信分析系統開發 - 3 生信分析流程的進化
圖形化開放式生信分析系統開發 - 4 生信分析流程的圖形化
圖形化開放式生信分析系統開發 - 5 生信分析流程服務器端運行
圖形化開放式生信分析系統開發 - 6 生信分析流程批量運行與過程控制
圖形化開放式生信分析系統開發 - 7 分析報告的模板定製與自動生成
圖形化開放式生信分析系統開發 - 8 軟件穩定性測試
前文講述了從樣本信息錄入,分析流程的搭建/設計和運行,最終模板報告的定製與自動生成。爲了實現完整的自動化,本文講述如何與Illumina測序儀銜接,實現下機數據自動拆分(測試過的機型MiSeq,NextSeq500)。
一、bcl2fastq安裝與運行
說到Illumina的下機數據拆分,就一定會用到Illumina官方的軟件bcl2fastq2,目前最新版本2.20
軟件可以從Illumina官網下載,默認提供的是Linux rpm格式或者是源碼格式。
安裝
- CentOS/Redhat:
rpm -install -y bcl2fastq2_0v2.20.0.422-2_amd64.rpm
- Ubuntu 可以將rpm轉換爲deb包格式然後安裝:
sudo apt-get install alien
sudo alien bcl2fastq2_0v2.20.0.422-2_amd64.rpm
dpkg -i bcl2fastq2_0v2.20.0.422-2_amd64.deb
-源碼安裝:
## For example, you can set the environment variables as:
export TMP=/tmp
export SOURCE=${TMP}/bcl2fastq
export BUILD=${TMP}/bcl2fastq2-v2.19.x-build
export INSTALL_DIR=/usr/local/bcl2fastq2-v2.19.x
##Build and Installthe Software
${TMP}/bcl2fastq:
cd ${TMP}
tar -xvzf bcl2fastq2-v2.19.x.tar.gz
mkdir ${BUILD}
cd ${BUILD}
chmod ugo+x ${SOURCE}/src/configure
chmod ugo+x ${SOURCE}/src/cmake/bootstrap/installCmake.sh
${SOURCE}/src/configure --prefix=${INSTALL_DIR}
cd ${BUILD}
make
make install
Convert and Demultiplex BCL Files
用<runfolder>
表示下機目錄,默認用於標記樣本的SampleSheet.csv文件位置<runfolder>/SampleSheet.csv
運行:
nohub nohup /usr/local/bin/bcl2fastq \
--runfolder-dir <RunFolder>
--output-dir <BaseCalls>
--sample-sheet <runfolder-dir>/SampleSheet.csv
或者指定SampleSheet.csv文件位置:
nohub nohup /usr/local/bin/bcl2fastq \
--runfolder-dir <RunFolder>
--output-dir <BaseCalls>
實際運行命令舉例:
bcl2fastq -r 8 -p 8 -w 8 \
--no-lane-splitting \
--barcode-mismatches 1 \
--runfolder-dir /opt/ref/data/181105_NB551525_0003_AH7W7TAFXY \
--sample-sheet /opt/ref/data/181105_NB551525_0003_AH7W7TAFXY/SampleSheet.csv \
--output-dir /opt/ref/data
bcl2fastq命令參數很多,但是最常用的參數就以下幾個:
- -r, --loading-threads 加載線程數
- -p, --processing-threads 拆分數據線程數
- -w, --writing-threads 數據寫入線程數
- –no-lane-splitting 不按照lane拆分數據
- –barcode-mismatches 允許的barcode錯配數
- –runfolder-dir / -R 下機數據目錄
- –sample-sheet samplesheet文件所在位置
- –outputdir / -o 輸出目錄
二、如何識別下機數據目錄
Illumina測序儀下機數據文件夾命名: YYMMDD_machinename_XXXX_FCXXXX
- YYMMDD 爲上機日期
- machinename爲該測序儀唯一命名編號
- XXXX爲expirement ID
- FCXXXX爲flowcell 編號
如果要使用程序掃描匹配樣本系統,就需要提供至少前兩個字段作爲識別匹配。後兩個字段,獲取較難。
如何判斷測序結束?一般使用該目錄下RTAComplete.txt是否存在來判斷測序是否完成。
三、SampleSheet.csv文件格式
SampleSheet文件最常用的有版本4 / 5,字段有些差異,但是真正在數據拆分時候起作用的,上圖紅色部分,其餘並不重要。這裏爲了拆分項目通用性使用了字段 SampleProject,實際使用種大概率會出現多個項目上一張芯片。
以上SampleSheet.csv文件放在下機數據目錄裏,數據分拆後得到的數據是這樣的:
目錄結構爲:
[Sample Project]/[Sample ID]/[Sample Name]S*_R1_*.fastq.gz
記住此目錄結構,爲了拆分數據得到的數據與後續生信pipeline連接做全自動分析。
四、與系統交互從樣本信息中生成SampleSheet.csv
如果要用程序生成SampleSheet文件,這裏就會用到圖形化開放式生信分析系統開發 - 2 樣本信息處理文章裏樣本信息的字段信息。
- 上機編號即對應於Illumina測序儀下機數據目錄,前兩個字段
五、與分析流程對接,實現拆分數據與數據分析聯動
需要完成的工作:
-
請求系統根據樣本信息生成SampleSheet,並下載到本地下機數據目錄。
-
運行bcl2fastq分拆數據。
-
分拆成功後,更新系統中相關的Sample狀態,標識該樣本數據已經分拆過,避免重複運行。
-
在pipeline起始輸入端,匹配分拆後的數據輸入目錄。必要時候使用正則表達式匹配。
如:
${pn}/${id}/^${sn}_S[a-zA-Z0-9_.\-]+_R1_[0-9]+.fastq.gz$
${pn}/${id}/^${sn}_S[a-zA-Z0-9_.\-]+_R2_[0-9]+.fastq.gz$
整體的運行邏輯流程圖如下:
六、拆分運行日誌與報告保存
單純的體力勞動。上兩張圖
下載產品PPT 或加QQ羣:853718264參與討論