使用 musket 进行 reads correction

评论2,449

1. musket 简介

Musket is a an efficient multistage k-mer spectrum based corrector for illumina short read data。
其发表文献为:Liu Y, Schröder J, Schmidt B. Musket: a multistage k-mer spectrum-based error corrector for Illumina sequence data[J]. Bioinformatics, 2013, 29(3): 308-315.
该软件使用简单,能进行多线程运行,速度快。

2. musket 下载与安装

$ wget http://cznic.dl.sourceforge.net/project/musket/musket-1.1.tar.bz
$ tar zxf musket-1.1.tar.bz -C /opt/biosoft
$ cd /opt/biosoft/musket-1.1/
$ make
$ echo 'PATH=$PATH:/opt/biosoft/musket-1.1/' >> ~/.bashrc
$ source ~/.bashrc

在软件编译前,可以修改 Makefile 中第二行内容 “MACROS = -DMAX_SEQ_LENGTH=200 -DMAX_KMER_SIZE=28”。此行表示,软件允许的最大 read 长度为 200, 最大的 kmer 为 28。可以根据自己的需求修改此值。

3. musket 参数

-k int unit
此参数后有 2 个值,前者为 k-mer 的大小,默认值为 21。后者是 distinct k-mers 的数目,如果是全基因组测序的数据,则可以理解为基因组的大小。当然,由于 read 中可能存在错误,因此 distinct k-mers 的数目比基因组要大。如果内存够用,则我个人推荐设置为基因组大小的 2 倍。该值的设置主要用于平衡内存的消耗,对结果无影响。

-o str
此参数设置出处文件的文件名。设置此参数后,则不管输入文件有多少,只会输出一个文件。此参数和下一个参数 "-omulti" 是互斥的,仅能设置其中一个。

-omulti str
此参数设置出处文件的文件名。设置此参数后,每个输入文件都会对应一个输出文件。

-p int
程序能使用的线程数。默认值为 2。该值要设置为 >= 2。

-zlib int
设置输出的文件是否压缩,默认值为 0, 即不压缩。

-maxtrim int
允许 trim 掉的最大碱基数。该参数默认值为 0, 即表示不进行 trim。若此参数不为 0, 则程序在对一个 read 进行 error correction 后,再对该 read 进行 trim。trim 的方法为:程序寻找此 read 中没有错误碱基的子序列,然后取出最长的子序列,若最长子序列长度满足此参数的设定,则进行 trim,若不满足参数设定,则不进行 trim。

-inorder
此参数是输出文件的 reads 顺序和输入文件一致。在进行 paired reads 的修正时,一定要加上该参数。

-lowercase
是输出文件中的被修正的碱基为小写字母。默认值为 0 。

-multik bool
设置是否可以使用多个 k-mer sizes 来进行 error correction。默认值为 0。当设置为 1 时, 则可以设置多个 k-mer 值,如 "-k 21 536870912 -k 23 268435456"。

4. 常用的一些例子

$ musket -k 21 536870912 -p 12 reads.fa reads2.fa -o output.fa
$ musket -p 12 reads.fa reads2.fa -o output.fa
$ musket reads.fa reads2.fa -o output.fa -inorder
$ musket lib1_reads1.fastq lib1_reads2.fastq lib2_reads1.fastq lib2_reads2.fastq -omulti output -inorder

上述命令生成 4 个文件 output.0 output.1 output.2 output.3 按顺序分别对应前 4 个输

原文来自:http://www.chenlianfu.com/?p=2122

发表评论

匿名网友