Skip to content

Installation

Altar requires Python 3.12 or newer on Linux or macOS. Windows is not supported, because pysam, a core dependency, publishes no Windows wheels.

Core framework

python -m venv .venv
source .venv/bin/activate
pip install altar

The base installation includes public interfaces, SQLite reference storage, local Docker execution support, and extension conformance suites. It does not install TensorFlow, PyTorch, model weights, cloud SDKs, or agent dependencies.

For variants, the base installation can:

  • read canonical TSV and VCF input and validate it against a reference FASTA;
  • ingest VCF shards and deduplicate them with selected_vcf_ingest and callset_union;
  • export family evidence and augmented VCFs;
  • look up the nearest genes of a variant.

Region classification, cCRE overlap, and allele-frequency annotation also need generated data files that the wheel does not include. This affects altar.variants.annotation.annotate, region_filter, and the region step of altar.variants.preprocessing.pipeline. Build the files and point ALTAR_VARIANTS_DATA_DIR at them, or run these commands in the variants runtime image, which includes them. See Annotation data files.

pip install altar also installs altar-identity, the dependency-free package that defines variant keys and SHA-256 file identity. Altar pins its exact version and re-exports its names, so you do not install or import it yourself. Model runtime images install it directly, because most runtimes use a Python older than Altar core supports. See the identity package.

Optional framework features

Install Adds
altar[bigquery] BigQuery result storage
altar[kubernetes] Kubernetes execution backend
altar[modal] Modal execution backend
altar[agent] Experimental investigation agent and biomedical API clients
altar[test] Altar's development and type-checking dependencies
altar[docs] Documentation toolchain

Bindings

Each binding is a separate distribution that requires altar. Four are on PyPI:

pip install altar-chrombpnet altar-cherimoya altar-alphamissense altar-opentargets-e2g

The others install from a source checkout of the repository.

Distribution Integrates Kind Install from
altar-chrombpnet ChromBPNet model; separate runtime image PyPI
altar-cherimoya Cherimoya model; separate runtime image PyPI
altar-enformer Enformer model; separate runtime image bindings/enformer
altar-borzoi Borzoi model; separate runtime image bindings/borzoi
altar-legnet LegNet model; separate runtime image bindings/legnet
altar-sei Sei (experimental) model; separate runtime image bindings/sei
altar-alphagenome AlphaGenome model; hosted API bindings/alphagenome
altar-alphamissense AlphaMissense annotation source PyPI
altar-spliceai precomputed SpliceAI annotation source bindings/spliceai
altar-gpnstar precomputed GPN-Star annotation source bindings/gpnstar
altar-gnomad gnomAD allele frequencies annotation source bindings/gnomad
altar-clinvar ClinVar classifications annotation source bindings/clinvar
altar-e2g-atlas ENCODE-rE2G and scE2G atlases variant–gene link source bindings/e2g-atlas
altar-opentargets-e2g Open Targets E2G variant–gene link source PyPI

altar and every binding are released together under one version number. Upgrade them together.

Installing a binding makes its integration discoverable through Altar's registry. A data-backed binding may also require you to acquire and prepare an upstream dataset; a model binding may require a separate runtime image and model artifacts. See the integration catalog.

From a source checkout

Install from a checkout to work on Altar or to use changes that are not yet in a release:

git clone https://github.com/kundajelab/altar.git
cd altar
uv venv --python 3.12
uv pip install -e "altar[test,docs]"

uv resolves the altar-identity dependency from the checkout's identity/ workspace member rather than a package index.

Install a binding from its directory the same way. uv takes altar and altar-identity from the same checkout, so the versions match:

uv pip install -e bindings/sei

To install a release rather than the development branch, check out its tag first, for example git switch --detach v0.1.0.

Verify the checkout:

.venv/bin/python -m pytest altar/tests -q
.venv/bin/python scripts/check_core_boundary.py
cd altar && ../.venv/bin/python -m mypy altar