tooluniverse-pharmacovigilance

Pharmacovigilance Safety Analyzer

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "tooluniverse-pharmacovigilance" with this command: npx skills add wu-yc/labclaw/wu-yc-labclaw-tooluniverse-pharmacovigilance

Pharmacovigilance Safety Analyzer

Systematic drug safety analysis using FAERS adverse event data, FDA labeling, PharmGKB pharmacogenomics, and clinical trial safety signals.

KEY PRINCIPLES:

  • Report-first approach - Create report file FIRST, update progressively

  • Signal quantification - Use disproportionality measures (PRR, ROR)

  • Severity stratification - Prioritize serious/fatal events

  • Multi-source triangulation - FAERS, labels, trials, literature

  • Pharmacogenomic context - Include genetic risk factors

  • Actionable output - Risk-benefit summary with recommendations

  • English-first queries - Always use English drug names and search terms in tool calls, even if the user writes in another language. Only try original-language terms as a fallback. Respond in the user's language

When to Use

Apply when user asks:

  • "What are the safety concerns for [drug]?"

  • "What adverse events are associated with [drug]?"

  • "Is [drug] safe? What are the risks?"

  • "Should I be concerned about [specific adverse event] with [drug]?"

  • "Compare safety profiles of [drug A] vs [drug B]"

  • "Pharmacovigilance analysis for [drug]"

Critical Workflow Requirements

  1. Report-First Approach (MANDATORY)

Create the report file FIRST:

  • File name: [DRUG]_safety_report.md

  • Initialize with all section headers

  • Add placeholder text: [Researching...]

Progressively update as you gather data

Output separate data files:

  • [DRUG]_adverse_events.csv

  • Ranked AEs with counts/signals

  • [DRUG]_pharmacogenomics.csv

  • PGx variants and recommendations

  1. Citation Requirements (MANDATORY)

Every safety signal MUST include source:

Signal: Hepatotoxicity

  • PRR: 3.2 (95% CI: 2.8-3.7)
  • Cases: 1,247 reports
  • Serious: 892 (71.5%)
  • Fatal: 23

Source: FAERS via FAERS_count_reactions_by_drug_event (Q1 2020 - Q4 2025)

Phase 0: Tool Verification

CRITICAL: Verify tool parameters before calling.

Known Parameter Corrections

Tool WRONG Parameter CORRECT Parameter

FAERS_count_reactions_by_drug_event

drug

drug_name

DailyMed_search_spls

name

drug_name

PharmGKB_search_drug

drug

query

OpenFDA_get_drug_events

drug_name

search

Workflow Overview

Phase 1: Drug Disambiguation ├── Resolve drug name (brand → generic) ├── Get identifiers (RxCUI, ChEMBL, DrugBank) └── Identify drug class and mechanism ↓ Phase 2: Adverse Event Profiling (FAERS) ├── Query FAERS for drug-event pairs ├── Calculate disproportionality (PRR, ROR) ├── Stratify by seriousness └── OUTPUT: Ranked AE table ↓ Phase 3: Label Warning Extraction ├── DailyMed boxed warnings ├── Contraindications ├── Warnings and precautions └── OUTPUT: Label safety summary ↓ Phase 4: Pharmacogenomic Risk ├── PharmGKB clinical annotations ├── High-risk genotypes ├── Dosing recommendations └── OUTPUT: PGx risk table ↓ Phase 5: Clinical Trial Safety ├── ClinicalTrials.gov safety data ├── Phase 3/4 discontinuation rates ├── Serious AEs in trials └── OUTPUT: Trial safety summary ↓ Phase 5.5: Pathway & Mechanism Context (NEW) ├── KEGG: Drug metabolism pathways ├── Reactome: Mechanism-linked pathways ├── Target pathway analysis └── OUTPUT: Mechanistic safety context ↓ Phase 5.6: Literature Intelligence (ENHANCED) ├── PubMed: Published safety studies ├── BioRxiv/MedRxiv: Recent preprints ├── OpenAlex: Citation analysis └── OUTPUT: Literature evidence ↓ Phase 6: Signal Prioritization ├── Rank by PRR × severity × frequency ├── Identify actionable signals ├── Risk-benefit assessment └── OUTPUT: Prioritized signal list ↓ Phase 7: Report Synthesis

