brian-team / brian2

Brian is a free, open source simulator for spiking neural networks.
http://briansimulator.org
Other
938 stars 220 forks source link

Convert simulation results to neo objects #39

Open mstimberg opened 11 years ago

mstimberg commented 11 years ago

[This is a nice-to-have and not high priority but a nice opportunity for external contributions]

Neo (http://neuralensemble.org/neo/) is becoming the standard for the representation of electrophysiological data in the Python/neuroscience community. Recently, the neurotools project (http://neuralensemble.org/NeuroTools/) has been restarted with the goal of bundling existing analysis functions, using neo as the data representation format. I think it would be useful if Brian results (e.g. from a StateMonitor and SpikeMonitor) could be easily converted into neo objects to make use of these tools.

neo objects are basically numpy arrays with additional metadata (such as physical units), so generating them shouldn't be too difficult. The conversion would have to include a conversion from Brian's unit system to the unit system provided by quantities (http://pythonhosted.org/quantities/) but that should be quite straightforward.

I guess having this would make the tools.statistic package in brian1 obsolete?

thesamovar commented 11 years ago

I am 100% in favour of adding the option to output neo objects and 90% in favour of removing the tools.statistics package. In principle, I think this is exactly what we ought to be doing - concentrating our efforts on the core of Brian and using external packages whenever possible. In practice, I worry about things like compatibility issues with version changes, unstable external package APIs, etc. The history of NeuroTools has been a bit sporadic.

mstimberg commented 11 years ago

I agree with your concern - my idea got be triggered by the recent traffic on the NeuralEnsemble list of reviving the neurotools package and possibly declaring the neo API as stable, so hopefully things will go forward soon. If the neo interface were stable, I wouldn't worry too much about neurotools -- Brian itself wouldn't depend on it, one would only use it to analyze results (and could decide to keep it at an older version while updating Brian, for example). But it's certainly too soon to make an informed decision about this.