As computational models of neurons become more complex, their software implementations become more difficult to define, comprehend, and communicate. Consequently, for scientific understanding of biological nervous systems to progress, it is crucial for scientists to have software tools that support easy exchange and understanding of computational models.
Much development effort has been invested in NeuroML, a mark-up language for neuroscience, which is intended as a common format for exchange between neuroscience modeling software. The aims of the language are to be human-readable and to support efficient simulation of the models .
We have attempted to use ChannelML, one of the component languages of NeuroML, for the purposes of having a simple, simulator-independent format for specifying ion channel dynamics and for automated generation of efficient code for the NEURON environment .
We have found that major issues remain with ChannelML as a platform for model description and development. In our experience, many extensions to the language were needed to express two Purkinje cell models [3,4]. We have found that NeuroML lacks a general extension mechanism and ChannelML is overly restrictive and heavily dependent on historical ways of writing model descriptions.
Several improvements have been made to ChannelML to address these issues, but we believe that a more comprehensive approach is necessary. We have developed an alternative (but compatible with NeuroML) approach, which we call the layer-oriented approach. We will illustrate this approach by means of a prototype language for describing models of ion channels that can be extended with arbitrary reaction kinetics and rate laws in order to model biophysical processes that affect ion channel dynamics.
The elements of our prototype language are divided in two semantic layers, the descriptive layer and the abstraction layer. The descriptive layer consists of elements that correspond to biological modeling concepts, such as gates and ionic conductances. The abstraction layer consists of elements that correspond to general mathematical concepts, such as rate equations and functions. All elements in the descriptive layer are defined in terms of a combination of elements from the abstraction layer.
This prototype language is a step in the direction of formalizing the process of generating numerical simulation code from a high-level model specification. Explicitly formalized semantic steps can contribute greatly to the expressiveness of modeling languages and consequently scientific understanding.
Phil Trans R Soc Lond B Biol Sci 2001, 356:1209-28. Publisher Full Text
Neural Computation 2000, 12:839-851. Publisher Full Text