Feature Barcode Assignment Evidence
This report covers feature-barcode assignment evidence for DotMatch’s known-target counting layer.
The synthetic lane checks exact, ambiguous, and unmatched feature IDs. The public lane uses a 10x Genomics TotalSeq-B antibody Feature Barcode R2 subsample and validates DotMatch k=0 against a transparent exact-slice hash baseline over the documented feature-reference window.
Synthetic Command
dotmatch count --targets benchmarks/work/feature_barcode/feature_barcodes.tsv --reads benchmarks/work/feature_barcode/feature_reads.fastq --sample-label feature_barcode_fixture --target-start 0 --target-length 10 --k 1 --metric hamming --format dotmatch --out benchmarks/work/feature_barcode/feature_counts.tsv --summary benchmarks/work/feature_barcode/feature_summary.json --assignments benchmarks/work/feature_barcode/feature_assignments.tsv --ambiguous report --sample-qc benchmarks/work/feature_barcode/feature_sample_qc.tsv
Raw Rows
tool |
workflow |
status |
features |
reads |
start |
length |
k |
metric |
assigned |
exact |
corrected |
ambiguous |
unmatched |
validation mismatches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
dotmatch_count |
synthetic_feature_barcode_fixture |
smoke |
4 |
6 |
0 |
10 |
1 |
hamming |
2 |
2 |
0 |
3 |
1 |
0 |
dotmatch_count |
public_10x_totalseq_b_feature_barcode |
supported |
10 |
20000 |
10 |
15 |
0 |
hamming |
18575 |
18575 |
0 |
0 |
1425 |
0 |
dotmatch_count |
public_10x_totalseq_b_feature_barcode |
supported |
10 |
20000 |
10 |
15 |
1 |
hamming |
19101 |
18575 |
526 |
0 |
899 |
0 |
exact_slice_hash |
public_10x_totalseq_b_feature_barcode |
supported |
10 |
20000 |
10 |
15 |
0 |
exact |
18575 |
18575 |
0 |
0 |
1425 |
0 |
Public Feature-Barcode Lane
Dataset: 10x Genomics 1k Human PBMCs with TotalSeq-B Human TBNK Antibody Cocktail, 3’ v3.1.
Source page: https://www.10xgenomics.com/datasets/1-k-human-pbm-cs-with-total-seq-b-human-tbnk-antibody-cocktail-3-v-3-1-3-1-standard-6-0-0
Feature reference pattern:
^NNNNNNNNNN(BC)NNNNNNNNN, so DotMatch uses--target-start 10 --target-length 15on antibody R2.Comparator semantics: the exact-slice baseline counts reads whose fixed R2 substring exactly matches a feature-reference sequence. It validates per-read assignment semantics, not Cell Ranger cell/UMI quantification.
Public Commands
dotmatch count --targets examples/feature_barcode/data/feature_barcodes.tsv --reads examples/feature_barcode/data/1k_PBMCs_TotalSeq_B_3p_antibody_S5_L001_R2.subsample20000.fastq.gz --sample-label 10x_totalseq_b_antibody_L001_R2 --target-start 10 --target-length 15 --k 0 --metric hamming --format dotmatch --out benchmarks/work/feature_barcode/public_10x_totalseq_b_k0_counts.tsv --summary benchmarks/work/feature_barcode/public_10x_totalseq_b_k0_summary.json --assignments benchmarks/work/feature_barcode/public_10x_totalseq_b_k0_assignments.tsv --ambiguous report --sample-qc benchmarks/work/feature_barcode/public_10x_totalseq_b_k0_sample_qc.tsv
dotmatch count --targets examples/feature_barcode/data/feature_barcodes.tsv --reads examples/feature_barcode/data/1k_PBMCs_TotalSeq_B_3p_antibody_S5_L001_R2.subsample20000.fastq.gz --sample-label 10x_totalseq_b_antibody_L001_R2 --target-start 10 --target-length 15 --k 1 --metric hamming --format dotmatch --out benchmarks/work/feature_barcode/public_10x_totalseq_b_k1_counts.tsv --summary benchmarks/work/feature_barcode/public_10x_totalseq_b_k1_summary.json --assignments benchmarks/work/feature_barcode/public_10x_totalseq_b_k1_assignments.tsv --ambiguous report --sample-qc benchmarks/work/feature_barcode/public_10x_totalseq_b_k1_sample_qc.tsv
python3 scripts/bench_feature_barcode.py --include-public --metadata examples/feature_barcode/data/metadata.json
Evidence Boundary
Use these lanes to verify fixed-window feature-barcode whitelist counting and explicit ambiguity handling. The public 10x lane supports only per-read assignment against the documented Feature Barcode reference window. Broader CITE-seq, cell-hashing, or cell-level quantification comparisons require public comparator output, UMI/cell aggregation validation, exact commands, and a passing gate.