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
DotMatch takes FASTQ reads and a known target list, compares the same fixed-position window in every read, and reports each read as unique, ambiguous, unmatched, or invalid
unique

Exactly one target is compatible, so the read can be counted or written to the matching output.

ambiguous

More than one target is compatible, so DotMatch keeps the read out of forced calls.

none

No target is close enough, so the read remains available for unmatched-read review.

invalid

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.

CRISPR guidesinline barcodesfeature tagsprimers / panelswhitelists

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 troubleshooting

CRISPR screen teams

Count known guide windows, keep MAGeCK-compatible outputs, and preserve assignment failures for methods review and downstream screen analysis.

Run the CRISPR tutorial

Workflow maintainers

Wrap stable TSV, JSON, FASTQ, and HTML artifacts in nf-core, Galaxy, Snakemake, MultiQC, or institutional pipeline templates.

See workflow examples

Assay developers

Design and audit barcode panels, test correction radius safety, and export lab-ready panel records before sequencing starts.

Review panel design

Methods 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.

  1. Published release

    Versioned packages are available through PyPI, GitHub Releases, GHCR, Zenodo, and Bioconda. Check the release and package pages when pinning a version.

  2. 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.

  3. Inspectable outputs

    TSV, JSON, FASTQ, and HTML outputs are documented, alongside methods text, citation metadata, and recorded software versions.

  4. Release checks

    The source archive, platform wheels, container image, documentation, and test matrix are checked before publication.

  5. 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.