NeuroJAX (OSL-JAX) is a modular, GPU-accelerated port of the OSL analysis stack using JAX. It leverages the "Kidger scientific stack" to provide robust, differentiable, and fast electrophysiology analysis tools.
To contribute your work to NeuroJAX, we ask that you adhere to these guidelines.
Development relies on a set of high-quality libraries built on top of JAX:
- JAX: The core engine for composable transformations.
- Equinox: For building stateful, object-oriented models safely within JAX.
- Optimistix: For non-linear least squares (NLLS) fitting and root finding.
- Lineax: For efficient linear solvers.
- Jaxtyping: For type annotations and shape checking.
We use uv for dependency management. Please ensure you have it installed.
uv syncModels should be implemented as equinox.Module classes to ensure they are valid PyTrees and JIT-compatible.
Please open a pull request on the GitHub repository for any contributions. Ensure tests pass before submitting.