Metadata-Version: 2.4
Name: agricola
Version: 0.3.2
Summary: Admixed GWAS for Related Individuals Conditioning On Local Ancestry
Author-email: Franklin Ockerman <frank.ockerman@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/frankp-0/agricola
Project-URL: Documentation, https://agricola.readthedocs.io
Project-URL: Repository, https://github.com/frankp-0/agricola
Project-URL: Issues, https://github.com/frankp-0/agricola/issues
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: jax>=0.6.2
Requires-Dist: jaxlib>=0.6.2
Requires-Dist: jaxtyping>=0.3.3
Requires-Dist: lanctools==0.3.0
Requires-Dist: numba>=0.63.1
Requires-Dist: numpy>=2.2.6
Requires-Dist: pandas>=2.3.3
Requires-Dist: pgenlib>=0.93.0
Requires-Dist: pyarrow>=21.0.0
Requires-Dist: tqdm>=4.67.1
Requires-Dist: typer>=0.20.0
Provides-Extra: cuda
Requires-Dist: jax[cuda]>=0.6.2; extra == "cuda"
Provides-Extra: tpu
Requires-Dist: jax[tpu]>=0.6.2; extra == "tpu"
Dynamic: license-file

# agricola

**agricola** is a Python package and command-line tool for conducting **genome-wide
association studies (GWAS) in admixed populations**. Inspired by [regenie](https://rgcgithub.github.io/regenie)
and [Tractor](https://atkinson-lab.github.io/Tractor-tutorial/), **agricola**
provides a scalable, local-ancestry–aware framework that handles relatedness, population
structure, and ancestry effect heterogeneity.

Full documentation can be found [here](https://agricola.readthedocs.io/en/latest/)

---

## 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 and SAIGE-Tractor address this gap. **agricola** follows the same
conceptual approach-performing single-variant association tests with explicit
local ancestry adjustment-but combines it with:

- **Accelerated linear algebra** via [JAX](https://docs.jax.dev)
- **CUDA GPU, TPU, or CPU support** for flexible compute environments
- **Efficient local ancestry queries** using [lanctools](https://github.com/frankp-0/lanctools)
- **Multi-phenotype** modeling
- **Adjustment for sample relatedness**

---

## Installation

**Requirements:** Python 3.10+  

Install via pip:

```bash
pip install agricola
```

For GPU or TPU support:

```bash
pip install agricola[cuda]
```

```bash
pip install agricola[tpu]
```
