[Feature] Add reviewed PwC DrugBank protocol adapter - #260
Conversation
|
@yananlong this rebases mechanically everywhere except one spot, and that spot is a design question I do not want to answer inside a conflict marker.
This PR adds a second package over the same dump —
Also worth settling before either: whether the two overlap on rows. If the general adapter already emits DrugBank protocol leaderboards, the same source rows land in two collections under two identities, and that is a dedup problem rather than a packaging one. Which do you want? Once that is decided the rest is a The |
|
Rather than leave this on you: #269 continues these four commits with Short version. The duplicate Your Leaving this open until #269 lands, so the work is never in limbo. Happy to hand the commits back if you would rather land it from your fork. |
|
Pushed to this branch (
The overlap, stated rather than left implicit. The scheduled That is joinable, not silent: both adapters record the PwC If maintainers would rather have one adapter with a drugbank mode, or have the general adapter skip the reviewed cells, that is a larger change and belongs with #256's dedup discussion rather than in this PR.
Labelled |
|
Review — one bug, one divergence, two smaller notes. No blockers on the protocol modelling, which is careful. 1. The uncertainty is parsed, then dropped and left on the wrong scale. A reader of the second field sees a spread wider than the score's whole range. No test covers this path — Scaling it is unambiguous. Putting it in the typed field is not: PwC's 2. Bounds and direction come from the overlay, while the sibling adapter over the same dump takes them from the registry. 3. 4. Fail-fast with no accounting is a choice worth stating. Every rejection raises, so one malformed cell aborts the run and nothing records exclusions. For a small hand-reviewed manifest that is defensible — unlike a scrape — but @yananlong — (1) needs a decision from you about what the |
|
Fixed the two that were unambiguous, in Uncertainty scaling. The path split. 957 passed, 32 skipped; ruff clean. Still yours, and still a real question: The registry-vs-overlay question for bounds (finding 2) I have deliberately not touched — that one is a design call about two adapters over one dump, not a fix. |
|
Follow-up in It is not private knowledge, and we already had the answer. What is knowable per cell is narrower: your overlay carries Comparing the two adapters did turn up something, though: the same defect on main. The general adapter rescales scores onto the registry's canonical scale and leaves the
|
`reconcile_scale` maps a source value onto the registry's canonical scale, so a percent-reported accuracy is published as 0.337. The `±` figure beside it was kept verbatim, which leaves 0.82 next to 0.337 — a spread wider than the metric's whole range, in the same details map, with nothing marking that the two are on different scales. `reported_uncertainty` stays exactly what the source printed, because published records already use that key and re-defining it would make old and new records disagree silently. `reported_uncertainty_canonical` is the same number on the scale `score` is on, present only when a rescale was applied and the spread is a bare number: PwC also prints things like `0.3 (n=5)`, and no typed Uncertainty is asserted either way, since `±` does not say whether it is a standard error, a standard deviation or a CI half-width. Found by comparing this adapter against evaleval#260, which has the same defect over the same dump — its fix now follows this convention.
03ac3c2 to
157f9d6
Compare
Summary
This PR adds a manual-only adapter that converts a local Papers With Code DrugBank custom-format PostgreSQL dump into EEE aggregate evaluation logs. A reviewed YAML manifest binds each selected source cell to canonical model, metric, benchmark, split, protocol, and provenance metadata.
The manifest distinguishes
transductive(both drugs seen),inductive-s1(both drugs unseen), andinductive-s2(one drug unseen), following the split convention described by the DSN-DDI primary source. The adapter preserves those split-qualified scores so downstream comparisons can show when model rankings or performance change across the protocols.Design and safety
The adapter parses the dump strictly and fails closed on hash drift, missing or ambiguous anchors, malformed scores, incompatible metric scales, unexpected COPY rows, duplicate YAML keys, duplicate metric selections, conflicting benchmark protocols, coercive source IDs, or output-path violations. Conversion is atomic, so no output is published unless the complete bundle passes pre-publication schema and path validation.
Aggregate and result identities include the selected metric results, full reviewed metric configuration, and protocol semantics. The output records
split_id, the generalization regime, entity-overlap evidence, and the protocol digest. It preserves DrugBank as the trustedsource_datavalue while retaining the raw Papers With Code URL and archive URL as provenance metadata.Scope and follow-up
No production qualification manifest or generated datastore records are included. The adapter remains unscheduled until a reviewed manifest and the corresponding downstream data contribution are prepared. The adapter preserves manifest-supplied scores and evidence; it does not independently verify cited source content or train/test membership from the aggregate dump, and it does not compute a performance delta between splits.
Verification
pgdumplib-generated custom-format dump, runs the adapter CLI, and separately passesuv run python -m every_eval_ever validatewith zero warnings.