Phase 1: Drug Disambiguation

1.1 Resolve Drug Identity

def resolve_drug(tu, drug_query): """Resolve drug name to standardized identifiers.""" identifiers = {}

# DailyMed for NDC and SPL
dailymed = tu.tools.DailyMed_search_spls(drug_name=drug_query)
if dailymed:
    identifiers['ndc'] = dailymed[0].get('ndc')
    identifiers['setid'] = dailymed[0].get('setid')
    identifiers['generic_name'] = dailymed[0].get('generic_name')

# ChEMBL for molecule data
chembl = tu.tools.ChEMBL_search_drugs(query=drug_query)
if chembl:
    identifiers['chembl_id'] = chembl[0].get('molecule_chembl_id')
    identifiers['max_phase'] = chembl[0].get('max_phase')

return identifiers

1.2 Output for Report

1. Drug Identification

PropertyValue
Generic NameMetformin
Brand NamesGlucophage, Fortamet, Glumetza
Drug ClassBiguanide antidiabetic
ChEMBL IDCHEMBL1431
MechanismAMPK activator, hepatic gluconeogenesis inhibitor
First Approved1994 (US)

Source: DailyMed via DailyMed_search_spls, ChEMBL

Phase 2: Adverse Event Profiling

2.1 FAERS Query Strategy

def get_faers_events(tu, drug_name, top_n=50): """Query FAERS for adverse events."""

# Get event counts
events = tu.tools.FAERS_count_reactions_by_drug_event(
    drug_name=drug_name,
    limit=top_n
)

# For each event, get detailed breakdown
detailed_events = []
for event in events:
    detail = tu.tools.FAERS_get_event_details(
        drug_name=drug_name,
        reaction=event['reaction']
    )
    detailed_events.append({
        'reaction': event['reaction'],
        'count': event['count'],
        'serious': detail.get('serious_count', 0),
        'fatal': detail.get('death_count', 0),
        'hospitalization': detail.get('hospitalization_count', 0)
    })

return detailed_events

2.2 Disproportionality Analysis

Proportional Reporting Ratio (PRR):

PRR = (A/B) / (C/D)

Where: A = Reports of drug X with event Y B = Reports of drug X with any event C = Reports of event Y with any drug (excluding X) D = Total reports (excluding drug X)

Signal Thresholds:

Measure Signal Threshold Strong Signal

PRR

2.0 3.0

Chi-squared

4.0 10.0

N (case count) ≥3 ≥10

2.3 Severity Classification

Category Definition Priority

Fatal Death outcome Highest

Life-threatening Immediate death risk Very High

Hospitalization Required/prolonged hospitalization High

Disability Persistent impairment High

Congenital anomaly Birth defect High

Other serious Medical intervention required Medium

Non-serious No serious criteria Low

2.4 Output for Report

2. Adverse Event Profile (FAERS)

Data Period: Q1 2020 - Q4 2025 Total Reports for Drug: 45,234

2.1 Top Adverse Events by Frequency

RankAdverse EventReportsPRR95% CISerious (%)Fatal
1Diarrhea8,2342.32.1-2.512%3
2Nausea6,8921.81.6-2.08%0
3Lactic acidosis1,24715.212.8-17.989% ⚠️156 ⚠️
4Hypoglycemia2,3412.11.9-2.434%8
5Vitamin B12 deficiency8928.47.2-9.823%0

2.2 Serious Adverse Events Only

Adverse EventSerious ReportsFatalPRRSignal
Lactic acidosis1,11015615.2STRONG ⚠️
Acute kidney injury678344.2Moderate
Hepatotoxicity234123.1Moderate

2.3 Signal Interpretation

Strong Signal: Lactic Acidosis ⚠️

  • PRR of 15.2 indicates 15x higher reporting rate than expected
  • 89% classified as serious
  • 156 fatalities (12.5% case fatality)
  • Known class effect of biguanides
  • Risk factors: renal impairment, hypoxia, contrast agents

Source: FAERS via FAERS_count_reactions_by_drug_event

Phase 3: Label Warning Extraction

3.1 DailyMed Query

def extract_label_warnings(tu, setid): """Extract safety sections from FDA label."""

label = tu.tools.DailyMed_get_spl_by_set_id(setid=setid)

