Cargando…

libNeuroML and PyLEMS: using Python to combine procedural and declarative modeling approaches in computational neuroscience

NeuroML is an XML-based model description language, which provides a powerful common data format for defining and exchanging models of neurons and neuronal networks. In the latest version of NeuroML, the structure and behavior of ion channel, synapse, cell, and network model descriptions are based o...

Descripción completa

Detalles Bibliográficos
Autores principales: Vella, Michael, Cannon, Robert C., Crook, Sharon, Davison, Andrew P., Ganapathy, Gautham, Robinson, Hugh P. C., Silver, R. Angus, Gleeson, Padraig
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Frontiers Media S.A. 2014
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4005938/
https://www.ncbi.nlm.nih.gov/pubmed/24795618
http://dx.doi.org/10.3389/fninf.2014.00038
_version_ 1782314170888224768
author Vella, Michael
Cannon, Robert C.
Crook, Sharon
Davison, Andrew P.
Ganapathy, Gautham
Robinson, Hugh P. C.
Silver, R. Angus
Gleeson, Padraig
author_facet Vella, Michael
Cannon, Robert C.
Crook, Sharon
Davison, Andrew P.
Ganapathy, Gautham
Robinson, Hugh P. C.
Silver, R. Angus
Gleeson, Padraig
author_sort Vella, Michael
collection PubMed
description NeuroML is an XML-based model description language, which provides a powerful common data format for defining and exchanging models of neurons and neuronal networks. In the latest version of NeuroML, the structure and behavior of ion channel, synapse, cell, and network model descriptions are based on underlying definitions provided in LEMS, a domain-independent language for expressing hierarchical mathematical models of physical entities. While declarative approaches for describing models have led to greater exchange of model elements among software tools in computational neuroscience, a frequent criticism of XML-based languages is that they are difficult to work with directly. Here we describe two Application Programming Interfaces (APIs) written in Python (http://www.python.org), which simplify the process of developing and modifying models expressed in NeuroML and LEMS. The libNeuroML API provides a Python object model with a direct mapping to all NeuroML concepts defined by the NeuroML Schema, which facilitates reading and writing the XML equivalents. In addition, it offers a memory-efficient, array-based internal representation, which is useful for handling large-scale connectomics data. The libNeuroML API also includes support for performing common operations that are required when working with NeuroML documents. Access to the LEMS data model is provided by the PyLEMS API, which provides a Python implementation of the LEMS language, including the ability to simulate most models expressed in LEMS. Together, libNeuroML and PyLEMS provide a comprehensive solution for interacting with NeuroML models in a Python environment.
format Online
Article
Text
id pubmed-4005938
institution National Center for Biotechnology Information
language English
publishDate 2014
publisher Frontiers Media S.A.
record_format MEDLINE/PubMed
spelling pubmed-40059382014-05-02 libNeuroML and PyLEMS: using Python to combine procedural and declarative modeling approaches in computational neuroscience Vella, Michael Cannon, Robert C. Crook, Sharon Davison, Andrew P. Ganapathy, Gautham Robinson, Hugh P. C. Silver, R. Angus Gleeson, Padraig Front Neuroinform Neuroscience NeuroML is an XML-based model description language, which provides a powerful common data format for defining and exchanging models of neurons and neuronal networks. In the latest version of NeuroML, the structure and behavior of ion channel, synapse, cell, and network model descriptions are based on underlying definitions provided in LEMS, a domain-independent language for expressing hierarchical mathematical models of physical entities. While declarative approaches for describing models have led to greater exchange of model elements among software tools in computational neuroscience, a frequent criticism of XML-based languages is that they are difficult to work with directly. Here we describe two Application Programming Interfaces (APIs) written in Python (http://www.python.org), which simplify the process of developing and modifying models expressed in NeuroML and LEMS. The libNeuroML API provides a Python object model with a direct mapping to all NeuroML concepts defined by the NeuroML Schema, which facilitates reading and writing the XML equivalents. In addition, it offers a memory-efficient, array-based internal representation, which is useful for handling large-scale connectomics data. The libNeuroML API also includes support for performing common operations that are required when working with NeuroML documents. Access to the LEMS data model is provided by the PyLEMS API, which provides a Python implementation of the LEMS language, including the ability to simulate most models expressed in LEMS. Together, libNeuroML and PyLEMS provide a comprehensive solution for interacting with NeuroML models in a Python environment. Frontiers Media S.A. 2014-04-23 /pmc/articles/PMC4005938/ /pubmed/24795618 http://dx.doi.org/10.3389/fninf.2014.00038 Text en Copyright © 2014 Vella, Cannon, Crook, Davison, Ganapathy, Robinson, Silver and Gleeson. http://creativecommons.org/licenses/by/3.0/ This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) or licensor are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.
spellingShingle Neuroscience
Vella, Michael
Cannon, Robert C.
Crook, Sharon
Davison, Andrew P.
Ganapathy, Gautham
Robinson, Hugh P. C.
Silver, R. Angus
Gleeson, Padraig
libNeuroML and PyLEMS: using Python to combine procedural and declarative modeling approaches in computational neuroscience
title libNeuroML and PyLEMS: using Python to combine procedural and declarative modeling approaches in computational neuroscience
title_full libNeuroML and PyLEMS: using Python to combine procedural and declarative modeling approaches in computational neuroscience
title_fullStr libNeuroML and PyLEMS: using Python to combine procedural and declarative modeling approaches in computational neuroscience
title_full_unstemmed libNeuroML and PyLEMS: using Python to combine procedural and declarative modeling approaches in computational neuroscience
title_short libNeuroML and PyLEMS: using Python to combine procedural and declarative modeling approaches in computational neuroscience
title_sort libneuroml and pylems: using python to combine procedural and declarative modeling approaches in computational neuroscience
topic Neuroscience
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4005938/
https://www.ncbi.nlm.nih.gov/pubmed/24795618
http://dx.doi.org/10.3389/fninf.2014.00038
work_keys_str_mv AT vellamichael libneuromlandpylemsusingpythontocombineproceduralanddeclarativemodelingapproachesincomputationalneuroscience
AT cannonrobertc libneuromlandpylemsusingpythontocombineproceduralanddeclarativemodelingapproachesincomputationalneuroscience
AT crooksharon libneuromlandpylemsusingpythontocombineproceduralanddeclarativemodelingapproachesincomputationalneuroscience
AT davisonandrewp libneuromlandpylemsusingpythontocombineproceduralanddeclarativemodelingapproachesincomputationalneuroscience
AT ganapathygautham libneuromlandpylemsusingpythontocombineproceduralanddeclarativemodelingapproachesincomputationalneuroscience
AT robinsonhughpc libneuromlandpylemsusingpythontocombineproceduralanddeclarativemodelingapproachesincomputationalneuroscience
AT silverrangus libneuromlandpylemsusingpythontocombineproceduralanddeclarativemodelingapproachesincomputationalneuroscience
AT gleesonpadraig libneuromlandpylemsusingpythontocombineproceduralanddeclarativemodelingapproachesincomputationalneuroscience