dino-quant 0.1.0

Experimental quantized DNA sketch prefilters for sequence-search pipelines.
Documentation
# dino-quant

Experimental quantized DNA sketch prefilters for sequence-search pipelines.

`dino-quant` compresses DNA k-mer sketch vectors into small approximate codes,
uses those codes to route reads to likely reference windows, and emits candidate
ranges for downstream exact tools. It is a prefilter: exact alignment,
classification, and biological interpretation stay outside this crate.

![dino-quant prefilter pipeline](assets/prefilter-pipeline.svg)

## Commands

```bash
cargo run -p dino-quant --release -- demo
cargo run -p dino-quant --release -- bench-fasta reference.fa.gz
cargo run -p dino-quant --release -- emit-candidates reference.fa reads.fastq
cargo run -p dino-quant --release -- emit-candidate-reference reference.fa candidates.tsv
cargo run -p dino-quant --release -- emit-protein-candidates proteins.faa queries.faa
cargo test -p dino-quant
```

## Scope

`dino-seq` is the only FASTA/FASTQ input backend. Quantized candidates are a
prefilter only; exact alignment stays downstream.

`emit-candidates` writes `target_id` with each row so
`emit-candidate-reference` can reconstruct multi-record references even when
FASTA headers share the same first token. Minimizer reference caches are tied to
the parsed reference content and are rebuilt automatically when that content
changes.

## Retrieval Modes

| Mode | Purpose |
| --- | --- |
| `scan` | Exact approximate-score scan across quantized reference windows. |
| `minimizer` | K-mer minimizer postings to reduce scored candidate windows. |
| `simhash` | SimHash bands for locality-sensitive candidate routing. |
| `mih` | Multi-index hashing over SimHash-style codes. |
| `ivf` | Coarse centroid buckets before approximate scoring. |
| `hnsw` | HNSW-style graph walk over retained window sketches. |

## Release Checks

```bash
cargo fmt --all --check
cargo test -p dino-quant
cargo clippy -p dino-quant --all-targets -- -D warnings
cargo package -p dino-quant --allow-dirty --list
```