{"data":{"kind":"file","path":"README.md","version_id":"zjhfycyfb5tzjld7tamffgor","entry":{"name":"README.md","path":"README.md","is_directory":false,"size":1587,"modified_at":"2026-05-30T09:50:07.969000","content_hash":"471f7730b5ac53e81315ccf35d6b5cf4353cfc82cd0d9e2de7aa77e185cecdce"},"entries":[],"content":"# protein-ligand-design\n\nA tool-use environment where the solver must choose the correct molecule or\nprotein candidate under property constraints it cannot eyeball.\n\n## Task\n\nEach rollout presents a decision question and 2–5 candidates, each given as a\n**SMILES** (ligand) or an **amino-acid sequence** (protein) — but *without* their\nproperty values. The solver must call CPU-only tools to gather the evidence,\nthen call `submit_answer` with the winning candidate id.\n\n## Tools\n\nLigand (RDKit): `mol_descriptors`, `qed`, `lipinski_violations`, `veber_pass`,\n`tanimoto_similarity`, `murcko_scaffold`.\n\nProtein (Biopython): `protein_properties` (pI, GRAVY, instability index,\naromaticity, secondary-structure fractions), `net_charge_at_ph`, `count_sequon`,\n`blosum62_mutation_score`, `sequence_identity`.\n\nPlus `submit_answer` to commit the final choice.\n\n## Reward\n\nA single headline reward: **final-answer correctness** — 1.0 iff the submitted\ncandidate id(s) match the deterministic ground truth bundled in\n`questions.json`. Tool calls are *not* rewarded; they are only the means to\nreach the answer. `answer_submitted` is tracked as a zero-weight metric.\n\n## Data\n\n`questions.json` is generated offline by Opus 4.8 (real or plausibly-designed,\nvalid candidates) and certified by the same tool oracle that computes the\nreward, so every question resolves to a unique, tool-derived answer.\n\n## Usage\n\n```bash\nprime env install protein-ligand-design\nprime eval run protein-ligand-design -m poolside/Laguna-XS.2 -n 10 -r 3\n```\n\n`load_environment(num_train=-1, num_eval=20, seed=0)`.\n","encoding":"utf-8","truncated":false,"total_bytes":1587},"status":null}