encode-ccres-database

Par mkurman · zorai

Interrogez le registre ENCODE des éléments cis-régulateurs (cCREs) via l'API GraphQL SCREEN, ou effectuez des requêtes personnalisées vers l'API REST du portail ENCODE pour les expériences et les fichiers (pics ChIP-seq, etc.). À utiliser lorsque vous souhaitez interroger des annotations régulatrices ou des données expérimentales brutes sur différents types de cellules humaines.

npx skills add https://github.com/mkurman/zorai --skill encode-ccres-database

Skill ENCODE Database

Ce skill permet d'interroger l'ENCODE Registry des cCREs (candidate cis-Regulatory Elements) via l'API GraphQL SCREEN. Il aide à identifier les éléments d'ADN non-codants fonctionnels (comme les Promoteurs, Enhanceurs et isolateurs) en analysant les signatures biochimiques (DNase, H3K4me3, H3K27ac, CTCF).

Prérequis

  1. uv : Lisez le skill uv et suivez ses instructions de Configuration pour vous assurer que uv est installé et disponible dans PATH.
  2. Notification utilisateur : Si LICENSE_NOTIFICATION.txt n'existe pas déjà dans le répertoire de ce skill, alors (1) notifiez l'utilisateur de vérifier les conditions à https://www.encodeproject.org/help/rest-api/, et (2) créez le fichier enregistrant le texte de notification et l'horodatage.

Règles principales

  • Utiliser le wrapper : EXÉCUTEZ TOUJOURS les scripts helper fournis pour interroger la base de données au lieu d'y accéder directement. Les scripts appliquent automatiquement la limite de débit requise de manière fluide.
  • Analyse de la sortie : N'UTILISEZ PAS cat pour lire l'intégralité du fichier de sortie JSON dans le contexte, car il peut être extrêmement volumineux. Vous DEVEZ utiliser jq pour analyser et extraire efficacement les champs pertinents.
  • Notification : Si ce skill est utilisé, assurez-vous que cela soit mentionné dans la sortie.

Démarrage rapide

# Rechercher des cCREs par coordonnées
uv run scripts/screen_api.py search --chromosome chr11 \
  --start 5205263 --end 5207263 \
  --output /tmp/search.json

# Obtenir les détails pour un cCRE spécifique
uv run scripts/screen_api.py details EH38E2941922 \
  --output /tmp/details.json

Toutes les sous-commandes écrivent du JSON sur disque. Sauvegardez toujours la sortie dans un emplacement temporaire comme /tmp/.

Identifier les bioéchantillons de haute confiance (« Type A »)

Les bioéchantillons dans ENCODE sont souvent catégorisés par leur complétude de données. Les bioéchantillons « Type A » (ou haute confiance) sont ceux qui disposent de données expérimentales pour les quatre marqueurs épigénétiques principaux : DNase, H3K4me3, H3K27ac et CTCF.

Les commandes biosamples et details enrichissent automatiquement leur sortie avec un drapeau booléen is_type_a pour chaque bioéchantillon.

Exemple : Trouver des types de cellules haute confiance

uv run scripts/screen_api.py biosamples --output /tmp/biosamples.json
# Utiliser jq pour filtrer les bioéchantillons Type A
jq '.data.ccREBiosampleQuery.biosamples[] | select(.is_type_a == true) | .displayname' /tmp/biosamples.json

Analyse de la sortie (CRITIQUE)

N'UTILISEZ PAS cat pour lire l'intégralité du fichier de sortie JSON dans le contexte, car il peut être extrêmement volumineux. À la place, vous DEVEZ utiliser jq pour analyser et extraire efficacement les champs pertinents du fichier JSON sauvegardé par le script. Si jq n'est pas disponible sur le système, écrivez votre propre code de filtrage Python (par exemple, python3 -c "import json...") pour extraire les données nécessaires.

Pour une référence complète de la structure JSON retournée par chaque commande (afin que vous sachiez quels champs interroger avec jq), consultez references/json_output_structure.md.

