ucsc-conservation-and-tfbs

Par mkurman · zorai

Récupère les scores de conservation évolutive (phyloP, phastCons) et les sites de liaison des facteurs de transcription (TFBS) depuis le navigateur génomique UCSC. À utiliser lors de l'analyse de la conservation évolutive de variants ou régions génomiques, de leur importance fonctionnelle, ou de leur association avec des régulateurs TF issus des grands projets (ENCODE, JASPAR, ReMap).

npx skills add https://github.com/mkurman/zorai --skill ucsc-conservation-and-tfbs

Conservation Scores & TFBS Lookup (UCSC)

Cette skill fournit l'accès aux scores de contrainte évolutive et aux éléments conservés du UCSC Genome Browser. Elle récupère les scores du package PHAST — spécifiquement phastCons (identification des blocs fonctionnels) et phyloP (mesure de la contrainte au niveau des sites individuels) — calculés à partir d'alignements multiples.

Utilisez cette skill pour déterminer si une variante non-codante touche un site qui n'a pas changé depuis un ancêtre commun (ce qui est un signal fort de pathogénicité) ou pour trouver les pics de conservation sur un élément régulateur.

Prérequis

  1. uv : Consultez la skill uv et suivez ses instructions de configuration pour vous assurer que uv est installé et accessible via PATH.
  2. Notification Utilisateur : Si le fichier LICENSE_NOTIFICATION.txt n'existe pas déjà dans le répertoire de cette skill, alors (1) notifiez clairement l'utilisateur de consulter les conditions à https://genome.ucsc.edu/conditions.html et https://genome.ucsc.edu/goldenPath/help/api.html, puis (2) créez le fichier enregistrant le texte de notification et l'horodatage.

Règles Fondamentales

  • Utilisez 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 les limites de débit requises de manière élégante.
  • Gestion des Grands Résultats : Toujours passer --output pour rediriger la sortie vers un fichier. L'analyser séparément (en utilisant jq ou votre propre code).
  • Notification : Si cette skill est utilisée, assurez-vous que cela est mentionné dans la sortie.

Scripts Utilitaires

Cette skill inclut des scripts pour interroger différents types de données génomiques à partir d'UCSC :

  1. scripts/get_conservation.py : Pour les scores de conservation évolutive (phyloP, phastCons).
  2. scripts/get_tfbs.py : Pour les sites de liaison des facteurs de transcription (TFBS).
  3. scripts/list_tracks.py : Pour lister les pistes disponibles en fonction de contraintes de recherche ou de groupe.

Toujours utiliser l'assembly de génome hg38 par défaut, sauf si l'utilisateur en a spécifié autrement.

Récupération de la Conservation pour des Variantes Spécifiques

Pour obtenir la contrainte évolutive à une seule base, ou une liste de bases spécifiques. Ceci est optimal pour les variantes d'un seul nucléotide (SNV). phyloP est la meilleure métrique pour les bases individuelles.

uv run scripts/get_conservation.py --coordinates "chr1:215867804" "chr1:215867823" --output /tmp/cons_output.json

Récupération de Régions et Éléments Conservés

Pour identifier les « pics de conservation » sur un élément régulateur non-codant (comme un enhancer) afin de voir si un pic d'importance prédit par ISM s'aligne avec l'histoire évolutive. phastCons est préférable pour les fenêtres fonctionnelles en raison du lissage HMM. L'option --conserved-elements récupérera également les blocs prédéfinis sous contrainte extrême.

uv run scripts/get_conservation.py --coordinates "chr8:11748914-11749085" --conserved-elements --output /tmp/region_cons.json

Contraintes Spécifiques à un Lignage

Vous pouvez contrôler la profondeur évolutive en utilisant l'option --collection. La valeur par défaut (vertebrate) utilise l'alignement Multiz 100-vertébrés d'UCSC pour hg38 et hg19, correspondant aux pistes de génomique comparative par défaut du UCSC Genome Browser.

Collections hg38

  • vertebrate (par défaut) : Alignement Multiz 100-vertébrés d'UCSC. phyloP : phyloP100way, phastCons : phastCons100way.
  • mammal : Alignement mammifère 470-way du Hiller Lab. phyloP : phyloP470wayBW, phastCons : phastCons470way.
  • primate : Alignement Multiz 30-primates d'UCSC. phyloP : phyloP30way, phastCons : phastCons30way.

