Skip to content

Guide · Agent skill

How to use the Arboreto gene network inference agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The Arboreto skill teaches an AI agent to run Arboreto, a bioinformatics tool, on a table of gene expression measurements and return a ranked list of which genes may regulate which other genes. It is written for researchers who work with bulk or single-cell expression data and want a reproducible setup. After following this guide you will know how to install the skill, ask for it in plain language, and read and check the output.

Arboreto Gene Network InferenceK-Dense-AI/scientific-agent-skills · MIT

Quick start

  1. 1Download the ZIP. Download the arboreto skill ZIP from this page.
  2. 2Install the skill. Unzip it into ~/.claude/skills/ for all projects, or into a project's .claude/skills/ folder, or upload it under Settings, Capabilities, Skills in the Claude apps.
  3. 3Create the pinned environment. Run the uv commands from the skill to create a Python 3.11 environment with the exact pinned packages.
  4. 4Ask for the analysis. Describe your expression file, TF list and goal in plain language so the agent loads the skill.
  5. 5Run a small pilot. Run the bundled wrapper on a subset with one worker and check the TF overlap and warnings.
  6. 6Check stability. Repeat with other seeds and resampled observations, then keep only edges that pass your per-run rule across runs.

What the skill makes the agent do

Arboreto's GRNBoost2 method fits stochastic gradient boosting regressions, and GENIE3 fits random forests. For each target gene, the method predicts its expression from candidate regulator genes, excluding the target itself. The result is a ranked list of regulator-target pairs with an importance score.

The skill adds the operational know-how: checking inputs, using a pinned Python 3.11 environment, running a bundled command-line wrapper, and checking stability across seeds. The scores are observational predictive associations, not proof of direct binding, activation, repression or causal regulation.

Install the skill from the ZIP or the Claude apps

Download the ZIP for the arboreto skill from this page. To install it for all your projects, unzip it into ~/.claude/skills/ so the arboreto folder (containing SKILL.md) sits inside that folder. To install it for one project only, unzip it into the project's .claude/skills/ folder.

If you use the Claude apps instead, open Settings, go to Capabilities, then Skills, and upload the ZIP there.

  • Personal install: ~/.claude/skills/arboreto/
  • Project install: .claude/skills/arboreto/ inside your project
  • Apps: Settings → Capabilities → Skills

Set up the pinned Python environment

The skill pins a Python 3.11 environment because the latest PyPI release of Arboreto needs specific pinned dependencies to run inference. Create the environment with uv (or another virtualenv tool) and install the exact stack. Network access is needed only for this installation step.

Before importing Arboreto in your own code, set the legacy Dask dataframe backend, as the skill's example shows. Restart a notebook kernel if it already imported the newer backend.

  • Use the pinned stack exactly; do not assume an unpinned install will run inference.
  • Sparse inputs depend on the tested SciPy pin.
  • The skill needs no API keys or credentials.
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'

Trigger the skill with natural requests

You do not need special syntax. Describe the biology and the file in plain language, and name the method if you have a preference. The agent should load the skill when your request involves inferring gene regulatory networks from expression data.

Good requests state the data format, the regulator list and the goal. Vague requests such as 'analyse my genes' give the agent less to work with.

  • Infer a candidate gene regulatory network from expression_data.tsv using GRNBoost2 and the TF list in tfs.txt.
  • Compare GRNBoost2 and GENIE3 results on these two conditions and tell me which edges are stable across seeds.
  • Check my expression matrix for the input problems Arboreto needs before running inference.
  • Run a small pilot on 500 cells, then scale the worker count.

Run the bundled wrapper on your data

The skill includes scripts/basic_grn_inference.py. Run it from the skill directory with a TSV file that has gene headers and numeric rows. Add --index-col 0 only if the first column holds cell or sample identifiers. Without a TF file, every gene is treated as a candidate regulator, even though the output column is named TF.

