arbor-sim / arbor

The Arbor multi-compartment neural network simulation library.
https://arbor-sim.org
BSD 3-Clause "New" or "Revised" License
107 stars 60 forks source link

Support for axial diffusion #1651

Closed schmitts closed 2 years ago

schmitts commented 2 years ago

Cf. "Mechanism of signal spreading" in "Biophysics of Biochemical Signaling in Dendritic Spines: Implications in Synaptic Plasticity" by Yasuda (2017) https://doi.org/10.1016/j.bpj.2017.07.029.

"Axial" is along the cable.

thorstenhater commented 2 years ago

Based on discussions with @schmitts and internally, the plan is to implement the following:

Diffusion of the internal concentration Xi of arbitrary, user-specified ion species X according to

Xi' = ß∆Xi

Note that we -- for the time being -- ignore the possibility of ß varying spatially or temporaly, nor do we allow for active transport. The diffusion parameter ß>=0 is defined by a user-specified constant and the cross-section of the cable. If ß is finite, diffusion will be enabled and Xi will be defined on the whole cell. This constant can be set per region and needs a default. Python interface could be similar to this:

decor.set_ion('k', diffusivity=42.0)

decor.paint('(segment 1)', arbor.ion('ca', diffusivity=42.0))

decor.set_ion('na',  diffusivity=0)
decor.paint('()', arbor.ion('na', diffusivity=42.0))

Here we will get

We implicitly assume here that ionic diffusion is on much larger time-scales than voltage propagation. Otherwise, the discretisation would have to take into account the faster process. I think that is a sensible assumption based on physics, but biologists are encouraged to correct me here. Based on essentially the same argument, we do not plan to feed back currents caused by ionic transport into the cable equation (just the effect of Xi/Xo on the overall state, if any).

@schmitts Is that sufficient for your plans and are our assumpions biologically sane?

This enables us to (more or less) directly re-use the voltage-solver and thus provide a quick implementation based on well-tested components.

schmitts commented 2 years ago

Thanks, @thorstenhater, for the write-up! No further requirements from our side.

schmitts commented 2 years ago

Cf. PR #1729

thorstenhater commented 2 years ago

From private communication w/ @schmitts: FIPPA works on an 1d simulation, which could and should be used for validation.

schmitts commented 2 years ago

Please find attached the bare-bones diffusion process we would need. In addition to some initial concentration of calcium (or any kind of diffusing element), point mechanisms have to have the possibility to increase the concentration at their respective positions in space.

diffusion_mock.py.gz