An Efficient and Extendable Python Library to Analyze Neuronal Morphologies

An Efficient and Extendable Python Library to Analyze Neuronal Morphologies
复制标题

用于分析神经元形态的高效且可扩展的 Python 库

DOI:
--
复制
发表时间:
2014
期刊:
影响因子:
3
通讯作者:
B. Torben
B. Torben
中科院分区:
医学4区
文献类型:
--
作者:
B. Torben

文献摘要

参考文献

被引文献

相似文献

自Cajal和Golgi以来,神经科学家一直对神经元形态感兴趣。由于技术进步和数据共享计划(Ascoli et al. 2007),我们可以获得更多的神经元重建比一个人一生中积累到最近。众所周知,虽然神经元形态是高度多样化和变异的(Soltesz 2005),但它对于大脑功能至关重要,因为轴突和树突之间的重叠限制了网络连接(Peters规则(Peters和Payne 1993)),树突定义了如何整合输入以产生和输出信号(Torben-Nielsen和Stiefel 2010)。此外,形态异常和变化通常与神经发育和退行性疾病有关(Kaufmann和Moser 2000)。如果没有严格量化神经元形态的能力,这些见解就不可能建立。如今,量化是在重建的神经元形态上进行的,即神经元结构的数字表示。重建是用专用的软件程序完成的,如Neurolucida(Glaser和Glaser 1990),它将“图片”(或其堆栈)转化为可用于计算机量化的信息。Neurolucida还具有一些用于形态分析的内置功能。然而,目前,用于数字存储和公开共享神经元重建的事实上的标准文件格式是程序独立的SWC格式(Cannon等人,1998)。存在两种广泛采用的工具来分析SWC文件,L-Measure(Scorcioni等人,2008)和TREES工具箱(Cuntz等人,2010)。LMeasure是目前形态分析的“黄金标准”,用Java编写。它有一个网络界面和一个带有图形用户界面(GUI)的独立版本。TREES工具箱是一个Matlab工具箱。这两种工具都允许用户加载和量化数字重建的神经元(群体)。TREES工具箱具有在Matlab中实现的优势,因此用户可以通过在Matlab中编写脚本轻松地将其集成到自己的工作流程中。最近,在计算神经科学中有一种使用Python编程语言的趋势,但Python中没有独立的程序或库来执行基本的形态量化。我们设计并实现了BTMORPH,这是一个Python库,包含一个数据结构和一组例程,可以有效地表示和分析神经元形态。这个库的基本原理是以数据结构和原子形态函数的形式提供一个可靠的、经过良好测试的主干,允许用户以灵活的方式分析形态。通过设计,我们将神经元形态视为树结构,并且可以在任何(子)树结构上计算所有提供的形态度量。因此,形态测量可以在整个结构上进行(如通常所做的那样)或在任何子树上进行;子树可以是由特定神经突类型(轴突,顶端树突......)或者可以通过例如离心顺序来具体选择。这种关注灵活性和可扩展性的基本原理与现有工具的更单一的方法形成对比,以分析形态,并允许用户集成和构建BTMORPH的功能。BTMORPH的功能可通过文档化的应用程序编程接口(API)获得。表1列出了当前的原子函数列表。典型的工作流程是用户将SWC文件加载到所提供的树结构中。得到的树是
Neuronal morphology has been of interest to neuroscientists since Cajal and Golgi. Due to technical advances and data-sharing initiatives (Ascoli et al. 2007) we have access to more neuronal reconstructions than one could accumulate in a lifetime up to recently. It is known that while neuronal morphology is highly diverse and variant (Soltesz 2005) it is pivotal for brain functioning because the overlap between axons and dendrite limits the network connectivity (Peters’ rule (Peters and Payne 1993)) and dendrites define how inputs are integrated to produce and output signal (Torben-Nielsen and Stiefel 2010). Moreover, morphological anomalies and changes are often implicated in neuro-developmental and degenerative diseases (Kaufmann and Moser 2000). These insights could not have been established without the ability to rigorously quantify neuronal morphologies. Nowadays quantification is done on reconstructed neuronal morphologies, that is, digital representations of neuronal structures. Reconstruction is done with dedicated software programs such as Neurolucida (Glaser and Glaser 1990) that turn a “picture” (or a stack thereof) into information usable for quantification by a computer. Neurolucida also comes with some built in functionalities for the analysis of morphologies. However, currently, the de facto standard file format to digitally store and publicly share neuronal reconstructions is the program-indepedent SWC format (Cannon et al. 1998). Two widely adopted tools exist to analyse SWC files, L-Measure (Scorcioni et al. 2008) and the TREES toolbox (Cuntz et al. 2010). LMeasure is the current “golden standard” in morphological analysis and written in Java. It has a web-interface and a standalone version with a graphical user interface (GUI). The TREES toolbox is a Matlab toolbox. Both tools allow users to load and quantify (populations of) digitally reconstructed neurons. The TREES toolbox has the advantage of being implemented in Matlab and hence users can easily integrate it in their own work-flow by scripting in Matlab. Lately, there is a trend in computational neuroscience to use the Python programming language but there is no standalone program or library in Python to perform basic morphological quantification. We designed and implemented BTMORPH, a Python library that contains a data structure and a set of routines to efficiently represent and analyze neuronal morphologies. The rationale of this library is to provide a solid, well tested backbone in the form of a data structure and atomic morphometric functions that allow users to analyze morphologies in a flexible way. By design, we treat neuronal morphologies as tree structures and all provided morphometrics can be computed on any (sub)tree structure. As such, morphometrics can be performed on the whole structure (as is usually done) or on any subtree; subtrees can be trees made up by a specific neurite type (axon, apical dendrite, ...) or can be selected specifically by, for instance, centrifugal order. This rationale focusing on flexibility and extensibility contrast with the more monolithic approach of existing tools to analyze morphologies and allows users to integrate, and built upon, the functionality of BTMORPH. The functionality of BTMORPH is available through a documented application programming interface (API). A current list of atomic functions is listed in Table 1. The typical workflow is that a user loads an SWC file into the provided tree-structure. The obtained tree is
DOI: 10.1016/s0092-8240(05)80142-9
发表时间: 1992-09-01
影响因子: 3.5
作者:
VANPELT, J;UYLINGS, HBM;WOLDENBERG, MJ
通讯作者: WOLDENBERG, MJ