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¶
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_ingestandcallset_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:
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:
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: