虽然SOLID测序数据已经非常少见了,但偶尔研究人员会有分析的需要,现有的许多方法和工具都是基于basespace的,在这里想记录一下对于colorspace的处理方法及注意事项。
一般来讲,有两种处理colorspace文件的方式。一是转成BS的fastq格式,这样一来就可以使用我们熟悉的分析工具进行分析,二是使用专门处理CS的软件进行align,比较常见的是fastqc,cutadap,SHRiMP,sequel和BFAST ,bowtie等等。虽然第一种方法存在,但由于CS数据本身的缺陷,即它表示的意义有不确定性,不推荐使用,如下:
可以看到,一行CS的编码信息可以转成不同的BS编码的数据,因此第一种方法会产生许多不可控的错误信息。更为详细的为什么不推荐使用第一种方法可以参考这篇文档:http://seqanswers.com/forums/showpost.php?p=59156&postcount=4
因此,我主要说一下第二种方法,即使用专门处理CS的工具。上文中写道,有组多工具都可以处理CS,我推荐SHRiMP,专业认可度也比较高。
SHRiMP软件使用——中文解说
-
输入输出: fasta输入,sam输出,同时支持CS和BS的reads,默认使用的建库方式是single,如果是paired,则需要添加
mate-pair/pair-end
信息。 -
简单的了解一下软件的内部逻辑:首先通过q-gram过滤技术找到候选映射的位置,随后通过字符串匹配算法进行精确定位,并准确识别错配、微插入缺失和交叉(CS排序错误)等。
-
运行情况以及硬件依赖:SHRiMP非常强调mapping结果的敏感性,因此需要设置参数调整核数和内存以减少软件运行的时间,建议大家尽量不要在自己的机子上跑,同时说明文档中也说了,在非x86/x86-64的机子上用不了。
-
安装和编译:按照命令一步步来就行
-
mapping方法:在这个软件说明书的目录中,我们可以看到,它主要有4种使用方法,。
-
说明书中强调了SHRiMP2非常依赖内存,因此在mapping方法有符合内存要求和不符合内存要求的不同使用方法,但查看说明书可以看到,即便是符合内存要求的数据,作者也为了计算资源最大限度的使用而进行了拆分,因此,我在此记录普遍使用的代码:
$SHRIMP_FOLDER/utils/split-db.py --ram-size 14 --prefix hg18 hg18.fa #进行数据拆分
$SHRIMP_FOLDER/utils/project-db.py --shrimp-mode ls hg18-14gb-*.fa #为了提高mapping效率,避免重复匹配
for i in 1 2 3 4; do \
$SHRIMP_FOLDER/bin/gmapper-ls -L hg18-14gb-12_12_12_12seeds-${i}of4-ls \
reads.500kx2.36bp.ls.fa \
-N 8 -p opp-in -I 50,500 -m 20 -i -25 -g -40 -e -10 -E \
>map.db${i}of4.sam 2>map.db${i}of4.log
done #如果是单个机器上跑,就用循环;如果支持并行,建议并行
$SHRIMP_FOLDER/bin/mergesam reads.500kx2.36bp.ls.fa map.db?of4.sam > map.sam #最后merge结果,结果是sam文件