Skip to content

v0.5.30 — Easy baseline benchmark (Loop 12) - #140

Merged
cschanhniem merged 1 commit into
mainfrom
agent/oamp-loop12-20260705
Jul 5, 2026
Merged

cschanhniem merged 1 commit into
mainfrom
agent/oamp-loop12-20260705

Conversation

@cschanhniem

Copy link
Copy Markdown
Collaborator

Class

Benchmark honesty / scientific credibility (Priority 1)

Why it matters

Until now, there was no documented comparison of the pipeline against trivial features. We didn't know whether the pipeline's 0.78 AUROC came from sophisticated scoring or from charge alone. This benchmark answers that question honestly.

Key finding

Charge density alone (AUROC 0.8166) outperforms the full pipeline ensemble (0.7792, Δ=−0.0374) on AMP-vs-Swiss-Prot-decoy discrimination.

Why this is expected

  1. AMPs are cationic — net positive charge is the single strongest predictor of antimicrobial function
  2. The pipeline optimizes for 4 objectives (activity 0.40, safety 0.25, synthesis 0.15, novelty 0.20)
  3. The safety scorer penalizes high-charge peptides (hemolytic risk), reducing raw discrimination

Implication

The pipeline's value is in multi-objective selection (finding safe, novel, synthesizable AMPs), not in basic AMP/non-AMP discrimination. The current AMP-vs-decoy benchmark primarily tests charge, not the pipeline's actual strengths.

Changes

  • scripts/baseline_trivial.py — new script computing trivial baselines (length, charge, charge density, length+charge)
  • Makefile — make bench-easy-baseline target
  • .github/workflows/ci.yml — informational CI step (non-gating)
  • docs/50_LOOP_PLAN.md — Loop 12 ✅
  • docs/METRICS_CURRENT.md — Easy Baseline Benchmark section + changelog entry
  • docs/ROADMAP.md — v0.5.30 entry

Verification

  • ✅ 1723 tests pass
  • ✅ Lint clean on new file
  • ✅ make bench-easy-baseline runs correctly

Risk / uncertainty

  • The benchmark tests AMP-vs-Swiss-Prot-decoy discrimination, which is not the pipeline's design target
  • A benchmark that tests safe-AMP detection or charge-matched discrimination would more honestly assess the pipeline's value
  • Finding is consistent with known AMP literature (charge as dominant predictor)

Next loop

Loop 13 — Order-dependent features / strict triage

Charge density alone (AUROC 0.8166) outperforms the full pipeline
ensemble (0.7792) on AMP-vs-Swiss-Prot-decoy discrimination. Honest
finding documented and expected: the pipeline optimizes for safety, not
raw discrimination. Pipeline adds value through multi-objective
selection (safe + novel + synthesizable + active).

Changes:
  scripts/baseline_trivial.py       — new: trivial baseline computation
  Makefile                          — bench-easy-baseline target
  .github/workflows/ci.yml          — informational CI step
  docs/50_LOOP_PLAN.md              — Loop 12 marked complete
  docs/METRICS_CURRENT.md           — easy baseline section + changelog
  docs/ROADMAP.md                   — v0.5.30 entry
@cschanhniem
cschanhniem merged commit 5141072 into main Jul 5, 2026
1 check passed
@cschanhniem
cschanhniem deleted the agent/oamp-loop12-20260705 branch July 5, 2026 03:00
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