跳转到主要内容

使用OpenCL的代数并行SNV调用器

项目描述

ALPACA是一个针对下一代测序数据的单核苷酸变异调用器,通过通用样本过滤场景提供直观的控制,利用OpenCL在CPU、GPU或任何协处理器上加速计算,并使用基于HDF5的持久存储在几秒钟内进行分析的迭代改进。

通常,变异调用涉及将不同的样本相互过滤,例如疾病样本与正常样本,肿瘤与正常或儿童与父母。过滤可以看作是对变异位点的集合代数操作。通常,过滤是在调用之后应用的。这导致变异调用器考虑的零假设没有正确反映实际的研究问题,实际上涉及过滤。因此,控制假阳性发现率变得困难。

与其他最先进的变异调用器不同,ALPACA通过引入一个新的代数变异调用模型将过滤集成到调用中。在调用时,可以使用代数表达式如A - (B + C)指定一个过滤场景,其中A、B和C是样本。代数调用允许ALPACA报告A中变异发生的<强>后验概率,这些变异在B或C中不存在。由于概率反映了过滤,因此可以直接使用它们来<强>直观地控制假阳性发现率

ALPACA将变异调用分为预处理步骤和实际调用。预处理样本存储在HDF5索引数据结构中。在一个轻量级且高度并行的步骤中,样本索引被合并为一个优化索引。在优化索引上,变异调用只需几秒钟即可完成。添加样本后,需要重复合并和调用。其他样本的样本索引保持不变,避免了重复计算

算法和数学细节将在我的论文中描述

下一代测序分析的并行化、可扩展性和可重复性,Johannes Köster,2015(工作进行中)

先决条件

ALPACA需要

  • Linux

  • Python >= 3.3

  • Numpy >= 1.7

  • PyOpenCL >= 2013.1

  • h5py >= 1.8.4

  • samtools >= 1.0

  • mawk

  • 一个可工作的OpenCL设备(CPU、GPU、类似于Intel Xeon Phi或FPGA的协处理器)

Python 3应安装在大多数系统上。您可以通过运行以下命令使Debian和Ubuntu为安装ALPACA做好准备:

$ sudo apt-get install python3-setuptools python3-numpy python3-h5py samtools mawk

如果没有管理员权限,我们建议使用用户空间Python 3发行版,如https://store.continuum.io/cshop/anaconda

如果您想在GPU上使用ALPACA,一个配置合理的NVIDIA或AMD GPU,已安装了专有驱动程序,应该就足够了。在Ubuntu和Debian上,您可以通过以下方式安装它们:

$ sudo apt-get install nvidia-current

$ sudo apt-get install fglrx

要使用CPU与ALPACA一起使用,您需要安装OpenCL运行时。例如,您可以从这里安装AMD APP SDK(它将在任何x86 CPU上工作):http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk

安装

一旦满足先决条件,就可以使用以下命令安装和更新ALPACA:

$ easy_install3 --user -U alpaca

用法

ALPACA的用法包括三个主要步骤。

  • 样本索引

  • 索引合并

  • 调用

给定样本A的映射读取(BAM格式)和FASTA格式的参考基因组,可以使用以下命令创建样本索引:

$ alpaca index reference.fasta A.bam A.hdf5

在这里,可以调整各种参数,如样本预期的多倍性。生成的索引A.hdf5将比BAM文件小得多。通过以下方式合并样本AB的索引:

$ alpaca merge A.hdf5 B.hdf5 all.hdf5

最后,可以在合并的索引上执行调用。ALPACA允许通过命令行指定查询表达式,用加号表示并操作符,用减号表示差操作符。变异调用以VCF格式流式传输

$ alpaca call --fdr 0.05 all.hdf5 A-B > calls.vcf

在这里,我们限制假发现率低于5%。为了评估变异的生物学重要性,将其注释为附加信息(如可能包含的基因、基因编码的蛋白质的影响或它是否已知并可能与其他疾病相关)是有用的。ALPACA可以使用Ensembl变异效应预测器Web服务对VCF文件进行注释。由于VCF格式相当技术性,ALPACA可以组成一个人类可读的HTML文件来总结调用。我们可以使用Unix管道组合这两个命令

$ alpaca annotate < calls.vcf | alpaca show > calls.html

有关所有步骤的各种参数(例如如何选择计算设备)的更多信息,可以使用以下命令获得:

$ alpaca --help

新闻

2014年2月6日

ALPACA 0.3.3版本。修复了annotate子命令中的注释混乱。添加了HTML输出的列过滤器。

2014年1月13日

ALPACA 0.3.2版本。修复了链偏斜结果中的不精确性。此外,本版本引入了k-松弛交集运算符。一个位点仅当它在至少k个样本中是变异的时才包含在给定样本集的k-松弛交集中。

2014年12月2日

ALPACA 0.2.4版本。进一步改进了alpaca show的HTML输出。

2014年12月1日

ALPACA 0.2.3版本。改进了alpaca show的HTML输出。

2014年11月30日

ALPACA 0.2.2 版本发布。这个初始版本提供了我在论文“下一代测序分析中的并行化、可扩展性和可重复性”中描述的所有功能。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

alpaca-variant-caller-0.3.3.tar.gz (43.3 kB 查看散列)

上传时间