图形化开放式生信分析系统开发 - 9 Illumina测序仪测序数据自动拆分

前文链接:

图形化开放式生信分析系统开发 - 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命令参数很多,但是最常用的参数就以下几个:

  1. -r, --loading-threads 加载线程数
  2. -p, --processing-threads 拆分数据线程数
  3. -w, --writing-threads 数据写入线程数
  4. –no-lane-splitting 不按照lane拆分数据
  5. –barcode-mismatches 允许的barcode错配数
  6. –runfolder-dir / -R 下机数据目录
  7. –sample-sheet samplesheet文件所在位置
  8. –outputdir / -o 输出目录

二、如何识别下机数据目录

Illumina测序仪下机数据文件夹命名: YYMMDD_machinename_XXXX_FCXXXX

扫描二维码关注公众号,回复: 8796564 查看本文章
  • 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测序仪下机数据目录,前两个字段

五、与分析流程对接,实现拆分数据与数据分析联动

需要完成的工作:

  1. 请求系统根据样本信息生成SampleSheet,并下载到本地下机数据目录。

  2. 运行bcl2fastq分拆数据。

  3. 分拆成功后,更新系统中相关的Sample状态,标识该样本数据已经分拆过,避免重复运行。

  4. 在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参与讨论

发布了10 篇原创文章 · 获赞 2 · 访问量 923

猜你喜欢

转载自blog.csdn.net/weixin_39900139/article/details/103399210