warnings = {
    'boxed_warning': label.get('boxed_warning'),
    'contraindications': label.get('contraindications'),
    'warnings_precautions': label.get('warnings_and_precautions'),
    'adverse_reactions': label.get('adverse_reactions'),
    'drug_interactions': label.get('drug_interactions')
}

return warnings

3.2 Warning Severity Categories

Category Symbol Description

Boxed Warning ⬛ Most serious, life-threatening

Contraindication 🔴 Must not use

Warning 🟠 Significant risk

Precaution 🟡 Use caution

3.3 Output for Report

3. FDA Label Safety Information

3.1 Boxed Warning ⬛

LACTIC ACIDOSIS

Metformin can cause lactic acidosis, a rare but serious complication. Risk increases with renal impairment, sepsis, dehydration, excessive alcohol intake, hepatic impairment, and acute heart failure.

Contraindicated in patients with eGFR <30 mL/min/1.73m²

3.2 Contraindications 🔴

ContraindicationRationale
eGFR <30 mL/min/1.73m²Lactic acidosis risk
Acute/chronic metabolic acidosisMay worsen acidosis
Hypersensitivity to metforminAllergic reaction

3.3 Warnings and Precautions 🟠

WarningClinical Action
Vitamin B12 deficiencyMonitor B12 levels annually
Hypoglycemia with insulinReduce insulin dose
Radiologic contrastHold 48h around procedure
Surgical proceduresHold day of surgery

Source: DailyMed via DailyMed_get_spl_by_set_id

Phase 4: Pharmacogenomic Risk

4.1 PharmGKB Query

def get_pharmacogenomics(tu, drug_name): """Get pharmacogenomic annotations."""

# Search PharmGKB
pgx = tu.tools.PharmGKB_search_drug(query=drug_name)

annotations = []
for result in pgx:
    if result.get('clinical_annotation'):
        annotations.append({
            'gene': result['gene'],
            'variant': result['variant'],
            'phenotype': result['phenotype'],
            'recommendation': result['recommendation'],
            'level': result['level_of_evidence']
        })

return annotations

4.2 PGx Evidence Levels

Level Description Clinical Action

1A CPIC/DPWG guideline, implementable Follow guideline

1B CPIC/DPWG guideline, annotation Consider testing

2A VIP annotation, moderate evidence May inform

2B VIP annotation, weaker evidence Research

3 Low-level annotation Not actionable

4.3 Output for Report

4. Pharmacogenomic Risk Factors

4.1 Clinically Actionable Variants

GeneVariantPhenotypeRecommendationLevel
SLC22A1rs628031Reduced OCT1Reduced metformin response2A
SLC22A1rs36056065Loss of functionConsider alternative2A
ATMrs11212617Increased responseStandard dosing3

4.2 Clinical Implications

OCT1 (SLC22A1) Poor Metabolizers:

  • ~9% of Caucasians carry two loss-of-function alleles
  • Reduced hepatic uptake of metformin
  • May have decreased efficacy
  • Consider higher doses or alternative agent

No CPIC/DPWG guidelines currently exist for metformin

Source: PharmGKB via PharmGKB_search_drug

Phase 5: Clinical Trial Safety

5.1 ClinicalTrials.gov Query

def get_trial_safety(tu, drug_name): """Get safety data from clinical trials."""

# Search completed phase 3/4 trials
trials = tu.tools.search_clinical_trials(
    intervention=drug_name,
    phase="Phase 3",
    status="Completed",
    pageSize=20
)

safety_data = []
for trial in trials:
    if trial.get('results_posted'):
        results = tu.tools.get_clinical_trial_results(
            nct_id=trial['nct_id']
        )
        safety_data.append(results.get('adverse_events'))

return safety_data

5.2 Output for Report

5. Clinical Trial Safety Data

5.1 Phase 3 Trial Summary

TrialNDurationSerious AEs (Drug)Serious AEs (Placebo)Deaths
UKPDS1,70410 yr12.3%14.1%8.2% vs 9.1%
DPP1,0733 yr4.2%3.8%0.1%
SPREAD8842 yr5.1%4.9%0.2%

5.2 Common Adverse Events in Trials

