1 个不稳定发布
使用旧的 Rust 2015
0.1.0 | 2015年6月11日 |
---|
#313 在 生物学
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