NeuroTools
NeuroTools is a collection of tools to support all tasks associated with a neural simulation project and which are not handled by the simulation engine. NeuroTools is written in Python, and works best with PyNN, or one of the growing list of simulation engines with a Python front-end such as NEURON, NEST, PCSIM, FACETS Neuromorphic VLSI, Brian, MOOSE/GENESIS, Neurospaces/GENESIS. NeuroTools provides modules to facilitate simulation setup, parameterization, data management, analysis and visualization. The data-related tools are equally suited to analysis of experimental data, although that is not the primary motivation for their development.
NeuroTools aims to:
- increase the productivity of individual modellers by automating, simplifying, and establishing best-practices for common tasks,
- increase the productivity of the neuroscience modelling community by reducing the amount of code duplication across simulation communities,
- increase the reliability of data analysis tools leveraging Linus's law: "given enough eyeballs, all bugs are shallow."
NeuroTools is open-source software, and anyone who is interested is welcome to contribute (more).
For installation instructions, see INSTALL.
Users' Guide
NeuroTools functionality is modularized as follows:
- The signals module provides core functionality that allows manipulation of and calculations with spike trains and analog signals.
- The spike2 module offers an easy way for reading data from CED's Spike2 Son files into the NeuroTools enviroment.
- The parameters module contains classes to make managing large, hierarchical parameter sets easier.
- The analysis module contains miscellaneous analysis functions
- The stgen module contains various stochastic process generators relevant for Neuroscience (OU, poisson, inhomogenous gamma, ...).
- The utilities sub-package containssrblib, an easy-to-use interface for interacting with SRB servers.
- The io module is the gateway for all reading/writing of files, in different formats, in NeuroTools.
- The plotting module contains a collection of tools for plotting and image processing, based on Matplotlib and the Python Imaging Library.
- The datastore module presents a consistent interface for persistent data storage (e.g., for caching intermediate results), irrespective of storage back-end.
See also the ExampleScripts, more real-world examples and the NeuralEnsemble Cookbook.
If you have questions, there are nice people to answer them at the NeuralEnsemble googlegroup.
If you feel you have discovered a bug, please let us know so we can fix it by posting a ticket using the "New Ticket" button in the toolbar above.
API documentation
(automatically generated from docstrings by source:trunk/doc/wikidoc.py - very likely to be out of date - check the source code for the latest changes)
- `signals` module
- `analysis` module
- `parameters` module
- `stgen` module
- `utilities` module
- `plotting` module
- `datastore` module
- `spike2` module?
Developer pages
For those interested in contributing to the development of NeuroTools, please browse the following links.
- DeveloperGuidlines - Guidelines and resources for code contributors to help with normalization
- management - who is the maintainer for which module
- nose - results of running the unit test suite
- dist - testing installation, dependencies, packaging
- Notes on HdfTools
Links
- http://neuralensemble.org - The NeuralEnsemble initiative
- http://software.incf.org - The !INCF software center, a resource that makes it easy for neuroscientists to find, use and share software tools.
- NeuralEnsemble Cookbook - share your recipies!
- PyNN - simulator-independent specification of neuronal network models in Python
- OpenElectrophy - simplified data and analysis sharing for intra- and extra-cellular recordings leveraging !MySQL.
- NEURON - a standard package in the community for empirically-based simulations of neurons and networks of neurons.
- NEST - for simulating large heterogeneous networks of point neurons or neurons with a small number of compartments.
- PCSIM - a tool for distributed simulation of heterogeneous networks composed of different model neurons and synapses.
- FACETS Neuromorphic VLSI - networks with billions of synapses operating 104 times faster than biological nervous systems.
- Brian - a new simulator for spiking neural networks with in Python, well suited for rapid development of new models, especially networks of single-compartment neurons, and teaching computational neuroscience.
- MOOSE/GENESIS - The Multiscale Object-Oriented Simulation Environment. It is the base and numerical core for large, detailed simulations including Computational Neuroscience and Systems Biology.
- Neurospaces/GENESIS is a development center for software components of computational neuroscience simulators.
- MUSIC - MUlti-SImulation Coordinator
- PyBrain is a modular Machine Learning Library for Python.
- BRAHMS is a Modular Execution Framework, knitting together process software written independently into a single integrated system, and supervising the deployment and execution of that system.
- MDP - Modular toolkit for Data Processing (MDP) is a Python data processing framework.
- PsychoPy is an open-source package for creating psychology stimuli in Python combining the graphical strengths of OpenGL with the easy Python syntax.
- VisionEgg is a high level interface between Python and OpenGL for automatic generation of traditional visual stimuli.
- PANDORA's Toolbox is a set of database analysis and visualization tools in MATLAB (c) for simulated and recorded electrophysiological data.
License
NeuroTools: Analysis, visualization and management of real and simulated neuroscience data. Copyright (C) 2010 Daniel Bruederle, Andrew Davison, Jens Kremkow, Eric Mueller, Eilif Muller, Martin Nawrot, Michael Pereira, Laurent Perrinet, Michael Schmuker, Pierre Yger.
NeuroTools is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
The GNU General Public License does not permit this software to be redistributed in proprietary programs.
Acknowledgments
NeuroTools is a community-driven open-source project with many hard working contributors: AUTHORS, THANKS.
NeuroTools software development is supported in part by the EU under the grant IST-2005-15879 ( FACETS).
