Metadata-Version: 2.1
Name: anjl
Version: 0.3.0
Summary: A neighbour-joining library for Python.
Home-page: https://github.com/alimanfoo/anjl
License: MIT
Author: Alistair Miles
Author-email: alimanfoo@googlemail.com
Requires-Python: >=3.10,<3.13
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Provides-Extra: dev
Requires-Dist: ipykernel ; extra == "dev"
Requires-Dist: ipywidgets ; extra == "dev"
Requires-Dist: jupyterlab ; extra == "dev"
Requires-Dist: memory-profiler ; extra == "dev"
Requires-Dist: mypy ; extra == "dev"
Requires-Dist: notebook ; extra == "dev"
Requires-Dist: numba (>=0.60.0,<0.61.0)
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: pandas-stubs ; extra == "dev"
Requires-Dist: plotly
Requires-Dist: pre-commit ; extra == "dev"
Requires-Dist: pytest ; extra == "dev"
Requires-Dist: pytest-xdist ; extra == "dev"
Requires-Dist: ruff ; extra == "dev"
Requires-Dist: scipy ; extra == "dev"
Requires-Dist: snakeviz ; extra == "dev"
Requires-Dist: tqdm ; extra == "dev"
Requires-Dist: zarr ; extra == "dev"
Project-URL: Documentation, https://github.com/alimanfoo/anjl
Project-URL: Repository, https://github.com/alimanfoo/anjl
Description-Content-Type: text/markdown

# anjl - A neighbour-joining library for Python

`anjl` is a Python package providing implementations of the
[neighbour-joining
algorithm](https://en.wikipedia.org/wiki/Neighbor_joining) of Saitou
and Nei and some associated utilities.

## Installation

```
pip install anjl
```

## Usage

```python
import anjl
```

### Canonical neighbour-joining implementation

```python
help(anjl.canonical_nj)
```

### Convert to tree-like data structure

```python
help(anjl.to_tree)
```

### Plot a tree using the equal-angles layout

```python
help(anjl.plot_equal_angles)
```

## About

There are implementations of neighbour-joining available in
[BioPython](https://biopython.org/docs/latest/api/Bio.Phylo.TreeConstruction.html#Bio.Phylo.TreeConstruction.DistanceTreeConstructor),
[scikit-bio](https://scikit.bio/docs/dev/generated/skbio.tree.nj.html)
and
[biotite](https://www.biotite-python.org/latest/apidoc/biotite.sequence.phylo.neighbor_joining.html),
but they are relatively slow for larger numbers of nodes. I created
this package to provide faster implementations for use in population
genomics.

Bug reports, suggestions and pull requests are welcome but I make no promises
regarding support, please be patient and understanding!

