Excitatory and inhibitory contributions

Anything that doesn't fit elsewhere.
Post Reply
Sandrine

Excitatory and inhibitory contributions

Post by Sandrine »

Hello,

I have a network of 150 neurons. Some are excitatory neurons, some are inhibitory neurons and i did connections.
And, what i would like to do is to sum all the membrane potentials generated by excitatory neurons and all the membrane potentials generated by inhibitory neurons, in order to find the respective contributions of excitatory and inhibitory neurons in my network.
Is it possible to plot the resulting curves?

Thanks a lot for your help,

Sandrine.
ted
Site Admin
Posts: 6384
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Post by ted »

Of course. Anything that has a numerical value can be plotted. Read about the Graph and
Vector classes' methods in the Programmer's Reference. You'll probably want to use the
Vector plot() method.
Sandrine

Post by Sandrine »

Yes, it should help me, thanks.
But first i want to sum the different contributions of excitation and inhibition.
Is there a simple way to do this?
ted
Site Admin
Posts: 6384
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Post by ted »

All things are possible through programming. However, human language is imprecise.
What exactly does this statement mean?
Sandrine wrote:i want to sum the different contributions of excitation and inhibition.
Do you want
SUMMA v
over all excitatory neurons
or
SUMMA i
over all excitatory synapses
?
If the former, are your model cells multicompartment or single compartment?
Sandrine

Post by Sandrine »

Ok i want
SUMMA v
over all excitatory neurons

(and even if is not necessary then, my model cells are multicompartment)
ted
Site Admin
Posts: 6384
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Post by ted »

Code: Select all

want
SUMMA v
over all excitatory neurons
One simple-minded approach: use the Vector class's record method to capture the somatic
membrane potential trajectories, and at the end of a run use the add method to add them up.
Assuming that the model cells are instances of a class, and that the objrefs for all instances
of excitatory neurons have been appended to a List called ecells,
This setup code creates the Vectors

Code: Select all

objref vrecs, tobj
vrecs = new List()

for i=0,ecells.count()-1 {
  tobj = new Vector()
  ecells.o(i).soma tobj.record(&v(0.5))
  vrecs.append(tobj)
}
This defines proc myrun which, when invoked, will run a simulation and calculate a Vector whose
elements are the time course of the sum of somatic membrane potentials.

Code: Select all

objref vsum

proc postprocess() { local i
  vsum = vrecs.o(0).c
  // assumes that there is more than one excitatory neuron
  for i=1,vrecs.count()-1 vsum.add(vrecs.o(i))
}

proc myrun() {
  run()
  postprocess()
}
Sandrine

Post by Sandrine »

Thanks again for your help! It works.

Sandrine.
Sandrine

Post by Sandrine »

An other little question....
How can i now integrate the response of the membrane potential (Vm) over all the membrane area?
I saw the "integral" method in the documentation, but not over a surface.

Thank you,

Sandrine.
ted
Site Admin
Posts: 6384
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Post by ted »

If all neurons are single compartment models,

Code: Select all

objref vrecs, tobj, areavec
vrecs = new List()
areavec = new Vector()

for i=0,ecells.count()-1 {
  tobj = new Vector()
  ecells.o(i).soma {
    tobj.record(&v(0.5))
    vrecs.append(tobj)
    areavec.append(area(0.5))
  }
}

proc postprocess() { local i
  vsum = vrecs.o(0).c.mul(areavec.x[0])
  // assumes that there is more than one excitatory neuron
  for i=1,vrecs.count()-1 vsum.add(vrecs.o(i).c.mul(areavec.x[i])
}
Sandrine

Post by Sandrine »

Unfortunately i have multicompartmental models of neurons. Actually, i have 10 compartments per neuron.
Maybe i can do the first part of the code for each compartment:

objref vrecs, tobj, areavec
vrecs = new List()
areavec = new Vector()

for i=0,ecells.count()-1 {
tobj = new Vector()
ecells.o(i).soma { //idem for axon and for dend
tobj.record(&v(0.5))
vrecs.append(tobj)
areavec.append(area(0.5))
}
}


is there a better way to do it?
Sandrine

Post by Sandrine »

with SectionList()??
ted
Site Admin
Posts: 6384
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Post by ted »

Approaches based on recording and manipulating vectors for every
compartment of every cell will scale poorly as the number of cells increases.
It is time to step back from details of implementation, and ask what you are
trying to do.
Post Reply