Page 1 of 1

Plotting Ca current through different types of VDCC's

Posted: Mon Dec 06, 2021 6:40 pm
by sangwonc
Hello,

I want to plot current through different types of voltage gated calcium channels. This is the code that I have:

Code: Select all

#Formulas for Non-modulated Ca currents
threshold = 1.10e-4
m = 10000 # steepness of switch
temp1 = 0.0853*T/2
temp2  = v/temp1 
# switch goes to 0 for abs(temp2) < threshold and 1 for abs(temp2) > threshold
switch = (1 + tanh(((fabs(temp2) - threshold)*100)))/2
temp3 = (1-switch)*(1-temp2/2) + switch*(temp2/exp(temp2)-1)

gca_N = gcabar_N * mgate_N**2 * hgate_N
gca_L = gcabar_L * mgate_L**2
    
dvf = 0.001/(0.001+cai)*temp1*temp3*(1-cai/cao*exp(temp2))

I_non_mod_L = -gca_L*dvf
I_non_mod_N = -gca_N*dvf

mgate_N = rxd.State([cyt, mem], name = 'mgate_N', initial = 0.001581552)
hgate_N = rxd.State([cyt, mem], name = 'hgate_N', initial = 0.973556944)
mgate_L = rxd.State([cyt, mem], name = 'mgate_L', initial = 3.42574e-6)

m_gate_N = rxd.Rate(mgate_N, (minf_N-mgate_N)/tau_Nm)
h_gate_N = rxd.Rate(hgate_N, (hinf_N-hgate_N)/tau_Nh)
m_gate_L = rxd.Rate(mgate_L, (minf_L-mgate_L)/tau_Lm)

ca_N_current = rxd.MultiCompartmentReaction(cai, cao, I_non_mod_N, mass_action = False,
                                        membrane = mem, membrane_flux = True)

ca_L_current = rxd.MultiCompartmentReaction(cai, cao, I_non_mod_L, mass_action = False,
                                        membrane = mem, membrane_flux = True)

leak_current = rxd.MultiCompartmentReaction(xi, xo, gl*(v - el), mass_action = False,
                                        membrane = mem, membrane_flux = True)
How can I record and plot the current through the N-type Ca channel and L-type channel?

Re: Plotting Ca current through different types of VDCC's

Posted: Wed Jan 12, 2022 10:23 am
by adamjhn
Hi,

Sorry for the delay.
The flux from rxd multi compartment reactions are not stored so can not be directly recorded. However it is possible to infer them by recording the relevant rxd states and species and substituting them into the the f_rate and b_rate.

Here is an example rxd Hodgkin–Huxley model with the calculations for the multi-compartment fluxes and currents.

Let me know if you have any questions about it.

Re: Plotting Ca current through different types of VDCC's

Posted: Mon Jan 24, 2022 3:02 am
by sangwonc
Thank you. I'm assuming that one could also infer intracellular Ca concentration as well by recording relevant RXD states and species and using f_rate and b_rate, right?

Re: Plotting Ca current through different types of VDCC's

Posted: Wed Jan 26, 2022 12:48 am
by sangwonc
Also, could you explain what f_rate and b_rate are supposed to do? I couldn't find any documentation on them.

Re: Plotting Ca current through different types of VDCC's

Posted: Thu Feb 03, 2022 2:39 pm
by adamjhn
The f_rate and b_rate are the forwards and backward rates of the reaction, provided you are using mass_action=False, they are usually third and fourth positional arguments to rxd, (the backward rate is optional and None by default), for example;

Code: Select all

k_current = rxd.MultiCompartmentReaction(ki, ko, gk * (v - ek), mass_action=False, membrane=mem, membrane_flux=True)
k_current.f_rate == gk * (v - ek)
k_current.b_rate == None
If you specify reactions using the law of mass action, to calculate the flux you would need to multiple the f_rate and b_rate by the relevant concentrations.

You are right, you could calculate the intracellular calcium concentration by from the fluxes, but you can just record it directly, either from the rxd node or the NEURON state, e.g.;

Code: Select all

cavec = h.Vector().record(ca[cyt].nodes(soma(0.5))._ref_concentration)
# if cyt is declared with nrn_region='i' this is the same as
cavec = h.Vector().record(soma(0.5)._ref_cai)

Re: Plotting Ca current through different types of VDCC's

Posted: Fri Feb 04, 2022 10:59 am
by ted

Code: Select all

# if cyt is declared with nrn_region='i' this is the same as
cavec = h.Vector().record(soma(0.5)._ref_ica)
Not

Code: Select all

cavec = h.Vector().record(soma(0.5)._ref_cai)
?

Re: Plotting Ca current through different types of VDCC's

Posted: Thu Feb 10, 2022 10:53 am
by adamjhn
Sorry, Ted is right. It should be;

Code: Select all

cavec = h.Vector().record(soma(0.5)._ref_cai)
for calcium concentration. I've edited my previous post.