360 Secure SkillHub
360 安全技能中心

Pharmaclaw Market Intel Agent

通过 openFDA 的 FAERS 与 ClinicalTrials.gov API 查询药物不良事件、反应趋势和临床试验数据,支持药物名或 SMILES(经 PubChem 解析),输出 JSON 摘要、统计结果与 matplotlib 柱状图 PNG,并提供统一入口批量链式运行。

cheminem
cheminem
热度 83.64
最近更新 2026-05-11 17:30:39
分类:数据依赖:代码执行 / 第三方 API / 读写文件应用场景:市场分析 / 数据处理 / 研究 / 报告撰写

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add pharmaclaw-market-intel-agent
Metadata
name
pharmaclaw-market-intel-agent
description
Fetches and analyzes FAERS (FDA Adverse Event Reporting System) data from openFDA API. Supports drug names and SMILES (resolves via PubChem). Generates: events list, yearly trends (counts), top reactions/outcomes as JSON + matplotlib bar chart PNGs.
triggers
["faers","adverse event","safety report","drug side effect","post-market surveillance","reaction trend","clinical trial","clinicaltrials","trial pipeline","recruiting trial"]

Pharma Market Intel Agent - FAERS Query Skill

Overview

Query real-world post-market safety data for drugs. Useful for market intel on safety profiles, emerging risks, competitor analysis.

Key outputs:

  • JSON summaries (trends, top reactions/outcomes)
  • PNG bar charts (yearly reports, top 10 reactions/outcomes)
  • Sample recent events

Rate limits: openFDA ~240 req/min. Counts are fast (no full data).

Chemistry-Query Structure

Parse user queries into this model for standardized chaining:

from dataclasses import dataclass
from typing import List, Optional

@dataclass
class ChemistryQuery:
    drug: str  # Drug name or SMILES
    query_type: str = 'faers'  # 'faers', 'pubchem', etc.
    metrics: Optional[List[str]] = None  # ['yearly_trends', 'top_reactions', 'top_outcomes', 'events']
    limit_events: int = 20

Example:

{
  \"drug\": \"aspirin\",  // or \"CC(=O)OC1=CC=CC=C1C(=O)O\"
  \"query_type\": \"faers\",
  \"metrics\": [\"yearly_trends\", \"top_reactions\"]
}

Quick Start / Workflows

1. Basic Query (All Metrics)

exec skills/pharma-market-intel-agent/scripts/query_faers.py --drug aspirin --output ./aspirin_faers

Generates:

  • aspirin_faers/aspirin_summary.json
  • *.png plots
  • Recent events JSON

2. SMILES Input

exec ... --drug \"CC(=O)OC1=CC=CC=C1C(=O)O\"  # Aspirin SMILES

Auto-resolves to name via PubChem.

3. Custom Limit

exec ... --drug ozempic --limit-events 50 --output ozempic_analysis

Chaining Examples

  • With chemistry-query: Resolve/validate SMILES first, then FAERS.
  • pharma-tox-agent: Feed top reactions for tox prediction.
  • pharma-ip-expansion-agent: Check safety for IP expansion targets.
  • traction-agent: Market risk scoring from FAERS trends.
# Agent workflow:
1. Parse ChemistryQuery
2. Resolve SMILES if needed (pubchempy or query_faers handles)
3. Run query_faers.py
4. Read PNGs/JSONs into response
5. Chain if metrics require

ClinicalTrials.gov Integration

Query clinical trial data from ClinicalTrials.gov API v2. Search by drug, condition, phase, and status. No API key needed.

Quick Start

# Search by drug
exec skills/pharma-market-intel-agent/scripts/query_trials.py --drug "sotorasib" --output ./sotorasib_trials

# Search by condition + filters
exec ... --condition "breast cancer" --phase PHASE3 --status RECRUITING --limit 10 --output ./bc_trials

# Search by both
exec ... --drug "pembrolizumab" --condition "NSCLC" --output ./pembro_trials

# SMILES input (auto-resolves via PubChem)
exec ... --drug "CC(=O)OC1=CC=CC=C1C(=O)O" --output ./aspirin_trials

Outputs

  • {drug}_trials_summary.json — Full structured summary with trials list and aggregate stats
  • {drug}_trials_by_phase.png — Bar chart by phase
  • {drug}_trials_by_status.png — Bar chart by status
  • {drug}_trials_timeline.png — Timeline of trial start dates

JSON Summary Structure

{
  "drug": "sotorasib",
  "total_found": 45,
  "trials": [{"nct_id": "NCT...", "title": "...", "phase": "PHASE3", "sponsor": "Amgen", ...}],
  "stats": {"by_phase": {...}, "by_status": {...}, "top_sponsors": [...], "top_conditions": [...]}
}

Chaining Examples

  • Chemistry Query → Market Intel: Resolve SMILES, then query trials for competitive landscape
  • FAERS + Trials: Run both scripts for a drug to get safety profile + development pipeline
  • chain_entry.py: Use --metrics trials or --metrics faers,trials to run both in one call

References

Resources

  • scripts/query_faers.py: FAERS query executable
  • scripts/query_trials.py: ClinicalTrials.gov query executable
  • scripts/chain_entry.py: Unified entry point (faers + trials)
  • assets/: Store generated PNGs here for reuse