Skill Base de Données QuickGO
Les annotations GO (Gene Ontology) constituent l'une des principales façons d'étiqueter la fonction d'un gène. QuickGO est un navigateur rapide basé sur le web pour la GO et l'Evidence & Conclusion Ontology (ECO), maintenu par le groupe Gene Ontology Annotation (GOA) à l'EMBL-EBI.
Il fournit une ressource centralisée pour explorer les attributs fonctionnels des produits géniques (protéines, ARN et complexes). C'est un outil principal pour le mappage des annotations fonctionnelles, car il vous permet de relier un gène (par exemple, USH2A) à ses processus biologiques spécifiques (par exemple, la perception sensorielle du stimulus lumineux), ses fonctions moléculaires et ses composants cellulaires.
Prérequis
uv: Consultez le skilluvet 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 ce répertoire du skill, alors (1) notifiez de manière visible l'utilisateur de consulter les conditions à https://www.ebi.ac.uk/QuickGO/ et https://www.ebi.ac.uk/QuickGO/api/index.html, puis (2) créez le fichier enregistrant le texte de notification et l'horodatage.
Utilisation
Ce skill fournit un wrapper CLI Python scripts/quickgo_tool.py qui interroge l'API REST QuickGO. Il gère le formatage des requêtes, le respect des limites de débit et le stockage sécurisé des réponses JSON potentiellement volumineuses.
Règles Essentielles
- Utiliser le Wrapper : TOUJOURS exécuter les scripts d'aide fournis pour interroger la base de données plutôt que d'y accéder directement. Les scripts appliquent automatiquement la limite de débit requise de manière élégante.
- Pagination & Limites : Restreindre les endpoints à un maximum de 100 résultats par page en utilisant
--limit 100et le paramètre--pagepour les ensembles de données plus volumineux. - Fichiers de sortie : Toujours utiliser le drapeau
--outputpour enregistrer les réponses dans un fichier de manière incrémentale ou analyser viajq. - Codes de preuve : Prioriser la preuve expérimentale (
ECO:0000269) par rapport à la preuve électronique (ECO:0000501) pour éviter les prédictions bruitées. - Filtrage taxon : Utiliser
--taxonId 9606pour restreindre les résultats à Humain lors de l'analyse de données cliniques ou génomiques humaines. - Notification : Si ce skill est utilisé, assurez-vous que cela soit mentionné dans la sortie.
L'outil comporte quatre sous-commandes principales :
go: Pour récupérer des informations sur les termes GO (par exemple, définitions, ancêtres, descendants et slims). Voir references/go_terms.md.annotation: Pour trouver les annotations fonctionnelles reliant les produits géniques aux termes GO. C'est votre principal mappeur fonctionnel. Voir references/annotations.md.geneproduct: Pour résoudre les symboles de gènes (commePROC) à leurs identifiants formels de base de données. Voir references/gene_products.md.eco: Pour les termes Evidence & Conclusion Ontology (utilisés dans les annotations pour indiquer comment une annotation a été dérivée, par exemple expérimental versus électronique). Voir references/eco_terms.md.
Flux de travail courants
1. Mapper un gène à ses fonctions (Annotations)
Pour découvrir ce qu'un gène fait, vous devez d'abord résoudre son symbole en ID UniProtKB, puis interroger ses annotations. Il est souvent préférable de filtrer les preuves expérimentales (par exemple, ECO:0000269 pour EXP, ou d'autres comme IDA, IMP) pour éviter les prédictions électroniques bruitées.
# Étape 1 : Trouver l'ID UniProtKB pour le gène humain (9606) PROC
uv run scripts/quickgo_tool.py geneproduct search --query "PROC" --taxonId 9606 --limit 5 --output proc_id.json
# (Regardez proc_id.json, observez que l'ID est par exemple UniProtKB:P04070)
# Étape 2 : Trouver les annotations GO expérimentales pour cet ID
uv run scripts/quickgo_tool.py annotation search --geneProductId "UniProtKB:P04070" --taxonId 9606 --evidenceCode "ECO:0000269" --limit 50 --output proc_annotations.json
2. Trouver tous les gènes dans une voie
Pour trouver tous les gènes annotés à un terme GO spécifique (par exemple, GO:0003700 pour « transcription factor activity ») :
# Trouver les gènes humains avec cette fonction moléculaire spécifique
uv run scripts/quickgo_tool.py annotation search --goId "GO:0003700" --taxonId 9606 --limit 50 --output tf_genes.json
3. Explorer la hiérarchie GO
Pour vérifier si un terme GO spécifique est un descendant d'une catégorie plus large, ou pour récupérer sa définition :
# Récupérer les détails du terme (définitions, synonymes)
uv run scripts/quickgo_tool.py go terms --ids "GO:0003150" --output term_details.json
# Vérifier l'ascendance (par exemple, GO:0001917 est-il un enfant de quelque chose ?)
uv run scripts/quickgo_tool.py go terms --ids "GO:0001917" --relation ancestors --output term_ancestors.json
4. Créer un résumé GO Slim
Si vous avez une liste de gènes candidats et souhaitez un résumé fonctionnel haut niveau, vous pouvez les mapper jusqu'à un GO Slim prédéfini. D'abord, récupérez les annotations des gènes pour extraire leurs IDs GO, puis passez ces IDs à l'endpoint slim :
# Étape 1 : Trouver les IDs GO pour les gènes candidats (par exemple, via leurs IDs UniProt, en récupérant leurs annotations)
# ... (la sortie donne par exemple GO:0006915,GO:0008219)
# Étape 2 : Créer un résumé slim à partir de ces IDs GO spécifiques
uv run scripts/quickgo_tool.py go slim --slimsToIds "GO:0005575,GO:0008150,GO:0003674" --slimsFromIds "GO:0006915,GO:0008219" --output my_slim.json