An Efficient and Extendable Python Library to Analyze Neuronal Morphologies
An Efficient and Extendable Python Library to Analyze Neuronal Morphologies
复制标题
用于分析神经元形态的高效且可扩展的 Python 库
作者:
B. Torben
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
影响因子:
3.5
作者:
VANPELT, J;UYLINGS, HBM;WOLDENBERG, MJ
通讯作者:
WOLDENBERG, MJ