使用OpenCL的大规模并行GPU读取映射器。
项目描述
PEANUT是一个用于DNA或RNA序列读取的读取映射器。读取映射是将生物DNA或RNA测序读取与已知参考基因组对齐的过程。
通过利用现代图形处理器的大规模并行性和一种新颖的索引数据结构(q组索引),PEANUT在速度上优于当前的BWA MEM、Bowtie2和RazerS3等读取映射器,同时保持它们的准确性。因此,PEANUT允许报告读取的最佳匹配或所有匹配。
当使用PEANUT时,请引用我们的文章
Köster J, Rahmann S (2014). 基于q组索引和PEANUT的大规模并行GPU读取映射。PeerJ 2:e606 http://dx.doi.org/10.7717/peerj.606
要求
POSIX兼容的操作系统(例如Linux、MacOS X、FreeBSD)
带有最新专有驱动程序且至少有1.5GB RAM的NVIDIA GPU(这可能在AMD驱动程序变得更加成熟时发生变化)
Python >= 3.2
Numpy >= 1.7
Cython >= 0.19
PyOpenCL >= 2013.1
安装
如果尚未安装,您将需要专有NVIDIA驱动程序、Python3、setuptools、Cython、Numpy和PyOpenCL。在Ubuntu或Debian基于的系统上,可以使用以下命令安装NVIDIA驱动程序
$ sudo apt-get install nvidia-current
需要管理员权限。有管理员权限时,您应通过以下命令安装setuptools、Cython和Numpy
$ sudo apt-get install python3-setuptools python3-numpy cython
没有管理员权限时,您可以使用类似于https://store.continuum.io/cshop/anaconda的用户空间Python 3发行版。
您可以使用setuptools提供的easy_install3工具安装PEANUT。所有缺少的依赖项将自动安装
$ easy_install3 --user peanut
从setup.py手动安装时,只需执行以下命令
$ python3 setup.py install --user
要更新PEANUT,请执行
$ easy_install3 -U peanut --user
用法
PEANUT将以命令行工具的形式提供。要索引参考基因组genome.fasta,请执行以下命令
$ peanut index genome.fasta genome.index.hdf5
要将成对末端读数reads.1.fastq和reads.2.fastq映射到已索引的参考基因组上,使用以下调用
$ peanut map --threads 8 --insert-size 200 --insert-size-error 50 genome.index.hdf5 reads.1.fastq reads.2.fastq | samtools view -Sb - > mapped.bam
这里,预期插入大小为200,容忍度为50。定义预期插入大小是PEANUT能够正确检测成对读数所必需的。在这里设置错误的插入大小可能会导致性能下降,因为PEANUT将通过执行额外的比对来尝试挽救未正确配对的读数。如所见,PEANUT以SAM格式输出命中结果。因此,输出需要通过samtools转换为BAM文件。
默认情况下,PEANUT会报告读数的最佳命中和所有同等效果的命中。或者,可以配置PEANUT报告所需数量的同等效果命中的层次结构
$ peanut map --strata <N> ...
这里,N是所需层次结构的数量,其中N=all告诉PEANUT报告读数的所有命中,直到给定的错误容忍度。
PEANUT在GPU和CPU内存中缓冲读数和命中。PEANUT的默认缓冲设置针对至少有1.5GB内存的GPU和16GB内存的CPU进行了优化(但8GB也足够)。您可以降低这两个缓冲区大小以适应较弱的系统,例如
$ peanut map --read-buffer 100000 --hits-buffer 500000 ...
然而,这可能会降低性能,因为GPU上的并行性受到的影响。有关进一步的帮助,请执行
$ peanut --help
常见问题解答
以下问题可能具有普遍兴趣。
PEANUT的资源需求是什么?
使用默认设置,它需要16GB的RAM用于CPU和一个具有1.5GB RAM的不错的NVIDIA GPU。
一次可以映射多少个读数?
默认情况下,PEANUT每次映射一百万个读数。对于成对末端,每端映射五十万个。这会影响使用的内存量,并且可以根据上述内容进行调整。
您如何决定要报告哪个命中是正确的?
与参考的百分比同源性最高的命中被报告为最佳命中。对于成对末端读数,正确配对的同源性百分比会相加以做出此决定。如果没有正确配对的命中,PEANUT会尝试在给定的预期插入大小内进行比对,以挽救最佳命中的配对。在报告多个命中时,它们会被排序到同等得分的层次结构中,并报告给定的层次结构数量(见上文)。
我想修改PEANUT。我该如何开始?
您可以下载源代码或从Git中检出(见上文)。然后修改您想要的内容,并执行以下命令,指示Python自动重建和安装所有更改的内容
$ python3 setup.py install
新闻
2015年7月16日 |
PEANUT的1.3.7版本。修复了cigar字符串计算中的错误,这可能导致某些情况下的错位比对。 |
2015年4月25日 |
PEANUT的1.3.6版本。允许从命令行选择设备类型。这应该使PEANUT能够在其他OpenCL设备上运行。尽管算法的性质最适合GPU,但这也适用。 |
2014年11月9日 |
PEANUT的1.3.5版本。将缺少的.pyx和.pxd文件添加到通过Pypi分发的源tarball中。 |
2014年9月5日 |
PEANUT的1.3.2版本。修复了导致不均匀读数数量的无效OpenCL工作组大小的错误(特别感谢Sean Li报告此错误)。 |
2014年8月18日 |
PEANUT的1.3.1版本。为成对末端测序添加了救援模式。 |
2014年7月7日 |
PEANUT的1.2版本。改进了映射质量估计,以反映Heng Li在MAQ论文中定义的原始后验概率。 |
2014年5月26日 |
PEANUT的1.1版本。减少了内存使用(如果幸运的话,最多减少一半)。 |
2014年5月16日 |
PEANUT的1.0.3版本。更改了map子命令的参数顺序,以与其他映射器保持一致。 |
2014年5月7日 |
PEANUT 1.0.2 版本。针对配对末端读数的对齐选择进行了更多修复。修复了缺失导入和未考虑 –query-buffer 的问题。 |
2014年4月30日 |
PEANUT 1.0.1 版本。改进了 SAM 输出中的标志使用。根据论文重新调整了映射质量。修复了选择错误配对作为最佳对齐的罕见情况。 |
项目详情
peanut-1.3.7.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 50f81a1bcb0669ad50e1ed9eceb8a8566f6d937672ecf4abec8e638718a5f4df |
|
MD5 | e69d2ed05d115c32311a5b760bb6c5d1 |
|
BLAKE2b-256 | f6505fcc48d40c1ca876e4dfc9f79cf38f7b1a8adc75fb70ba52730ff7779b95 |