Skip to content

Introduce AssayCode and the DotMatch 0.2.0 assay platform - #54

Draft
dnncha wants to merge 93 commits into
mainfrom
codex/industry-domination-implementation
Draft

Introduce AssayCode and the DotMatch 0.2.0 assay platform#54
dnncha wants to merge 93 commits into
mainfrom
codex/industry-domination-implementation

Conversation

@dnncha

@dnncha dnncha commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Outcome

This draft introduces AssayCode as the assay-level platform while preserving
DotMatch as the matching engine, Python/Bioconda distribution, native ABI,
DOI, and scientific citation. This is an additive identity, not a destructive
package rename.

Implemented

  • Adds the assaycode CLI and Python namespace alongside all existing
    dotmatch interfaces.
  • Adds experimental AssayScript v2 compilation for R1/R2/I1/I2 segments,
    anchors or fixed windows, jitter/orientation, target-library safety analysis,
    allowed combinations, input fingerprints, deterministic strategy selection,
    and portable compiled plans.
  • Adds experimental calibrated selective decoding, per-cycle/substitution error
    fitting, allowed-tuple joint decoding, calibration diagnostics, empirical FDR
    threshold selection, and strict smoothed priors.
  • Adds an experimental deterministic panel digital twin reporting usable yield,
    ambiguity, no-calls, confusion, and false-discovery rate under declared
    substitution-error models.
  • Adds bounded-memory sequential QC via assaycode watch with Wilson intervals
    and machine-readable on-track/review/insufficient-data decisions.
  • Rewrites the manuscript around ambiguity-aware known-target assignment and
    auditable assay workflows, with explicit supported/experimental boundaries.
  • Rebrands the public product surface and reserves AssayCode/AssayScript naming
    while keeping compatibility language visible.
  • Prepares the DotMatch 0.2.0 PyPI/Bioconda metadata and release gates.
  • Adds a separate assaycode Bioconda metapackage pinned to the matching
    dotmatch engine release, preserving old installs while creating the new
    flagship package coordinate.
  • Adds a deterministic handoff renderer that computes the tagged archive SHA-256
    and emits ready-to-copy recipes/dotmatch/ and recipes/assaycode/.
  • Extends post-release verification to require both clean Conda installs,
    command identities, and Python engine identity.

Scientific boundary

The deterministic DotMatch assignment paths remain authoritative. AssayScript
v2 execution, calibrated decoding, simulation, and sequential monitoring are
labeled experimental until their dedicated public-data correctness,
calibration, and throughput gates pass. No universal assay runtime, sequencing
platform model, or superiority claim is made.

Verification

Passing on an independent Linux checkout:

  • 546 Python tests
  • native C tests and allocation regression
  • end-to-end native CLI fixtures
  • DotMatch and AssayCode Bioconda recipe validators
  • two-recipe checksum/handoff rendering tests
  • AssayCode readiness gate
  • warning-free Sphinx documentation build
  • website asset and positioning gate
  • JOSS manuscript gate (1,400 words)
  • wheel build/install/import/CLI smoke test
  • sdist build/install/import/CLI smoke test
  • direct assaycode simulate JSON smoke test

GitHub Actions CI, workflow-ecosystem, and CodeQL remain the external hosted
gates. The PR remains draft and the release record remains not_released.

Bioconda handoff

The distribution strategy is intentionally dual-coordinate:

  • dotmatch: engine, native artifacts, compatibility CLI, and uninterrupted
    upgrade path.
  • assaycode: flagship noarch metapackage pinned to the matching DotMatch
    release.

A Bioconda 0.2.0 PR still requires the immutable v0.2.0 archive. After the
tag, scripts/prepare_bioconda_handoff.py inserts its real SHA-256 and emits
both upstream recipes for a joint submission. No placeholder-checksum PR will
be presented as releasable.

@dnncha
dnncha marked this pull request as ready for review July 13, 2026 14:14

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 37dfba7c0d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread python/dotmatch/cli.py Outdated
Comment thread python/dotmatch/cli.py Outdated
Comment thread python/dotmatch/cli.py
@dnncha
dnncha marked this pull request as draft July 14, 2026 14:21
@dnncha dnncha changed the title Implement industry evaluation and CRISPR quickstart Introduce AssayCode and the DotMatch 0.2.0 assay platform Jul 14, 2026

dnncha commented Jul 15, 2026

Copy link
Copy Markdown
Owner Author

Applied in commit 989365c94daa1b80ef4d72e8535ce71d13380474:

  • strict .fastq, .fq, .fastq.gz, and .fq.gz validation for crispr quickstart
  • refuse to overwrite an existing sibling staging path
  • keep review-only quickstarts and their generated run.sh in draft status
  • fix the release container OCI-label smoke test to expect 0.2.0
  • add a release-readiness regression test so stale workflow version assertions fail early

Local evidence: 549 PR54 tests, release/readiness and packaging gates, wheel and sdist clean-install identity checks, and both Bioconda recipe validators pass. The new hosted CI/CodeQL/workflow-ecosystem runs are still in progress; the unrelated Vercel status remains failing.

@dnncha dnncha mentioned this pull request Jul 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant