Pharmacophore Modeling
A pharmacophore defines the minimum set of 3D chemical features — their types, spatial arrangement, and tolerance spheres — required for biological activity. Used for scaffold hopping, virtual screening, and SAR hypothesis generation.
When to Use This Skill
- Derive pharmacophore from a co-crystal structure (structure-based)
- Extract common features from a set of active ligands (ligand-based)
- Screen a compound library for pharmacophore matches (VS)
- Compute pharmacophore fingerprints for similarity searching
- Identify scaffold-hopping opportunities (2D-diverse but 3D-similar)
- Validate binding mode hypotheses against active/inactive SAR data
Feature Types
| Feature |
Code |
SMARTS definition (simplified) |
| H-bond donor |
HBD |
[N!H0,O!H0,n!H0] |
| H-bond acceptor |
HBA |
[N,O,F,n,o,s] (lone pairs) |
| Aromatic |
AR |
any aromatic ring |
| Hydrophobic |
HYD |
[c,s,C,S,Br,I,Cl] non-polar |
| Positive ionizable |
POS |
[NH2,NH3+,guanidine,amidine] |
| Negative ionizable |
NEG |
[COOH,SO3H,PO4H,COO-] |
| Exclusion volume |
XV |
regions sterically forbidden |
Quick Start
from rdkit import Chem
from rdkit.Chem import AllChem, MolStandardize
from rdkit.Chem.Pharm3D import Pharmacophore, EmbedLib
from rdkit.Chem import rdMolChemicalFeatures
# Load feature factory (FDEF file bundled with RDKit)
import os
from rdkit import RDConfig
fdefName = os.path.join(RDConfig.RDDataDir, 'BaseFeatures.fdef')
factory = rdMolChemicalFeatures.BuildFeatureFactory(fdefName)
# Get features from a molecule
mol = Chem.MolFromSmiles('c1ccc(cc1)C(=O)O') # benzoic acid
feats = factory.GetFeaturesForMol(mol)
for feat in feats:
print(f"{feat.GetFamily():12s} {feat.GetType():20s} atoms={list(feat.GetAtomIds())}")
Router — What to Read
| Task |
Reference |
| Feature types, SMARTS, exclusion volumes, RDKit FDEF format |
references/features-theory.md |
| Pharm2D fingerprints (Gobbi), Pharm3D matching, feature factory |
references/rdkit-pharmacophore.md |
| Derive pharmacophore from protein-ligand co-crystal / interactions |
references/structure-based.md |
| Common-feature pharmacophore from a set of active ligands |
references/ligand-based.md |
| Pharmacophore VS workflow: conformer gen, hit scoring, enrichment |
references/vs-workflow.md |
Software
| Tool |
Install |
Role |
| RDKit |
conda install -c conda-forge rdkit |
2D/3D pharmacophore (built-in) |
| ProLIF |
pip install prolif |
interaction fingerprints (→ features) |
| PLIP |
pip install plip |
protein-ligand interaction profiler |
| shape-it |
conda install -c conda-forge shape-it |
shape + pharmacophore overlay |
| Pharmit |
web: pharmit.csb.pitt.edu |
pharmacophore search (free web) |
Related Skills
rdkit — conformer generation, substructure, 2D fingerprints
docking — binding poses used to derive structure-based pharmacophore
mdanalysis — dynamic pharmacophore from MD trajectories
daylight-theory — SMARTS syntax for custom feature FDEF files
1---2name: pharmacophore3description: Use when working with pharmacophore modeling for drug discovery. Covers feature types (HBD/HBA/AR/HYD/POS/NEG), RDKit 2D/3D pharmacophore fingerprints and matching (Pharm2D, Pharm3D, ChemicalFeatures), structure-based pharmacophore from protein-ligand complexes, ligand-based pharmacophore from active sets, and pharmacophore-based virtual screening workflows.4---56# Pharmacophore Modeling78A pharmacophore defines the minimum set of 3D chemical features — their types, spatial arrangement, and tolerance spheres — required for biological activity. Used for scaffold hopping, virtual screening, and SAR hypothesis generation.910## When to Use This Skill1112- Derive pharmacophore from a co-crystal structure (structure-based)13- Extract common features from a set of active ligands (ligand-based)14- Screen a compound library for pharmacophore matches (VS)15- Compute pharmacophore fingerprints for similarity searching16- Identify scaffold-hopping opportunities (2D-diverse but 3D-similar)17- Validate binding mode hypotheses against active/inactive SAR data1819## Feature Types2021| Feature | Code | SMARTS definition (simplified) |22|---------|------|--------------------------------|23| H-bond donor | HBD | `[N!H0,O!H0,n!H0]` |24| H-bond acceptor | HBA | `[N,O,F,n,o,s]` (lone pairs) |25| Aromatic | AR | any aromatic ring |26| Hydrophobic | HYD | `[c,s,C,S,Br,I,Cl]` non-polar |27| Positive ionizable | POS | `[NH2,NH3+,guanidine,amidine]` |28| Negative ionizable | NEG | `[COOH,SO3H,PO4H,COO-]` |29| Exclusion volume | XV | regions sterically forbidden |3031## Quick Start3233```python34from rdkit import Chem35from rdkit.Chem import AllChem, MolStandardize36from rdkit.Chem.Pharm3D import Pharmacophore, EmbedLib37from rdkit.Chem import rdMolChemicalFeatures3839# Load feature factory (FDEF file bundled with RDKit)40import os41from rdkit import RDConfig42fdefName = os.path.join(RDConfig.RDDataDir, 'BaseFeatures.fdef')43factory = rdMolChemicalFeatures.BuildFeatureFactory(fdefName)4445# Get features from a molecule46mol = Chem.MolFromSmiles('c1ccc(cc1)C(=O)O') # benzoic acid47feats = factory.GetFeaturesForMol(mol)48for feat in feats:49 print(f"{feat.GetFamily():12s} {feat.GetType():20s} atoms={list(feat.GetAtomIds())}")50```5152## Router — What to Read5354| Task | Reference |55|------|-----------|56| Feature types, SMARTS, exclusion volumes, RDKit FDEF format | `references/features-theory.md` |57| Pharm2D fingerprints (Gobbi), Pharm3D matching, feature factory | `references/rdkit-pharmacophore.md` |58| Derive pharmacophore from protein-ligand co-crystal / interactions | `references/structure-based.md` |59| Common-feature pharmacophore from a set of active ligands | `references/ligand-based.md` |60| Pharmacophore VS workflow: conformer gen, hit scoring, enrichment | `references/vs-workflow.md` |6162## Software6364| Tool | Install | Role |65|------|---------|------|66| RDKit | `conda install -c conda-forge rdkit` | 2D/3D pharmacophore (built-in) |67| ProLIF | `pip install prolif` | interaction fingerprints (→ features) |68| PLIP | `pip install plip` | protein-ligand interaction profiler |69| shape-it | `conda install -c conda-forge shape-it` | shape + pharmacophore overlay |70| Pharmit | web: pharmit.csb.pitt.edu | pharmacophore search (free web) |7172## Related Skills7374- `rdkit` — conformer generation, substructure, 2D fingerprints75- `docking` — binding poses used to derive structure-based pharmacophore76- `mdanalysis` — dynamic pharmacophore from MD trajectories77- `daylight-theory` — SMARTS syntax for custom feature FDEF files