From mims-harvard-tooluniverse
Researches GPCR receptors, ligands (agonists/antagonists/biased), mutations, crystal/cryo-EM structures, antibody CDRs, and protein interfaces using GPCRdb, SAbDab, PDBePISA. For pharmacology and drug discovery queries.
npx claudepluginhub joshuarweaver/cascade-data-analytics --plugin mims-harvard-tooluniverseThis skill uses the workspace's default tool permissions.
**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 ...
Conducts multi-round deep research on GitHub repos via API and web searches, generating markdown reports with executive summaries, timelines, metrics, and Mermaid diagrams.
Dynamically discovers and combines enabled skills into cohesive, unexpected delightful experiences like interactive HTML or themed artifacts. Activates on 'surprise me', inspiration, or boredom cues.
Generates images from structured JSON prompts via Python script execution. Supports reference images and aspect ratios for characters, scenes, products, visuals.
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:
Apply when user asks:
| 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 uses its own entry name format: {receptor_slug}_{species}. Common examples:
adrb2_humanadrb1_humanoprm1_humandrd2_humanglp1r_humancxcr4_humanIf 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.
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
# 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
# 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# 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:
# 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
# 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:
PDBePISA_get_interfaces(pdb_id=...) to compute antibody-antigen buried surface areaInput: 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
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
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
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
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 |
| 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 |
For GPCR profiling:
GPCRdb_list_proteins or GPCRdb_get_proteinFor antibody structure:
SAbDab_get_structure