Goal
Embed Mol (molstar) 3D protein structure viewer on hypothesis detail pages for target proteins. Load the task-specified PDB structures: LRP1 (2FCW), TREM2 (6YXY), APOE (2L7B), CYP46A1 (2Q9F), SMPD1 (5I73). Mol viewer should appear below hypothesis description and NOT be featured on /showcase.
Acceptance Criteria
☑ Mol* 3D viewer embedded in hypothesis_detail() route (/hypothesis/{id})
☑ Viewer appears below hypothesis description (collapsible lazy-load panel)
☑ Task-specified PDB IDs used: LRP1=2FCW, TREM2=6YXY, APOE=2L7B, CYP46A1=2Q9F, SMPD1=5I73
☑ PDB IDs in hypothesis page consistent with entity and challenge pages
☑ Mol* viewer NOT shown on /showcase page
☑ PDBe Mol* CDN used (https://www.ebi.ac.uk/pdbe/pdb-component-library/)
☑ AlphaFold fallback for genes without experimental structures
Approach
Find the pdb_mapping dict in hypothesis_detail() function (~line 35693)
Update stale PDB IDs to match task spec and other detail pages:
- TREM2: 5UD7 → 6YXY (TREM2 ectodomain crystal structure)
- LRP1: 1CR8 → 2FCW (LRP1 complement-type repeat domain)
- SMPD1: 5I85 → 5I73 (SMPD1 crystal structure)
Verify entity_detail() and challenge_detail() already use correct IDs (they do)
Create spec, test API, commitDependencies
- Prior work:
062cdfd65 — original Mol* embed implementation
- Prior work:
91ec0016e — Mol* removed from /showcase
Work Log
2026-04-24 — Slot claude-auto:41
- Read AGENTS.md and task spec
- Observed Mol* viewer already in api.py on main (hypothesis_detail, entity_detail, challenge_detail)
- Found PDB ID inconsistency: hypothesis page used 5UD7/1CR8/5I85 while entity/challenge pages used 6YXY/2FCW/5I73
- Updated
pdb_mapping in hypothesis_detail() at line 35695-35696: TREM2→6YXY, LRP1→2FCW, SMPD1→5I73
- All three pages now use identical PDB IDs for the task-specified proteins
- No old stale IDs (5UD7/1CR8/5I85) remain in codebase
- Result: hypothesis detail pages now show correct PDB structures matching task spec