Drug Discovery Copilot RDKit property engine Explainable assistant Research guardrails

Ask, analyze, compare
and design with evidence

A research copilot for early drug discovery: molecule analysis, drug-likeness checks, liability alerts, property optimization, molecule comparison, candidate design ideas, target briefs, and complete downloadable reports. Recognizes any real compound name live via PubChem, not just a fixed list, and remembers the molecule you're discussing across follow-up questions in the same conversation.

API status
Checking...
Assistant mode
Explainable RDKit + rules
Last intent
Confidence
Drug Discovery Chat
Analyze ibuprofen Analyze metformin (PubChem) Compare aspirin vs ibuprofen Improve solubility Design analogs Check liability alerts Cancer target strategy Follow-up: improve its solubility
Molecule Analysis
Molecule Summary
Run molecule analysis to view MW, LogP, TPSA, QED, Lipinski, Veber, Egan and first-pass alerts.
Compare Molecules
Property Optimization
Candidate Design Ideas
Disease / Target Strategy Brief
Complete Report Center
Create a complete report, then view it here or download/share it.
Raw JSON
{}
`; } function downloadReport(type){ const data = state.lastReport || state.lastRaw; if(!data || !Object.keys(data).length){ toast('Create a report first','err'); return; } const name = slug(); if(type === 'json') download(`${name}.json`, pretty(data), 'application/json'); if(type === 'html') download(`${name}.html`, reportHTML(), 'text/html'); if(type === 'doc') download(`${name}.doc`, reportHTML(), 'application/msword'); } function downloadTranscript(){ const txt = state.chat.map(m=>`[${m.time}] ${m.sender.toUpperCase()}: ${m.text}`).join('\n\n'); download('drug-discovery-chat-transcript.txt', txt || 'No chat messages.', 'text/plain'); } async function shareReport(){ const data = state.lastReport || state.lastRaw; if(!data || !Object.keys(data).length){ toast('Create a report first','err'); return; } const text = `Drug Discovery Copilot Report\nGenerated: ${new Date().toISOString()}\nResearch-use only.`; if(navigator.share){ try{ await navigator.share({title:'Drug Discovery Copilot Report', text}); toast('Share sheet opened'); }catch(e){} }else{ navigator.clipboard.writeText(text + '\n\n' + pretty(data).slice(0,3000)); toast('Share text copied'); } } function copyRaw(){ navigator.clipboard.writeText(pretty(state.lastRaw || {})); toast('Raw JSON copied'); } function init(){ initTabs(); initChips(); welcome(); healthCheck(); setRaw({ready:true, app:'Drug Discovery Copilot', endpoints:[ '/llm/gold/health', '/llm/gold/chat', '/llm/gold/analyze-molecule', '/llm/gold/compare-molecules', '/llm/gold/liability-assessment', '/llm/gold/optimize-property', '/llm/gold/design-candidates', '/llm/gold/target-brief', '/llm/gold/affinity-estimate', '/llm/gold/report' ]}); } init();