Adverse EventDrug (%)Placebo (%)Difference
Diarrhea53%12%+41% ⚠️
Nausea26%8%+18%
Flatulence12%6%+6%
Asthenia9%6%+3%

Source: ClinicalTrials.gov via search_clinical_trials

Phase 5.5: Pathway & Mechanism Context (NEW)

5.5.1 Drug Metabolism Pathways (KEGG)

def get_drug_pathway_context(tu, drug_name, drug_targets): """Get pathway context for mechanistic safety understanding."""

# KEGG drug metabolism
metabolism = tu.tools.kegg_search_pathway(
    query=f"{drug_name} metabolism"
)

# Target pathways
target_pathways = {}
for target in drug_targets:
    pathways = tu.tools.kegg_get_gene_info(gene_id=f"hsa:{target}")
    target_pathways[target] = pathways.get('pathways', [])

return {
    'metabolism_pathways': metabolism,
    'target_pathways': target_pathways
}

5.5.2 Output for Report

5.5 Pathway & Mechanism Context

Drug Metabolism Pathways (KEGG)

PathwayRelevanceSafety Implication
Drug metabolism - cytochrome P450Primary metabolismCYP2C9 interactions
Gluconeogenesis inhibitionMOALactic acidosis mechanism
Mitochondrial complex IOff-targetLactic acid accumulation

Target Pathway Analysis

Primary Target: AMPK

  • Pathway: AMPK signaling (hsa04152)
  • Downstream: mTOR inhibition, autophagy
  • Safety relevance: Explains metabolic effects

Mechanistic Basis for Key AEs:

Adverse EventPathway Mechanism
Lactic acidosisMitochondrial complex I inhibition
GI intoleranceSerotonin release in gut
B12 deficiencyIntrinsic factor interference

Source: KEGG, Reactome

Phase 5.6: Literature Intelligence (ENHANCED)

5.6.1 Published Safety Studies

def comprehensive_safety_literature(tu, drug_name, key_aes): """Search all literature sources for safety evidence."""

# PubMed: Peer-reviewed
pubmed = tu.tools.PubMed_search_articles(
    query=f'"{drug_name}" AND (safety OR adverse OR toxicity)',
    limit=30
)

# BioRxiv: Preprints
biorxiv = tu.tools.BioRxiv_search_preprints(
    query=f"{drug_name} mechanism toxicity",
    limit=10
)

# MedRxiv: Clinical preprints
medrxiv = tu.tools.MedRxiv_search_preprints(
    query=f"{drug_name} safety",
    limit=10
)

# Citation analysis for key papers
key_papers = pubmed[:10]
for paper in key_papers:
    citation = tu.tools.openalex_search_works(
        query=paper['title'],
        limit=1
    )
    paper['citations'] = citation[0].get('cited_by_count', 0) if citation else 0

return {
    'pubmed': pubmed,
    'preprints': biorxiv + medrxiv,
    'key_papers': key_papers
}

5.6.2 Output for Report

5.6 Literature Evidence

Key Safety Studies

PMIDTitleYearCitationsFinding
29234567Metformin and lactic acidosis: meta-analysis2020245Risk 4.3/100,000
28765432Long-term cardiovascular outcomes...2019567CV benefit confirmed
30123456B12 deficiency prevalence study202112330% after 4 years

Recent Preprints (Not Peer-Reviewed)

SourceTitlePostedRelevance
MedRxivNovel metformin safety signal in elderly2024-01Age-related risk
BioRxivGut microbiome and metformin GI effects2024-02Mechanistic

⚠️ Note: Preprints have NOT undergone peer review.

Evidence Summary

Evidence TypeCountHigh-Impact
Systematic reviews125
RCTs with safety data288
Mechanistic studies153
Case reports45-

Source: PubMed, BioRxiv, MedRxiv, OpenAlex

Phase 6: Signal Prioritization

6.1 Signal Scoring Formula

Signal Score = PRR × Severity_Weight × log10(Case_Count + 1)

Severity Weights:

  • Fatal: 10
  • Life-threatening: 8
  • Hospitalization: 5
  • Disability: 5
  • Other serious: 3
  • Non-serious: 1

6.2 Output for Report

6. Prioritized Safety Signals

6.1 Critical Signals (Immediate Attention)

