brainpy/BrainPy

Add model fitting functionality to BrainPy

chaoming0625 opened this issue · 0 comments

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.