Exactly one target is compatible, so the read can be counted or written to the matching output.
Open-source known-target read assignment
See which sequencing reads match—and which do not.
DotMatch compares a chosen part of each read with a list of short DNA sequences you expect. Every read gets one clear outcome: unique, ambiguous, no match, or invalid.
Use it for CRISPR guides, inline barcodes, feature tags, primers, panel targets, and whitelist-style assays. DotMatch is not a genome aligner or basecaller.
- Release
- Versioned packages on PyPI and GHCR
- License
- Apache-2.0 open source
- Data
- Runs locally on your machine
- Citation
- Archived release with DOI

More than one target is compatible, so DotMatch keeps the read out of forced calls.
No target is close enough, so the read remains available for unmatched-read review.
The requested read window cannot be extracted, so the failure is visible in QC.
Uncertainty stays visible
Uncertain reads stay uncertain.
A target list does not make every read safe to count. DotMatch keeps the difficult cases separate so they can be reviewed instead of hidden.
More than one target fits.
The read is reported as ambiguous instead of being forced into one count.
The read window is missing.
Short reads and invalid extraction windows are reported explicitly instead of disappearing.
Correction could mix samples.
Target-library checks show when an error-correction setting could assign one sequence to multiple targets.
No expected target fits.
Unmatched-read tables preserve recurring sequences for assay, adapter, and off-target review.
How it works
Three steps, one clear result per read.
The scientific question can vary, but the assignment is simple: provide expected sequences, choose a position in the read, and inspect the result.
Provide the sequences you expect.
Start with a table of guides, inline barcodes, feature tags, primers, panel targets, or whitelist sequences.
Choose where to look in each read.
DotMatch extracts the same configured position from every read and compares it with the expected sequences.
Review every outcome.
Each read is unique, ambiguous, unmatched, or invalid. Counts, FASTQs, QC tables, and reports preserve that decision.
Where it fits
Built for familiar assay problems.
DotMatch is useful when the expected short sequences are already known and the assignment decision needs to remain inspectable.
Core facilities
Use DotMatch when sample barcodes, guide libraries, or panel targets need visible ambiguity and unmatched-read review before a result leaves the core.
Start with barcode troubleshootingCRISPR screen teams
Count known guide windows, keep MAGeCK-compatible outputs, and preserve assignment failures for methods review and downstream screen analysis.
Run the CRISPR tutorialWorkflow maintainers
Wrap stable TSV, JSON, FASTQ, and HTML artifacts in nf-core, Galaxy, Snakemake, MultiQC, or institutional pipeline templates.
See workflow examplesAssay developers
Design and audit barcode panels, test correction radius safety, and export lab-ready panel records before sequencing starts.
Review panel designMethods and evidence
Inspect the methods, limits, and outputs.
The package documents what it does, what it does not do, how releases are checked, and which artifacts support scientific and performance statements.
Scope, stated plainly
DotMatch performs deterministic assignment of a fixed read window against a known list of short DNA sequences. It keeps ambiguous, unmatched, and invalid reads visible alongside unique matches.
It is not a general aligner, basecaller, variant caller, UMI pipeline, or downstream CRISPR screen-analysis package. The linked scientific scope page describes the tested workflows and remaining limits.
Release and support
Published package, documented scope.
The current release, its files, output formats, methods, and known limits are all linked here.
- Published release
Versioned packages are available through PyPI, GitHub Releases, GHCR, Zenodo, and Bioconda. Check the release and package pages when pinning a version.
- Defined scope
The documented scope is fixed-position assignment against known short DNA targets. DotMatch is not presented as a genome aligner, basecaller, or downstream analysis package.
- Inspectable outputs
TSV, JSON, FASTQ, and HTML outputs are documented, alongside methods text, citation metadata, and recorded software versions.
- Release checks
The source archive, platform wheels, container image, documentation, and test matrix are checked before publication.
- Workflow examples
The repository includes nf-core, MultiQC, Galaxy, and Snakemake examples. They are examples maintained here, not claims of accepted upstream integration.
Workflow-friendly outputs
Use ordinary files in ordinary workflows.
DotMatch writes familiar, inspectable files rather than requiring a proprietary project format.
- count tables
- split FASTQs
- QC tables
- JSON summaries
- HTML reports
Try it locally
Start with a two-sequence check.
Install the command-line and Python package, then run a small distance check before working with FASTQ data. Your sequencing files remain on your machine.
python3 -m pip install dotmatch
dotmatch dist ACGT AGGT