$npx -y skills add GPTomics/bioSkills --skill pharmacophore-modelingBuilds and applies 3D pharmacophore models using RDKit Pharm3D, the apo2ph4 receptor-based workflow (Heider et al. 2023), Pharmer / Pharmit for search, and PharmacoForge for protein-pocket-conditioned pharmacophore generation (Flynn et al. 2025), covering ligand-based pharmacopho
| 1 | ## Version Compatibility |
| 2 | |
| 3 | Reference examples tested with: RDKit 2024.09+, Pharmit web service, and PLIP 2.4+ (interaction analysis). Verify the deployed Pharmit/Pharmer interface and query format before automation. |
| 4 | |
| 5 | Before using code patterns, verify installed versions match. If versions differ: |
| 6 | - Python: `pip show rdkit` then `help(rdkit.Chem.Pharm3D)` to check signatures |
| 7 | |
| 8 | If code throws ImportError, AttributeError, or TypeError, introspect the installed |
| 9 | package and adapt the example to match the actual API rather than retrying. |
| 10 | |
| 11 | # Pharmacophore Modeling |
| 12 | |
| 13 | Build 3D pharmacophore queries that capture the essential interaction features of a ligand-target binding event. A pharmacophore is the *spatial arrangement of pharmacophore features* (donor, acceptor, hydrophobe, aromatic, charged) sufficient for activity, abstracted from any specific chemotype. Use pharmacophores for scaffold hopping, virtual-screening prefilters, and cross-target SAR transfer. Derive interaction features directly from a co-crystal when available, use apo2ph4 to derive models from an apo pocket (Heider et al. 2023), or align known actives for a ligand-based model. PharmacoForge generates candidate 3D pharmacophores conditioned on a protein pocket; those pharmacophores can then retrieve matching molecules from a library (Flynn et al. 2025). |
| 14 | |
| 15 | For 2D scaffold-based searches, see `chemoinformatics/scaffold-analysis`. For 3D shape similarity, see `chemoinformatics/shape-similarity`. For protein-ligand interaction analysis, see `chemoinformatics/virtual-screening`. |
| 16 | |
| 17 | ## Pharmacophore Feature Types |
| 18 | |
| 19 | | Feature | Common shorthand | Definition | Geometric tolerance | |
| 20 | |---------|------------|------------|----------------------| |
| 21 | | H-bond donor | D | -OH, -NH | 1.0-1.5 Å | |
| 22 | | H-bond acceptor | A | sp2 O / N (lone pair) | 1.0-1.5 Å | |
| 23 | | Hydrophobe | H | sp3 C / aromatic ring centroid | 1.5-2.0 Å | |
| 24 | | Aromatic ring | R | Aromatic ring centroid + normal | 1.0-1.5 Å | |
| 25 | | Positive ionizable | P | -NH3+, -NR3+ | 1.0-1.5 Å | |
| 26 | | Negative ionizable | N | -COO-, -SO3- | 1.0-1.5 Å | |
| 27 | | Halogen | X | Cl, Br, I (halogen bond donor) | 1.0-1.5 Å | |
| 28 | | Metal coordination | M | sp/sp2 N/O near metal | 0.5-1.0 Å | |
| 29 | |
| 30 | Tolerances are pharmacophore-feature distance windows in the search. Tighter tolerances = fewer hits but more specific. |
| 31 | |
| 32 | The ranges in this table are repository starting heuristics, not universal feature tolerances. Set final bounds from aligned-feature variability, coordinate uncertainty, and retrospective validation for the selected search engine. |
| 33 | |
| 34 | The one-letter labels above are human-readable shorthand, not RDKit API codes. RDKit's shipped `BaseFeatures.fdef` uses family names such as `Donor`, `Acceptor`, `Hydrophobe`, `Aromatic`, `PosIonizable`, and `NegIonizable`. Its default feature definitions do not provide every halogen-bond or metal-coordination model; add and validate project-specific feature definitions when those interactions matter. |
| 35 | |
| 36 | ## Method Taxonomy |
| 37 | |
| 38 | | Method | Origin | Use case | Fails when | |
| 39 | |--------|--------|----------|------------| |
| 40 | | Ligand-based (LBP) | Catalyst, MOE, RDKit Pharm3D | Multiple actives, no crystal | <3 actives; flexible actives | |
| 41 | | Receptor-based (RBP) | apo2ph4, LigandScout, PLIP | Co-crystal or a defined apo pocket | Uncertain pocket conformation | |
| 42 | | Common pharmacophore | Validated alignment/feature-consensus workflow; RDKit can represent and query the resulting model | Consensus from active set | Diverse actives or uncertain bioactive conformers confound alignment | |
| 43 | | Pocket-conditioned generation (PharmacoForge) | Flynn et al. 2025 | Generate candidate pharmacophores from a protein pocket | Does not directly generate molecules; pretrained model required | |
| 44 | | Active learning pharmacophore | Catalyst variant | Iterative refinement | Custom; not standard | |
| 45 | |
| 46 | ## Decision Tree by Scenario |
| 47 | |
| 48 | | Scenario | Method | Tools | |
| 49 | |----------|--------|-------| |
| 50 | | Co-crystal structure available | Interaction-derived receptor model | PLIP or LigandScout + Pharmit | |
| 51 | | Apo structure with a defined pocket | Apo receptor model | apo2ph4; export LigandScout PML | |
| 52 | | Multiple active compounds, no crystal | Ligand-based common pharmacophore | Alignment plus consensus-feature derivation in validated custom or external tooling; RDKit Pharm3D can apply |