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

Michael Vella, Robert C. Cannon, Sharon Crook, Andrew P. Davison, Gautham Ganapathy, Hugh P C Robinson, R. Angus Silver, Padraig Gleeson

Research output: Contribution to journalArticle

14 Citations (Scopus)

Abstract

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.

Original languageEnglish (US)
Article number38
JournalFrontiers in Neuroinformatics
Volume8
Issue numberAPR
DOIs
StatePublished - Apr 23 2014

Fingerprint

Boidae
Neurosciences
Language
Application programming interfaces (API)
Connectome
XML
Aptitude
Ion Channels
Synapses
Reading
Theoretical Models
Software
Neurons
Data structures
Mathematical models
Data storage equipment

Keywords

  • API
  • LEMS
  • Model specification
  • Modeling
  • NeuroML
  • Python
  • Standardization
  • SWC

ASJC Scopus subject areas

  • Computer Science Applications
  • Neuroscience (miscellaneous)
  • Biomedical Engineering

Cite this

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; Angus Silver, R.; Gleeson, Padraig.

In: Frontiers in Neuroinformatics, Vol. 8, No. APR, 38, 23.04.2014.

Research output: Contribution to journalArticle

Vella, Michael ; Cannon, Robert C. ; Crook, Sharon ; Davison, Andrew P. ; Ganapathy, Gautham ; Robinson, Hugh P C ; Angus Silver, R. ; Gleeson, Padraig. / libNeuroML and PyLEMS : Using Python to combine procedural and declarative modeling approaches in computational neuroscience. In: Frontiers in Neuroinformatics. 2014 ; Vol. 8, No. APR.
@article{997c9e153a3f47ee8b9ac76f608966ee,
title = "libNeuroML and PyLEMS: Using Python to combine procedural and declarative modeling approaches in computational neuroscience",
abstract = "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.",
keywords = "API, LEMS, Model specification, Modeling, NeuroML, Python, Standardization, SWC",
author = "Michael Vella and Cannon, {Robert C.} and Sharon Crook and Davison, {Andrew P.} and Gautham Ganapathy and Robinson, {Hugh P C} and {Angus Silver}, R. and Padraig Gleeson",
year = "2014",
month = "4",
day = "23",
doi = "10.3389/fninf.2014.00038",
language = "English (US)",
volume = "8",
journal = "Frontiers in Neuroinformatics",
issn = "1662-5196",
publisher = "Frontiers Research Foundation",
number = "APR",

}

TY - JOUR

T1 - libNeuroML and PyLEMS

T2 - Using Python to combine procedural and declarative modeling approaches in computational neuroscience

AU - Vella, Michael

AU - Cannon, Robert C.

AU - Crook, Sharon

AU - Davison, Andrew P.

AU - Ganapathy, Gautham

AU - Robinson, Hugh P C

AU - Angus Silver, R.

AU - Gleeson, Padraig

PY - 2014/4/23

Y1 - 2014/4/23

N2 - 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.

AB - 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.

KW - API

KW - LEMS

KW - Model specification

KW - Modeling

KW - NeuroML

KW - Python

KW - Standardization

KW - SWC

UR - http://www.scopus.com/inward/record.url?scp=84899133456&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84899133456&partnerID=8YFLogxK

U2 - 10.3389/fninf.2014.00038

DO - 10.3389/fninf.2014.00038

M3 - Article

AN - SCOPUS:84899133456

VL - 8

JO - Frontiers in Neuroinformatics

JF - Frontiers in Neuroinformatics

SN - 1662-5196

IS - APR

M1 - 38

ER -