Unid3
Skill BioTender-max/awesome-bio-agent-skills/skills/drugclaw/unid3
A curated collection of AI agent skills for biomedical research, covering genomics, proteomics, single-cell analysis, clinical AI, and protein design.From the repository description
npx -y skills add BioTender-max/awesome-bio-agent-skills --skill unid3Assembled 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
2.9 KB, 812 tokens by cl100k_base, as published. Nobody here has run it
UniD3 - Drug Discovery Knowledge Graph
Overview
UniD3 is a multi-knowledge-graph built from 150,000+ PubMed articles, stored as 6 GraphML files. It supports drug-disease matching, effectiveness assessment, and drug-target analysis.
- Source: https://github.com/QSong-github/UniD3
- Local path:
resources_metadata/drug_knowledgebase/UniD3 - Format: GraphML (6 files, e.g.
UniD3_L1T1.graphml) - Dependency:
networkx
Node Schema
Each node contains:
| Field | Description |
|---|---|
entity | Node name (e.g. RESPIRATORY DISEASES) |
entity_type | Type label (e.g. DISEASE, DRUG, GENE, HOST, BIOLOGICAL PROCESS) |
description | Free-text description from PubMed articles |
source_id | Chunk ID linking back to source article |
Edge Schema
Each edge contains:
| Field | Description |
|---|---|
source / target | Connected entity names |
weight | Relation strength (float) |
description | Relationship description |
keywords | Associated keywords |
source_id | Source chunk ID |
API Reference
list_graphs() → list[str]
Return names of all 6 GraphML files.
from UniD3 import list_graphs
list_graphs()
# → ["UniD3_L1T1", "UniD3_L1T2", "UniD3_L2T1", ...]
query_entities(entities, graph_names=None) → list[dict]
Look up one or more entities by name (case-insensitive).
from UniD3 import query_entities
# Single entity
query_entities("RESPIRATORY DISEASES")
# Multiple entities
query_entities(["CALVES", "INFLAMMATION MODULATION"])
# Restrict to specific graph
query_entities("CALVES", graph_names=["UniD3_L1T1"])
Returns list of dicts: {entity, entity_type, description, source_id, graph}
get_neighbors(entity, graph_names=None) → list[dict]
Get all direct neighbors and connecting edge info for an entity.
from UniD3 import get_neighbors
get_neighbors("CALVES")
Returns list of dicts: {graph, neighbor: {entity, entity_type, description, source_id}, edge: {source, target, weight, description, keywords, source_id}}
search_by_type(entity_type, graph_names=None, limit=50) → list[dict]
Filter entities by type.
from UniD3 import search_by_type
search_by_type("DISEASE", limit=10)
search_by_type("DRUG", graph_names=["UniD3_L1T1"])
search_by_keyword(keyword, graph_names=None, limit=50) → list[dict]
Substring match over entity names and descriptions.
from UniD3 import search_by_keyword
search_by_keyword("inflammation")
search_by_keyword("cancer", limit=20)
Typical Workflow
from UniD3 import query_entities, get_neighbors, search_by_type
# Step 1: Find a drug entity
hits = query_entities("ASPIRIN")
# Step 2: Explore its neighborhood (related diseases, targets, etc.)
neighbors = get_neighbors("ASPIRIN")
# Step 3: Filter neighbors by type
diseases = [n for n in neighbors if n["neighbor"]["entity_type"] == "DISEASE"]
What ships with it: 5 files
15.2 KB alongside SKILL.md, 4 of them executable
- example.pyruns5.6 KB
- __init__.pyruns126 B
- README.md1.4 KB
- retrieve.pyruns1.6 KB
- unid3_skill.pyruns6.5 KB