MCPcopy Index your code
hub / github.com/10XGenomics/rust-debruijn

github.com/10XGenomics/rust-debruijn @v0.3.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.3.2 ↗ · + Follow
357 symbols 1,013 edges 11 files 120 documented · 34%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

rust-debruijn

De Bruijn graph construction & path compression libraries.

Docs

Key features

  • 2-bit packed fixed-length (Kmer) and variable-length (DnaString) sequence containers
  • Statically compiled code paths for different K values
  • Ability to track arbitrary auxiliary data through the DeBruijn graph
  • Customizable kmer counting & filtering schemes supporting a variety of use cases
  • DeBruijn graph compression
  • Minimum-substring partitioning to shard kmers for memory efficient counting and DeBruijn graph compression
  • Configurable for stranded and non-stranded input sequence
  • Extensive unit test suite
  • In production use in Supernova, Long Ranger, Cell Ranger, and Cell Ranger VDJ pipelines from 10x Genomics.

Extension points exported contracts — how you extend this code

KmerSize (Interface)
Helper trait for declaring the K value of a Kmer. Will be removed when const generics are available [15 implementers]
src/kmer.rs
Mer (Interface)
Trait for interacting with DNA sequences [7 implementers]
src/lib.rs
KmerSummarizer (Interface)
Implement this trait to control how multiple observations of a kmer are carried forward into a DeBruijn graph. [2 implementers]
src/filter.rs
CompressionSpec (Interface)
Customize the path-compression process. Implementing this trait lets the user control how the per-kmer data (of type `D` [2 …
src/compression.rs
Array (Interface)
Types that can be used as the backing store for a SmallVec
src/vmer.rs
IntHelp (Interface)
Trait for specialized integer operations used in DeBruijn Graph [5 implementers]
src/kmer.rs
Vmer (Interface)
A DNA sequence with run-time variable length, up to a statically known maximum length [5 implementers]
src/lib.rs
Kmer (Interface)
Encapsulates a Kmer sequence with statically known K. [2 implementers]
src/lib.rs

Core symbols most depended-on inside this repo

push
called by 80
src/dna_string.rs
iter
called by 62
src/dna_string.rs
get
called by 39
src/lib.rs
extend
called by 35
src/dna_string.rs
len
called by 33
src/graph.rs
len
called by 28
src/msp.rs
get_node
called by 27
src/graph.rs
len
called by 23
src/lib.rs

Shape

Method 201
Function 96
Class 47
Interface 9
Enum 4

Languages

Rust100%

Modules by API surface

src/kmer.rs73 symbols
src/lib.rs71 symbols
src/dna_string.rs59 symbols
src/graph.rs50 symbols
src/msp.rs25 symbols
src/compression.rs22 symbols
src/test.rs21 symbols
src/vmer.rs13 symbols
src/bitops_avx2.rs10 symbols
src/filter.rs9 symbols
src/clean_graph.rs4 symbols

For agents

$ claude mcp add rust-debruijn \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page