API Reference#

GLMs#

Classes for creating Generalized Linear Models (GLMs) for both single neurons and neural populations.

GLM

Generalized Linear Model (GLM) for neural activity data.

ClassifierGLM

Generalized Linear Model for multi-class classification.

PopulationGLM

Population Generalized Linear Model.

ClassifierPopulationGLM

Population Generalized Linear Model for multi-class classification.

GLM-HMM#

Classes for creating Hidden Markov models (HMMs) with Generalized Linear Models (GLMs) observations.

GLMHMM

Generalized Linear Model with Hidden Markov Model (GLM-HMM).

Bases#

Provides basis function classes to construct and transform features for model inputs. Basis can be grouped according to the mode of operation into basis that performs convolution and basis that operates as non-linear maps.

The Abstract Classes:

These classes are the building blocks for the concrete basis classes.

Basis

Abstract base class for defining basis functions for feature transformation.

SplineBasis

SplineBasis class inherits from the Basis class and represents spline basis functions.

Bases For Convolution:

MSplineConv

M-spline basis functions for modeling and data transformation.

BSplineConv

B-spline 1-dimensional basis functions.

CyclicBSplineConv

B-spline 1-dimensional basis functions for cyclic splines.

RaisedCosineLinearConv

Represent linearly-spaced raised cosine basis functions.

RaisedCosineLogConv

Represent log-spaced raised cosine basis functions.

OrthExponentialConv

Set of 1D basis decaying exponential functions numerically orthogonalized.

HistoryConv

Basis for history effects.

Bases For Non-Linear Mapping:

MSplineEval

M-spline basis functions for modeling and data transformation.

BSplineEval

B-spline 1-dimensional basis functions.

CyclicBSplineEval

B-spline 1-dimensional basis functions for cyclic splines.

RaisedCosineLinearEval

Represent linearly-spaced raised cosine basis functions.

RaisedCosineLogEval

Represent log-spaced raised cosine basis functions.

FourierEval

N-dimensional Fourier basis for feature expansion.

OrthExponentialEval

Set of 1D basis decaying exponential functions numerically orthogonalized.

IdentityEval

Identity basis function.

Zero

Zero basis function.

Composite Bases:

AdditiveBasis

Class representing the addition of two Basis objects.

MultiplicativeBasis

Class representing the multiplication (external product) of two Basis objects.

Custom defined Basis:

Define a fully functional basis form a list of functions.

CustomBasis

Custom basis class.

Basis As scikit-learn Tranformers:

TransformerBasis

Basis as scikit-learn transformers.

Observation Models#

Statistical models to describe the distribution of neural responses or other predicted variables, given inputs.

Observations

Abstract observation model class for neural data processing.

PoissonObservations

Model observations as Poisson random variables.

GaussianObservations

Model observations as Gaussian random variables.

NegativeBinomialObservations

A Negative Binomial model for overdispersed count data using mean-dispersion parameterization.

GammaObservations

Model observations as Gamma random variables.

BernoulliObservations

Model observations as Bernoulli random variables.

CategoricalObservations

Model observations as Categorical random variables.

Regularizers#

Implements various regularization techniques to constrain model parameters, which helps prevent overfitting.

Regularizer

Abstract base class for regularized solvers.

UnRegularized

Regularizer class for unregularized models.

Ridge

Regularizer class for Ridge (L2 regularization).

Lasso

Regularizer class for Lasso (L1 regularization).

ElasticNet

Regularizer class for Elastic Net (L1 + L2 regularization).

GroupLasso

Regularizer class for Group Lasso (group-L1) regularized models.

IO#

Save and load NeMoS models.

load_model

Load a previously saved nemos model from a .npz file.

inspect_npz

Examine a saved model parameter file (.npz).

Solvers#

Functions for interacting with the JAX-based optimizers used for parameter fitting.

Solver registry functions#

Helpers to look up or register solvers.

get_solver

Fetch the solver spec.

get_solver_documentation

Get the documentation of a specified solver, including accepted arguments and the docstring of its __init__.

list_available_solvers

List all available solvers.

list_available_algorithms

List the available algorithms that can be used for fitting models.

list_algo_backends

List the available backends for an algorithm.

register

Register a solver implementation in the registry.

set_default_backend

Set the default backend for a given algorithm.

SolverSpec

Solver specification representing an entry in the solver registry.

Wrapping existing solvers#

Adapter classes for existing solvers, especially those defined in the JAXopt, Optimistix, or Optax libraries.

_solver_adapter.SolverAdapter

Base class for adapters wrapping existing solvers.

_jaxopt_solvers.JaxoptAdapter

Base class for adapters wrapping JAXopt-style solvers.

_optimistix_solvers.OptimistixAdapter

Base class for adapters wrapping Optimistix minimizers.

_optax_optimistix_solvers.AbstractOptimistixOptaxSolver

Adapter for optimistix.OptaxMinimiser which is an adapter for Optax solvers.

Writing custom solvers#

Classes useful for creating completely custom solvers.

AbstractSolver

Base class defining the interface for solvers that can be used by BaseRegressor.

OptimizationInfo

Basic diagnostic information about finished optimization runs.

SolverProtocol

Protocol mirroring the interface of AbstractSolver.

validate_solver_class

Validate required methods against AbstractSolver and optionally run a quick ridge regression.

See also

The developer notes explain the solver contract and expected types in more detail.

Convolution utilities#

Utility functions for running convolution over the sample axis.

create_convolutional_predictor

Create a convolutional predictor by convolving a basis matrix with a time series.

Simulations utilities#

Utility functions for simulating spiking activity in recurrently connected neural populations.

simulate_recurrent

Simulate neural activity using the GLM as a recurrent network.

difference_of_gammas

Generate coupling filter as a Gamma pdf difference.

regress_filter

Approximate scipy.stats.gamma based filters with basis function.

Identifiability utilities#

Functions to apply identifiability constraints to rank-deficient feature matrices, ensuring the uniqueness of model solutions.

apply_identifiability_constraints

Apply identifiability constraints to a design matrix X.

apply_identifiability_constraints_by_basis_component

Apply identifiability constraint to a design matrix for each component of an additive basis.