Repository navigation
DDOS-7952: normalize Pose provenance in do-dd-client - #654
Merged
Merged
Conversation
Canonicalize legacy crystal_extract to cocrystal on every Pose instance, accept both spellings in Protein Prep crystal-pose filtering, extend the public origin vocabulary with manual, and add compatibility tests/docs.
Contributor
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The implementation is consistent and well tested, with only minor documentation wording to correct.
Review effort: Balanced
Findings: 1
What changed in this PR
Normalizes legacy Pose provenance while preserving forward compatibility.
Changes:
- Maps
crystal_extracttococrystalacross Pose creation and assignment. - Adds
manualprovenance and Protein Prep compatibility. - Adds tests and provenance documentation.
| File | Description |
|---|---|
src/drug_discovery/structures/pose.py |
Implements origin normalization. |
src/drug_discovery/protein_prep.py |
Accepts legacy cocrystal rows. |
tests/test_pose.py |
Tests normalization paths. |
tests/test_protein_prep.py |
Tests Protein Prep compatibility. |
docs/dd/ref/pose.md |
Documents Pose origins. |
CONTEXT.md |
Records provenance terminology. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Align pose.md with the forward-compat contract so callers do not treat the known origins as a closed set.
Retigger required Test Python Code checks after a docs-only push that did not match the workflow path filters.
Capture path-filter retrigger, required-check watcher pitfalls, and the non-exhaustive Pose origin docs nit for future cycles.
docs/agents-only pushes skip Test Python Code path filters; nudge a .py file so formatting and Ubuntu functionality re-run on the tip.
This branch had an error being deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Completes the remaining do-dd-client work for DDOS-7952 after toolbox provenance landed in DDOS-7925.
normalize_pose_origin()and enforce it on everyPose(__post_init__/originsetter) so legacycrystal_extractreads as canonicalcocrystalwhile unknown future values pass through.PoseOriginwithmanual._crystal_pose_output_rows()accepts legacy and canonical cocrystal rows before buildingPoseobjects.origin,ligand_name,selection_names) was already shipped; no Pocket code changes.Merge-ready status
Auto-updated — cycle 2, last updated: 2026-10-05T21:35:33Z
mainbd3f9fa56a91bd56a91bd, 0 open threadsmerge-readyRecent activity
docs/agents/merge-ready-lessons.md.Test plan
uv run --extra test --extra core --extra tools pytest tests/test_pose.py tests/test_protein_prep.py -q --env local(138 passed)pytest ... -k 'origin or crystal_poses_from_output'(10 passed)Notes
Depends on toolbox contract from DDOS-7925; this PR is client read/compatibility only.