Skills Agentes

Arboreto

Infiere redes de regulación génica (GRN) a partir de datos de expresión génica con algoritmos escalables (GRNBoost2, GENIE3), para transcriptómica bulk o de célula única, con computación distribuida.

Estrellas
45.9k

en todo el repo

Actividad
57

0–100, la ruta de este skill

Actualizado
hace 2 meses

último commit aquí

Commits
2

últimos 90 días

Contexto
2.1k tok

83 tok en reposo

Paquete
5 archivos

27 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add K-Dense-AI/scientific-agent-skills --skill arboreto --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Infiere redes de regulación génica (GRN) a partir de matrices de expresión con GRNBoost2 o GENIE3
  • Identifica relaciones entre factores de transcripción y genes diana a partir de patrones de expresión
  • Escala la inferencia con Dask en local (múltiples núcleos) o en un clúster remoto
  • Filtra los enlaces resultantes por lista de factores de transcripción, límite (limit=N) o umbral de importancia
  • Se integra como paso previo a pySCENIC para definir regulones y ejecutar AUCell

Úsalo cuando

  • Analizar datos de transcriptómica (RNA-seq bulk o de célula única) para identificar interacciones reguladoras
  • Inferir una red de regulación génica con GRNBoost2 o GENIE3
  • Escalar la inferencia de GRN a datasets grandes con computación distribuida (Dask)
  • Preparar módulos de coexpresión como entrada al pipeline de pySCENIC

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • “Infiere la red de regulación génica de esta matriz de expresión con GRNBoost2”
    • “Filtra esta red por los factores de transcripción de esta lista”
    • “Escala esta inferencia de GRN con Dask en un clúster”
    • “Compara GRNBoost2 y GENIE3 en este dataset”

    SKILL.md

    En inglés

    Arboreto

    Overview

    Arboreto is a Python library from Aerts Lab for inferring gene regulatory networks (GRNs) from gene expression data. It parallelizes tree-based ensemble regression (GRNBoost2, GENIE3) with Dask across local cores or remote clusters.

    Core capability: Identify which transcription factors (TFs) regulate which target genes based on expression patterns across observations (cells, samples, conditions).

    Upstream: PyPI 0.1.6 (2021-02-09, latest). Docs: arboreto.readthedocs.io. Primary downstream consumer: pySCENIC.

    Quick Start

    Install arboreto:

    uv pip install arboreto
    

    Basic GRN inference:

    import pandas as pd
    from arboreto.algo import grnboost2
    
    if __name__ == '__main__':
        # Load expression data (genes as columns)
        expression_matrix = pd.read_csv('expression_data.tsv', sep='\t')
    
        # Infer regulatory network
        network = grnboost2(expression_data=expression_matrix)
    
        # Save results (TF, target, importance)
        network.to_csv('network.tsv', sep='\t', index=False, header=False)
    

    Critical: Always use if __name__ == '__main__': guard because Dask spawns new processes.

    Core Capabilities

    1. Basic GRN Inference

    For standard GRN inference workflows including:

    • Input data preparation (Pandas DataFrame or NumPy array)
    • Running inference with GRNBoost2 or GENIE3
    • Filtering by transcription factors
    • Output format and interpretation

    See: references/basic_inference.md

    Use the ready-to-run script: scripts/basic_grn_inference.py for standard inference tasks:

    python scripts/basic_grn_inference.py expression_data.tsv output_network.tsv --tf-file tfs.txt --seed 777 --limit 5000
    

    2. Algorithm Selection

    Arboreto provides two algorithms:

    GRNBoost2 (Recommended):

    • Fast gradient boosting-based inference
    • Optimized for large datasets (10k+ observations)
    • Default choice for most analyses

    GENIE3:

    • Random Forest-based inference
    • Original multiple regression approach
    • Use for comparison or validation

    Quick comparison:

    from arboreto.algo import grnboost2, genie3
    
    # Fast, recommended
    network_grnboost = grnboost2(expression_data=matrix)
    
    # Classic algorithm
    network_genie3 = genie3(expression_data=matrix)
    

    For detailed algorithm comparison, parameters, and selection guidance: references/algorithms.md

    3. Distributed Computing

    Scale inference from local multi-core to cluster environments:

    Local (default) - Uses all available cores automatically:

    network = grnboost2(expression_data=matrix)
    

    Custom local client - Control resources:

    from distributed import LocalCluster, Client
    
    local_cluster = LocalCluster(n_workers=10, memory_limit='8GB')
    client = Client(local_cluster)
    
    network = grnboost2(expression_data=matrix, client_or_address=client)
    
    client.close()
    local_cluster.close()
    

    Cluster computing - Connect to remote Dask scheduler:

    from distributed import Client
    
    client = Client('tcp://scheduler:8786')
    network = grnboost2(expression_data=matrix, client_or_address=client)
    

    For cluster setup, performance optimization, and large-scale workflows: references/distributed_computing.md

    Installation

    uv pip install arboreto
    

    Conda (Bioconda):

    conda install -c bioconda arboreto
    

    Dependencies (from upstream requirements.txt): dask[complete], distributed, numpy, pandas, scikit-learn, scipy

    Input formats: pandas DataFrame, dense numpy.ndarray, or sparse scipy.sparse.csc_matrix (rows = observations, columns = genes). For array/matrix inputs, pass gene_names explicitly.

    Common Use Cases

    Single-Cell RNA-seq Analysis

    import pandas as pd
    from arboreto.algo import grnboost2
    
    if __name__ == '__main__':
        # Load single-cell expression matrix (cells x genes)
        sc_data = pd.read_csv('scrna_counts.tsv', sep='\t')
    
        # Infer cell-type-specific regulatory network
        network = grnboost2(expression_data=sc_data, seed=42)
    
        # Filter high-confidence links
        high_confidence = network[network['importance'] > 0.5]
        high_confidence.to_csv('grn_high_confidence.tsv', sep='\t', index=False)
    

    Bulk RNA-seq with TF Filtering

    from arboreto.utils import load_tf_names
    from arboreto.algo import grnboost2
    
    if __name__ == '__main__':
        # Load data
        expression_data = pd.read_csv('rnaseq_tpm.tsv', sep='\t')
        tf_names = load_tf_names('human_tfs.txt')
    
        # Infer with TF restriction
        network = grnboost2(
            expression_data=expression_data,
            tf_names=tf_names,
            seed=123
        )
    
        network.to_csv('tf_target_network.tsv', sep='\t', index=False)
    

    Comparative Analysis (Multiple Conditions)

    from arboreto.algo import grnboost2
    
    if __name__ == '__main__':
        # Infer networks for different conditions
        conditions = ['control', 'treatment_24h', 'treatment_48h']
    
        for condition in conditions:
            data = pd.read_csv(f'{condition}_expression.tsv', sep='\t')
            network = grnboost2(expression_data=data, seed=42)
            network.to_csv(f'{condition}_network.tsv', sep='\t', index=False)
    

    Output Interpretation

    Arboreto returns a DataFrame with regulatory links:

    Column Description
    TF Transcription factor (regulator)
    target Target gene
    importance Regulatory importance score (higher = stronger)

    Filtering strategy:

    • limit=N at inference time (return top N links globally)
    • Post-hoc importance threshold (e.g., > 0.5)
    • Top links per target via groupby('target')
    • Statistical significance testing (permutation tests, external tools)

    Integration with pySCENIC

    Arboreto powers the GRN inference step in pySCENIC. pySCENIC 0.11+ passes sparse expression matrices to grnboost2 / genie3; pySCENIC 0.12+ defaults to arboreto_with_multiprocessing.py (no Dask) for compatibility — use standalone arboreto when you need Dask scaling.

    # Standalone: infer co-expression modules before pySCENIC cisTarget pruning
    from arboreto.algo import grnboost2
    
    network = grnboost2(expression_data=expression_df, tf_names=tf_list, limit=5000)
    
    # Downstream: pySCENIC ctx pruning, regulon definition, AUCell (see pySCENIC docs)
    

    Convert AnnData to a DataFrame for arboreto directly:

    expression_df = adata.to_df()  # cells x genes
    

    Reproducibility

    Always set a seed for reproducible results:

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

    Run multiple seeds for robustness analysis:

    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)
    
        # Consensus: links recurring across runs (example: mean importance per TF-target pair)
        import pandas as pd
        combined = pd.concat(networks)
        consensus = (
            combined.groupby(['TF', 'target'], as_index=False)['importance']
            .mean()
            .query('importance > 0.5')
        )
    

    Troubleshooting

    Memory errors: Reduce dataset size by filtering low-variance genes or use distributed computing

    Slow performance: Use GRNBoost2 instead of GENIE3, enable distributed client, filter TF list

    Dask errors: Ensure if __name__ == '__main__': guard is present in scripts (required on Windows/macOS with spawn-based multiprocessing)

    Empty results: Check data format (genes as columns), verify TF names match column names in the expression matrix

    Sparse data: Use scipy.sparse.csc_matrix and pass matching gene_names; supported since arboreto 0.1.6 / pySCENIC 0.11

    Reproducido de K-Dense-AI/scientific-agent-skills bajo licencia BSD-3-Clause license. Leer esta página en markdown.

    Archivos

    5 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere el paquete arboreto (uv pip install arboreto), que depende de dask, distributed, numpy, pandas, scikit-learn y scipy.

    Necesita en el PATH:python

    Detalles

    Creador
    K-Dense-AI
    Licencia
    BSD-3-Clause license
    Recursos incluidos
    scripts en python + referencias
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de K-Dense-AI/scientific-agent-skills

    Este repo incluye 163 skills. Si instalas uno, normalmente ya tienes los demás. Ver el pack scientific-agent-skills entero y su comando de instalación

    Gestión integral de citas académicas: busca en OpenAlex, PubMed y Google Scholar, extrae metadatos precisos, valida citas y genera entradas BibTeX correctamente formateadas.

    Costo de contexto al activarse
    3.7k tok
    Tamaño del paquete
    21 archivos
    Última actualización
    hace 2 meses
    investigacion

    Realiza revisiones bibliográficas sistemáticas y completas usando varias bases académicas (PubMed, arXiv, bioRxiv, Semantic Scholar). Genera markdown y PDF con citas verificadas en varios estilos (APA, Nature, Vancouver).

    Costo de contexto al activarse
    3.2k tok
    Tamaño del paquete
    12 archivos
    Última actualización
    hace 2 meses
    investigacion

    Crea decks de diapositivas y presentaciones para charlas de investigación: PowerPoint, presentaciones de conferencia, seminarios, defensas de tesis. Da estructura, plantillas, guía de tiempos y validación visual.

    Costo de contexto al activarse
    5.1k tok
    Tamaño del paquete
    24 archivos
    Última actualización
    hace 2 meses
    documentos

    Crea infografías profesionales con Nano Banana Pro AI y refinamiento iterativo inteligente. Usa Gemini 3.6 Flash para revisar la calidad e integra investigación con Perplexity Sonar. Soporta 10 tipos, 8 estilos y paletas para daltonismo.

    Costo de contexto al activarse
    2.7k tok
    Tamaño del paquete
    8 archivos
    Última actualización
    hace 2 meses
    diseno ui

    Crea pósteres de investigación profesionales en LaTeX con beamerposter, tikzposter o baposter, para conferencias y comunicación científica: layout, colores, columnas múltiples e integración de figuras.

    Costo de contexto al activarse
    3.9k tok
    Tamaño del paquete
    17 archivos
    Última actualización
    hace 2 meses
    documentos

    Crea diagramas científicos de calidad de publicación con la IA Nano Banana 2 y refinamiento iterativo inteligente. Gemini 3.6 Flash revisa la calidad y solo regenera si está por debajo del umbral de tu tipo de documento.

    Costo de contexto al activarse
    4.1k tok
    Tamaño del paquete
    6 archivos
    Última actualización
    hace 2 meses
    diseno ui

    Skills relacionados

    Aeon

    45.9k

    Para tareas de machine learning con series temporales: clasificación, regresión, clustering, forecasting, detección de anomalías, segmentación y búsqueda de similitud, con APIs compatibles con scikit-learn.

    Costo de contexto al activarse
    3.1k tok
    Tamaño del paquete
    12 archivos
    Última actualización
    hace 2 meses
    datos analitica

    Anndata

    45.9k

    Estructura de datos para matrices anotadas en análisis de célula única. Úsala con archivos .h5ad o el ecosistema scverse; para análisis usa scanpy, para modelos probabilísticos scvi-tools, para escala poblacional cellxgene-census.

    Costo de contexto al activarse
    3k tok
    Tamaño del paquete
    6 archivos
    Última actualización
    hace 2 meses
    datos analitica

    Orquestador end-to-end de RNA-seq bulk: de FASTQ crudo (QC, trimming, STAR/Salmon/featureCounts) a matriz de counts, expresión diferencial con pydeseq2, enriquecimiento GSEA y figuras de publicación.

    Costo de contexto al activarse
    3.7k tok
    Tamaño del paquete
    7 archivos
    Última actualización
    hace 2 meses
    datos analitica