use of Netcon weight

Anything that doesn't fit elsewhere.
Post Reply
apoorva bedekar
Posts: 11
Joined: Wed Jan 26, 2011 11:57 pm

use of Netcon weight

Post 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]
ted
Site Admin
Posts: 6305
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: use of Netcon weight

Post 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.
apoorva bedekar
Posts: 11
Joined: Wed Jan 26, 2011 11:57 pm

Re: use of Netcon weight

Post 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
Post Reply