School of Informatics, Institute for Adaptive and Neural Computation, University of Edinburgh Edinburgh, UK.
School of Informatics, Institute for Computing Systems Architecture, University of Edinburgh Edinburgh, UK.
Front Neuroinform. 2013 Dec 30;7:44. doi: 10.3389/fninf.2013.00044. eCollection 2013.
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.
柳叶刀是一个新的、与模拟器无关的 Python 实用程序,用于简洁地指定、启动和整理大量相关的计算密集型程序运行的结果。本文演示了如何将柳叶刀与 IPython Notebook 结合使用,为完全可重现的科学研究提供灵活、轻量级和敏捷的工作流程。这种非正式和务实的方法使用 IPython Notebook 来捕获科学计算中的步骤,随着它逐渐自动化并准备好发布,而不强制使用任何可能限制科学探索和创新的单独应用程序。生成的笔记本简洁地记录了导致特定图形或数值结果的复杂计算过程中的每一步,允许自动复制完整的事件链。柳叶刀最初是为了解决计算神经科学中的问题而设计的,例如分析复杂模拟对各种参数的敏感性,或者从具有不同随机起点的多个运行中收集结果。然而,由于不可能事先知道未来任务可能需要哪些工具,因此柳叶刀被设计为完全通用,只要它可以作为一个进程启动并且可以以文件的形式返回输出,就可以支持任何类型的程序。例如,柳叶刀也被另一个作者在一个独立的研究小组中用于启动大量的微处理器模拟。这种通用设计将允许柳叶刀继续支持给定的研究项目,即使底层方法和工具发生变化。