You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 06b2926
Browse filesBrowse the repository at this point in the historyBrowse files
[act.fep.ρ.D8+] turn a protein name into a usable receptor
The FEP builder still assumed that a new user already knew which PDB accession and crystallographic ligand to choose. That made the first screen an expert-only database form instead of a target-design workflow.
Add an official RCSB experimental-structure search with target-aware ranking and visible reasons, then reuse the existing coordinate inspection path when a candidate is chosen. Treat common nucleotide analogues and cofactors separately from drug-like ligands; when exactly one drug-like bound ligand remains, select it visibly so the next task is adding compounds rather than deciphering HETATM records.
The recommendation stays reviewable: no structure is loaded until the user clicks it, every rank exposes target match, bound components, method, resolution, and modeled-residue coverage, and direct PDB/upload/database entry remains available.
Verified with 99 FEP tests, strict TypeScript, focused ESLint, both production builds, architecture-twin parity, and an isolated Chromium EGFR flow that searched six candidates, loaded 5D41, excluded ANP, selected 57N, and unlocked Add Compounds without submitting a preparation or FEP job.
showBuilderNotice(mode==='pdb'?'Enter a PDB accession; Dirac will retrieve and inspect the experimental structure.':mode==='upload'?'Upload fixed-column PDB coordinates. mmCIF is not accepted in this release. Protein preparation remains a generated backend job, not a prerequisite.':'Reuse a versioned receptor only when it is scientifically the same system.');
text('pose-reference-state',selectedReferenceLigand()?.label||'NO REFERENCE · ALIGNMENT UNAVAILABLE');text('receptor-preview-title',`${pdb} · ${title}`);text('receptor-preview-detail',`${method}${Number.isFinite(resolution)?` · ${Number(resolution).toFixed(2)} Å`:''} · ${boundLigands.length} bound organic candidate${boundLigands.length===1?'':'s'} found`);updateBuilderReadiness();showBuilderNotice(preferredReference&&selectedReferenceLigand()?`${pdb} loaded · ${preferredReference} selected as the bound reference.`:`${pdb} coordinates loaded. Choose the bound ligand that corresponds to your reference compound.`);returntrue;
810
+
constreference=selectedReferenceLigand();text('pose-reference-state',reference?.label||'NO REFERENCE · ALIGNMENT UNAVAILABLE');text('receptor-preview-title',`${pdb} · ${title}`);text('receptor-preview-detail',`${method}${Number.isFinite(resolution)?` · ${Number(resolution).toFixed(2)} Å`:''} · ${boundLigands.length} bound organic candidate${boundLigands.length===1?'':'s'} found`);updateBuilderReadiness();showBuilderNotice(reference?`${pdb} loaded · ${reference.resname} selected as the drug-like bound reference · verify identity before preparation.`:`${pdb} coordinates loaded. Choose the bound ligand that corresponds to your reference compound.`);returntrue;
824
811
}catch{if(requestId!==pdbFetchGeneration||epoch!==draftEpoch)returnfalse;text('receptor-preview-title',`${pdb} · STRUCTURE NOT FOUND`);text('receptor-preview-detail',receptorPdbText?'Existing receptor was preserved; the failed response was not applied.':'No structure was loaded. Check the PDB accession at RCSB, or upload a PDB file.');updateBuilderReadiness();showBuilderNotice(`RCSB could not load ${pdb}. Check the accession or upload the structure file.`);returnfalse;}finally{if(requestId===pdbFetchGeneration){button.disabled=false;button.textContent='FETCH & INSPECT';}}
<div id="source-pdb-panel" class="source-panel"><label class="hero-input"><span>STRUCTURE ACCESSION</span><div><input id="campaign-pdb" value="" placeholder="EXAMPLE: 181L" autocomplete="off" spellcheck="false"><button id="inspect-pdb">FETCH & INSPECT</button></div></label><p class="source-help">A PDB ID identifies an experimental protein structure. If you only know the protein name, find a suitable ligand-bound entry in RCSB PDB first; the ready-made example requires no search.</p></div>
79
+
<div id="source-pdb-panel" class="source-panel"><section class="protein-search"><label class="hero-input"><span>WHAT PROTEIN ARE YOU WORKING ON?</span><div><input id="protein-name-search" value="" placeholder="EGFR, CDK2, KRAS G12D…" autocomplete="off" spellcheck="false"><button id="search-protein-structures">FIND STRUCTURES</button></div></label><p class="source-help">We rank experimental structures by target match, bound components, method, resolution and modeled residues. You choose before anything is loaded.</p><div id="protein-search-status" class="protein-search-status" role="status" aria-live="polite">ENTER A PROTEIN NAME OR GENE SYMBOL</div><div id="protein-search-results" class="protein-search-results" hidden></div></section><div class="source-divider"><span>OR ENTER A PDB ID</span></div><label class="hero-input accession-input"><span>STRUCTURE ACCESSION</span><div><input id="campaign-pdb" value="" placeholder="EXAMPLE: 181L" autocomplete="off" spellcheck="false"><button id="inspect-pdb">FETCH & INSPECT</button></div></label></div>
80
80
<div id="source-upload-panel" class="source-panel" hidden><label class="source-drop"><input id="receptor-file" type="file" accept=".pdb,.ent"><i>+</i><span><b>DROP RAW PDB</b><small>Dirac prepares the protein after upload; do not pre-build an OpenFE system.</small></span><em>SELECT FILE</em></label></div>
0 commit comments