The wrapper rejects duplicate headers, nonnumeric or nonfinite values, an empty TF overlap, invalid limits and empty results. It writes a headerless TSV with TF, target and importance columns. Start with one worker and increase it only after a successful pilot.

  • Output is sorted by decreasing importance; zero-importance links are omitted.
  • limit keeps the top N links globally, not N links per target.
.venv-arboreto/bin/python scripts/basic_grn_inference.py expression_data.tsv network.tsv --tf-file tfs.txt --seed 777 --workers 2 --limit 5000

Read and validate the output

Scores are useful for ranking, not as absolute confidence levels. GRNBoost2 scores can exceed 1 and are not on the same scale as GENIE3, and there is no universal importance cutoff. Define a selection rule for each run before comparing runs.

For consensus, count the fraction of all runs that keep each TF-target pair. A missing edge is not a score of zero to average over present rows. An empty target result can come from a failed regression, so check logs and target coverage. Agreement between GRNBoost2 and GENIE3 is a method sensitivity check, not independent biological validation.

  • Archive each network with its seed, package versions, filters and identifier lists.
  • Match preprocessing, sample sizes and gene sets before comparing conditions.
  • Use motif, binding or perturbation evidence to support any candidate.

Safety notes and limits

This skill runs scripts, so read scripts/basic_grn_inference.py before executing it on sensitive data. The skill states that inference itself does not use the network and needs no credentials; network access is needed only during installation.

The skill does not do cell quality control, normalization or batch correction. You must document those steps yourself. The pySCENIC stages, such as motif pruning, regulon definition and AUCell, are separate steps that the skill did not test.

  • Runs scripts: yes. Uses network during inference: no.
  • Requires Python 3.11 and uv or another virtualenv tool.
  • Not for causal claims from output alone.

What people use it for

  • Ranking candidate transcription factor to target links from a single-cell RNA expression matrix.
  • Comparing GRNBoost2 and GENIE3 outputs across two experimental conditions.
  • Building a reproducible, archived candidate network with fixed seeds and recorded package versions.
  • Checking an expression table for duplicate headers, nonnumeric values and missing TF overlap before inference.

Frequently asked questions

How do I install the arboreto agent skill?

Download the ZIP from this page and unzip it into ~/.claude/skills/ for all projects or into a project's .claude/skills/ folder. In the Claude apps, you can instead upload the ZIP under Settings, Capabilities, Skills.

What do I need to run Arboreto with this skill?

You need Python 3.11, uv or another virtualenv tool to create the pinned environment, and network access during installation only. The skill lists the exact pinned packages, including Arboreto, Dask, NumPy, pandas, scikit-learn and SciPy. No API keys or credentials are needed.

Is the arboreto skill free and what is its licence?

The directory lists the skill under the MIT licence, but the SKILL.md file's frontmatter names the BSD-3-Clause licence. Check the licence text in the ZIP before reuse. The skill itself does not describe any cost.

Why does pip install arboreto fail or give a Dask TypeError?

The latest PyPI release builds an empty metadata graph that newer Dask dataframe versions reject, producing 'Must supply at least one delayed object'. Use the pinned environment from the skill and set dataframe.query-planning to False before importing Arboreto. Restart any notebook kernel that already imported the newer backend.

Does Arboreto prove which genes regulate which?

No. The output shows observational predictive associations ranked by importance. Direct binding, activation or causal regulation needs independent evidence such as motif, binding or perturbation data.

How does GRNBoost2 compare with GENIE3?

GRNBoost2 uses stochastic gradient boosting with early stopping and is suggested for an efficient first analysis of large matrices. GENIE3 uses random forests and is suited to method comparison. Their score scales differ, so compare them with a shared selection rule rather than raw scores.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

This skill suits bioinformatics researchers and computational biologists who already work with expression matrices and want a pinned, reproducible Arboreto setup with careful input checks. It is a poor fit for anyone expecting causal answers, unpinned installs to work, or non-biological datasets.

Download the skill