Claude
Skills
Sign in
Back

tooluniverse-drug-regulatory

Included with Lifetime
$97 forever

Drug regulatory and approval research — FDA substance registry, ATC/EPC classification, EMA decisions, generic-drug status, FDA Orange Book exclusivity, NDA/BLA pathways. Use for jurisdiction-aware approval status (FDA vs EMA), generic vs brand availability, exclusivity expiry tracking, and regulatory pathway selection. Always specifies the market when reporting status.

Ads & Marketing

What this skill does


# Drug Regulatory Research

**Regulatory status depends on jurisdiction.** FDA approval does not equal EMA approval — check the specific market the user is asking about. Generic availability depends on BOTH patent expiry AND regulatory approval — a patent may have expired but no ANDA may yet be filed or approved. Exclusivity codes (NCE, ODE, PED) can block generics even after patent expiry; always check `FDA_OrangeBook_get_exclusivity` before concluding a generic can enter. A 505(b)(2) NDA is not a generic — it requires its own clinical data and gets its own exclusivity period.

**LOOK UP DON'T GUESS**: never assume NDA numbers, exclusivity dates, or ATC codes — always call FDAGSRS, Orange Book, and RxClass tools to retrieve current data; regulatory status changes with new approvals and expirations.

Regulatory intelligence for drugs: identify FDA substances, classify drugs by therapeutic
category, check approval and generic status, retrieve label sections, and find clinical trials.

## When to Use

- "What is the FDA regulatory status of semaglutide?"
- "Is there a generic for Humira?"
- "What ATC class does metformin belong to?"
- "Get adverse reactions from the ibuprofen drug label"
- "When does the patent for Eliquis expire?"
- "List all drugs in the ACE inhibitor class"
- "Find clinical trials for a biosimilar of adalimumab"

## NOT for (use other skills instead)

- Drug-drug interactions -> Use `tooluniverse-drug-drug-interaction`
- Pharmacogenomics / dosing by genotype -> Use `tooluniverse-pharmacogenomics`
- Drug mechanism of action / target binding -> Use `tooluniverse-drug-mechanism-research`
- Drug repurposing / new indications -> Use `tooluniverse-drug-repurposing`

---

## Workflow Overview

```
Input (drug name / brand name / UNII)
  |
  v
Phase 1: Substance Identification  -- FDAGSRS_search_substances, FDAGSRS_get_substance
  |
  v
Phase 2: Drug Classification       -- RxClass_get_drug_classes, RxClass_find_classes
  |
  v
Phase 3: Approval & Generic Status -- FDA_OrangeBook_search_drug, FDA_OrangeBook_check_generic_availability
  |
  v
Phase 4: Patent & Exclusivity      -- FDA_OrangeBook_get_patent_info, FDA_OrangeBook_get_exclusivity
  |
  v
Phase 5: Label Parsing             -- DailyMed_parse_adverse_reactions, DailyMed_parse_dosing, etc.
  |
  v
Phase 6: Clinical Trials           -- search_clinical_trials
  |
  v
Phase 7: Pharmacovigilance         -- FAERS_count_reactions_by_drug_event (param: medicinalproduct)
  |
  v
Phase 8: Literature & Approval     -- PubMed_search_articles, OpenFDA_get_approval_history, RxNorm_get_drug_names
```

> **Supplementary tools** (not in core phases but useful):
> - `OpenFDA_get_approval_history` — full FDA submission/approval history (requires `operation` param)
> - `FAERS_count_reactions_by_drug_event` — top adverse events by report count (param: `medicinalproduct`, ALL CAPS)
> - `RxNorm_get_drug_names` — resolve drug to RXCUI and brand names
> - `drugbank_vocab_search` — DrugBank ID, CAS, UNII lookup
> - `PubMed_search_articles` — regulatory and clinical literature

---

## Phase 1: Substance Identification (FDAGSRS)

**FDAGSRS_search_substances**: `query` (string REQUIRED -- drug name, UNII, InChIKey, or formula), `substance_class` (string, optional: "chemical"/"protein"/"nucleic acid"/"polymer"/"mixture"), `limit` (int, 1-50, default 10).
Returns `{status, data: {substances: [{unii, name, substance_class, status, cross_references: [{type, value}]}]}}`.
- `cross_references` contains DrugBank IDs, WHO-ATC codes, CAS numbers, CFR citations.
- Use to get the official UNII identifier before calling `FDAGSRS_get_substance`.

**FDAGSRS_get_substance**: `unii` (string REQUIRED, 10-char FDA UNII code).
Returns complete substance record including all synonyms, names, structure, and cross-references.
- Provides definitive list of all registered names (INN, USAN, brand, chemical).

