Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Query the Precision Medicine Knowledge Graph (PrimeKG) for multiscale biological data including genes, drugs, diseases, phenotypes, and more.
.claude/skills/mkurman-primekg/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-16 | ✗→✓ | ▲ Improved | -26% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -17% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 6% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -23% | 0% |
PrimeKG is a precision medicine knowledge graph that integrates over 20 primary databases and high-quality scientific literature into a single resource. It contains over 100,000 nodes and 4 million edges across 29 relationship types, including drug-target, disease-gene, and phenotype-disease associations.
Key capabilities:
Data access: Programmatic access via query_primekg.py. Data is stored at C:\Users\eamon\Documents\Data\PrimeKG\kg.csv.
This skill should be used when:
Find identifiers for genes, drugs, or diseases.
pythonfrom scripts.query_primekg import search_nodes # Search for Alzheimer's disease nodes results = search_nodes("Alzheimer", node_type="disease") # Returns: [{"id": "EFO_0000249", "type": "disease", "name": "Alzheimer's disease", ...}]
Retrieve all connected nodes and relationship types.
pythonfrom scripts.query_primekg import get_neighbors # Get all neighbors of a specific disease ID neighbors = get_neighbors("EFO_0000249") # Returns: List of neighbors like {"neighbor_name": "APOE", "relation": "disease_gene", ...}
A high-level function to summarize associations for a disease.
pythonfrom scripts.query_primekg import get_disease_context # Comprehensive summary for a disease context = get_disease_context("Alzheimer's disease") # Access: context['associated_genes'], context['associated_drugs'], context['phenotypes']
The graph contains several key relationship types including:
protein_protein: Physical PPIsdrug_protein: Drug target/mechanism associationsdisease_gene: Genetic associationsdrug_disease: Indications and contraindicationsdisease_phenotype: Clinical signs and symptomsgwas: Genome-wide association studies evidenceget_neighbors, ensure you have the correct ID from search_nodes.get_disease_context for a broad overview before diving into specific genes or drugs.relation_type filter in get_neighbors to focus on specific evidence (e.g., only drug_protein).OpenTargets for deeper genetic evidence or Semantic Scholar for the latest literature context.scripts/query_primekg.py: Core functions for searching and querying the knowledge graph./mnt/c/Users/eamon/Documents/Data/PrimeKG/kg.csv| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-16 | fail→pass | 18,063 | 7,762 | -57% | 1 | 1 | 0% | 2,724 | 2,016 | -26% | 0 | 0 | — |
case-17 | fail→pass | 12,445 | 5,764 | -54% | 1 | 1 | 0% | 1,929 | 1,944 | +1% | 0 | 0 | — |
case-15 | fail→pass | 9,366 | 2,306 | -75% | 1 | 1 | 0% | 1,534 | 1,279 | -17% | 0 | 0 | — |
case-01 | fail→fail | 19,885 | 6,756 | -66% | 1 | 1 | 0% | 3,640 | 1,166 | -68% | 0 | 0 | — |
case-02 | fail→fail | 13,024 | 6,548 | -50% | 1 | 1 | 0% | 2,309 | 1,204 | -48% | 0 | 0 | — |
case-03 | fail→fail | 14,682 | 6,781 | -54% | 1 | 1 | 0% | 2,970 | 1,223 | -59% | 0 | 0 | — |
case-04 | pass→pass | 20,861 | 23,070 | +11% | 1 | 1 | 0% | 3,567 | 4,896 | +37% | 0 | 0 | — |
case-05 | pass→pass | 10,380 | 9,634 | -7% | 1 | 1 | 0% | 1,628 | 2,445 | +50% | 0 | 0 | — |
case-06 | pass→fail | 20,545 | 7,342 | -64% | 1 | 1 | 0% | 3,991 | 2,139 | -46% | 0 | 0 | — |
case-07 | fail→pass | 10,696 | 6,605 | -38% | 1 | 1 | 0% | 2,010 | 2,129 | +6% | 0 | 0 | — |
case-08 | fail→pass | 15,393 | 6,099 | -60% | 1 | 1 | 0% | 2,647 | 2,047 | -23% | 0 | 0 | — |
case-09 | fail→pass | 12,898 | 2,752 | -79% | 1 | 1 | 0% | 2,180 | 1,380 | -37% | 0 | 0 | — |
case-10 | fail→pass | 8,956 | 3,702 | -59% | 1 | 1 | 0% | 1,417 | 1,551 | +9% | 0 | 0 | — |
case-11 | fail→pass | 11,333 | 3,914 | -65% | 1 | 1 | 0% | 2,002 | 1,542 | -23% | 0 | 0 | — |
case-12 | fail→pass | 14,546 | 2,751 | -81% | 1 | 1 | 0% | 2,520 | 1,327 | -47% | 0 | 0 | — |
case-13 | fail→pass | 13,435 | 2,590 | -81% | 1 | 1 | 0% | 2,370 | 1,293 | -45% | 0 | 0 | — |
case-14 | fail→pass | 9,370 | 2,674 | -71% | 1 | 1 | 0% | 1,568 | 1,310 | -16% | 0 | 0 | — |
case-18 | fail→fail | 11,056 | 8,555 | -23% | 1 | 1 | 0% | 1,906 | 2,297 | +21% | 0 | 0 | — |
case-19 | fail→pass | 7,243 | 1,986 | -73% | 1 | 1 | 0% | 1,130 | 1,190 | +5% | 0 | 0 | — |
case-20 | fail→pass | 7,859 | 6,797 | -14% | 1 | 1 | 0% | 1,319 | 2,104 | +60% | 0 | 0 | — |
case-21 | fail→pass | 7,015 | 2,586 | -63% | 1 | 1 | 0% | 1,292 | 1,244 | -4% | 0 | 0 | — |
case-22 | pass→pass | 4,720 | 6,584 | +39% | 1 | 1 | 0% | 877 | 2,028 | +131% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +59 percentage points is the difference between those two pass rates over the 19 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.