pharmacophore

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.

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

FeatureCodeSMARTS definition (simplified)
H-bond donorHBD[N!H0,O!H0,n!H0]
H-bond acceptorHBA[N,O,F,n,o,s] (lone pairs)
AromaticARany aromatic ring
HydrophobicHYD[c,s,C,S,Br,I,Cl] non-polar
Positive ionizablePOS[NH2,NH3+,guanidine,amidine]
Negative ionizableNEG[COOH,SO3H,PO4H,COO-]
Exclusion volumeXVregions 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

TaskReference
Feature types, SMARTS, exclusion volumes, RDKit FDEF formatreferences/features-theory.md
Pharm2D fingerprints (Gobbi), Pharm3D matching, feature factoryreferences/rdkit-pharmacophore.md
Derive pharmacophore from protein-ligand co-crystal / interactionsreferences/structure-based.md
Common-feature pharmacophore from a set of active ligandsreferences/ligand-based.md
Pharmacophore VS workflow: conformer gen, hit scoring, enrichmentreferences/vs-workflow.md

Software

ToolInstallRole
RDKitconda install -c conda-forge rdkit2D/3D pharmacophore (built-in)
ProLIFpip install prolifinteraction fingerprints (→ features)
PLIPpip install plipprotein-ligand interaction profiler
shape-itconda install -c conda-forge shape-itshape + pharmacophore overlay
Pharmitweb: pharmit.csb.pitt.edupharmacophore 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