// makes a gap junction between 2 axonal compartments // $o1 - cell[1], // $2 - section index in cell[1].collat[] // $o3 - cell[2], // $4 - section index in cell[2].collat[] // $5 - gj conductance // $6, $7 - position within section1, section2 begintemplate gapjunction public g public setg, setcells, cell1, cell2, pos1, pos2, get objref con1, con2 proc init() { objref con1, con2 $o1.collat[$2] con1 = new Gap($6) $o3.collat[$4] con2 = new Gap($7) setpointer con1.vgap, $o3.collat[$4].v($7) setpointer con2.vgap, $o1.collat[$2].v($6) con1.g = $5 con2.g = $5 } proc setg() { // change the gj conductance externally con1.g = $1 con2.g = $1 } proc setcells(){ //IDs of cells that are coupled cell1=$1 cell2=$2 pos1=$3 pos2=$4 } proc get(){ print "cell1 ", cell1, " pos1 ", pos1 print "cell2 ", cell2, " pos2 ", pos2 } endtemplate gapjunction