degradable_buffer
Calcium is heavily buffered in cells, as it is a major second messenger molecule.
Calbindin D28K dynamics
The calcium buffering protein Calbindin D28K has 6 EF-hands, four of which are active calcium ion binding sites. These sites are not equally active. A calcium ion is not free to bind to any of the sites equally. Instead, calcium ions are bound in sequence: 1, 4, 5, 3 with the last binding having the lowest affinity. (Venters et al., 2003.)
(To be clear, these dynamics are not representative of all calcium buffers; Parvalbumin and Calbindin D9K show little conformational change when carrying calcium.)
A model
For our model, let us suppose that instead of calbindin D28K specifically, which has its own very specific binding affinities, we have some arbitrary buffer buf that also has 4 binding sites that load sequentially.
from neuron import h, rxd
Warning: no DISPLAY environment variable. --No graphics will be displayed.
# where
soma = h.Section(name='soma')
cyt = rxd.Region([soma], nrn_region='i')
# who
ca = rxd.Species(cyt, name='ca', charge=2, initial=1e-4)
buf = rxd.Species(cyt, name='buf', initial=1e-4)
cabuf = rxd.Species(cyt, name='cab2uf', initial=0)
# what
buffering = rxd.Reaction(2 * ca + buf, cabuf, 1e6, 1e-2)
degradation = rxd.Rate(buf, -1e-3 * buf)
For versions of NEURON before 7.7, we need to initialize the simulation here to enable using pointers for
Let's set up some recording:
t = h.Vector()
ca_vec = h.Vector()
buf_vec = h.Vector()
t.record(h._ref_t)
ca_vec.record(soma(0.5)._ref_cai)
buf_vec.record(soma(0.5)._ref_bufi)
Vector[2]
A more realistic model would include