Oligo/Adapter Assignment Evidence

This report covers fixed-window assignment of short adapter-like oligos with DotMatch’s known-target counting layer.

The synthetic lane checks exact, one-substitution, ambiguous, and unmatched adapter-like oligos. The public lane uses the fast-adapter-trimming TruSeq R1 fixture and validates DotMatch k=0 against a transparent exact-slice hash baseline over the documented fixed window.

Synthetic Command

dotmatch count --targets benchmarks/work/oligo_adapter/adapter_oligos.tsv --reads benchmarks/work/oligo_adapter/adapter_reads.fastq --sample-label oligo_adapter_fixture --target-start 0 --target-length 12 --k 1 --metric hamming --format dotmatch --out benchmarks/work/oligo_adapter/adapter_counts.tsv --summary benchmarks/work/oligo_adapter/adapter_summary.json --assignments benchmarks/work/oligo_adapter/adapter_assignments.tsv --ambiguous report --sample-qc benchmarks/work/oligo_adapter/adapter_sample_qc.tsv

Raw Rows

tool

workflow

status

targets

reads

start

length

k

metric

assigned

exact

corrected

ambiguous

unmatched

validation mismatches

dotmatch_count

synthetic_oligo_adapter_fixture

smoke

3

6

0

12

1

hamming

2

1

1

3

1

0

dotmatch_count

public_fast_adapter_truseq_r1

supported

9

10000

229

20

0

hamming

156

156

0

0

9844

0

dotmatch_count

public_fast_adapter_truseq_r1

supported

9

10000

229

20

1

hamming

159

156

3

0

9841

0

exact_slice_hash

public_fast_adapter_truseq_r1

supported

9

10000

229

20

0

exact

156

156

0

0

9844

0

Public Adapter-Prefix Lane

  • Dataset: fast-adapter-trimming 788707_20180313_S_R1.small.fastq.gz with adapters/truseq.fa target prefixes.

  • Source repository: https://github.com/linsalrob/fast-adapter-trimming

  • Source license: MIT, as reported by the upstream GitHub repository metadata.

  • Fixed window: DotMatch uses --target-start 229 --target-length 20 on R1.

  • Comparator semantics: the exact-slice hash baseline counts reads whose fixed R1 substring exactly matches a deduplicated TruSeq adapter-prefix target. It validates fixed-window assignment semantics, not trimming correctness.

Public Commands

dotmatch count --targets examples/oligo_adapter/data/adapter_oligos.tsv --reads examples/oligo_adapter/data/788707_20180313_S_R1.small.subsample10000.fastq.gz --sample-label fast_adapter_truseq_r1 --target-start 229 --target-length 20 --k 0 --metric hamming --format dotmatch --out benchmarks/work/oligo_adapter/public_fast_adapter_truseq_r1_k0_counts.tsv --summary benchmarks/work/oligo_adapter/public_fast_adapter_truseq_r1_k0_summary.json --assignments benchmarks/work/oligo_adapter/public_fast_adapter_truseq_r1_k0_assignments.tsv --ambiguous report --sample-qc benchmarks/work/oligo_adapter/public_fast_adapter_truseq_r1_k0_sample_qc.tsv
dotmatch count --targets examples/oligo_adapter/data/adapter_oligos.tsv --reads examples/oligo_adapter/data/788707_20180313_S_R1.small.subsample10000.fastq.gz --sample-label fast_adapter_truseq_r1 --target-start 229 --target-length 20 --k 1 --metric hamming --format dotmatch --out benchmarks/work/oligo_adapter/public_fast_adapter_truseq_r1_k1_counts.tsv --summary benchmarks/work/oligo_adapter/public_fast_adapter_truseq_r1_k1_summary.json --assignments benchmarks/work/oligo_adapter/public_fast_adapter_truseq_r1_k1_assignments.tsv --ambiguous report --sample-qc benchmarks/work/oligo_adapter/public_fast_adapter_truseq_r1_k1_sample_qc.tsv
python3 scripts/bench_oligo_adapter.py --include-public --metadata examples/oligo_adapter/data/metadata.json

Scope

These lanes verify fixed-window known-oligo/adapter assignment, one-substitution rescue, and explicit ambiguous/unmatched diagnostics. Run make oligo-adapter-smoke-gate for smoke evidence and make oligo-adapter-public-gate for the public lane. The public lane checks adapter-prefix assignment for the recorded R1 window. Primer removal, UMI grouping, read merging, and adapter-trimming workflows need separate comparator records.