15个不稳定版本 (6个破坏性更新)

0.7.0-alpha.92021年8月2日
0.7.0-alpha.72021年5月13日
0.7.0-alpha.32021年2月2日
0.6.0 2020年11月24日
0.2.0 2020年7月1日

#237 in 生物学


用于 2 crates

MIT 许可证

655KB
14K SLoC

Rust中的Handlegraph

对变异图访问和操作的libhandlegraph接口的Rust实现。

概述

该crate提供了一些特质,共同封装了handlegraph接口。虽然这些特质并不直接映射C++接口,但几乎所有功能都存在并可使用。


lib.rs:

对变异图访问和操作的libhandlegraph接口的Rust实现。

概述

该crate提供了一些特质,共同封装了handlegraph接口。虽然这些特质并不直接映射C++接口,但几乎所有功能都存在并可使用。

除了抽象特质之外,目前还有两个具体的handlegraph实现了这些特质

  • HashGraph 是一个基于HashMap的图,不采取任何措施来减少其内存占用,但速度快。
  • PackedGraph 使用打包整数向量,大大减少内存使用。

接口

handlegraph接口分为三个类别,每个类别都包含多个特质,这些特质封装了其类别所暗示功能的一部分。

HandleNodeId

核心类型,在各个特质中广泛使用,定义在 handle

  • NodeId 是一个用于节点标识的新类型
  • Handle 表示节点的特定方向
  • Edge 是一个用于特定顺序边的新类型

其他

  • conversion 包含一些从 GFA 转换为 handlegraph 并反向转换的功能
  • packedPackedGraph 所使用的打包向量集合类型实现的地方

依赖关系

~9MB
~146K SLoC