Compétence Open Targets Database
Aperçu
Cette compétence fournit l'accès à l'API GraphQL de la plateforme Open Targets. Elle agrège des preuves multimodales provenant de la génétique (GWAS/eQTL), des voies métaboliques, des modèles animaux et des essais cliniques pour classer les associations cible-maladie et identifier les gènes « druggables ».
Prérequis
uv: Lisez la compétenceuvet suivez ses instructions de configuration pour vous assurer queuvest installé et dans le PATH.- Notification utilisateur : Si LICENSE_NOTIFICATION.txt n'existe pas déjà dans le répertoire de cette compétence, alors (1) notifiez l'utilisateur de manière visible de vérifier les conditions d'utilisation à https://platform-docs.opentargets.org/licence, puis (2) créez le fichier enregistrant le texte de notification et l'horodatage.
Règles principales
- Utiliser le wrapper : EXÉCUTEZ TOUJOURS les scripts d'aide fournis pour interroger la base de données plutôt que d'y accéder directement. Les scripts appliquent automatiquement l'utilisation équitable et implémentent la logique de relance.
- Indicateur de sortie : L'indicateur
--outputest toujours obligatoire car la sortie peut être très grande. Utilisezjqou écrivez votre propre code pour traiter ce fichier JSON. - Notification : Si cette compétence est utilisée, assurez-vous que cela soit mentionné dans la sortie.
Référence rapide
Utilisez toujours le script Python fourni scripts/query_opentargets.py pour interroger rapidement la base de données. Il gère la communication API, les relances, le formatage et tronque automatiquement les réponses trop volumineux. N'ÉCRIVEZ JAMAIS vos propres requêtes curl ou similaires.
Utilisation :
uv run scripts/query_opentargets.py --output /tmp/opentargets_results.json [OPTIONS] COMMAND [ARGS]...
Options courantes :
--output PATH: Obligatoire. Chemin d'écriture du fichier de sortie JSON.--limit N: Limite le nombre d'éléments retournés dans les tableaux (50 par défaut). Utilisez un nombre plus petit comme 10 lors d'une exploration préliminaire.--page-size N: Définit la taille de pagination de l'API (200 par défaut). Augmentez si vous avez besoin de plus de résultats (par exemple, une étude avec plusieurs ensembles crédibles).
Commandes disponibles :
get-gwas-studiesefo_id: Récupère toutes les études GWAS associées à un identifiant EFO d'ontologie de maladie spécifique (par exempleEFO_0000685).get-study-credible-setsstudy_id: Récupère tous les ensembles crédibles pour un identifiant d'étude donné (par exempleFINNGEN_R12_RX_CROHN_2NDLINE). Retourne la confiance, la méthode de cartographie fine, les informations de variante et de p-valeur.get-qtl-credible-setsvariant_id: Récupère les ensembles crédibles QTL pour un identifiant de variante spécifique (par exemple19_44908822_C_T).get-l2gvariant_id [--study-id ID]: Retourne les prédictions/scores Locus-to-Gene (L2G) pour un locus afin d'identifier le gène causal le plus probable. Seulvariant_idest obligatoire ; utilisez--study-idpour filtrer sur une étude spécifique. Accepte le préfixechr(par exemplechr1_113834946_A_G).get-target-druggabilityensembl_id: Fournit les données de tractabilité (petite molécule, anticorps, etc.) et les informations de sécurité des essais cliniques pour un gène/cible.get-associated-targetsefo_id: Trouve tous les gènes cibles associés à un identifiant EFO de maladie spécifique.get-associated-diseasesensembl_id: Trouve toutes les maladies associées à un identifiant Ensembl de cible spécifique.search-diseasequery_string: Recherche une maladie par nom pour trouver son identifiant EFO et d'autres métadonnées.get-credible-sets-near-targetensembl_id [--window N]: Récupère les ensembles crédibles pour une cible et les filtre pour ceux situés dans une fenêtre génomique autour de la cible. Utile pour trouver des variantes « à proximité » d'un gène.custom-queryquery [--variables '{}']: Exécutez une requête GraphQL brute pour toute autre donnée Open Targets.
Utilisation des requêtes L2G
La commande get-l2g a deux modes :
- Variante seule (
get-l2g <variant_id>) : Retourne les prédictions L2G de tous les ensembles crédibles de toutes les études où cette variante est la variante de tête. Cela peut retourner un grand nombre de résultats (par exemple, des centaines). Utilisez ceci quand l'utilisateur souhaite une vue large du gène le plus probablement causal à un locus, ou quand aucune étude spécifique n'est mentionnée. - Variante + étude (
get-l2g <variant_id> --study-id <study_id>) : Retourne les prédictions L2G uniquement pour les ensembles crédibles de cette étude spécifique. Utilisez ceci quand l'utilisateur pose une question sur une étude GWAS spécifique ou quand vous devez réduire les résultats.
Avertissement de résultats incomplets : Le mode variante seule peut retourner des centaines d'ensembles crédibles. La
--page-sizepar défaut est 200, donc si l'API rapporte uncountsupérieur au nombre derowsretournées, vous voyez des résultats incomplets. Comparez toujourscountau nombre réel de lignes. S'ils diffèrent, augmentez--page-sizeou informez l'utilisateur que seul un sous-ensemble a été récupéré.
Interrogation par région
Pour trouver des études avec des variantes « à proximité » d'un gène, utilisez get-credible-sets-near-target, qui améliore l'API de base en effectuant une recherche flexible basée sur la position génomique : uv run scripts/query_opentargets.py --output /tmp/results.json get-credible-sets-near-target ENSG00000156515 --window 500000
Notez que le schéma GraphQL d'Open Targets inclut un paramètre regions pour credibleSets, cependant il effectue une correspondance exacte contre des chaînes de région précalculées (par exemple chr10:68769984-69903496) et il y a certaines données manquantes. Utilisez get-credible-sets-near-target car il permet une recherche de chevauchement de plage génomique.
Cela récupère les ensembles crédibles associés à la cible et les filtre en Python basé sur la position génomique de la variante.
Requêtes GraphQL avancées
Si vous avez besoin d'interroger des endpoints ou des champs non exposés par les sous-commandes intégrées, utilisez le sous-commande custom-query.
Avant d'écrire une requête personnalisée : Lisez la documentation de référence pour comprendre le schéma API, les types et voir des exemples de requêtes. Consultez references/OpenTargets_GraphQL_Guide.md pour tous les détails du schéma, les endpoints et les exemples.
Exemple : Trouver des médicaments pour une maladie
uv run scripts/query_opentargets.py custom-query \
query drugsForDisease($id: String!) {
disease(efoId: $id) {
name
drugAndClinicalCandidates {
count
rows {
maxClinicalStage
drug {
id
name
}
}
}
}
}' \
--variables '{"id": "EFO_1001006"}'
--output '/tmp/opentargets_result.json'
Cotes de confiance en étoiles
La plateforme Open Targets attribue un niveau de confiance à chaque ensemble crédible basé sur la méthode de cartographie fine et les vérifications de qualité. Ceux-ci correspondent aux cotes d'étoiles affichées dans l'interface utilisateur de la plateforme :
| Étoiles | Chaîne de confiance (valeur API) |
|---|---|
| ★★★★ (4 étoiles) | SuSiE fine-mapped credible set with in-sample LD |
| ★★★ (3 étoiles) | SuSiE fine-mapped credible set with out-of-sample LD |
| ★★ (2 étoiles) | PICS fine-mapped credible set extracted from summary statistics |
| ★ (1 étoile) | PICS fine-mapped credible set based on reported top hit |
| Aucune | Unknown confidence |
Quand les utilisateurs demandent une confiance « N-étoiles », mettez en correspondance leur demande avec la chaîne correspondante dans le champ confidence de la réponse API.
Astuces et erreurs courantes
- Formats d'identifiant :
- Les identifiants de maladie doivent être au format EFO (par exemple
EFO_0000685). - Les identifiants de cible doivent être des identifiants Ensembl (par exemple
ENSG00000169083), pas des symboles HGNC. Si vous n'avez qu'un symbole de gène, vous devrez peut-être le mapper en premier en utilisant une requête GraphQLsearchpersonnalisée. - Les identifiants de variante sont formatés comme
chromosome_position_ref_alt(par exemple1_154426264_C_T). Un préfixechr(par exemplechr1_154426264_C_T) est automatiquement supprimé par l'outil. - Les identifiants d'étude peuvent être des identifiants du GWAS Catalog (par exemple
GCST90204201) ou des identifiants spécifiques à un projet (par exempleFINNGEN_R12_RX_CROHN_2NDLINE).
- Les identifiants de maladie doivent être au format EFO (par exemple
- Troncature : L'outil tronque les tableaux plus longs que
--limitpour protéger la fenêtre de contexte. Si vous voyez"_truncated", vous pouvez relancer la requête avec une limite plus élevée si vous avez spécifiquement besoin de plus de données, mais soyez prudent avec les grandes valeurs de limite. Utilisez toujours l'indicateur--outputpour enregistrer le résultat dans un fichier et éviter la troncature de la sortie du terminal. - Pagination et résultats incomplets : L'option
--page-size(200 par défaut) contrôle le nombre d'éléments récupérés par l'API. Vérifiez toujours le champcountdans la réponse et comparez-le au nombre derowsréellement retournées. Sicount> nombre de lignes, vous avez des données incomplètes — augmentez--page-sizepour récupérer plus, ou informez l'utilisateur que seul un ensemble de résultats partiels a été retourné. C'est particulièrement important pourget-l2gsans--study-id, qui peut retourner des centaines d'ensembles crédibles.