// 0 - Electric mechanisms, 1 - Glutamate mechanisms
currentMechanismSetup = 0
cadifusInElectricalLeaves = 0
cadifusInAllGlu = 0
// Insert-uninsert FRAP and set its params.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc SectionInsertFRAP() {
if ($1 > 0) {
insert FRAP
DFree_FRAP=0.15 // um2/sm
} else {
uninsert FRAP
}
}
// Insert-uninsert cadifus and set its params.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc SectionInsertCadifus() {
if ($1 > 0) {
insert cadifus
DCa_cadifus=0.30 // um2/sm
ip3i=1e-5 // initial ip3 mM
//insert ip3diffus
} else {
uninsert cadifus
// uninsert ip3diffus
}
}
// Insert-uninsert mechanisms for electrical simulations.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc InsertElectricMechanisms() {
// Soma
soma {
SectionInsertFRAP($1)
SectionInsertCadifus($1)
}
// Dendrites
for i = 0, NumberDendrites-1 dendrite[i] {
SectionInsertFRAP($1)
SectionInsertCadifus($1)
}
// Leaves
for i = 0, SizeTotal-1 LargeGlia[i] {
insert pas
SectionInsertFRAP($1)
if ($1 > 0) {
if (cadifusInElectricalLeaves == 1) {
SectionInsertCadifus(1)
}
} else {
SectionInsertCadifus(0)
}
}
// Stalks
for i = 0, SizeTotal-1 SmallGlia[i] {
SectionInsertFRAP($1)
if (cadifusInElectricalLeaves == 1) {
SectionInsertCadifus($1)
}
}
}
// Insert-uninsert mechanisms needed for Glutamate simulation and set their params.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc SectionInsertGlutamateMechanisms() {
if ($1 > 0) {
insert CAl
insert kdrglia
insert kir
insert kdifl // New added
insert GluTrans
Gluout_GluTrans= 20e-6 // mM
if (cadifusInAllGlu == 1) {
SectionInsertCadifus(1)
}
} else {
uninsert CAl
uninsert kdrglia
uninsert kir
uninsert kdifl // New added
uninsert GluTrans
SectionInsertCadifus(0)
}
}
// Insert-uninsert mechanisms needed for Potasasium simulation and set their params.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc SectionInsertPotasasiumMechanisms() {
if ($1 > 0) {
//Ra = 100
//cm = 1
// insert pas
// g_pas = 0.001
// e_pas = -85
insert kdifl
D_kdifl = 0.6
ki0_kdifl=110
insert kpump
if (cadifusInAllGlu == 1) {
SectionInsertCadifus(1)
}
} else {
// uninsert CAl
// uninsert kdrglia
// uninsert kir
// uninsert GluTrans
uninsert kdifl
// D_kdifl = 0.6
// ki0_kdifl=110
uninsert kpump
}
}
// Insert-uninsert mechanisms for Glutamate simulation.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc InsertGlutamateMechanisms() {
// Soma
soma[0] {
SectionInsertGlutamateMechanisms($1)
}
// Dendrites
for i = 0, NumberDendrites-1 dendrite[i] {
SectionInsertGlutamateMechanisms($1)
}
// Leaves
for i = 0, SizeTotal-1 LargeGlia[i] {
SectionInsertGlutamateMechanisms($1)
if ($1 > 0) {
density_GluTrans=(1+diam/(2*L))*DensityGluTransporters
}
}
// Stalks
for i = 0, SizeTotal-1 SmallGlia[i] {
SectionInsertGlutamateMechanisms($1)
}
}
// Insert-uninsert mechanisms for potassium simulation.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc InsertPotassiumMechanisms() {
// Soma
soma[0] {
SectionInsertPotasasiumMechanisms($1)
}
// Dendrites
for i = 0, NumberDendrites-1 dendrite[i] {
SectionInsertPotasasiumMechanisms($1)
}
// Leaves
for i = 0, SizeTotal-1 LargeGlia[i] {
SectionInsertPotasasiumMechanisms($1)
}
// Stalks
for i = 0, SizeTotal-1 SmallGlia[i] {
SectionInsertPotasasiumMechanisms($1)
}
}
// Updates current mechanisms.
proc ResetMechanisms() {
if (currentMechanismSetup == 0) {
InsertElectricMechanisms(0)
InsertElectricMechanisms(1)
} else {
InsertGlutamateMechanisms(0)
InsertGlutamateMechanisms(1)
}
}
// Insert-uninsert cadifus in leaves for electrical simulations.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc InsertCadifusInElectricalLeaves() {
cadifusInElectricalLeaves = $1
ResetMechanisms()
}
// Insert-uninsert cadifus in soma, dendrites and leaves for Glutamate simulation.
// $1 - Boolean. 1 - insert. 0 - uninsert.
proc InsertCadifusInAllGlu() {
cadifusInAllGlu = $1
ResetMechanisms()
}