#variant #calling #bioinformatics #variant-calling

nightly bin+lib alpaca

ALPACA 是一种从下一代测序数据中调用基因组变异数据(单核苷酸和小插入缺失)的调用器,它采用了一种新的代数方法来将基于样本的过滤纳入调用过程。这允许直观地控制任意过滤场景的 FDR。

1 个不稳定发布

使用旧的 Rust 2015

0.1.0 2015年6月11日

#313生物学

MIT 许可证

285KB
907

ALPACA - 代数并行变异数据调用器

ALPACA 是一种从下一代测序数据中调用基因组变异数据(单核苷酸和小插入缺失)的调用器。与其他变异数据调用器相比,它有两个主要的特点:

  • ALPACA 将对样本的任意过滤纳入调用过程。这是通过一种表达性强的代数查询语言完成的。它计算每个位点的后验概率,以判断该位点是否与过滤查询中描述的行为一致。如果这个概率足够小,则该位点被调用。
  • 由于过滤是零假设的一部分,因此控制 FDR 变得容易且直观。

Alpaca 将调用分为三个步骤。

  • 将每个样本预处理为 BCF 文件,
  • 将预处理后的样本合并到一个 BCF 文件中,其中只包含相关位点,
  • 在合并的 BCF 文件上进行调用。

这种分离允许以后添加样本而无需重新进行所有计算。由于大部分工作都是在预处理阶段完成的,因此最终的调用变得轻量级,并且可以在几秒钟内用不同的参数重复进行。代数查询语言允许灵活地模拟调用场景,例如

  • 调用孩子的所有新突变:'child - (mother + father)'
  • 调用至少在样本组 s1、s2、...、s5 中的 3 个样本中反复出现的所有变异:'s1 x s2 x s3 x s4 x s5 with k = 3'

代数变异数据调用的完整描述可以在我的论文中找到

Köster, J. Next-Generation Sequencing Analysis 中的并行化、可扩展性和可重现性。博士学位论文,德国多特蒙德工业大学,2014年。ISBN:978-3737537773。

如果您使用 ALPACA,请目前引用该论文。

示例用法

一键完成

$ alpaca preprocess --threads 8 A.bam B.bam C.bam | alpaca filter | alpaca call --fdr 0.05 'A - (B + C)' > calls.bcf

单独预处理和合并(这允许添加样本或更改查询而无需冗余计算;alpaca 调用通常需要几秒钟)

$ alpaca preprocess --threads 8 A.bam > A.bcf
$ alpaca preprocess --threads 8 B.bam > B.bcf
$ alpaca preprocess --threads 8 C.bam > C.bcf
$ alpaca merge --threads 8 A.bcf B.bcf C.bcf > all.bcf
$ alpaca call --threads 8 --fdr 0.05 'A - (B + C)' < all.bcf > calls.bcf

依赖项

~27MB
~525K SLoC