Catalog PyPI
Back to packageRELEASE DETAILS

1.5.0

PyPI

agricola

Admixed GWAS for Related Individuals Conditioning On Local Ancestry

Published24 Sept 2026
Direct dependencies12
Transitive dependenciesNot calculated

README

Version 1.5.0 documentation

agricola

agricola is a command-line tool and Python package for conducting genome-wide association studies (GWAS) in admixed populations. Inspired by regenie and Tractor, agricola provides a scalable, local-ancestry–aware framework that handles relatedness, population structure, and ancestry effect heterogeneity. Agricola is highly computationally efficient and can be run on GPU, CPU, or TPU compute environments.


Documentation

Full documentation, including examples, methods description, and details can be found here: https://frankp-0.github.io/agricola

Why agricola?

Admixed individuals have unique LD patterns that can improve signal localization and improve power for population-specific causal variants. However, standard GWAS tools fail to adjust for local ancestry or model effect heterogeneity in admixed individuals.

Tools like Tractor address this gap by performing single-variant association tests with explicit local ancestry adjustment. agricola follows the same conceptual approach but uses whole genome regression to correct for sample relatedness. Other features include:

  • Accelerated linear algebra via JAX
  • CUDA GPU, TPU, or CPU support for flexible compute environments
  • Fast local ancestry queries using lanctools
  • Efficient multi-phenotype modeling
  • Hypothesis testing for ancestry effect heterogeneity

Installation

Requirements: Python 3.12+

Install via pip:

pip install agricola

For GPU or TPU support:

pip install agricola[cuda]
pip install agricola[tpu]

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 14

Native requirements
12 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
jax
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
jax>=0.11.1runtime
jaxlib
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
jaxlib>=0.11.1runtime
jaxtyping
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
jaxtyping>=0.3.11runtime
lanctools
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
lanctools>=1.0.1runtime
numba
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
numba>=0.67.0runtime
numpy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
numpy>=2.5.2runtime
pandas
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
pandas>=3.0.5runtime
pgenlib
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
pgenlib>=0.94.1runtime
pyarrow
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
pyarrow>=25.0.1runtime
rich
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
rich>=15.0.0runtime
tqdm
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
tqdm>=4.70.0runtime
typer
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
typer>=0.27.1runtime
jax
Environment
{
  "extras": "cuda",
  "marker": "extra == \"cuda\"",
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
jax[cuda]>=0.11.1; extra == "cuda"runtime
jax
Environment
{
  "extras": "tpu",
  "marker": "extra == \"tpu\"",
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
jax[tpu]>=0.11.1; extra == "tpu"runtime

Distribution files

2 collected
agricola-1.5.0-py3-none-any.whl

bdist_wheel · 45.23 KB · Python py3

Source file
agricola-1.5.0.tar.gz

sdist · 42.84 KB · Python source

Source file

Repository

PENDING
frankp-0/agricola

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 09:26 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:fe19bb7799c12eaf3a89ec830c6a95de9371eaaf42eaf0c5e79bae96e779ba73

Other collected versions

View all collected versions →