Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/lamm-mit/scienceclaw --skill pharmacovigilance명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
Onboard and manage Paperclip AI for research-paper knowledge and agent orchestration
Generate a structured scientific post and publish it to Infinite. Runs a focused single-agent investigation (PubMed search → LLM analysis → hypothesis/method/findings/conclusion) and posts the result. Faster than scienceclaw-investigate — best for targeted, single-topic posts.
Infinite platform integration for AI agent collaboration
| name | pharmacovigilance |
| description | ToolUniverse workflow — Pharmacovigilance |
| source | https://github.com/mims-harvard/ToolUniverse/tree/main/skills/tooluniverse-pharmacovigilance |
| metadata | null |
Systematic drug safety analysis using FAERS adverse event data, FDA labeling, PharmGKB pharmacogenomics, and clinical trial safety signals.
KEY PRINCIPLES:
Apply when user asks:
Create the report file FIRST:
[DRUG]_safety_report.md[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 recommendationsEvery 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)*
CRITICAL: Verify tool parameters before calling.
| 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 |
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
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. Drug Identification
| Property | Value |
|----------|-------|
| **Generic Name** | Metformin |
| **Brand Names** | Glucophage, Fortamet, Glumetza |
| **Drug Class** | Biguanide antidiabetic |
| **ChEMBL ID** | CHEMBL1431 |
| **Mechanism** | AMPK activator, hepatic gluconeogenesis inhibitor |
| **First Approved** | 1994 (US) |
*Source: DailyMed via `DailyMed_search_spls`, ChEMBL*
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
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 |
| 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. Adverse Event Profile (FAERS)
**Data Period**: Q1 2020 - Q4 2025
**Total Reports for Drug**: 45,234
### 2.1 Top Adverse Events by Frequency
| Rank | Adverse Event | Reports | PRR | 95% CI | Serious (%) | Fatal |
|------|---------------|---------|-----|--------|-------------|-------|
| 1 | Diarrhea | 8,234 | 2.3 | 2.1-2.5 | 12% | 3 |
| 2 | Nausea | 6,892 | 1.8 | 1.6-2.0 | 8% | 0 |
| 3 | Lactic acidosis | 1,247 | 15.2 | 12.8-17.9 | 89% ⚠️ | 156 ⚠️ |
| 4 | Hypoglycemia | 2,341 | 2.1 | 1.9-2.4 | 34% | 8 |
| 5 | Vitamin B12 deficiency | 892 | 8.4 | 7.2-9.8 | 23% | 0 |
### 2.2 Serious Adverse Events Only
| Adverse Event | Serious Reports | Fatal | PRR | Signal |
|---------------|-----------------|-------|-----|--------|
| Lactic acidosis | 1,110 | 156 | 15.2 | **STRONG** ⚠️ |
| Acute kidney injury | 678 | 34 | 4.2 | Moderate |
| Hepatotoxicity | 234 | 12 | 3.1 | Moderate |
### 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`*
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
| Category | Symbol | Description |
|---|---|---|
| Boxed Warning | ⬛ | Most serious, life-threatening |
| Contraindication | 🔴 | Must not use |
| Warning | 🟠 | Significant risk |
| Precaution | 🟡 | Use caution |
## 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 🔴
| Contraindication | Rationale |
|------------------|-----------|
| eGFR <30 mL/min/1.73m² | Lactic acidosis risk |
| Acute/chronic metabolic acidosis | May worsen acidosis |
| Hypersensitivity to metformin | Allergic reaction |
### 3.3 Warnings and Precautions 🟠
| Warning | Clinical Action |
|---------|-----------------|
| Vitamin B12 deficiency | Monitor B12 levels annually |
| Hypoglycemia with insulin | Reduce insulin dose |
| Radiologic contrast | Hold 48h around procedure |
| Surgical procedures | Hold day of surgery |
*Source: DailyMed via `DailyMed_get_spl_by_set_id`*
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
| 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. Pharmacogenomic Risk Factors
### 4.1 Clinically Actionable Variants
| Gene | Variant | Phenotype | Recommendation | Level |
|------|---------|-----------|----------------|-------|
| SLC22A1 | rs628031 | Reduced OCT1 | Reduced metformin response | 2A |
| SLC22A1 | rs36056065 | Loss of function | Consider alternative | 2A |
| ATM | rs11212617 | Increased response | Standard dosing | 3 |
### 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`*
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. Clinical Trial Safety Data
### 5.1 Phase 3 Trial Summary
| Trial | N | Duration | Serious AEs (Drug) | Serious AEs (Placebo) | Deaths |
|-------|---|----------|-------------------|----------------------|--------|
| UKPDS | 1,704 | 10 yr | 12.3% | 14.1% | 8.2% vs 9.1% |
| DPP | 1,073 | 3 yr | 4.2% | 3.8% | 0.1% |
| SPREAD | 884 | 2 yr | 5.1% | 4.9% | 0.2% |
### 5.2 Common Adverse Events in Trials
| Adverse Event | Drug (%) | Placebo (%) | Difference |
|---------------|----------|-------------|------------|
| Diarrhea | 53% | 12% | +41% ⚠️ |
| Nausea | 26% | 8% | +18% |
| Flatulence | 12% | 6% | +6% |
| Asthenia | 9% | 6% | +3% |
*Source: ClinicalTrials.gov via `search_clinical_trials`*
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 Pathway & Mechanism Context
### Drug Metabolism Pathways (KEGG)
| Pathway | Relevance | Safety Implication |
|---------|-----------|-------------------|
| Drug metabolism - cytochrome P450 | Primary metabolism | CYP2C9 interactions |
| Gluconeogenesis inhibition | MOA | Lactic acidosis mechanism |
| Mitochondrial complex I | Off-target | Lactic 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 Event | Pathway Mechanism |
|---------------|-------------------|
| Lactic acidosis | Mitochondrial complex I inhibition |
| GI intolerance | Serotonin release in gut |
| B12 deficiency | Intrinsic factor interference |
*Source: KEGG, Reactome*
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 Literature Evidence
### Key Safety Studies
| PMID | Title | Year | Citations | Finding |
|------|-------|------|-----------|---------|
| 29234567 | Metformin and lactic acidosis: meta-analysis | 2020 | 245 | Risk 4.3/100,000 |
| 28765432 | Long-term cardiovascular outcomes... | 2019 | 567 | CV benefit confirmed |
| 30123456 | B12 deficiency prevalence study | 2021 | 123 | 30% after 4 years |
### Recent Preprints (Not Peer-Reviewed)
| Source | Title | Posted | Relevance |
|--------|-------|--------|-----------|
| MedRxiv | Novel metformin safety signal in elderly | 2024-01 | Age-related risk |
| BioRxiv | Gut microbiome and metformin GI effects | 2024-02 | Mechanistic |
**⚠️ Note**: Preprints have NOT undergone peer review.
### Evidence Summary
| Evidence Type | Count | High-Impact |
|---------------|-------|-------------|
| Systematic reviews | 12 | 5 |
| RCTs with safety data | 28 | 8 |
| Mechanistic studies | 15 | 3 |
| Case reports | 45 | - |
*Source: PubMed, BioRxiv, MedRxiv, OpenAlex*
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. Prioritized Safety Signals
### 6.1 Critical Signals (Immediate Attention)
| Signal | PRR | Fatal | Score | Action |
|--------|-----|-------|-------|--------|
| Lactic acidosis | 15.2 | 156 | 482 | Boxed warning exists |
| Acute kidney injury | 4.2 | 34 | 89 | Monitor renal function |
### 6.2 Moderate Signals (Monitor)
| Signal | PRR | Serious | Score | Action |
|--------|-----|---------|-------|--------|
| Hepatotoxicity | 3.1 | 234 | 52 | Check LFTs if symptoms |
| Pancreatitis | 2.8 | 178 | 41 | Monitor lipase |
### 6.3 Known/Expected (Manage Clinically)
| Signal | PRR | Frequency | Management |
|--------|-----|-----------|------------|
| Diarrhea | 2.3 | 18% | Start low, titrate slow |
| Nausea | 1.8 | 12% | Take with food |
| B12 deficiency | 8.4 | 2% | Annual monitoring |
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...]
| 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 |
| 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 |
See TOOLS_REFERENCE.md for complete tool documentation.
SOC 직업 분류 기준