Commandes disponibles

  • search : Rechercher des cCREs par coordonnées, accessions ou signaux épigénétiques.

    uv run scripts/screen_api.py search \
        --chromosome chr11 --start 5205263 --end 5207263 \
        --output /tmp/search.json
  • nearby-genes : Trouver les gènes proches pour des accessions cCRE données.

    uv run scripts/screen_api.py nearby-genes \
        EH38E1516972 --output /tmp/nearby.json
  • details : Obtenir des informations détaillées et les scores Z maximum spécifiques aux bioéchantillons pour un cCRE spécifique.

    uv run scripts/screen_api.py details EH38E2941922 \
        --output /tmp/details.json
  • biosamples : Obtenir les métadonnées des bioéchantillons pour un assembly.

    uv run scripts/screen_api.py biosamples \
        --output /tmp/biosamples.json
  • orthologs : Obtenir les cCREs orthologues dans un autre assembly.

    uv run scripts/screen_api.py orthologs EH38E2941922 \
        --output /tmp/orthologs.json
  • linked-genes : Trouver les gènes liés via des méthodes comme HiC ou eQTLs.

    uv run scripts/screen_api.py linked-genes \
        EH38E1516972 --output /tmp/linked.json
  • gene-expression : Obtenir l'expression génique (TPM) sur tous les bioéchantillons pour un gène nommé. Résout en interne le symbole du gène en identifiant Ensembl, puis interroge les quantifications RNA-seq par bioéchantillon.

    uv run scripts/screen_api.py gene-expression GAPDH \
        --output /tmp/gene_expr.json
  • entex : Obtenir les données ENTEx pour un cCRE ou une région génomique.

    uv run scripts/screen_api.py entex \
        --accession EH38E1310345 \
        --output /tmp/entex.json
    uv run scripts/screen_api.py entex \
        --region chr1:1000068:1000409 \
        --output /tmp/entex.json
  • gwas : Interroger les études d'association pangénomique, les SNP ou les données d'enrichissement.

    uv run scripts/screen_api.py gwas studies \
        --output /tmp/gwas.json
    uv run scripts/screen_api.py gwas snps --study \
        Ahola-Olli_AV-27989323-Eotaxin_levels \
        --output /tmp/gwas_snps.json

Vous pouvez fournir le drapeau --assembly mm10 ou --assembly grch38 pour demander explicitement un assembly spécifique pour la plupart des commandes. Par défaut, le script cible grch38 mais reviendra automatiquement à mm10 si aucun résultat n'est trouvé ou si la requête échoue.

API REST ENCODE Portal (Accès direct)

Pour accéder aux expériences brutes, aux pics ChIP-seq ou à d'autres ensembles de données qui ne sont pas représentés en tant que cCREs dans SCREEN, utilisez le script scripts/encode_portal_api.py. Il permet les requêtes personnalisées à l'API REST ENCODE Portal.

Utilisation

uv run scripts/encode_portal_api.py search "type=Experiment&target.label=ZNF549" --output /tmp/znf549_experiments.json

Conseils d'analyse de données

Lors de l'analyse de fichiers .bed ou .bigBed téléchargés depuis ENCODE, les outils de bioinformatique standard sont vivement recommandés pour trouver les chevauchements (par exemple, entre les promoteurs de gènes et les pics) :

  • bedtools : Pour les opérations mathématiques rapides sur les intervalles génomiques.
  • bigBedToBed : Pour convertir les fichiers BigBed binaires en format BED lisible.
  • pybedtools : Un wrapper Python pour bedtools.

Écrivez une logique personnalisée si ces outils ne sont pas préinstallés.

Requêtes personnalisées (GraphQL SCREEN)

Si vous devez effectuer une requête GraphQL complexe que le script ne supporte pas, consultez references/graphql_schema.md pour une référence des requêtes disponibles, arguments et champs de retour dans l'API GraphQL SCREEN.

Skills similaires