You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We should support 1-dimensional branched cable models. This boils down to creating a conversion from a CompartmentSystem to PDESystem in ModelingToolkit.jl. We should be able to convert any CompartmentSystem with a cylindrical Geometry to a discretized PDE, given some delta X and boundary conditions.
MulticompartmentSystem is a thin layer over CompartmentSystem that allows connecting compartments together. Combined with the above, it should be enough to get going with branched cable models.
To support these systems we also need:
Spatially dependent parameters (e.g. gbar for dendritic channel types may have a gradient as a function of x)
Augment synapses and stimuli so that we can target specific locations (e.g. given a cylindrical span of length 50µm, place a synapse/electrode at x = 40µm etc). This could be done by inserting synapse/stimuli terms to specific compartments post discretization or by using a boolean/dirac delta type term to turn them on at a set location.
Support for reading in external data (namely SWC files; to be tracked in a separate issue. I have an MWE of this already)
(Some) possible approaches to implementation:
Discretize compartments ourselves. Divide a CompartmentSystem into many individual compartments, apply modifications (e.g. synapses, parameter values, etc) and then broadcast convert.(ODESystem, comps)
Convert from CompartmentSystem to PDESystem and use MethodOfLines.jl to discretize. This is likely more robust but I'm not sure how to setup branched compartments with this approach.
Finally, it will be interesting to see how performant out-of-the-box code generation is compared to existing domain-specific optimizations (e.g. Hines matrix + many examples of problem-specific decomposition strategies for parallelization etc)
The text was updated successfully, but these errors were encountered:
We should support 1-dimensional branched cable models. This boils down to creating a conversion from a
CompartmentSystem
toPDESystem
in ModelingToolkit.jl. We should be able to convert anyCompartmentSystem
with a cylindricalGeometry
to a discretized PDE, given some delta X and boundary conditions.MulticompartmentSystem
is a thin layer overCompartmentSystem
that allows connecting compartments together. Combined with the above, it should be enough to get going with branched cable models.To support these systems we also need:
(Some) possible approaches to implementation:
CompartmentSystem
into many individual compartments, apply modifications (e.g. synapses, parameter values, etc) and then broadcastconvert.(ODESystem, comps)
CompartmentSystem
toPDESystem
and use MethodOfLines.jl to discretize. This is likely more robust but I'm not sure how to setup branched compartments with this approach.Finally, it will be interesting to see how performant out-of-the-box code generation is compared to existing domain-specific optimizations (e.g. Hines matrix + many examples of problem-specific decomposition strategies for parallelization etc)
The text was updated successfully, but these errors were encountered: