scidash / neuronunit

A package for data-driven validation of neuron and ion channel models using SciUnit
http://neuronunit.scidash.org
38 stars 24 forks source link

Make a PyNN model class #168

Open rgerkin opened 6 years ago

rgerkin commented 6 years ago

PyNN support should come via a model class PyNNModel that wraps PyNN, rather than a backend. PyNN will supply its own means for communicating with backend simulators. The PyNNModel should be analogous to LEMSModel, and will be a parallel approach to instantiating a SciUnit model for testing.

rgerkin commented 6 years ago

Is this needed in light of recent PyNN -> NeuroML2 support (see here)? Maybe the model class could just implement this conversion and then run through the LEMSModel class.

rgerkin commented 6 years ago

Duplicate of #27

russelljjarvis commented 6 years ago

I guess it all depends on how seamlessly that conversion process works.

My goal is to enable sciunit tests, of network behavior via SpiNNaker and PyNN. I have an intuition that writing a PyNN interface (a psuedo backend), is still the right way to go.

I was also thinking, given that PyNN models, are almost implemented models that have neo Analogue signal outuputs, why not create a Model Class: ExternalModel, as follows:

https://github.com/russelljjarvis/neuronunit/blob/dev/neuronunit/models/__init__.py#L24-L41

The purpose of this ExternalModel, is to avoid reimplementing the mundane (get_membrane_potential etc), and in fact instead of over-riding these methods with inheritance, over ride these methods, by assigning the external models own similar methods, to get_membrane_potential etc.