# Arboreto

Infers candidate gene regulatory networks from bulk or single-cell expression data...

- Repository: https://github.com/K-Dense-AI/scientific-agent-skills (55651 stars)
- Category: Engineering
- License: BSD-3-Clause license
- Last updated: 2026-10-26
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add K-Dense-AI/scientific-agent-skills --skill arboreto -g -a claude-code -y`
Codex: `npx skills add K-Dense-AI/scientific-agent-skills --skill arboreto -g -a codex -y`
Cursor: `npx skills add K-Dense-AI/scientific-agent-skills --skill arboreto -g -a cursor -y`
Gemini CLI: `npx skills add K-Dense-AI/scientific-agent-skills --skill arboreto -g -a gemini-cli -y`

## Description

Infers candidate gene regulatory networks from bulk or single-cell expression data using AertsLab Arboreto GRNBoost2 and GENIE3. Use for transcription factor-target association ranking, compatible Dask execution, sparse expression inputs, and network stability checks.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Arboreto

## When to use

Use Arboreto to rank candidate regulator-target associations from expression
measurements. GRNBoost2 fits stochastic gradient boosting regressions; GENIE3
fits random forests. Each target is predicted from candidate regulators, excluding
itself. These are observational predictive associations, not proof of direct
binding, activation/repression, or causal regulation.

The latest PyPI release checked is **0.1.6** (2021-02-09). Read the Docs still
labels its documentation 0.1.5; the current GitHub source contains fixes that are
**not in the PyPI wheel**. Do not assume a successful unpinned installation can
run inference. See [compatibility and distribution details](references/distributed_computing.md).

## Installation and compatibility

The following exact stack passed dense and CSC-sparse GRNBoost2, dense GENIE3,
custom GBM/RF, and wrapper smoke tests on macOS arm64 with Python 3.11.11:

```bash
uv venv --python 3.11 .venv-arboreto
uv pip install --python .venv-arboreto/bin/python \
  'arboreto==0.1.6' 'dask[complete]==2024.7.1' 'distributed==2024.7.1' \
  'numpy==1.26.4' 'pandas==2.2.3' 'scikit-learn==1.5.2' 'scipy==1.13.1'
```

This is a bounded compatibility recipe, not a claim that current releases of all
dependencies work. PyPI Arboreto builds an empty metadata graph that the newer
Dask dataframe implementation rejects. For this pinned Dask version, select its
legacy dataframe backend **before importing Arboreto or `dask.dataframe`**:

```python
import dask
dask.config.set({"dataframe.query-planning": False})
from arboreto.algo import grnboost2, genie3
```

The bundled wrapper does this for Dask 2024.7.1. Restart an existing notebook
kernel if it has already imported the newer dataframe backend. Sparse targets
also use `.A` inside Arboreto 0.1.6; this attribute was removed in SciPy 1.14.
Keep the tested SciPy pin for sparse inference. No monkeypatch to site-packages
is required by this recipe.

## Workflow

The rest: https://github.com/K-Dense-AI/scientific-agent-skills/blob/HEAD/skills/arboreto/SKILL.md
