GPCR and Structural Pharmacology Research
SkillDev toolsGPCR receptor pharmacology — agonist/antagonist/inverse-agonist/biased-agonist classification, GPCRdb structural data, receptor-ligand binding analysis, antibody-target interface (SAbDab). Use for GPCR drug discovery, biased-agonism analysis, receptor subtype selectivity questions, and orthosteric vs allosteric pocket characterization.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the GPCR and Structural Pharmacology Research skill
What this skill tells your AI
The instructions your AI receives, as published by mims-harvard/tooluniverse in skills/tooluniverse-gpcr-structural-pharmacology/SKILL.md and read by ahel’s review.
GPCR pharmacology: agonist vs antagonist vs inverse agonist vs biased agonist — each has different clinical implications. Biased agonism (preferential G-protein vs β-arrestin signaling) can separate efficacy from side effects; for example, G-protein-biased opioid agonists aim to retain analgesia while reducing β-arrestin-mediated respiratory depression. Always classify retrieved ligands by their pharmacological type, not just their chemical structure. Receptor state (active vs inactive crystal structure) determines which ligands and mutations are interpretable — an inactive-state structure is appropriate for antagonist binding analysis, active-state for agonist-bound complexes. Generic GPCR numbering (Ballesteros-Weinstein) enables cross-receptor mutation comparison; always report positions in this system alongside sequence positions.
LOOK UP DON'T GUESS: never assume GPCRdb entry names (e.g., adrb2_human) or PDB IDs — always use GPCRdb_list_proteins to find the correct entry name and GPCRdb_get_structures to confirm available structures.
Research skill integrating GPCRdb (GPCR receptor biology), SAbDab (antibody structures), and PDBePISA (protein interface analysis) to support structural pharmacology, antibody engineering, and GPCR-targeted drug discovery.
KEY PRINCIPLES:
- Receptor-first — Identify GPCR entry name before any GPCRdb queries
- Ligand classification — Distinguish agonists, antagonists, partial agonists, biased agonists
- Structure-guided — Pair GPCRdb mutation data with PDB structures via PDBePISA
- Antibody context — Use SAbDab for therapeutic antibody structure retrieval and CDR analysis
- English-first queries — Use standard receptor names (e.g., "beta-2 adrenergic receptor") in searches; convert to GPCRdb entry names for API calls
When to Use
Apply when user asks:
- "What ligands are known for [GPCR receptor]?"
- "What crystal structures exist for [receptor]?"
- "Find antibody structures targeting [antigen]"
- "Analyze the protein-protein interface in PDB [ID]"
- "What mutations affect [GPCR] function or pharmacology?"
- "Which GPCRs are in the [family] family?"
- "What are the CDR loops in antibody PDB [ID]?"
- "What is the biological assembly for [PDB ID]?"
Tool Parameter Reference (CRITICAL)
| Tool | Key Parameters | Notes |
|---|---|---|
GPCRdb_get_protein | protein | GPCRdb entry name (e.g., adrb2_human), NOT gene symbol or UniProt accession |
GPCRdb_list_proteins | family (optional), protein_class (optional) | Lists all GPCRs; filter by family slug (e.g., "adrenoceptors") OR by human-readable class name via protein_class (e.g., "chemokine receptors", "opioid receptors") |
GPCRdb_get_structures | protein (optional), state (optional) | state: "active", "inactive", "intermediate" |
GPCRdb_get_ligands | protein | Returns agonists, antagonists, biased ligands with affinities |
GPCRdb_get_mutations | protein | Returns mutation effects on receptor function and ligand binding |
SAbDab_search_structures | query | Antigen name, species, or keywords; returns browse URL + metadata |
SAbDab_get_structure | pdb_id | 4-character PDB code (e.g., "6W41"); returns CDR annotations |
SAbDab_get_summary | (no required params) | Database statistics and summary |
PDBePISA_get_interfaces | pdb_id | 4-character PDB code; returns all interface pairs with buried area |
PDBePISA_get_assemblies | pdb_id | Predicted biological assemblies from crystal packing |
PDBePISA_get_monomer_analysis | pdb_id | Per-chain solvent-accessible surface area (SASA) breakdown |
GPCRdb Entry Name Format
GPCRdb uses its own entry name format: {receptor_slug}_{species}. Common examples:
- Beta-2 adrenergic receptor:
adrb2_human - Beta-1 adrenergic receptor:
adrb1_human - Mu-opioid receptor:
oprm1_human - Dopamine D2 receptor:
drd2_human - Glucagon-like peptide-1 receptor:
glp1r_human - CXCR4 chemokine receptor:
cxcr4_human
If entry name is unknown, use GPCRdb_list_proteins() to browse and find the correct slug. You can also filter by receptor class using the protein_class parameter with a human-readable name — e.g., GPCRdb_list_proteins(protein_class="chemokine receptors") — instead of the numeric family slug. Both family and protein_class are accepted and serve overlapping purposes; prefer protein_class when the user provides a receptor class name.
Workflow Overview
Phase 1: Receptor Identification (for GPCR queries)
-> GPCRdb_list_proteins: find receptor family and entry name
-> GPCRdb_get_protein: receptor details, family, species
Phase 2: Ligand Landscape
-> GPCRdb_get_ligands: all known ligands by pharmacology class
-> Cross-reference with ChEMBL/PubChem for chemical properties
Phase 3: Structural Data
-> GPCRdb_get_structures: available PDB/EMDB structures with resolution
-> PDBePISA_get_interfaces: interface analysis on best structure
-> PDBePISA_get_assemblies: biological assembly determination
Phase 4: Mutation & Pharmacology Data
-> GPCRdb_get_mutations: pharmacological mutation map
-> Compare to ligand binding sites from structure
Phase 5: Antibody Structures (for antibody queries)
-> SAbDab_search_structures: find structures by antigen
-> SAbDab_get_structure: CDR annotations, chain details
-> PDBePISA_get_interfaces: antibody-antigen interface analysis
Phase 1: GPCR Receptor Identification
# List all GPCRs in a family to find entry name (by slug)
family_list = GPCRdb_list_proteins(family="adrenoceptors")
# Filter by human-readable class name (new -- preferred when user says e.g. "chemokine receptors")
chemokine_list = GPCRdb_list_proteins(protein_class="chemokine receptors")
# Browse all GPCRs (no family filter)
all_gpcrs = GPCRdb_list_proteins()
# Get detailed protein info once you have the entry name
receptor = GPCRdb_get_protein(protein="adrb2_human")
# Returns: family classification, endogenous ligands, tissue expression,
# GPCRdb-specific annotations, sequence features
Phase 2: Ligand Landscape
# Get all known ligands for a GPCR
ligands = GPCRdb_get_ligands(protein="adrb2_human")
# Returns: ligand names, types (agonist/antagonist/partial/biased/allosteric),
# binding affinities (Ki, IC50, EC50), references
# Ligand type classification:
# - Agonist: activates receptor
# - Antagonist/Inverse agonist: blocks or suppresses receptor
# - Partial agonist: submaximal activation
# - Biased agonist: selective signaling (Gs vs. beta-arrestin bias)
# - Positive/Negative allosteric modulator (PAM/NAM)
After retrieving ligands from GPCRdb, optionally cross-reference with:
PubChem_get_CID_by_compound_name(compound_name=ligand_name)— get CID, SMILESChEMBL_search_molecules(query=ligand_name)— get ChEMBL ID, bioactivity data
Phase 3: Structural Data
# Get available crystal/cryo-EM structures
structures = GPCRdb_get_structures(protein="adrb2_human", state="inactive")
# state options: "active", "inactive", "intermediate" (omit for all)
# Returns: PDB IDs, resolution, ligand in structure, publication info
# Analyze a specific structure's interfaces
interfaces = PDBePISA_get_interfaces(pdb_id="2rh1") # adrb2 inactive structure
# Returns: interface pairs, buried solvent-accessible area (BSA),
# interface residues, hydrogen bonds, salt bridges
# Determine biological assembly
assemblies = PDBePISA_get_assemblies(pdb_id="2rh1")
# Returns: predicted oligomeric state, assembly stability score,
# subunit composition
# Per-chain SASA breakdown
monomers = PDBePISA_get_monomer_analysis(pdb_id="2rh1")
# Returns: accessible/buried surface area per chain
Interface Analysis Interpretation:
- BSA > 1500 Ų: Strong interface (likely biologically relevant)
- BSA 800-1500 Ų: Moderate interface
- BSA < 800 Ų: Weak or crystal contact
Phase 4: Mutation Data
# Get all mutations characterized for a GPCR
mutations = GPCRdb_get_mutations(protein="adrb2_human")
# Returns: mutation positions (generic GPCR numbering), effects on:
# - Expression/folding
# - Ligand binding (affinity changes)
# - G-protein coupling
# - Receptor activation
# Generic GPCR numbering (Ballesteros-Weinstein):
# e.g., 3.32 = position 32 in TM helix 3 — conserved across GPCR classes
Phase 5: Antibody Structure Retrieval
# Search SAbDab for antibody structures by antigen
results = SAbDab_search_structures(query="EGFR", limit=20)
# Returns: browse URL + metadata table of matching structures
# Get detailed annotations for a specific antibody structure
structure = SAbDab_get_structure(pdb_id="1IQD")
# Returns: VH/VL chain IDs, CDR1-3 (Kabat/IMGT), antigen info,
# heavy/light chain types, resolution
# Get database overview
summary = SAbDab_get_summary()
# Returns: total structures, species breakdown, antigen coverage stats
CDR Analysis:
- CDR-H3 is most variable and typically dominates antigen contact
- CDR length distribution: SAbDab provides Kabat, Chothia, and IMGT numbering
- After retrieving SAbDab structure, use
PDBePISA_get_interfaces(pdb_id=...)to compute antibody-antigen buried surface area
Common Research Patterns
Pattern 1: GPCR Drug Target Profiling
Input: GPCR name (e.g., "GLP-1 receptor")
Flow: GPCRdb_list_proteins -> find "glp1r_human" ->
GPCRdb_get_protein (receptor details) ->
GPCRdb_get_ligands (approved + investigational drugs) ->
GPCRdb_get_structures (available PDB structures) ->
PDBePISA_get_interfaces on best structure ->
GPCRdb_get_mutations (pharmacological mutants)
Output: Complete GPCR pharmacology profile with structural context
Pattern 2: Antibody-Antigen Interface Analysis
Input: Target antigen (e.g., "PD-L1") or specific PDB code
Flow: SAbDab_search_structures(query="PD-L1") ->
SAbDab_get_structure(pdb_id="best hit") (CDR annotations) ->
PDBePISA_get_interfaces(pdb_id=...) (buried area, key contacts) ->
PDBePISA_get_assemblies (assembly context)
Output: CDR sequences, epitope contact residues, interface energetics
Pattern 3: GPCR Family Survey
Input: Drug class question (e.g., "beta-adrenergic receptors")
Flow: GPCRdb_list_proteins(family="adrenoceptors") ->
GPCRdb_get_protein per receptor (adrb1/2/3) ->
GPCRdb_get_ligands per receptor (selectivity landscape) ->
GPCRdb_get_structures per receptor (structural coverage)
Output: Family-wide selectivity map, structural availability, ligand classes
Pattern 4: Structure Interface Characterization
Input: PDB code
Flow: PDBePISA_get_assemblies (oligomeric state) ->
PDBePISA_get_interfaces (all interface pairs ranked by BSA) ->
PDBePISA_get_monomer_analysis (per-chain surface burial)
Output: Biologically relevant assembly, key interface residues, buried areas
Tool Combinations with Other Skills
This skill complements other ToolUniverse skills:
| Goal | This skill provides | Complement with |
|---|---|---|
| GPCR drug discovery | Receptor/ligand/structure data | tooluniverse-binder-discovery for virtual screening |
| Antibody engineering | SAbDab structure + CDR data | tooluniverse-antibody-engineering for optimization |
| Variant impact on GPCR | GPCRdb mutation effects | tooluniverse-variant-functional-annotation for ACMG |
| Target validation | GPCR expression, ligand data | tooluniverse-drug-target-validation |
| PDB structure analysis | PDBePISA interfaces | tooluniverse-protein-structure-retrieval for RCSB/PDBe |
Fallback Chains
| Primary Tool | Fallback | Use When |
|---|---|---|
GPCRdb_get_protein | UniProt search + PubMed | Entry name unknown or non-GPCR target |
GPCRdb_get_ligands | ChEMBL bioactivity search | Receptor not in GPCRdb |
GPCRdb_get_structures | RCSB PDB text search | Structures not yet in GPCRdb |
SAbDab_search_structures | RCSB PDB antibody search | Antigen not indexed in SAbDab |
PDBePISA_get_interfaces | PDBe graph API | PDBePISA returns no interfaces |
Completeness Checklist
For GPCR profiling:
- Entry name resolved via
GPCRdb_list_proteinsorGPCRdb_get_protein - Receptor family and class documented
- Ligand landscape retrieved with pharmacology types
- Available structures listed with resolution and state
- Best structure analyzed with PDBePISA (interfaces + assembly)
- Mutation data retrieved for pharmacological context
For antibody structure:
- SAbDab search run with antigen name
- Best structure retrieved with
SAbDab_get_structure - CDR1-3 sequences extracted for VH and VL chains
- Antibody-antigen interface analyzed with PDBePISA
- Buried surface area and key contact residues documented
Key References
- GPCRdb: https://gpcrdb.org — standardized GPCR data with generic numbering
- SAbDab: https://opig.stats.ox.ac.uk/webapps/newsabdab/sabdab — structural antibody database
- PDBePISA: https://www.ebi.ac.uk/pdbe/pisa — protein interface analysis
Signals
- GitHub stars
- 2k
- Forks
- 254
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
tooluniverse-gpcr-structural-pharmacology- Source
- github.com/mims-harvard/tooluniverse