Skill Graphe de Connaissances PrimeKG
Présentation générale
PrimeKG est un graphe de connaissances en médecine de précision qui intègre plus de 20 bases de données primaires et de la littérature scientifique de haute qualité dans une seule ressource. Il contient plus de 100 000 nœuds et 4 millions d'arêtes répartis sur 29 types de relations, incluant les associations cible-médicament, gène-maladie et phénotype-maladie.
Capacités clés :
- Rechercher des nœuds (gènes, protéines, médicaments, maladies, phénotypes)
- Récupérer les voisins directs (entités associées et preuves cliniques)
- Analyser le contexte local d'une maladie (gènes associés, médicaments, phénotypes)
- Identifier les chemins médicament-maladie (opportunités potentielles de réaffectation)
Accès aux données : Accès programmatique via query_primekg.py. Les données sont stockées à C:\Users\eamon\Documents\Data\PrimeKG\kg.csv.
Quand utiliser ce skill
Ce skill doit être utilisé quand :
- Découverte de médicaments basée sur les connaissances : Identifier les cibles et mécanismes pour les maladies.
- Réaffectation de médicaments : Trouver les médicaments existants qui pourraient avoir des preuves pour de nouvelles indications.
- Analyse de phénotypes : Comprendre comment les symptômes/phénotypes se rapportent aux maladies et gènes.
- Biologie multi-échelle : Combler le fossé entre les cibles moléculaires (gènes) et les résultats cliniques (maladies).
- Pharmacologie réseau : Investiguer les effets réseau plus larges des interactions cible-médicament.
Flux de travail principal
1. Rechercher des entités
Trouver les identifiants des gènes, médicaments ou maladies.
from 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", ...}]
2. Obtenir les voisins (associations directes)
Récupérer tous les nœuds connectés et types de relations.
from 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", ...}
3. Analyser le contexte de maladie
Une fonction de haut niveau pour résumer les associations d'une maladie.
from 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']
Types de relations dans PrimeKG
Le graphe contient plusieurs types de relations clés incluant :
protein_protein: Interactions protéine-protéine physiquesdrug_protein: Associations cible/mécanisme d'action des médicamentsdisease_gene: Associations génétiquesdrug_disease: Indications et contre-indicationsdisease_phenotype: Signes et symptômes cliniquesgwas: Preuves d'études d'association pangénomique
Bonnes pratiques
- Utiliser des IDs spécifiques : Quand vous utilisez
get_neighbors, assurez-vous d'avoir l'ID correct desearch_nodes. - Contexte d'abord : Utilisez
get_disease_contextpour une vue d'ensemble avant de vous plonger dans des gènes ou médicaments spécifiques. - Filtrer les relations : Utilisez le filtre
relation_typedansget_neighborspour vous concentrer sur des preuves spécifiques (ex. seulementdrug_protein). - Intégration multi-échelle : Combinez avec
OpenTargetspour des preuves génétiques plus approfondies ouSemantic Scholarpour le contexte littéraire le plus récent.
Ressources
Scripts
scripts/query_primekg.py: Fonctions principales pour rechercher et interroger le graphe de connaissances.
Chemin des données
- Données :
/mnt/c/Users/eamon/Documents/Data/PrimeKG/kg.csv - Nœuds totaux : ~129 000
- Arêtes totales : ~4 000 000
- Base de données : Format CSV, optimisée pour les requêtes pandas.