arboreto

Par mkurman · zorai

npx skills add https://github.com/mkurman/zorai --skill arboreto

name: arboreto description: Inférer des réseaux de régulation génique (GRN) à partir de données d'expression génique en utilisant des algorithmes évolutifs (GRNBoost2, GENIE3). À utiliser lors de l'analyse de données de transcriptomique (RNA-seq en masse, RNA-seq monocellulaire) pour identifier les relations entre facteurs de transcription et gènes cibles, ainsi que les interactions régulatrices. Supporte le calcul distribué pour les ensembles de données à grande échelle. license: BSD-3-Clause license tags: [scientific-skills, arboreto, bioinformatics, compliance] metadata: skill-author: K-Dense Inc. -----|-------------| | TF | Facteur de transcription (régulateur) | | target | Gène cible | | importance | Score d'importance régulatrice (plus élevé = plus fort) |

Stratégie de filtrage :

  • Top N liens par gène cible
  • Seuil d'importance (p. ex. > 0,5)
  • Test de signification statistique (tests de permutation)

Intégration avec pySCENIC

Arboreto est un composant central du pipeline SCENIC pour l'analyse de réseaux de régulation monocellulaires :

# Step 1: Use arboreto for GRN inference
from arboreto.algo import grnboost2
network = grnboost2(expression_data=sc_data, tf_names=tf_list)

# Step 2: Use pySCENIC for regulon identification and activity scoring
# (See pySCENIC documentation for downstream analysis)

Reproductibilité

Définissez toujours une graine pour des résultats reproductibles :

network = grnboost2(expression_data=matrix, seed=777)

Exécutez plusieurs graines pour l'analyse de robustesse :

from distributed import LocalCluster, Client

if __name__ == '__main__':
    client = Client(LocalCluster())

    seeds = [42, 123, 777]
    networks = []

    for seed in seeds:
        net = grnboost2(expression_data=matrix, client_or_address=client, seed=seed)
        networks.append(net)

    # Combine networks and filter consensus links
    consensus = analyze_consensus(networks)

Dépannage

Erreurs de mémoire : Réduisez la taille de l'ensemble de données en filtrant les gènes à faible variance ou utilisez le calcul distribué

Performance lente : Utilisez GRNBoost2 au lieu de GENIE3, activez le client distribué, filtrez la liste des TF

Erreurs Dask : Assurez-vous que la garde if __name__ == '__main__': est présente dans les scripts

Résultats vides : Vérifiez le format des données (gènes en colonnes), vérifiez que les noms des TF correspondent aux noms des gènes

Skills similaires