agentsclimarketplace

Tac2017

Skill BioTender-max/awesome-bio-agent-skills/skills/drugclaw/tac2017

Query TAC 2017 ADR annotated drug labels for adverse drug reactions. Use whenever the user asks about ADRs extracted from FDA drug labels, MedDRA-normalized adverse reactions, or wants to look up a drug name, ADR string, or MedDRA code in the TAC 2017 ADR corpus.From its SKILL.md

Install
npx -y skills add BioTender-max/awesome-bio-agent-skills --skill tac2017

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

3.0 KB, 835 tokens by cl100k_base, as published. Nobody here has run it

TAC 2017 ADR Query Skill

Search 200 FDA drug labels annotated with adverse reactions, severity, and MedDRA normalization from the TAC 2017 shared task.

Entity Auto-detection

Input PatternDetected AsMatch Logic
10019211 (8 digits)MedDRA IDexact on meddra_pt_id or meddra_llt_id
ACTEMRA (known drug)Drug nameexact (case-insensitive) on drug label name
headache (known ADR)ADR stringexact on ADR reaction string
anything elseFree textsubstring on drug names, ADR strings, MedDRA PT/LLT names

API

FunctionInputReturns
search(entity)single entity stringlist[dict] — matching label hit(s)
search_batch(entities)list of entity stringsdict[str, list[dict]]
summarize(hits, entity)hit list + query labelcompact LLM-readable text
to_json(hits)hit listlist[dict] (JSON-serializable)
list_drugs()—sorted list of all drug names
stats()—dataset-level statistics dict

Hit Dict Structure

Each hit returned by search() contains:

FieldTypeDescription
drugstrDrug label name
source_filestrXML filename
sectionslist[str]Annotated section names (e.g. "adverse reactions")
mention_countsdictCount per mention type (AdverseReaction, Severity, …)
num_reactionsintTotal unique reactions in this label
positive_adrslist[str]Positive (non-negated, non-hypothetical) ADR strings
reactionslist[dict]Each with adr, meddra_pt, meddra_pt_id, optional meddra_llt, meddra_llt_id, flag

Usage

See if __name__ == "__main__" block in 37_TAC_2017_ADR.py for runnable examples covering: drug name lookup, ADR string search, MedDRA ID search, batch search, and JSON output.

from importlib.machinery import SourceFileLoader
tac = SourceFileLoader("tac2017", "/path/to/37_TAC_2017_ADR.py").load_module()

# Single drug
hits = tac.search("ACTEMRA")
print(tac.summarize(hits, "ACTEMRA"))

# ADR across all labels
hits = tac.search("headache")
print(tac.summarize(hits, "headache"))

# MedDRA PT ID
hits = tac.search("10019211")

# Batch
results = tac.search_batch(["ENBREL", "nausea", "10002198"])

Data

  • Source: TAC 2017 ADR shared task (NLM / FDA)
  • Files: gold_xml/ (99 test labels) + train_xml/ (101 training labels), each annotated XML
  • Annotations: Mentions (AdverseReaction, Severity, Factor, DrugClass, Negation, Animal), Relations (Negated, Hypothetical, Effect), Reactions (unique ADRs with MedDRA PT/LLT normalization)
  • MedDRA version: 18.1
  • Path: DATA_DIR variable in 37_TAC_2017_ADR.py
  • Reference: https://bionlp.nlm.nih.gov/tac2017adversereactions/

What ships with it: 5 files

22.9 KB alongside SKILL.md, 4 of them executable

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.