Compétence UniBind Database
UniBind est une base de données d'interactions directes TF–ADN dans 9 espèces, intégrant les pics ChIP-seq avec les profils de liaison TF JASPAR via le framework DAMO.
Prérequis
uv: Lisez la compétenceuvet suivez ses instructions de configuration pour vous assurer queuvest installé et sur PATH.- Notification utilisateur : Si LICENSE_NOTIFICATION.txt n'existe pas déjà dans ce répertoire de compétence, alors (1) notifiez clairement l'utilisateur de vérifier les conditions à https://unibind.uio.no/ et https://unibind.uio.no/api/overview, puis (2) créez le fichier enregistrant le texte de notification et l'horodatage.
Démarrage rapide
Les commandes de requête impriment du JSON sur stdout par défaut. La plupart des résultats sont suffisamment compacts pour être lus directement. Pour les gros résultats (list_cell_lines, list_tfs), canalisez via jq pour extraire uniquement les champs dont vous avez besoin.
uv run <SKILL DIR>/scripts/unibind_api.py list_species
La commande download_tfbs écrit les fichiers BED/FASTA dans --output-dir à la place. Vous pouvez optionnellement utiliser --output <path> sur toute commande de requête pour enregistrer les résultats dans un fichier si nécessaire.
Règles essentielles
- Utilisez le wrapper : EXÉCUTEZ TOUJOURS les scripts helper 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 gracieuse.
- Résultat : Les commandes de requête impriment du JSON sur stdout. La plupart des réponses sont compactes et peuvent être lues directement.
- Gros résultats :
list_cell_linesetlist_tfsproduisent une sortie volumineuse. Canalisez ces commandes viajqpour extraire des champs spécifiques plutôt que de charger la sortie complète en contexte. - Enregistrement dans un fichier : Utilisez
--output <path>quand vous avez besoin de référencer les données plus tard ou lors du traitement de très gros résultats avecjq. - Pagination : Utilisez
--pageet--page-size(maximum 1000) pour fragmenter les grands ensembles de résultats. - Tri : Utilisez
--order field_name(préfixé par-pour l'ordre décroissant) sur toute commande list. - Notification : Si cette compétence est utilisée, assurez-vous que cela soit mentionné dans le résultat.
Scripts utilitaires
Remplacez <SKILL DIR> par le chemin absolu du répertoire de cette compétence.
1. Lister les espèces
uv run <SKILL DIR>/scripts/unibind_api.py list_species
2. Lister les collections
uv run <SKILL DIR>/scripts/unibind_api.py list_collections
3. Lister les lignées cellulaires et TF (sortie volumineuse — utilisez jp)
Ces commandes retournent de gros ensembles de données. Utilisez uvx --from jmespath jp pour extraire uniquement les champs dont vous avez besoin.
uv run <SKILL DIR>/scripts/unibind_api.py list_cell_lines | uvx --from jmespath jp "results[].name"
uv run <SKILL DIR>/scripts/unibind_api.py list_tfs | uvx --from jmespath jp "results[].tf_name"
4. Lister et filtrer les datasets (et datasets spécifiques à un profil)
Filtrez les datasets en utilisant les arguments suivants :
--species(ex. "Homo sapiens")--tf-name(ex. "CTCF")--cell-line(ex. "mESC")--collection(ex. Permissive, Robust)--search(un terme de recherche)--biological-condition(condition biologique ou source)--data-source(source des données, ex. "ENCODE")--has-pvalue("true" ou "false")--identifier(ex. "GSE60130")--jaspar-id(ID de la matrice de profil de la base de données JASPAR)--model(modèle de prédiction)--summary(filtre résumé)--threshold-pvalue(seuil de p-valeur)
Utilisez list_datasets pour les datasets standard ou list_specific_datasets pour les requêtes spécifiques à un profil.
uv run <SKILL DIR>/scripts/unibind_api.py list_datasets --species "Homo sapiens" --tf-name "CTCF" --data-source "ENCODE"
uv run <SKILL DIR>/scripts/unibind_api.py list_specific_datasets --species "Mus musculus" --cell-line "mESC"
5. Obtenir les détails d'un dataset
uv run <SKILL DIR>/scripts/unibind_api.py get_dataset "EXP047889.HMLE-Twist-ER_breast_cancer.SMAD3"
6. Télécharger les fichiers TFBS (BED / FASTA)
Télécharge tous les fichiers TFBS pour un dataset dans un répertoire local. Utilisez --format bed (par défaut) ou --format fasta.
uv run <SKILL DIR>/scripts/unibind_api.py download_tfbs "EXP047889.HMLE-Twist-ER_breast_cancer.SMAD3" --output-dir /tmp/tfbs --format bed
Anti-patterns
- NE tentez pas d'utiliser l'API UniBind pour interroger des intervalles génomiques spécifiques, des localisations ou des gènes.
- NE devinez pas et ne fabriquez pas de coordonnées génomiques. Utilisez toujours
ensembl-databasecomme vérification externe si vous tirez des pistes BED locales pour une intersection bedtools hors ligne. - NE l'utilisez pas pour les modèles de motifs (PFM). Utilisez plutôt la compétence jaspar-database.
- NE l'utilisez pas pour les données d'expression génique. UniBind ne stocke que les événements de liaison.
- NE supposez pas une expression spécifique aux tissus à partir des listes de datasets seules.
- NE utilisez pas
catpour lire de gros fichiers JSON de sortie en contexte. La sortie est trop volumineux. Utilisezjqou écrivez votre propre code pour analyser les fichiers de sortie.