Skip to content
Back to skills

Clinical Pharmacology Guide

ASecurity

Clinical pharmacology principles for dosing, drug interactions, and patient s...

  • 3,639 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added June 6, 2026
researchpythongo

Works with

  • cli

Security analysis

A100/100

Scanned June 6, 2026

npx -y skills add brycewang-stanford/Auto-Empirical-Research-Skills --skill clinical-pharmacology-guide --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Clinical Pharmacology Guide?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Clinical Pharmacology Guide
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/brycewang-stanford-clinical-pharmacology-guide/badge)](https://www.skillsdirectory.com/skills/brycewang-stanford-clinical-pharmacology-guide)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: clinical-pharmacology-guide
description: "Clinical pharmacology principles for dosing, drug interactions, and patient s..."
metadata:
  openclaw:
    emoji: "πŸ’‰"
    category: "domains"
    subcategory: "pharma"
    keywords: ["drug development", "pharmacokinetics", "clinical trial", "nursing", "pharmacodynamics", "drug interactions"]
    source: "wentor"
---

# Clinical Pharmacology Guide

A skill for applying clinical pharmacology principles to research and practice. Covers pharmacokinetic/pharmacodynamic modeling, drug interaction assessment, therapeutic drug monitoring, and special population dosing.

## Pharmacokinetic-Pharmacodynamic (PK/PD) Relationships

### The Emax Model

The most widely used PK/PD model relates drug concentration to effect:

```python
import numpy as np
import matplotlib.pyplot as plt

def emax_model(concentration: np.ndarray, emax: float, ec50: float,
                hill: float = 1, baseline: float = 0) -> np.ndarray:
    """
    Sigmoid Emax (Hill) model.

    Args:
        concentration: Drug concentration array
        emax: Maximum effect
        ec50: Concentration producing 50% of Emax
        hill: Hill coefficient (steepness)
        baseline: Baseline effect (E0)
    """
    effect = baseline + (emax * concentration**hill) / (ec50**hill + concentration**hill)
    return effect

# Example: dose-response curve
conc = np.logspace(-2, 3, 200)
effect = emax_model(conc, emax=100, ec50=10, hill=1.5)

fig, ax = plt.subplots(figsize=(8, 5))
ax.semilogx(conc, effect)
ax.set_xlabel('Concentration (ng/mL)')
ax.set_ylabel('Effect (%)')
ax.set_title('Sigmoid Emax Model')
ax.axhline(y=50, color='gray', linestyle='--', alpha=0.5)
ax.axvline(x=10, color='gray', linestyle='--', alpha=0.5)
ax.annotate('EC50', xy=(10, 50), fontsize=12)
plt.tight_layout()
```

## Drug Interaction Assessment

### Cytochrome P450 Interaction Prediction

```python
def predict_cyp_interaction(victim_drug: dict, perpetrator_drug: dict) -> dict:
    """
    Predict metabolic drug-drug interaction potential.

    Args:
        victim_drug: {'name': str, 'primary_cyp': str, 'fraction_metabolized': float}
        perpetrator_drug: {'name': str, 'cyp_effects': dict}
            cyp_effects maps CYP enzyme to 'inhibitor'|'inducer'|'none'
    """
    cyp = victim_drug['primary_cyp']
    fm = victim_drug['fraction_metabolized']  # fraction metabolized by this CYP

    perp_effect = perpetrator_drug['cyp_effects'].get(cyp, 'none')

    if perp_effect == 'inhibitor':
        # AUC ratio = 1 / (1 - fm) for complete inhibition
        auc_ratio = 1 / (1 - fm) if fm < 1 else float('inf')
        risk = 'high' if auc_ratio > 5 else 'moderate' if auc_ratio > 2 else 'low'
    elif perp_effect == 'inducer':
        # Induction decreases exposure
        auc_ratio = 1 - fm * 0.7  # approximate 70% induction
        risk = 'high' if auc_ratio < 0.3 else 'moderate' if auc_ratio < 0.5 else 'low'
    else:
        auc_ratio = 1.0
        risk = 'none'

    return {
        'victim': victim_drug['name'],
        'perpetrator': perpetrator_drug['name'],
        'affected_cyp': cyp,
        'interaction_type': perp_effect,
        'predicted_auc_ratio': round(auc_ratio, 2),
        'clinical_risk': risk,
        'recommendation': (
            'Dose adjustment required' if risk == 'high'
            else 'Monitor closely' if risk == 'moderate'
            else 'No action needed'
        )
    }
```

## Therapeutic Drug Monitoring (TDM)

### Narrow Therapeutic Index Drugs

Drugs requiring routine TDM due to narrow therapeutic windows:

| Drug | Therapeutic Range | Toxic Level | Monitoring Frequency |
|------|------------------|-------------|---------------------|
| Vancomycin | AUC/MIC 400-600 | AUC/MIC > 600 | Trough before 4th dose |
| Lithium | 0.6-1.2 mEq/L | > 1.5 mEq/L | Weekly initially, then monthly |
| Digoxin | 0.8-2.0 ng/mL | > 2.0 ng/mL | At steady state (5-7 days) |
| Phenytoin | 10-20 mcg/mL | > 20 mcg/mL | 2 weeks after dose change |
| Tacrolimus | 5-15 ng/mL | > 20 ng/mL | Twice weekly post-transplant |

### Bayesian TDM

```python
def bayesian_dose_adjustment(prior_cl: float, prior_cl_cv: float,
                              measured_conc: float, expected_conc: float,
                              current_dose: float) -> dict:
    """
    Simple Bayesian dose adjustment using one-point TDM.

    Args:
        prior_cl: Population clearance estimate (L/hr)
        prior_cl_cv: CV of clearance in population (0-1)
        measured_conc: Observed trough concentration
        expected_conc: Expected concentration at population CL
        current_dose: Current dose (mg)
    """
    # Individual clearance estimate (MAP approach, simplified)
    ratio = expected_conc / measured_conc
    individual_cl = prior_cl * ratio

    # Bayesian shrinkage toward population
    weight = 1 / (1 + prior_cl_cv**2)
    posterior_cl = weight * prior_cl + (1 - weight) * individual_cl

    # New dose to achieve target
    target_conc = (measured_conc + expected_conc) / 2  # midpoint of range
    new_dose = current_dose * (posterior_cl / prior_cl)

    return {
        'individual_CL': round(individual_cl, 2),
        'posterior_CL': round(posterior_cl, 2),
        'recommended_dose': round(new_dose, 1),
        'dose_change_pct': round((new_dose - current_dose) / current_dose * 100, 1)
    }
```

## Special Populations

Dosing considerations for specific patient groups:

- **Renal impairment**: Use Cockcroft-Gault or CKD-EPI for GFR estimation; adjust doses for renally cleared drugs proportionally
- **Hepatic impairment**: Use Child-Pugh score; reduce doses of hepatically metabolized drugs by 25-50% for moderate impairment
- **Pediatric**: Use allometric scaling (CL proportional to body weight^0.75) rather than simple mg/kg dosing
- **Geriatric**: Account for decreased renal function, polypharmacy, and altered body composition
- **Pregnancy**: Increased clearance for many drugs due to increased blood volume and GFR

## Regulatory Considerations

All clinical pharmacology studies should follow ICH guidelines (E4 for dose-response, E5 for ethnic factors, E7 for geriatric, E11 for pediatric). Report results in standardized population PK/PD formats compatible with FDA and EMA submission requirements.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…