由于连接测序仪的服务器不知道哪里抽了风,无法直接的生成fastq格式的文件,好久都无解,经过一段时间仍无法解决,所以采用曲线救国的方法,看能不能利用三方软件将bcl转换成fastq文件
google以后发现illumina的OLB(off-line Basecaller)软件可以实现从bcl格式转换成qseq格式,而qseq格式就可以通过简单的perl或者shell或者java脚本转换成fastq格式。还有一种策略是利用picard的IlluminaBcl2sam转换成sam格式,然后再从sam转换成fastq格式(虽然没有采用这种方法,但是隐隐的感觉该方法可能转换出来的数据不理想,而且中间生成的sam文件也比较大比较占空间,加上感觉参数指定的时候很多文件例如positionfile ,filterfile都没用上)。本人对bcl格式知道的不多,测序生成的rawdata原始文件夹有个Intensitive 而该文件夹又含有basecall文件夹和很多的positionfile,虽然不知道position file是干嘛的,但是后面采用OLB软件转换的时候会用到这些文件,basecalling文件夹下又含有不同lane的信息例如L001等,打开每个lane文件夹进去看,发现很多C打头的文件夹,这些文件夹根据我的理解就是变合成边测序产生circle文件,每个circle代表一个碱基。点开进去就是我们需要转换的bcl文件了。
下面从基本的OBL安装开始(http://support.illumina.com/documents/MyIllumina/ec3129a6-b41f-4d98-963f-668391997f1a/OLB_194_UserGuide_15009920D.pdf 这是manual)
简单说一下 ,这个安装时很麻烦的,幸亏我们服务器安装了绝大多数的包,但是仍有几个包没有安装,这么多的包得安装你没有管理员权限是很难完成的,这里稍作总结一下:
这是manual文件中涉及的需要安装的包,看一下 是不是需要很多,其中perl,python自然是最基础的,记住版本一定要大于所要求的,GNU编译器也是需要的,c++编译器也是需要安装。gnuplot是之前自己装,隐约觉得挺快就装好了,这些不懂的都可以去百度。其中比较麻烦的是Ghostscript和ImageMaker ,Ghostscript是用来转换bitmap的工具,这里也要调用,fft包官方下载的OLB 安装包下自带,需要进入fft文件夹编译安装以后才能使用。
这些依赖的软件及软件包都安装完了以后就需要安装OLB了,方法也很简单,进入OLB文件夹,输入
make
make install
如果没有报错 就基本没问题了。下面使用OLB对文件进行转换,转换的qseq文件有两种方式一种是默认的bustard的方式 也是默认的方式,产生的文件中的未测到的碱基用“.” 表示,还有一种下游的GERALD生成的文件中为测到的碱基用N表示(通过--gerald参数),如果你采用第一种,之后也还要对数据中的“.”进行替换。
这里主要用这个软件转换数据格式,所以其他的功能也不做讨论,具体看如何转换:
首先进入你的数据所在目录的下的basecall的文件夹下面,然后输入
这里值得注意的是,后面的参数需要进行更改,在指定-b和-o(表示文件输入目录和输出目录-这个必须是新建的)的同时还要制定-f和-i -p,分别表示filter文件所在位置,intensive文件和position文件所在位置,不然就会报错。
这样就会在你的输出文件夹产生一个makefile。进入你的输出文件夹cd
输入
make -j 8 (表示线程数)
就会拿到你需要的qseq文件,这步会花费很长的时间,你需要保存log文件用于检查数据有没有问题,这里也要注意文件完整性,故在跑程序之前都要检查文件是否有问题,不然中途就会中断。
产生的后的qseq文件需要进行转换
其中perl的代码如下
#!/usr/bin/perl use warnings; use strict; while (<>) { chomp; my @parts = split /\t/; print "@","$parts[0]:$parts[2]:$parts[3]:$parts[4]:$parts[5]#$parts[6]/$parts[7]\n"; print "$parts[8]\n"; print "+\n"; print "$parts[9]\n"; }
cat s_1_1_0???_qseq.txt | qseq2fastq.pl > s_1_1.fastq