Page 1 of 1
use of Netcon weight
Posted: Tue Apr 12, 2011 7:52 am
by apoorva bedekar
[quote][How does the netcon.weight change the amplitude of the action potential generated or the epsp generated
also till what decimal place can I write netcon.weight, what is the minimum permissible value
/quote]
Re: use of Netcon weight
Posted: Tue Apr 12, 2011 9:59 am
by ted
There's no need to "quote" your own messages, unless you are quoting something you or somebody else posted in an earlier message.
Now to answer your questions . . .
How does the netcon.weight change the amplitude of the action potential generated or the epsp generated
Find the NMODL source code for the synaptic mechanism, and read the code inside the NET_RECEIVE block. There's where you'll see how weight affects the synaptic mechanism. For example, the ExpSyn class is defined by code in expsyn.mod. That mod file has these BREAKPOINT and DERIVATIVE blocks
Code: Select all
BREAKPOINT {
SOLVE state METHOD cnexp
i = g*(v - e)
}
DERIVATIVE state {
g' = -g/tau
}
which means that synaptic conductance g has a monoexponential decay toward 0 with time constant tau. The NET_RECEIVE block is
Code: Select all
NET_RECEIVE(weight (uS)) {
g = g + weight
}
which means that if an event arrives at time t, the value of g is increased by whatever the value of "weight" is. In other words, g(t) = g(t - delta_t) + weight
till what decimal place can I write netcon.weight, what is the minimum permissible value
Any double precision number.
Re: use of Netcon weight
Posted: Tue Apr 12, 2011 11:48 am
by apoorva bedekar
This code has a template having 2 apicular and 1 basilar dendrite along with a soma and axon. The template is used to have two bidirectionally connected neurons. Also two current stimuli are given to each of the soma.
Code: Select all
load_file("nrngui.hoc")
begintemplate CA1
public soma, axon,ss
public sb1
public sa1,sa2
public ba_dend1
public ap_dend1 , ap_dend2
create soma, axon
create ba_dend1
create ap_dend1 , ap_dend2
objref ss
objref sb1
objref sa1,sa2
objectvar data
proc init(){
soma {
L = 20
soma.diam = 20
soma.nseg = 10
soma insert hh
}
axon{
L= 50
diam = 1
nseg = 10
insert hh
gnabar_hh = 0.012
gkbar_hh = 0.0036
gl_hh = 0.00003
}
ap_dend1 {
L = 5
diam = 4
nseg = 10
insert pas
//~ insert hh
//~ gnabar_hh = 0.012
//~ gkbar_hh = 0.0036
//~ gl_hh = 0.00003
}
ap_dend2{
L = 75
diam = 1
nseg = 10
insert pas
//~ insert hh
//~ gnabar_hh = 0.012
//~ gkbar_hh = 0.0036
//~ gl_hh = 0.00003
}
ba_dend1 {
L = 200
diam = 0.8
nseg = 10
insert pas
//~ insert hh
//~ gnabar_hh = 0.012
//~ gkbar_hh = 0.0036
//~ gl_hh = 0.00003
}
}
connect ap_dend1(0), soma(1)
connect ap_dend2(0), soma(1)
connect axon(0), soma(0)
connect ba_dend1(0),soma(0)
ap_dend1 sa1 = new Exp2Syn(0.5)
sa1.tau1 = 0.5
sa1.tau2 = 0.5
sa1.e = 0 //~ (at 0.8)
//~ ap_dend2 sa2 = new Exp2Syn(0.5)
//~ sa2.tau1 = 0.5
//~ sa2.tau2 = 0.5
//~ sa2.e = 0 //~ at 0.8)
//~ ba_dend1 sb1 = new Exp2Syn(0.5)
//~ sb1.tau1 = 0.5
//~ sb1.tau2 = 0.5
//~ sb1.e = 0
endtemplate CA1
// cells
no_of_cells=2
objref cells[no_of_cells]
for i = 0 , no_of_cells-1 {
cells[i] = new CA1()
}
objref stim
cells[0].soma stim= new IClamp(0.5)
stim.del = 10
stim.dur = 5
stim.amp = 0.7
stim.i = 0
objref stim1
cells[0].soma stim1= new IClamp(0.5)
stim1.del = stim.del+50
stim1.dur = 5
stim1.amp = 0.7
stim1.i = 0
objref stim2
cells[1].soma stim2= new IClamp(0.5)
stim2.del = 11
stim2.dur = 5
stim2.amp =0.7
stim2.i = 0
objref stim3
cells[1].soma stim3= new IClamp(0.5)
stim3.del = stim2.del+50
stim3.dur = 5
stim3.amp = 0.7
stim3.i = 0
objref nc0_sa1, nc0_sa2
objref nc0_sb1
objref nc1_sa1, nc1_sa2
objref nc1_sb1
// connections
objref nclist
nclist = new List()
access cells[0].axon
nc0_sa1= new NetCon(&v(0.5), cells[1].sa1)
nclist.append(nc0_sa1)
if(stim2.del-stim.del <=10 && stim3.del-stim1.del <= 10){
nc0_sa1.delay=1
nc0_sa1.threshold=10
nc0_sa1.weight=0.0005
}else{
nc0_sa1.delay=1
nc0_sa1.threshold=10
nc0_sa1.weight=0.0001
}
access cells[0].axon
nc0_sa2= new NetCon(&v(0.5), cells[1].sa2)
nclist.append(nc0_sa2)
if(stim2.del-stim.del <=10 && stim3.del-stim1.del <= 10){
nc0_sa2.delay=1
nc0_sa2.threshold=10
nc0_sa2.weight=0.0005
}else{
nc0_sa2.delay=1
nc0_sa2.threshold=10
nc0_sa2.weight=0.0001
}
access cells[1].axon
nc1_sb1= new NetCon(&v(0.5), cells[0].sb1)
nclist.append(nc1_sb1)
if(stim2.del-stim.del <=10 && stim3.del-stim1.del <= 10){
nc1_sb1.delay=1
nc1_sb1.threshold=10
nc1_sb1.weight=0.0005
}else{
nc1_sb1.delay=1
nc1_sb1.threshold=10
nc1_sb1.weight=0.0001
}
tstop = 100
dt = 0.01
v_init = -65
The aim to increase the weight of the netcon object, hence the conductance, effectively the epsp in cells[1].ap_dend1 if stimulus given to soma[1] and soma[0] are separated by 10ms or less.
But if the stimulus given to soma[1] and soma[0] are separated by a time period more than 10 ms then the conductance should reduce
I am getting the same epsp values irrespective of the time condition. What should I change or modify in the code