SignalPRRFatalScoreAction
Lactic acidosis15.2156482Boxed warning exists
Acute kidney injury4.23489Monitor renal function

6.2 Moderate Signals (Monitor)

SignalPRRSeriousScoreAction
Hepatotoxicity3.123452Check LFTs if symptoms
Pancreatitis2.817841Monitor lipase

6.3 Known/Expected (Manage Clinically)

SignalPRRFrequencyManagement
Diarrhea2.318%Start low, titrate slow
Nausea1.812%Take with food
B12 deficiency8.42%Annual monitoring

Report Template

File: [DRUG]_safety_report.md

Pharmacovigilance Safety Report: [DRUG]

Generated: [Date] | Query: [Original query] | Status: In Progress


Executive Summary

[Researching...]


1. Drug Identification

1.1 Drug Information

[Researching...]


2. Adverse Event Profile (FAERS)

2.1 Top Adverse Events

[Researching...]

2.2 Serious Adverse Events

[Researching...]

2.3 Signal Analysis

[Researching...]


3. FDA Label Safety Information

3.1 Boxed Warnings

[Researching...]

3.2 Contraindications

[Researching...]

3.3 Warnings and Precautions

[Researching...]


4. Pharmacogenomic Risk Factors

4.1 Actionable Variants

[Researching...]

4.2 Testing Recommendations

[Researching...]


5. Clinical Trial Safety

5.1 Trial Summary

[Researching...]

5.2 Adverse Events in Trials

[Researching...]


6. Prioritized Safety Signals

6.1 Critical Signals

[Researching...]

6.2 Moderate Signals

[Researching...]


7. Risk-Benefit Assessment

[Researching...]


8. Clinical Recommendations

8.1 Monitoring Recommendations

[Researching...]

8.2 Patient Counseling Points

[Researching...]

8.3 Contraindication Checklist

[Researching...]


9. Data Gaps & Limitations

[Researching...]


10. Data Sources

[Will be populated as research progresses...]

Evidence Grading

Tier Symbol Criteria Example

T1 ⚠️⚠️⚠️ PRR >10, fatal outcomes, boxed warning Lactic acidosis

T2 ⚠️⚠️ PRR 3-10, serious outcomes Hepatotoxicity

T3 ⚠️ PRR 2-3, moderate concern Hypoglycemia

T4 ℹ️ PRR <2, known/expected GI side effects

Completeness Checklist

Phase 1: Drug Identification

  • Generic name resolved

  • Brand names listed

  • Drug class identified

  • ChEMBL/DrugBank ID obtained

  • Mechanism of action stated

Phase 2: FAERS Analysis

  • ≥20 adverse events queried

  • PRR calculated for top events

  • Serious/fatal counts included

  • Signal thresholds applied

  • Time period stated

Phase 3: Label Warnings

  • Boxed warnings extracted (or "None")

  • Contraindications listed

  • Key warnings summarized

  • Drug interactions noted

Phase 4: Pharmacogenomics

  • PharmGKB queried

  • Actionable variants listed (or "None")

  • Evidence levels provided

  • Testing recommendations stated

Phase 5: Clinical Trials

  • Phase 3/4 trials searched

  • Serious AE rates compared

  • Discontinuation rates noted

Phase 6: Signal Prioritization

  • Signals ranked by score

  • Critical signals flagged

  • Actions recommended

Phase 7-8: Synthesis

  • Risk-benefit assessment provided

  • Monitoring recommendations listed

  • Patient counseling points included

Fallback Chains

Primary Tool Fallback 1 Fallback 2

FAERS_count_reactions_by_drug_event

OpenFDA_get_drug_events

Literature search

DailyMed_get_spl_by_set_id

FDA_drug_label_search

DailyMed website

PharmGKB_search_drug

CPIC_get_guidelines

Literature search

search_clinical_trials

ClinicalTrials.gov API PubMed for trial results

Tool Reference

See TOOLS_REFERENCE.md for complete tool documentation.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

tooluniverse-drug-repurposing

No summary provided by upstream source.

Repository SourceNeeds Review
General

drugbank-database

No summary provided by upstream source.

Repository SourceNeeds Review
General

rowan

No summary provided by upstream source.

Repository SourceNeeds Review
General

drug-labels-search

No summary provided by upstream source.

Repository SourceNeeds Review