DotMatch Evidence Notes
Use this page when writing the README, website, or release notes. It says what we can say plainly today, and where we still need more data before making a broader claim.
The assay list lives in docs/assay-evidence.json. Run
make assay-evidence-ready after changing it. The check makes sure each lane
has the basics that matter for a public claim: artifacts, commands, comparator
semantics, validation notes, and a clear next step when the evidence is not
there yet. For raw CSV files, it also checks rows, command provenance, exit
codes where present, and recorded zero-mismatch validation columns.
System Design Review
DotMatch is a deterministic known-target assignment system, not a learned classifier. The current design uses exact edit-distance semantics, indexed candidate generation, explicit ambiguity accounting, public-data benchmarks, workflow fixtures, and gate scripts because those choices keep assignment auditable and reproducible.
Applied techniques:
packed A/C/G/T indexing for exact, fixed-window Hamming
k=1..3, Levenshteink=1, and Levenshteink=2candidate pruning where the fixed window can be encoded;exhaustive scan fallback for unsupported windows so the optimized path does not change assignment semantics;
independent correctness checks against exhaustive scan and Edlib before performance rows are treated as evidence;
radius ambiguity policy by default, so a read is counted only when exactly one target lies inside the configured edit-distance radius;
Phred-quality gating for one-edit substitution and read-insertion rescue;
an experimental Phred posterior helper in the Python API for deterministic, single-window assignment with explicit ambiguous posterior-mass reporting;
barcode-panel error-sphere enumeration through
k=2, nearest-neighbor checks, reverse-complement warnings, simulation, and machine-checkable assignment-collision reports;workflow-specific comparator rows for MAGeCK, guide-counter, Cutadapt-style barcode checks, exact-slice baselines, native Edlib scan, exact hash lookup, and BK-tree baselines where the semantics are comparable;
experimental Apple Metal GPU benchmarking for packed fixed-window Hamming
k=1workloads, with CPU checksum agreement required before speed ratios are reported, including a public CRISPR extract-pack-dispatch-readback-count lane;HTML/TSV/JSON QC outputs, MultiQC/workflow examples, and autopsy reports that expose offset errors, unsafe rescue, ambiguous reads, unmatched reads, and invalid extraction windows.
Techniques deliberately not claimed:
supervised ML assignment is not currently used because the core workflow has a known target list and an explicit error model. A learned assignment layer would need labeled assay-specific training data, held-out public validation, and a clear advantage over the deterministic oracle before it could be claimed;
calibrated posterior or likelihood-based assignment is not currently claimed. DotMatch can reject one-edit substitution and read-insertion rescue when the observed edited base is above a configured Phred threshold, but this is a deterministic hard filter. It is not a target posterior probability, a calibrated sequencing-error model, or a quality-weighted confidence score;
calibrated statistical screen interpretation is left to downstream tools such as MAGeCK, BAGEL, drugZ, or CERES because DotMatch stops at read assignment and QC;
probabilistic basecalling, UMI modeling, cell-level quantification, genome alignment, variant calling, adapter trimming, and production BCL conversion are outside the current evidence boundary.
Strongest Scoped Performance Evidence
These are the strongest current performance statements. They are intentionally scoped to the benchmark rows and gates named here, not to global short-read alignment or all demultiplexing tasks.
Native fixed-window indexed assignment has comparator-backed scaling evidence against native Edlib exhaustive scan.
make native-exact-gatecurrently records large-libraryk=1rows with at most1.00verified candidates/read, large-library fixed-lengthk=2substitution rows with a minimum8.91xspeedup over Edlib and at most1.00verified candidates/read, and large-library Levenshteink=2insertion/deletion rows with a minimum8.08xspeedup over Edlib and at most1.00verified candidates/read. The generated table is indocs/benchmarks/native/README.md.Public CRISPR guide counting has the strongest end-to-end external comparator evidence.
make crispr-comparison-gaterequires two real public CRISPR datasets, repeated rows, count agreement, bounded Edlib validation with zero mismatches, and separate DotMatch-vs-Bowtie 1 Hammingk=2/k=3comparator rows with assigned-read agreement and k-specific speed floors: Hammingk=2must clear>=8xvs Bowtie 1 and Hammingk=3must clear>=2xvs Bowtie 1. The current Bowtie 1 artifact records9.71xfor Hammingk=2and the current Bowtie 1 artifact records2.36xfor Hammingk=3.The fair guide-counter compatibility lane is Hamming
k=1, no indels, best-distance fixed-window assignment. It must stay separate from the Levenshtein capability lane, which supports substitutions plus one-base insertions/deletions with explicit ambiguity reporting.
Current Defensible Statements
Statement |
Status |
Evidence |
Boundary |
|---|---|---|---|
DotMatch provides exact short-DNA global edit distance and threshold matching for known targets. |
Supported |
|
Not a genome aligner; no CIGAR/SAM/BAM support. |
The core Levenshtein |
Supported |
|
This describes the implementation of the threshold predicate. It does not make a cross-platform speed claim. |
Indexed assignment preserves native exhaustive-scan semantics for |
Supported |
|
The native gate requires zero Edlib mismatches; large-library exact rows must beat |
Public CRISPR guide-counting rows are validated. |
Supported |
|
Supports the documented MAGeCK/Yusa public-data workflow, not universal CRISPR superiority. |
Extended CRISPR comparison rows are validated. |
Supported |
|
Applies to the recorded CRISPR guide-counting lanes and their documented comparator semantics. |
DotMatch has an experimental GPU acceleration evidence lane. |
Experimental |
|
Current evidence is Apple Metal-only for packed Hamming |
FASTQ count and demux workflows can optionally gate one-edit substitution and read-insertion rescue by observed Sanger Phred quality. |
Supported |
|
This is a deterministic correction filter, not a calibrated sequencing-error probability model. Read-deletion rescue has no observed edited base to score and is not rejected by this gate. |
FASTQ count workflows can optionally reject same-length unique calls whose Phred-quality posterior is below a configured threshold. |
Experimental |
Python and CLI posterior regression tests |
The posterior model is an opt-in conservative filter over fixed-window calls. It is not calibrated public evidence, not supported for demux output routing, and not a throughput claim. |
The Python API exposes an experimental quality-aware posterior helper for one fixed-window read against known targets. |
Experimental |
|
This is a simple Phred likelihood helper with literal-byte target comparison and optional priors. It is not yet calibrated on public datasets, not used by the high-throughput CLI, and not a speed claim. |
FASTQ count and demux workflows support optional Levenshtein |
Supported |
|
|
FASTQ count supports Hamming |
Supported |
|
Same-length substitutions only, no indels. The public comparator rows are Bowtie 1 Hamming lanes, not guide-counter compatibility claims; Hamming |
DotMatch has a first paired/combinatorial fixed-window counting command. |
Supported |
|
Counts only reads where both target windows are uniquely assigned. This is not a perturb-seq expression quantification or guide-pair statistical-analysis workflow. |
DotMatch has a native fixed-position inline barcode demultiplexing command with fixed-length and auto-length barcode sheet modes, plus checked public SRP009896 exact-prefix and fixed-length Hamming |
Supported |
|
Applies to the checked SRP009896/SRR391079 |
DotMatch has a checked public lane-1 classic per-cycle tiny-BCL demultiplexing milestone. |
Supported |
|
Applies only to the public 10x tiny-BCL classic per-cycle lane-1 row and count-total validation where available. Multi-lane operation, CBCL/NovaSeq support, and production Illumina demultiplexing replacement claims require separate evidence. |
DotMatch has a checked public CRISPR Guide Capture single-guide extraction lane plus a perturb-seq-style guide/feature pair diagnostic lane. |
Gated |
|
The public row currently has one guide target, so it supports fixed-window extraction and exact-slice validation only. Useful multi-guide Perturb-seq assignment, Cell Ranger UMI/cell-level quantification, and perturbation-effect claims require additional evidence. |
DotMatch has a checked public feature-barcode per-read assignment lane. |
Supported |
|
Applies to the checked 10x TotalSeq-B antibody Feature Barcode R2 fixed-window assignment lane and exact-slice baseline. This is not Cell Ranger UMI/cell-level quantification evidence. |
DotMatch has a checked public amplicon/panel primer-start assignment lane. |
Supported |
|
Applies to the checked nf-core viralrecon ARTIC V3 Illumina R1 fixed-window primer-start assignment lane and exact-prefix baseline, plus synthetic ambiguity diagnostics. This is not amplicon consensus, variant calling, primer trimming, or clinical validation evidence. |
DotMatch has a checked public fixed-window oligo/adapter prefix assignment lane. |
Supported |
|
Applies to the checked fast-adapter-trimming TruSeq R1 fixed-window adapter-prefix assignment lane and exact-slice baseline, plus synthetic ambiguity diagnostics. This is not adapter trimming, primer removal, UMI grouping, or read-merging evidence. |
Evidence Boundaries
Area |
Check |
Boundary |
|---|---|---|
Barcode demultiplexing comparisons. |
|
The checked public lanes are SRP009896/SRR391079 exact-prefix k=0 and fixed-length Hamming k=1 evidence; the Levenshtein indel fixture remains workflow/algorithm evidence only. |
Raw BCL demultiplexing comparisons. |
|
The public tiny-BCL row shows that the classic-BCL path works on the tiny fixture. It is not enough for broad BCL comparison evidence. |
Perturb-seq comparisons. |
|
The checked public lane currently has one guide target, so it is a public extraction/validation milestone, not useful multi-guide assignment evidence. Guide-per-cell, expression-processing, and perturbation-effect claims require more data and comparator semantics. |
Feature-barcode comparisons. |
|
The checked public lane supports per-read fixed-window 10x antibody Feature Barcode assignment only. It does not support broader CITE-seq, cell-hashing, or cell/UMI quantification claims. |
Amplicon/panel comparisons. |
|
The checked public lane supports per-read fixed-window ARTIC primer-start assignment only. It does not support consensus generation, primer trimming, variant calling, or clinical interpretation claims. |
Oligo/adapter comparisons. |
|
The checked public lane supports adapter-prefix assignment only; adapter trimming, primer removal, UMI grouping, read merging, and production adapter workflow claims require separate comparator evidence. |
General aligner replacement. |
No repository check promotes this. |
DotMatch does not currently expose reference-index mapping, traceback/CIGAR, SAM/BAM, paired-end mapping, or genome-scale alignment semantics. |
Native SeqAn/Parasail comparisons. |
|
SeqAn and Parasail are not completed comparator evidence until equivalent scoring semantics, native dependency/version capture, raw CSV rows, generated reports, and zero assignment mismatches are recorded. |
Package-channel availability. |
|
Package-channel availability is distribution evidence only. It does not extend CRISPR, barcode, feature-barcode, BCL, amplicon, adapter, GPU, or aligner-comparison claims; |
Quality-aware assignment. |
Current checks cover deterministic |
Do not describe current DotMatch calls as posterior probabilities, calibrated confidence, probabilistic assignment, or quality-weighted target likelihoods. The supported behavior is a hard Phred threshold on observed edited bases for selected one-edit rescue paths. |
Rules For New Public Statements
Before adding a new README, website, or release-note claim, make sure it has:
exact command lines;
raw CSV artifacts under
benchmarks/raw/;a generated report under
docs/benchmarks/;correctness validation against the relevant oracle;
comparator versions and semantics;
a gate script when the statement is important enough to appear in the README.