Dear Colleagues,

We are pleased to announce the availability of the first public (beta) version of Optimizer, an interactive software tool for fitting the parameters of neuronal models.

Optimizer was developed in Python, and has the following main features:

- efficiently fits the free parameters of arbitrary neural (or other) models using advanced nonlinear optimization algorithms

- all aspects of the optimization problem (including the model, its free parameters, the target data, the simulation and recording protocol, the error function) and the fitting process itself can be conveniently controlled from a graphical user interface (GUI)

- full internal support for models implemented in the Neuron simulator (while other models can be also optimized using a "black box" approach)

- choice of 7 different (tunable) optimization algorithms, including a customized evolutionary (genetic) algorithm, differential evolution, simulated annealing, the basinhopping algorithm, random search, and two local search methods

- choice of 11 different error functions for the comparison of simulated and experimental (target) data, including generic ones as well as several feature-based ones which are appropriate for the comparison of membrane potential traces containing action potentials; error functions can be combined with arbitrary weights

- the software is easily extensible in various ways to support novel scenarios


A paper describing the software, several use cases, and comparisons with other model fitting tools, has been recently published in Frontiers in Neuroinformatics (the abstract and citation details are included at the end of this message):

http://journal.frontiersin.org/Journal/10.3389/fninf.2014.00063/abstract


The software can be downloaded using git from

https://github.com/vellamike/optimizer

where you can also find instructions for installing the software and its dependencies. The current version of Optimizer has been verified to work under several recent Linux distributions.

Alternatively, a compressed archive containing the software and various examples can be downloaded from

https://github.com/vellamike/optimizer/releases/tag/v2.0-beta

The documentation of the software is available at

http://optimizer.readthedocs.org/en/latest/


Finally, we wish to encourage everyone interested in fitting neuronal models to try the software and provide feedback. If you find that your favorite optimization algorithm or error function is not currently included in Optimizer, it can probably be added with relatively little effort, especially given an existing implementation of the algorithm or function itself, and we would be very interested in collaborating on such an extension. We are also interested in learning about the model fitting problems encountered by potential users; we would be happy to advise users on whether and how Optimizer may be used to solve particular problems; in addition, future development of the software will be guided by the feedback that we receive.

Best regards,

Szabolcs Káli and Péter Friedrich



Friedrich P, Vella M, Gulyás AI, Freund TF and Káli S (2014)
A flexible, interactive software tool for fitting the parameters of neuronal models.
Front. Neuroinform. 8:63. doi: 10.3389/fninf.2014.00063

Abstract: The construction of biologically relevant neuronal models as well as model-based analysis of experimental data often requires the simultaneous fitting of multiple model parameters, so that the behavior of the model in a certain paradigm matches (as closely as possible) the corresponding output of a real neuron according to some predefined criterion. Although the task of model optimization is often computationally hard, and the quality of the results depends heavily on technical issues such as the appropriate choice (and implementation) of cost functions and optimization algorithms, no existing program provides access to the best available methods while also guiding the user through the process effectively. Our software, called Optimizer, implements a modular and extensible framework for the optimization of neuronal models, and also features a graphical interface which makes it easy for even non-expert users to handle many commonly occurring scenarios. Meanwhile, educated users can extend the capabilities of the program and customize it according to their needs with relatively little effort. Optimizer has been developed in Python, takes advantage of open-source Python modules for nonlinear optimization, and interfaces directly with the NEURON simulator to run the models. Other simulators are supported through an external interface. We have tested the program on several different types of problems of varying complexity, using different model classes. As targets, we used simulated traces from the same or a more complex model class, as well as experimental data. We successfully used Optimizer to determine passive parameters and conductance densities in compartmental models, and to fit simple (adaptive exponential integrate-and-fire) neuronal models to complex biological data. Our detailed comparisons show that Optimizer can handle a wider range of problems, and delivers equally good or better performance than any other existing neuronal model fitting tool.