arbor-sim / arbor

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

Receive spikes on electrical gap junctions #1709

Closed llandsmeer closed 2 years ago

llandsmeer commented 2 years ago

Describe the feature you need The ability to receive spikes on a gap junction connection to temporarily change (increase or decrease) the gap junction connection weight.

Explain what it is supposed to enable Spiking cells that regulate electrical coupling between other cells

Additional context This is needed to implement the glomerular gap junction models as in De Gruijl, Jornt R., et al. "Modulation of electrotonic coupling in the inferior olive by inhibitory and excitatory inputs: integration in the glomerulus." Neuron 81.6 (2014): 1215-1217., where GABA or NMDA release at the glomerulus induces changes is coupling coeficient.

GABA and NMDA release modulates IO coupling

This might actually be solved by PR #1682 but I don't see how yet

noraabiakar commented 2 years ago

Can you give a bit more detail about what is required for this feature? #1682 implements mechanism gap junctions but they don't have the ability to receive spikes. This sounds like a combination of a synapse and a gap junction mechanism, is this the case?

llandsmeer commented 2 years ago

I'm not exactly sure about how this will look in Arbor, but the idea is that some spiking cell (or in our case @max9901' implementaition of the AdEx fake point neuron) can send spikes to the gap juction. This can be a simple NET_RECEIVE, but maybe the simplest solution in arbor is something different. I have never written a synapse before but probably its indeed a combination of gap junction and synapse

thorstenhater commented 2 years ago

Hi,

I have some thoughts on this. The bio-physical process seems similar to a localised variant of signaling ions that mediate long-term plasiticity which were requested in #1651 and are in progress. Regardless of the actual bio-physical details the implementation we could use in Arbor is quite similar indeed: A quantity accessible from all mechanisms on the same CV and decays in time (either implicitly managed by Arbor or explicitly by write access via the ABI), is sourced by point processes, and optionally diffuses along the morphology.

@llandsmeer would that be sufficient and maybe even address future plans?

llandsmeer commented 2 years ago

One-side of the detailed gap junction model from the paper:

image

noraabiakar commented 2 years ago

I think that this can be modeled in Arbor using currently existing features: We can create a custom cell morphology with one segment for the dendrite, and one segment for the neck of each gap-junction we want to model:

       _____ neck of gj_0
      | 
      |_____ neck of gj_1
|_____|    
 dend |_____ .....
      | 
      |_____ neck of gj_n

So, to model a cell with 10 gap junctions, we would create a cable-cell of 11 segments: 1 for the dendrite and 1 for each of the gap-jucntion CVs. We can use the cv_policy_every_segment discretization policy to guarantee that each segment has its own CV. (We can have different shapes for the morphology, here I modeled each gap junction as its own branch, but perhaps it is better to think of the cell as one long branch split into n CVs, one for each gap junction)

Then we can have a separate synapse mechanism and gap junction mechanism that communicate via ion channels: On each of the gap junction sites/CVs, add a synapse mechanism that writes the concentration of some ion (let's say the internal concentration of ca called cai) when spikes are received on that synapse. On the same site/CV of each of the synapses, add a gap-junction mechanism that reads cai and changes the conductance of the gap-junction according to some function of cai. Each of the synapses can be connected to the same pre-synaptic site or different ones depending on the use-case.

The concentrations of the ions are local to the CV they are on, and they do not change unless a mechanism explicitly changes them on that CV, so the gap-junction conductances can be modulated separately.

NMODL examples:

noraabiakar commented 2 years ago

@llandsmeer Do you have any feedback on whether the suggestion worked?

thorstenhater commented 2 years ago

Hey @llandsmeer

there was a long silence, any update?

thorstenhater commented 2 years ago

@llandsmeer this seems stale since ~6mon, closing. Please reopen if needed.