An automated and reproducible workflow for running and analyzing neural simulations using Lancet and IPython Notebook

Lancet is a new, simulator-independent Python utility for succinctly specifying, launching, and collating results from large batches of interrelated computationally demanding program runs. This paper demonstrates how to combine Lancet with IPython Notebook to provide a flexible, lightweight, and agile workflow for fully reproducible scientific research. This informal and pragmatic approach uses IPython Notebook to capture the steps in a scientific computation as it is gradually automated and made ready for publication, without mandating the use of any separate application that can constrain scientific exploration and innovation. The resulting notebook concisely records each step involved in even very complex computational processes that led to a particular figure or numerical result, allowing the complete chain of events to be replicated automatically. Lancet was originally designed to help solve problems in computational neuroscience, such as analyzing the sensitivity of a complex simulation to various parameters, or collecting the results from multiple runs with different random starting points. However, because it is never possible to know in advance what tools might be required in future tasks, Lancet has been designed to be completely general, supporting any type of program as long as it can be launched as a process and can return output in the form of files. For instance, Lancet is also heavily used by one of the authors in a separate research group for launching batches of microprocessor simulations. This general design will allow Lancet to continue supporting a given research project even as the underlying approaches and tools change.

[1]  James A. Bednar,et al.  Topographica: Building and Analyzing Map-Level Simulations from Python, C/C++, MATLAB, NEST, or NEURON Components , 2008, Front. Neuroinform..

[2]  Marc-Oliver Gewaltig,et al.  NEST (NEural Simulation Tool) , 2007, Scholarpedia.

[3]  Philippe Bonnet,et al.  Exploring the Coming Repositories of Reproducible Experiments: Challenges and Opportunities , 2011, Proc. VLDB Endow..

[4]  Andrew P. Davison Automated Capture of Experiment Context for Easier Reproducibility in Computational Research , 2012, Computing in Science & Engineering.

[5]  Andrew P. Davison,et al.  Integrated workflows for spiking neuronal network simulations , 2013, Front. Neuroinform..

[6]  Cláudio T. Silva,et al.  Reproducibility using VisTrails , 2014 .

[7]  Brian E. Granger,et al.  IPython: A System for Interactive Scientific Computing , 2007, Computing in Science & Engineering.

[8]  Marc-Oliver Gewaltig,et al.  Towards Reproducible Descriptions of Neuronal Network Models , 2009, PLoS Comput. Biol..

[9]  V. Curcin,et al.  Scientific workflow systems - can one size fit all? , 2008, 2008 Cairo International Biomedical Engineering Conference.

[10]  Andrew P. Davison,et al.  Learning from the Past: Approaches for Reproducibility in Computational Neuroscience , 2013 .

[11]  B. Granger Ipython: a System for Interactive Scientific Computing Python: an Open and General- Purpose Environment , 2007 .

[12]  Romain Brette,et al.  Neuroinformatics Original Research Article Brian: a Simulator for Spiking Neural Networks in Python , 2022 .

[13]  Nicholas T. Carnevale,et al.  The NEURON Simulation Environment , 1997, Neural Computation.

[14]  Jean-Luc R Stevens,et al.  Mechanisms for Stable, Robust, and Adaptive Development of Orientation Maps in the Primary Visual Cortex , 2013, The Journal of Neuroscience.

[15]  C. Drummond Replicability is not Reproducibility:Nor is it Good Science , 2009 .