alternating the expression of GABA current in mod file

NMODL and the Channel Builder.
Post Reply
alexandrapierri
Posts: 69
Joined: Wed Jun 17, 2015 5:31 pm

alternating the expression of GABA current in mod file

Post by alexandrapierri »

Hello

I have a question related to NMODL syntax. I would like the expression for the GABA current to change at the onset of a patch clamp simulation.
The patch clamp is not defined in the NMODL file but in my python script. In the mod file, I have set that if my voltage goes beyond a certain value, then the expression for the GABA current should switch as per the script below, and last for a specific duration before it flips back to the original formula. In the script below, I have attempted to set the expression for the GABA current to change at a specific point in time, considering that I know the onset of my patch clamp. Is the below piece of code correct? In principle, I want the GABA current formula to change at the onset of patch clamp (i.e when v>-10) and last for a given duration before switching back to my original formula. What is the syntax to accomplish the latter goal, namely set the time the formula switches to be voltage-dependent?


Code: Select all




:INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}

UNITS {
	(nA) = (nanoamp)
	(mV) = (millivolt)
	(umho) = (micromho)
	(mS) = (millisiemens)
	(molar) =  (/liter)
    (mM)    =  (millimolar)
    (uM)    =  (micromolar)

    (uS) = (microsiemens)

}

NEURON {
	POINT_PROCESS GABAa_simple_fit
	POINTER vpre :, vpost : vpost is given as v
	RANGE VA       : , IGABA_A
	NONSPECIFIC_CURRENT i

}

PARAMETER {
  
	gA_bar      = -0.3	(uS)        :GABA peak conductance, it was 0.3
	VA  	    = -80	(mV)		: GABA reversal potential
        dur = 2300 (ms) : DSI duration + depolarization time 
        del = 4000 (ms) : start of clamp 
}

ASSIGNED {
   
	v (mV)              : equivalent to vpost since this is the voltage at the cell containing the synpase
	vpre (mV)
        i (nA)
    
}

STATE {
	gA  		:conductance
}

INITIAL {
	gA = 0.1  		

}

BREAKPOINT {
	:SOLVE state METHOD cnexp
	: IGABA_A = gA_bar*gA*(vpost - VA)
	at_time(del)
	at_time(del+dur)
        if (v > -10) {
              if (t < del + dur && t > del) {
	           i = gA_bar*gA*(v - VA)
                   gA = 0.4829*t^4-9.123*t^3+53.65*t^2-86.88*t+41.08
              } else {
                   i = gA_bar*(v - VA)
              }
        } else { 
                   i = gA_bar*(v - VA)
        }
}


NET_RECEIVE(weight (uS)) {
	gA_bar = weight
}
thank you,
Alexandra
ted
Site Admin
Posts: 6287
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: alternating the expression of GABA current in mod file

Post by ted »

The best answer to your request depends on exactly what you are trying to do. It looks like you're trying to implement an experimental protocol in which

1. GABA-gated channels are initially in some resting state.

2. At time del two things happen:
a voltage clamp forces membrane potential to rise to a level >= -10 mV,
and
something perturbs the ion channels.
This raises two questions.
First, was the cell voltage clamped when time was < del?
Second, is the perturbation the application of GABA or some other drug?

3. At time del + dur, the perturbation of the ion channels goes away.
But what happens to membrane potential? Is the cell still clamped, and if so, to what membrane potential?
ted
Site Admin
Posts: 6287
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: alternating the expression of GABA current in mod file

Post by ted »

A couple more questions:
1. do you really want gA_bar to be negative?
2. in the right hand side of the formula for gA, shouldn't t be replaced by (t - del)?
alexandrapierri
Posts: 69
Joined: Wed Jun 17, 2015 5:31 pm

Re: alternating the expression of GABA current in mod file

Post by alexandrapierri »

Hello Ted

this is again within the context of Depolarization induced suppression of inhibition (DSI). I am implementing a simpler model this time.

I want the DSI to start after the pyramidal cell is depolarized and last for 1.8 seconds. I want the amplitude of the current to decay according to the formula I have posted above. It is an exponential decay and then the current recovers back to normal. To do this I have decided to use two different formulas for the GABA current one "under normal conditions" and one "under DSI". This is for the simple case. So my question for this simple case is how do I set DSI GABA current formula to start after the depolarization of the pyr cell. If convenient I could apply the DSI depolarization formula the moment the PYR cell is depolarized.

As a next step, I would like the code to track the duration of the PYR cell depolarization and use the right formula depending on the duration of that depolarization.

As a final step, I would like the mod file to record the firing rate of the presynaptic cell and apply a different formula based on that firing rate.

In a nutshell, the formula to use for DSI should primarily depend on the duration of the PYR cell depolarization and secondarily depend on the firing rate of the presynaptic cell.


Also responses to the extra questions:
1. this is a naive question on my end, but shouldn't GABA deflections be negative (downward)? If the gA_bar is positive I get positive IPSC responses.
2. yes, fixed

thank you,
Alexandra
ted
Site Admin
Posts: 6287
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: alternating the expression of GABA current in mod file

Post by ted »

The NMODL code in your 12/07/22 post doesn't emulate any aspect of DSI. In the conditional block

Code: Select all

if (v > -10) {
  clause 1
} else {
  clause 2
}
the statements in clause 1 will be executed if v rises above -10 mV, regardless of the "duration of depolarization." Even a single action potential at the location of the synapse will cause execution of clause 1, for as long as local v remains > -10 mV. Furthermore, as soon as v drops to, or below, -10 mV, the code in clause 2 will be executed immediately, regardless of the prior history of synaptic activation. So whatever this mechanism does, its time course is quite unlike the time course of DSI.

The proposed mechanisms for DSI that involve local postsynaptic calcium accumulation would not have such problems.
shouldn't GABA deflections be negative (downward)? If the gA_bar is positive I get positive IPSC responses
For the past 70 years or so, the convention regarding transmembrane current flow through ion channels is that the positive direction is outward. Examples: under normal conditions, opening of sodium channels produces a negative current (influx of Na ions), opening of potassium channels produces a positive current (efflux of K ions).
ted
Site Admin
Posts: 6287
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: alternating the expression of GABA current in mod file

Post by ted »

This discussion thread has been moved from "NEURON + Python", where it clearly didn't belong, to "Adding new mechanisms and functions to NEURON".
Post Reply