JAX Field Neural Equations: a source-to-field neurophysiology engine for TFNE models.
Project description
jaxfne
JAX-based tools for TFNE source, field, probe, objective, and optimizer workflows.
Emitter -> Source -> Field -> Probe -> Objective -> Optimizer
jaxfne is built for compact computational biophysics tutorials and package-level experiments. Current tutorial readouts use simulated/proxy scales with JSON-safe reports and deterministic seeds.
Install
pip install -U jaxfne
Development checkout:
git clone https://github.com/HNXJ/jaxfne.git
cd jaxfne
pip install -e .[dev,viz,opt]
Minimal workflow
import jaxfne as jtfne
cfg = jtfne.Configuration()
cfg = cfg.runtime(seed=7, dtype="float32", duration_ms=1000.0, dt_ms=0.1)
cfg = cfg.column("single_neuron", layers=["L2/3"], n=1)
cfg = cfg.cell_types({"E": 1.0})
cfg = cfg.connectivity()
cfg = cfg.set_emitter("izhikevich", "cortical_eig")
cfg = cfg.probes(["MUA-proxy", "source-proxy", "LFP-proxy"])
model = jtfne.construct(cfg)
signals = jtfne.simulate(model, duration_ms=1000.0, dt_ms=0.1, seed=7)
print(signals.V_m.shape, signals.spikes.sum())
Multi-objective tuning
objectives = jtfne.rate_targets(
groups={"first_half": range(24), "second_half": range(24, 48)},
targets_hz={"first_half": 5.0, "second_half": 10.0},
)
optimizer = jtfne.agsdr(
parameters={"drive_scale_a": (0.35, 2.25), "drive_scale_b": (0.35, 2.25)},
generations=8,
population_size=6,
seed=42,
)
result = model.tune(objectives=objectives, optimizer=optimizer)
print(result.best_score, result.best_parameters)
Core readouts
| Readout | Role |
|---|---|
| SPK | spike matrix or events |
| Vm | emitter voltage/state trace |
| Source | source/current proxy |
| LFP-proxy | laminar field proxy |
| CSD-proxy | spatial source/divergence proxy |
| EEG-proxy | linear scalp-channel proxy |
| MEG-proxy | linear magnetic-channel proxy |
| EMM-proxy | normalized activity-cost proxy |
Validate a checkout
python -m compileall -q jaxfne tests examples
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 PYTHONPATH=. python -m pytest tests/ -q --tb=line
mkdocs build --strict
Documentation
MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jaxfne-0.3.22.tar.gz.
File metadata
- Download URL: jaxfne-0.3.22.tar.gz
- Upload date:
- Size: 4.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e711c003df58a89f7dbc0a9ac4ee010b2a939910b0c5938464576bbac6524d54
|
|
| MD5 |
3c7199c1d3318691685308b74f58b183
|
|
| BLAKE2b-256 |
b4abed0432e75a0927feac1b7f59fb03e6c5fc8c5980c23808c539f4a3ff435d
|
File details
Details for the file jaxfne-0.3.22-py3-none-any.whl.
File metadata
- Download URL: jaxfne-0.3.22-py3-none-any.whl
- Upload date:
- Size: 164.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f05f341764dc8ec78d2f991045e77bd35567e96492efc809c3ba266708ff8314
|
|
| MD5 |
2b2a96ec10634b7531d7521084420953
|
|
| BLAKE2b-256 |
eaf71b7906d685c243aff660b91b8767559484b9135dccefb2f1f08e18ecec4b
|