Collections hg19

  • vertebrate (par défaut) : Alignement Multiz 100-vertébrés d'UCSC. phyloP : phyloP100way, phastCons : phastCons100way.
  • vertebrate46 : Alignement Multiz 46-vertébrés d'UCSC (legacy). phyloP : phyloP46wayAll, phastCons : phastCons46way.
  • mammal : Sous-ensemble mammifère placentaire 46-way. phyloP : phyloP46wayPlacental, phastCons : phastCons46wayPlacental.
  • primate : Sous-ensemble primate 46-way. phyloP : phyloP46wayPrimates, phastCons : phastCons46wayPrimates.
# hg38 mammal (Hiller 470-way)
uv run scripts/get_conservation.py --coordinates "chr5:1045330-1046172" --collection mammal --output /tmp/mammal_cons.json

# hg19 avec alignement legacy 46-vertébrés
uv run scripts/get_conservation.py --coordinates "chr5:1045330-1046172" --genome hg19 --collection vertebrate46 --output /tmp/vert46_cons.json

Analyse de l'Accélération Évolutive

Pour analyser si un locus spécifique subit une accélération évolutive (c'est-à-dire évolue plus rapidement que la dérive neutre de base), utilisez --analyze. Cela calculera les statistiques scalaires (moyenne, min, max) pour les scores phyloP et fournira un booléen heuristique is_accelerated pour simplifier votre évaluation.

uv run scripts/get_conservation.py --coordinates "chr5:1045330-1046172" --analyze --output /tmp/accelerated_cons.json

Récupération des Sites de Liaison des Facteurs de Transcription (TFBS)

Pour identifier les sites de liaison des facteurs de transcription dans un intervalle génomique donné. Ceci est utile pour interpréter les variantes non-codantes qui pourraient perturber la liaison aux facteurs de transcription.

Exécutez scripts/get_tfbs.py avec --coordinates et --tracks. Vous pouvez interroger plusieurs pistes à la fois.

uv run scripts/get_tfbs.py --coordinates "chr11:1001000-1010000" --tracks encRegTfbsClustered --output /tmp/tfbs_encode.json

Les pistes JASPAR peuvent retourner des ensembles de résultats très volumineux. Utilisez --tf-filter pour conserver uniquement les éléments dont le champ TFName contient la sous-chaîne donnée (insensible à la casse) :

uv run scripts/get_tfbs.py --coordinates "chr6:36670000-36690000" --tracks jaspar2024 --tf-filter TP53 --output /tmp/tp53_sites.json

Pistes Vérifiées Courantes (hg38)

  • ENCODE : encRegTfbsClustered (TF Clusters)
  • JASPAR : jaspar2026, jaspar2024 (TFBS Prédites)
  • ReMap : ReMapTFs (ChIP-seq Atlas)

[!CAUTION] Les pistes comme jaspar ou ReMap sans année sont souvent des pistes « conteneur » et échoueront avec une erreur 400. Toujours utiliser le nom de la sous-piste spécifique (par exemple, jaspar2026).

Listage des Pistes Disponibles

Pour lister les pistes disponibles (telles que différentes versions de JASPAR, ou simplement pour découvrir les pistes existantes pour un assembly de génome particulier) :

uv run scripts/list_tracks.py --search "jaspar" --output /tmp/jaspar_tracks.json

Vous pouvez également filtrer par groupe fonctionnel :

uv run scripts/list_tracks.py --group "regulation" --output /tmp/regulation_tracks.json

Anti-Patterns

  • NE PAS interroger la contrainte mammifère (--collection mammal) si vous recherchez explicitement les racines évolutives profondes sur tous les vertébrés. Utilisez la collection vertebrate par défaut.
  • NE PAS utiliser cette skill pour déterminer la reconstruction de l'état ancestral d'un nucléotide (cette skill fournit des mesures de combien les sites ont changé, pas quel était le nucléotide ancestral).
  • NE PAS supposer qu'une faible conservation signifie strictement une séquence neutre/inutile ; cela pourrait aussi refléter un taux de mutation local élevé que les scores de conservation seuls ne peuvent pas distinguer.
  • NE PAS imprimer la sortie sur la sortie standard, ou exécuter cat sur les fichiers de sortie. La sortie est trop volumineux. Utilisez jq ou écrivez votre propre code pour analyser les fichiers de sortie.
  • NE PAS utiliser hg19 sauf si l'utilisateur l'a explicitement demandé. La valeur par défaut doit toujours être d'utiliser hg38.

Skills similaires