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