Installation guide
annnet is designed to stay lightweight by default. The base package only requires numpy, scipy, and narwhals, and everything heavier is exposed as an optional extra.
Requirements
- Python
3.10+ pipfor standard installsuvif you want a fast local or development workflowgitif you want to install from GitHub
Check your environment:
Install from PyPI
If you just want the core package:
This gives you the core graph data structure and algorithms without pulling in backend, plotting, storage, or ML dependencies you may never use.
Choose your extras
Install only the extras you need. annnet exposes both single-purpose extras and broader install bundles.
Tabular data backends
Single extras:
polars: recommended default dataframe backend for annnet tables and annotationspandas: pandas-native dataframe support and fallback backendpyarrow: Arrow table support and parquet-related tabular workflows
Graph backends
Single extras:
Bundle:
networkx: interoperability and access to NetworkX algorithmsigraph: interoperability withpython-igraphpyg: PyTorch Geometric supportbackends: installs the pip-installable graph backendsnetworkxandigraph
graph-tool is supported by the codebase, but it is not published on PyPI, so it must be installed separately with Pixi, conda, or your system package manager.
Plotting backends
Single extras:
Bundle:
matplotlib: plotting support for matplotlib-based renderingpydot: DOT export and pydot-based renderinggraphviz: Python Graphviz bindingsplot: installs all pip-installable plotting backends together
I/O extras
Single extras:
pip install "annnet[excel]"
pip install "annnet[parquet]"
pip install "annnet[zarr_io]"
pip install "annnet[sbml]"
Bundles:
excel: Excel import/export supportparquet: parquet I/O support viapyarrowzarr_io:.annnetstorage support withzarrandnumcodecssbml: SBML parsing supportio: broader I/O bundle including pandas, openpyxl, pyarrow, zarr, numcodecs, lxml, and tomlstorage: storage-oriented subset for parquet/zarr/pandas workflowsmetabo: metabolomics-oriented bundle with SBML, COBRA, and Graphviz
Other install bundles
all: broad pip-installable runtime bundle, excluding non-PyPI dependencies and PyGdev: packaging and contributor tooling installable via pip Useallif you want a batteries-included pip install and do not mind a larger environment.
Install from GitHub with uv
Use this if you want the latest repository version before the next PyPI release:
If you want extras as well, use the package URL in the same way you would use an extra on PyPI, for example:
Local editable install with uv
For development or documentation work with pip-installable dependencies only, clone the repository and install it in editable mode:
git clone https://github.com/saezlab/annnet.git
cd annnet
uv venv
source .venv/bin/activate
uv pip install -e .
For a fuller local environment:
You can also add runtime extras you care about:
Run tests with uv
From the repository root:
Use Pixi for non-pip dependencies
Use Pixi when you want the repository's fuller development environment, especially for dependencies that are not reliably available from PyPI such as graph-tool.
The Pixi environment:
- installs
annneteditable with the publishedallanddevextras - provides
graph-toolfromconda-forge - is the right path for running tests that depend on non-pip packages
If you want the full test suite inside the Pixi environment, run:
Build and serve the docs with uv
This repository defines a dedicated docs dependency group for MkDocs:
For a one-off strict build:
The generated site is written to site/.