Metadata-Version: 2.4
Name: jaxfne
Version: 0.5.5
Summary: Biophysical source-field modeling: neural activity and biophysical state with plasticity, geometry, and population- and field-scale dynamics.
Project-URL: Homepage, https://github.com/HNXJ/jaxfne
Project-URL: Repository, https://github.com/HNXJ/jaxfne
Project-URL: Documentation, https://jaxfne.readthedocs.io/en/latest/
Project-URL: Issues, https://github.com/HNXJ/jaxfne/issues
Project-URL: Changelog, https://github.com/HNXJ/jaxfne/blob/main/docs/changelog.md
Project-URL: Citation, https://github.com/HNXJ/jaxfne/blob/main/CITATION.cff
Project-URL: Source Code, https://github.com/HNXJ/jaxfne
Author: Hamed Nejat
License: MIT
License-File: LICENSE
Keywords: Izhikevich,JAX,LFP,computational neuroscience,laminar cortex,neural simulation,neuroscience,spectrolaminar
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.11
Requires-Dist: jax<0.11,>=0.4.25
Requires-Dist: jaxlib<0.11,>=0.4.25
Requires-Dist: numpy>=1.24
Requires-Dist: scipy>=1.10
Provides-Extra: all
Requires-Dist: build; extra == 'all'
Requires-Dist: h5py; extra == 'all'
Requires-Dist: ipykernel; extra == 'all'
Requires-Dist: ipywidgets; extra == 'all'
Requires-Dist: jaxley>=0.13.0; extra == 'all'
Requires-Dist: jnwb>=0.2.9; (python_version >= '3.12') and extra == 'all'
Requires-Dist: kaleido; extra == 'all'
Requires-Dist: matplotlib<3.11,>=3.10.9; extra == 'all'
Requires-Dist: matplotlib<3.12,>=3.10.9; extra == 'all'
Requires-Dist: nbclient; extra == 'all'
Requires-Dist: nbformat; extra == 'all'
Requires-Dist: optax>=0.2; extra == 'all'
Requires-Dist: pandas; extra == 'all'
Requires-Dist: pillow; extra == 'all'
Requires-Dist: plotly; extra == 'all'
Requires-Dist: pynwb>=3.1; extra == 'all'
Requires-Dist: pytest; extra == 'all'
Requires-Dist: pytest-cov; extra == 'all'
Requires-Dist: pytest-xdist; extra == 'all'
Requires-Dist: pyyaml; extra == 'all'
Requires-Dist: reportlab; extra == 'all'
Requires-Dist: ruff==0.16.10; extra == 'all'
Requires-Dist: scipy==1.17.1; extra == 'all'
Requires-Dist: zarr; extra == 'all'
Provides-Extra: dev
Requires-Dist: build; extra == 'dev'
Requires-Dist: ipykernel; extra == 'dev'
Requires-Dist: ipywidgets; extra == 'dev'
Requires-Dist: kaleido; extra == 'dev'
Requires-Dist: matplotlib<3.11,>=3.10.9; extra == 'dev'
Requires-Dist: nbclient; extra == 'dev'
Requires-Dist: nbformat; extra == 'dev'
Requires-Dist: optax>=0.2; extra == 'dev'
Requires-Dist: pandas; extra == 'dev'
Requires-Dist: plotly; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest-xdist; extra == 'dev'
Requires-Dist: ruff==0.16.10; extra == 'dev'
Requires-Dist: scipy==1.17.1; extra == 'dev'
Provides-Extra: io
Requires-Dist: h5py; extra == 'io'
Requires-Dist: pyyaml; extra == 'io'
Requires-Dist: zarr; extra == 'io'
Provides-Extra: jax-fem
Requires-Dist: jax-fem>=0.0.12; extra == 'jax-fem'
Provides-Extra: jaxley
Requires-Dist: jaxley>=0.13.0; extra == 'jaxley'
Provides-Extra: jnwb
Requires-Dist: jnwb>=0.2.9; (python_version >= '3.12') and extra == 'jnwb'
Requires-Dist: pynwb>=3.1; extra == 'jnwb'
Provides-Extra: opt
Requires-Dist: optax>=0.2; extra == 'opt'
Provides-Extra: viz
Requires-Dist: ipywidgets; extra == 'viz'
Requires-Dist: kaleido; extra == 'viz'
Requires-Dist: matplotlib<3.12,>=3.10.9; extra == 'viz'
Requires-Dist: pandas; extra == 'viz'
Requires-Dist: pillow; extra == 'viz'
Requires-Dist: plotly; extra == 'viz'
Requires-Dist: reportlab; extra == 'viz'
Requires-Dist: scipy==1.17.1; extra == 'viz'
Description-Content-Type: text/markdown

<p align="center">
  <img src="https://raw.githubusercontent.com/HNXJ/jaxfne/main/docs/assets/jaxfne-itxt.png" alt="jaxfne" width="200">
</p>

<p align="center">
  <a href="https://pypi.org/project/jaxfne/"><img src="https://img.shields.io/pypi/v/jaxfne?color=brightgreen" alt="PyPI"></a>
  <a href="https://jaxfne.readthedocs.io/en/stable/"><img src="https://readthedocs.org/projects/jaxfne/badge/?version=stable" alt="Docs"></a>
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License"></a>
</p>

# jaxfne

JaxFNE is a Python package for biophysical source-field modeling. It couples
neural activity and biophysical state with plasticity, geometry, and population-
and field-scale dynamics, and each of these can be changed within one model.

**Workflow:** change biology → change dynamics → simulate → measure

- **State**: add or change biophysical state $H$.
- **Mechanism**: change dynamics, plasticity, connectivity, geometry, or model detail.
- **Observation**: measure spikes, population activity, or fields.
- **Reduction**: develop or reduce models with [JDNA](docs/guides/jdna.md).

[Quickstart](docs/quickstart.md) · [Scope & status](docs/scope_and_status.md)

## Install

```bash
pip install jaxfne
pip install "jaxfne[viz]"   # optional plotting
```

Development: `pip install -e ".[dev,viz]"` after cloning.

## Minimal example

```python
import jaxfne as jtfne

jtfne.enable_x64()
tensor  = jtfne.load_canonical_neuronal_tensor("canonical-v1-column-1000n")
model   = jtfne.construct(tensor, jtfne.RuntimeConfiguration(seed=0, duration_ms=1000.0, dt_ms=0.5))
signals = jtfne.simulate(model)
```

Import convention: `import jaxfne as jtfne`.

## Documentation

| Resource | Link |
|----------|------|
| Quickstart | [docs/quickstart.md](docs/quickstart.md) |
| Site | [jaxfne.readthedocs.io](https://jaxfne.readthedocs.io/) |
| Tutorials | [docs/tutorials/](docs/tutorials/) |
| Études | [docs/etudes/](docs/etudes/) |
| Public API surface | [docs/public_surface_contract.md](docs/public_surface_contract.md) |
| Changelog | [docs/changelog.md](docs/changelog.md) |

If you are an AI agent, read [`artifacts/AGENTS.md`](artifacts/AGENTS.md).

## Citation

[`CITATION.cff`](CITATION.cff) · [citation guide](docs/citation.md)

## Canonical Visualization Atlas

Seven linked panels (`schema`, `network_3d`, `raster`, `lfp`, `h_dynamics`, `hdp`, `oscillatory`) label each quantity `OBSERVED` or `DERIVED` and carry
manifest provenance. A panel whose declared inputs are missing renders an omission card. Previews and generation code:
[documentation site](https://jaxfne.readthedocs.io/en/latest/) and
[Atlas guide](docs/guides/atlas_suite.md).

