Analyze drug candidate molecules for drug-likeness, ADMET properties, and safety profiles. Use this skill when: (1) Evaluating a molecule's potential as a drug candidate, (2) Checking drug-likeness scores (QED, Lipinski), (3) Predicting blood-brain barrier penetration, (4) Assessing side effects and ADMET properties, (5) Comparing multiple molecules for lead optimization.
This skill guides you through a comprehensive analysis of drug candidate molecules using OpenBioMed's molecular analysis tools.
First, obtain the molecule object:
If user provides a molecule name (e.g., "aspirin", "ibuprofen"):
from open_biomed.tools import TOOLS
tool = TOOLS["molecule_name_request"]
result, message = tool.run(name="aspirin")
molecule = result["molecule"]
print(message) # Shows retrieved info
If user provides a SMILES string:
from open_biomed.data import Molecule
molecule = Molecule.from_smiles("CC(=O)OC1=CC=CC=C1C(=O)O")
If user provides a SDF file:
molecule = Molecule.from_sdf_file("path/to/molecule.sdf")
Run all drug-likeness metrics:
from open_biomed.tools import TOOLS
# QED (Quantitative Estimate of Drug-likeness) - 0 to 1, higher is better
qed_tool = TOOLS["molecule_qed"]
qed_result, qed_msg = qed_tool.run(molecule=molecule)
# SA (Synthetic Accessibility) - 1 to 10, lower is easier to synthesize
sa_tool = TOOLS["molecule_sa"]
sa_result, sa_msg = sa_tool.run(molecule=molecule)
# LogP (lipophilicity) - ideally between -0.4 and 5.6
logp_tool = TOOLS["molecule_logp"]
logp_result, logp_msg = logp_tool.run(molecule=molecule)
# Lipinski's Rule of Five - count violations (0 is ideal)
lipinski_tool = TOOLS["molecule_lipinski"]
lipinski_result, lipinski_msg = lipinski_tool.run(molecule=molecule)
Use the property prediction models:
# Blood-brain barrier penetration (binary: penetrates or not)
prop_tool = TOOLS["molecule_property_prediction"]
bbb_result, bbb_msg = prop_tool.run(
molecule=molecule,
dataset="bbbp",
model="graphmvp"
)
# Side effects prediction (27 categories from SIDER dataset)
sidefx_result, sidefx_msg = prop_tool.run(
molecule=molecule,
dataset="sider",
model="graphmvp"
)
viz_tool = TOOLS["visualize_molecule"]
viz_result, viz_msg = viz_tool.run(
molecule=molecule,
style="ball_stick", # Options: "ball_stick", "stick", "line", "sphere"
show_hydrogen=False
)
Present a structured report:
## Drug Lead Analysis Report: [Molecule Name]
### Drug-likeness Scores
| Metric | Value | Assessment |
|--------|-------|------------|
| QED | X.XX | [Good/Moderate/Poor] |
| SA Score | X.X | [Easy/Moderate/Hard to synthesize] |
| LogP | X.XX | [Optimal/High/Low] |
| Lipinski Violations | X | [Pass/Concern] |
### ADMET Properties
- Blood-Brain Barrier: [Penetrates/Does not penetrate]
- Predicted Side Effects: [List any predicted]
### Overall Assessment
[Summary of drug potential and recommendations]
A "drug-like" molecule should have:
Violations: 0 = ideal, 1 = acceptable, 2+ = concerning
User: "Analyze aspirin as a drug candidate"
Response workflow: