Skip to content

feat: Phase Q Q2 wet-lab hit record schema -- first real experimental result intake - #948

Merged
cschanhniem merged 1 commit into
mainfrom
feat/q2-wetlab-hit-record
Jul 10, 2026
Merged

cschanhniem merged 1 commit into
mainfrom
feat/q2-wetlab-hit-record

Conversation

@cschanhniem

Copy link
Copy Markdown
Collaborator

Implements Q2 from NEXT_100_PR_MAP.

What

  • src/openamp_foundry/evidence/wetlab_hit_record.py: WHR- schema; WetlabHitRecord dataclass (16 fields); validate_wetlab_hit_record(); build_wetlab_hit_record() (enforces dry_lab_only=False); format_wetlab_hit_record()
  • VALID_EXPERIMENT_TYPES (10): mic_broth_dilution, disk_diffusion, kill_curve, flow_cytometry_membrane, fluorescence_microscopy, biofilm_inhibition, hemolysis_assay, cytotoxicity_mtt, time_kill_assay, turbidity_growth_inhibition
  • VALID_INTERPRETATIONS (3): active, inactive, inconclusive
  • VALID_PROOF_LADDER_LEVELS: single_assay_hit, replicated_single_assay_hit, multi_assay_candidate
  • tests/evidence/test_wetlab_hit_record.py: 59 tests in 5 classes
  • BASELINE: 8648 → 8711

Why this matters

This is the FIRST schema where dry_lab_only must be False — it records actual wet-lab results, closing the computational nomination → experiment → result intake loop.

Disconfirming pass

  • dry_lab_only=True raises violation (tested) — cannot pretend a real result is dry-lab
  • TOY- candidate IDs blocked (tested) — real results require real candidate IDs
  • Proof ladder is capped: no clinical efficacy claim allowed from a single assay result
  • Empty limitations blocked (tested) — every result has scope limitations
  • NaN/Inf/negative result_value blocked (tested)

…re dry_lab_only=False; VALID_EXPERIMENT_TYPES (10), VALID_INTERPRETATIONS (active/inactive/inconclusive), proof_ladder_level cap; 59 tests (#948)
@cschanhniem
cschanhniem merged commit edb5dc5 into main Jul 10, 2026
1 check failed
cschanhniem added a commit that referenced this pull request Jul 10, 2026
Co-authored-by: OpenCode <opencode@example.com>
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