<< All versions
Skill v1.0.0
currentAutomated scan100/100qsong-github/drugclaw/unid3
──Details
PublishedOctober 8, 2026 at 06:50 AM
Content Hashsha256:b564fa7c24cba745...
Git SHAbc7b93ede215
──Files
Files (1 file, 3.0 KB)
SKILL.md3.0 KBactive
SKILL.md · 114 lines · 3.0 KB
version: "1.0.0"
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.
python
from UniD3 import list_graphslist_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).
python
from UniD3 import query_entities# Single entityquery_entities("RESPIRATORY DISEASES")# Multiple entitiesquery_entities(["CALVES", "INFLAMMATION MODULATION"])# Restrict to specific graphquery_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.
python
from UniD3 import get_neighborsget_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.
python
from UniD3 import search_by_typesearch_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.
python
from UniD3 import search_by_keywordsearch_by_keyword("inflammation")search_by_keyword("cancer", limit=20)
Typical Workflow
python
from UniD3 import query_entities, get_neighbors, search_by_type# Step 1: Find a drug entityhits = query_entities("ASPIRIN")# Step 2: Explore its neighborhood (related diseases, targets, etc.)neighbors = get_neighbors("ASPIRIN")# Step 3: Filter neighbors by typediseases = [n for n in neighbors if n["neighbor"]["entity_type"] == "DISEASE"]