Skip to content

Add experimental AssayScript multi-read runtime - #55

Draft
dnncha wants to merge 3 commits into
codex/industry-domination-implementationfrom
codex/assayscript-runtime
Draft

Add experimental AssayScript multi-read runtime#55
dnncha wants to merge 3 commits into
codex/industry-domination-implementationfrom
codex/assayscript-runtime

Conversation

@dnncha

@dnncha dnncha commented Jul 14, 2026

Copy link
Copy Markdown
Owner

Outcome

Turns the AssayScript v2 compiler into an executable, fail-closed experimental multi-read workflow while keeping the native DotMatch commands authoritative for supported high-throughput use.

This is intentionally stacked on #54 so the runtime can be reviewed independently from the 0.2 platform and packaging work.

Runtime

  • streams synchronized R1/R2/I1/I2 FASTQ or FASTQ.GZ inputs by canonical read ID
  • verifies compiled source, target-library, and allowed-combination SHA-256 fingerprints
  • executes fixed or anchor-relative extraction, jitter, and forward/reverse-complement orientation
  • supports bounded Hamming and Levenshtein matching
  • preserves segment ambiguity rather than resolving by target order
  • filters biologically allowed cross-segment tuples and performs deterministic joint rescue only when one tuple remains
  • requires explicit --accept-findings when the compiler recorded review findings
  • writes assignments.tsv, unique counts.tsv, watch-compatible events.jsonl, and fingerprinted summary.json
  • stages outputs and commits them only after successful completion

Interface

assaycode compile assay-v2.toml --out assay.plan.json
assaycode inspect assay.plan.json
assaycode execute assay.plan.json \
  --r1 R1.fastq.gz --r2 R2.fastq.gz --i1 I1.fastq.gz \
  --out run/ --accept-findings

Scientific boundary

The documentation and manuscript describe this as a Python-based experimental runtime with focused unit evidence. This PR does not claim public multi-read dataset validation, production throughput, or universal assay/platform coverage. Native DotMatch assignment remains the supported high-throughput path.

Verification

  • 557 passed across python/tests
  • assaycode-readiness: ready
  • git diff --check

Dependency

@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