//------------------------------------------------------------------------
//
// Procedures to localize mechanisms in dendritic compartments
//
// Simple version with minimal set of currents:
// - potassium currents: IKd Traub, IM Zach
// - INa current: Traub
// - IKd in dendrites
//
// Procedures to localize currents as a function of distance
// (use the path distance function of NEURON)
//
//------------------------------------------------------------------------
strdef sect
soma distance(0,0.5) // initialize path distances to center of soma
//
// Procedures to insert mechanisms
//
proc insert_ina() { // sodium channels
insert inaT
ena = 50
vtraub_inaT = -63 // threshold of -55
gnabar_inaT = 3 // zach init segment
gnabar_inaT = 20e-4 // zach dendrites & soma
}
proc insert_ikd() { // delayed-rectifier
insert ikdT
ek = -90
vtraub_ikdT = -63 // threshold of IKd
gkbar_ikdT = 2000e-4 // zach init segment
gkbar_ikdT = 200e-4 // zach soma
}
proc insert_im() { // ca-dependent K+ current
insert imZ
ek = -90
gkbar_imZ = 3e-4 // zach dendrites & soma
}
//
// Procedure to insert currents in soma, dendrites and axon
//
proc insert_currents() {
forsec "dend" { // dendrites
insert_ina() // sodium channels
insert_im() // M-channels
insert_ikd() // delayed rectifier
}
soma { // soma
insert_ina() // sodium channels
insert_im() // M-channels
insert_ikd() // delayed rectifier
}
axon { // axon
insert_ina() // sodium channels
insert_ikd() // delayed rectifier
}
}
//
// Procedure to set conductances in the soma
// arguments: 1=gNa, 2=gKd, 3=gM
//
proc set_soma() {
print " "
print "Set somatic currents:"
print " "
print " Sodium cnannels: ",$1
print " IKd channels: ",$2
print " IM channels: ",$3
print " "
soma {
gnabar_inaT = $1 // sodium channels
gkbar_imZ = $3 // M-channels
gkbar_ikdT = $2 // delayed rectifier
if(DEBUG) {
sectionname(sect)
print "INa, IKd, IM inserted in ",sect
}
}
}
//
// Procedure to set conductances in the axon
// arguments: 1=gNa, 2=gKd
//
proc set_axon() {
print " "
print "Set axonal currents:"
print " "
print " Sodium cnannels: ",$1
print " IKd channels: ",$2
print " "
axon {
gnabar_inaT = $1 // sodium channels
gkbar_ikdT = $2 // delayed rectifier
if(DEBUG) {
sectionname(sect)
print "INa, IKd inserted in ",sect
}
}
}
//
// Procedure to set conductances in the dendrites
// arguments: 1=gNa, 2=gKd, 3=gM
//
proc set_dendrites() {
print " "
print "Set dendritic currents:"
print " "
print " Sodium cnannels: ",$1
print " IKd channels: ",$2
print " IM channels: ",$3
print " "
forsec "dend" {
gnabar_inaT = $1 // sodium channels
gkbar_imZ = $3 // M-channels
gkbar_ikdT = $2 // delayed rectifier
if(DEBUG) {
sectionname(sect)
print "INa, IKd, IM inserted in ",sect
}
}
forsec "myelin" {
gnabar_inaT = $1 // sodium channels in myelin are idem dendrites
if(DEBUG) {
sectionname(sect)
print "INa inserted in ",sect
}
}
}
//
// Procedure to localize conductances in the dendrites
// arguments: 1=gNa, 2=gKd, 3=gM, 4=min distance, 5=max distance
//
proc localize_dendrites() { local i
print " "
print "Localize dendritic currents:"
print " "
print " Sodium cnannels: ",$1
print " IKd channels: ",$2
print " IM channels: ",$3
print " distance range: ",$4," to ",$5
print " "
i=0
forsec "dend" {
if( (distance(0.5) >= $4) && (distance(0.5) <= $5) ) {
gnabar_inaT = $1 // sodium channels
gkbar_imZ = $3 // M-channels
gkbar_ikdT = $2 // delayed rectifier
if(DEBUG) {
sectionname(sect)
print "INa, IKd, IM inserted in ",sect
}
}
i=i+1
}
}
|