**FDAGSRS_get_structure**: `unii` (string REQUIRED).
Returns `{status, data: {smiles, formula, inchikey, molfile, molecular_weight, stereochemistry, optical_activity}}`.
- Only works for chemical substances; returns error for biologics, mixtures, polymers.

```python
# Full substance lookup workflow
search = tu.tools.FDAGSRS_search_substances(query="semaglutide")
unii = search["data"]["substances"][0]["unii"]
full = tu.tools.FDAGSRS_get_substance(unii=unii)
```

---

## Phase 2: Drug Classification (RxClass)

**RxClass_get_drug_classes**: `drug_name` (string, drug name), `rxcui` (string, RxNorm RXCUI -- alternative to drug_name), `rela_source` (string, optional: "ATC"/"FDASPL"/"MESH"/"VA"), `limit` (int, default 20).
Returns `{status, data: {classes: [{class_id, class_name, class_type, rela}]}}`.
- Returns ALL classification systems unless `rela_source` filters to one.
- `class_type` values: "ATC1-4", "EPC" (FDA Established Pharmacologic Class), "MoA", "VA", "MESH".
- Use to find a drug's ATC code, pharmacological class, mechanism of action label.

**RxClass_find_classes**: `query` (string REQUIRED, keyword e.g., "beta blocker"), `class_type` (string, optional: "ATC1-4"/"EPC"/"MoA"), `limit` (int, default 20).
Returns matching drug classes with class IDs.
- Use when you need to find a class ID before calling `RxClass_get_class_members`.

**RxClass_get_class_members**: `class_id` (string REQUIRED, e.g., "M01AE"), `rela_source` (string, optional: "ATC"/"FDASPL"), `ttys` (string, optional: "IN" for ingredients), `limit` (int, default 50).
Returns all drug ingredients in the class with RXCUIs and names.
- `ttys="IN"` restricts to active ingredient-level entries (recommended).

```python
# Find all proton pump inhibitors
classes = tu.tools.RxClass_find_classes(query="proton pump inhibitor", class_type="EPC")
class_id = classes["data"]["classes"][0]["class_id"]
members = tu.tools.RxClass_get_class_members(class_id=class_id, ttys="IN")
```

---

## Phase 3: Approval & Generic Status (FDA Orange Book)

**FDA_OrangeBook_search_drug**: `brand_name` (string), `generic_name` (string), `application_number` (string), `limit` (int, default 10).
Returns `{status, data: {products: [{brand_name, generic_name, dosage_form, strength, te_code, application_number, approval_date}]}}`.
- Use brand name (UPPERCASE) or generic name to find NDA/ANDA numbers and approval info.
- `te_code`: Therapeutic Equivalence code (e.g., "AB" = therapeutically equivalent).

**FDA_OrangeBook_check_generic_availability**: `brand_name` (string), `generic_name` (string).
Returns `{status, data: {reference_listed_drug, generics_available: bool, generics_count, generic_products: [...]}}`.
- Primary tool for "is there a generic?" questions.

**FDA_OrangeBook_get_te_code**: No special params beyond `brand_name`/`application_number`.
Returns therapeutic equivalence codes for substitutability assessment.

**FDA_OrangeBook_get_approval_history**: `application_number` (string, e.g., "NDA020402").
Returns chronological approval history including supplemental approvals and label changes.

```python
# Check generic availability
result = tu.tools.FDA_OrangeBook_check_generic_availability(brand_name="LIPITOR")
# result["data"]["generics_available"] -> True
# result["data"]["generics_count"] -> N
```

---

## Phase 4: Patent & Exclusivity

**FDA_OrangeBook_get_patent_info**: `application_number` (string), `brand_name` (string).
Returns patent information. Note: Full patent numbers and expiration dates require Orange Book data files.

**FDA_OrangeBook_get_exclusivity**: `application_number` (string), `brand_name` (string).
Returns `{status, data: {exclusivities: [{exclusivity_code, exclusivity_date, description}]}}`.
- `exclusivity_code` values: "NCE" (New Chemical Entity, 5 years), "ODE" (Orphan Drug, 7 years), "PED" (Pediatric, 6 months), "NP" (New Product), "M" (new formulation).

---

## Phase 5: Label Parsing (DailyMed)

All DailyMed parse tools accept either `setid` (SPL Set ID UUID) OR `drug_name` (auto-lookup).
Using `drug_name` is recommended when the setid is unknown.

**Dail

Related in Ads & Marketing