Metadata-Version: 2.5
Name: nltools
Version: 0.6.0.dev3
Summary: A Python package to analyze neuroimaging data
Project-URL: Homepage, https://nltools.org
Author-email: "Luke J. Chang" <luke.j.chang@dartmouth.edu>, Eshin Jolly <eshin.jolly@gmail.com>
License: MIT
License-File: LICENSE
Keywords: analysis,machine-learning,neuroimaging,preprocessing
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.11
Requires-Dist: anywidget>=0.9
Requires-Dist: h5py>=3.13
Requires-Dist: himalaya<0.5,>=0.4.11
Requires-Dist: huggingface-hub>=0.30
Requires-Dist: joblib>=1.5.3
Requires-Dist: matplotlib>=3.8.0
Requires-Dist: nibabel>=5.2.0
Requires-Dist: nilearn>=0.14.1
Requires-Dist: numpy>=2.0.2
Requires-Dist: pandas>=2.3.0
Requires-Dist: polars>=1.33.1
Requires-Dist: pynv>=0.3
Requires-Dist: scikit-learn>=1.8
Requires-Dist: scipy>=1.11.1
Requires-Dist: seaborn>=0.13.2
Requires-Dist: tqdm>=4.67.1
Provides-Extra: all
Requires-Dist: h5py>=3.13; extra == 'all'
Requires-Dist: ipywidgets>=8.1.7; extra == 'all'
Requires-Dist: networkx>=3.5; extra == 'all'
Provides-Extra: graph
Requires-Dist: networkx>=3.5; extra == 'graph'
Provides-Extra: h5
Requires-Dist: h5py>=3.13; extra == 'h5'
Provides-Extra: interactive-plots
Requires-Dist: ipywidgets>=8.1.7; extra == 'interactive-plots'
Description-Content-Type: text/markdown

[![Package versioning](https://img.shields.io/pypi/v/nltools.svg)](https://pypi.org/project/nltools/)
[![CI](https://github.com/cosanlab/nltools/actions/workflows/ci.yml/badge.svg)](https://github.com/cosanlab/nltools/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/cosanlab/nltools/branch/master/graph/badge.svg)](https://codecov.io/gh/cosanlab/nltools)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2229813.svg)](https://doi.org/10.5281/zenodo.2229813)
![Python Versions](https://img.shields.io/badge/python-3.11%20%7C%203.12%20%7C%203.13-blue)
![Platforms](https://img.shields.io/badge/platform-linux%20%7C%20osx%20%7C%20win-blue)

# NLTools

Python toolbox for analyzing neuroimaging data, with a focus on multivariate analyses. It grew out of Tor Wager's object-oriented Matlab [CANlab core tools](http://wagerlab.colorado.edu/tools) and builds on [nilearn](https://nilearn.github.io) and [scikit-learn](https://scikit-learn.org). Requires Python 3.11+.

## Documentation

Documentation and tutorials are available at https://nltools.org

## Installation

With [uv](https://docs.astral.sh/uv/) (recommended, for use in a project):

```
uv add nltools
```

Or with pip:

```
pip install nltools
```

## Development

`uv` manages the whole workflow — it creates the virtual environment, installs core and development dependencies, and installs `nltools` into it in editable mode.

```
git clone https://github.com/cosanlab/nltools
cd nltools
uv sync
```

Common tasks (run via [poe](https://poethepoet.natn.io/), all prefixed with `uv run`):

| Command | What it does |
|---|---|
| `uv run poe lint` | Fix, format, and type-check (ruff + ty) |
| `uv run poe test` | Run the fast test suite in parallel |
| `uv run pytest -k test_name` | Run a specific test |
| `uv run poe docs-serve` | Live-preview the docs site at localhost:8000 (executes tutorials via the cache) |
| `uv run poe docs-build` | Full docs build (API reference + executed tutorials) |
| `uv run poe tutorials` | Run every tutorial notebook end-to-end |
| `uv build` | Build the package locally |
| `uv add/remove [--dev] pkg` | Add or remove a (dev) dependency |
