Description
Please:
- Check for duplicate requests.
- Describe your goal, and if possible provide a code snippet with a motivating example.
BrainPy is a useful Python library for analyzing and modeling neuroscience data. However, it currently lacks functionality for fitting models to data. I propose adding a model fitting module to BrainPy that would allow users to easily fit predefined models to their data.
Proposed Implementation:
-
Create a new module in BrainPy called
brainpy.fitting
-
Support general classes for common neuron and population models used in neuroscience, such as:
- Leaky integrate-and-fire models
- Hodgkin-Huxley models
- Wilson-Cowan models
- Neural mass models
-
Support common fitting algorithms like gradient descent, Nelder-Mead, etc.
-
The module could also include convenience functions for things like:
- Automatically estimating good initial parameters
- Performing cross-validation
- Statistical model comparison
-
Model classes should track goodness of fit metrics like R^2, MSE, etc.
-
Plotting methods to visualize fits against data
-
Support fitting models to diverse data types: spike trains, LFP, EEG, fMRI, etc.
-
Include options to parallelize fitting across multiple CPUs or GPUs.