#k-mer #graph #dna #sequencing

debruijn

用于DNA序列的工具:高效的k-mer操作、De Bruijn图构建和压缩以及DNA字符串的处理

3个版本

0.3.4 2021年9月9日
0.3.3 2021年8月27日
0.3.2 2020年6月25日

#527 in 算法

Download history 37/week @ 2024-03-11 49/week @ 2024-03-18 56/week @ 2024-03-25 124/week @ 2024-04-01 36/week @ 2024-04-08 48/week @ 2024-04-15 65/week @ 2024-04-22 108/week @ 2024-04-29 103/week @ 2024-05-06 92/week @ 2024-05-13 61/week @ 2024-05-20 60/week @ 2024-05-27 45/week @ 2024-06-03 32/week @ 2024-06-10 56/week @ 2024-06-17 53/week @ 2024-06-24

193 每月下载量
6 crates 中使用

MIT 许可证

215KB
5K SLoC

rust-debruijn

De Bruijn图构建与路径压缩库。

文档

主要功能

  • 2位打包固定长度(Kmer)和可变长度(DnaString)序列容器
  • 针对不同K值的静态编译代码路径
  • 能够在De Bruijn图中跟踪任意辅助数据
  • 可自定义的kmer计数和过滤方案,支持各种使用场景
  • De Bruijn图压缩
  • 最小子串分区以分片kmer以实现内存高效计数和De Bruijn图压缩
  • 可配置为单链或双链输入序列
  • 广泛的单元测试套件
  • 在10x Genomics的Supernova、Long Ranger、Cell Ranger和Cell Ranger VDJ管道的生产中使用。

lib.rs:

debruijn:Rust中用于DNA序列的De Bruijn图库。

此库提供从DNA序列中高效构建De Bruijn图(dBG)、跟踪与图中kmer关联的任意元数据以及执行无分支图路径的路径压缩以改善速度和减少内存消耗的工具。

大多数debruijn应用将遵循以下通用工作流程

  1. 您生成一组序列以生成dBG。
  2. 您将这些序列传递给filter_kmers函数,该函数将序列转换为kmer,并以非常可定制的方式跟踪每个kmer的“元数据”。元数据可以是读取计数、一组颜色、一组按单倍型拆分的读取计数、UMI计数等。
  3. 库将kmer转换为压缩dBG。您还可以自定义压缩dBG的规则以及如何“合并”每个kmer的元数据。

然后您可以根据自己的喜好使用最终的压缩dBG。有一些简化和重新构建图的方法,但可以进一步开发。

示例

debruijn-rs中的所有数据结构都是针对4种基本DNA字母表专门化的,并使用2位打包编码将碱基对编码为整数类型,并使用高效的反向互补、从更长序列中枚举kmer以及在不同序列之间传输数据的方法。

编码

大多数将序列数据导入库的方法都包含一个名为'bytes'的表单,该表单期望将碱基编码为整数0、1、2、3,还有一个名为'ascii'的独立表单,该表单期望将碱基编码为ASCII字母A、C、G、T。

依赖项

~2.7–3.5MB
~77K SLoC