-
Notifications
You must be signed in to change notification settings - Fork 61
Cable Cell Morphologies
Ben Cumming edited this page Mar 3, 2019
·
2 revisions
The current library interface for constructing cell morphologies needs improvement. The problems with the current approach include
- No way to label segments and sub-regions of cells for later reference.
- there are three existing "cable" types: sphere, dendrite and axon
- these are implemented as classes that inherit from a an abstract
segment
base class.
- The term segment is used in a non-standard way. In Neuron a segment is a compartment, and in NeuroML a segment is the smallest atomic unit for constructing a cell.
- The morphology description includes information about the multi-compartment discretization, specifically the number of compartments per segment.
There are four different components required to construct a discretized multi-compartment cell, ready for simulation. The first three components describe the cell and its dynamics, and the fourth is meta-data pertaining to the numeric solution method:
- Morphologies: the cell morphology, described by a set of connected segments.
- Labels: subsets of the morphology, e.g. "dendrite", "soma", "hillock", "spine"
- Dynamics: ion channels, synapses, capacitance, resistance etc: assigned to labels, segments or branches.
- Discretization Meta-data: description of how the morphology should be decomposed into compartments for a specific discretization/numeric solver.
The approach would be to implement each of the components first in C++, then in Python.
- C++ API for morphologies, including both programatic and SWC inputs.
- Python wrapper for morphologies.
- C++ API for labels
- Python wrapper labels
- C++ API for dynamics
- Python wrapper for dynamics
- C++ API for discretization meta-data
- C++ implement FVM discretization using cell description and meta-data
- Design file format for describing cells
- C++ API for both input and output of the file format.
- Python wrapper for IO