Updated Tritonia Swim CPG (Calin-Jagemann et al. 2007)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:93325
Model of the 3-cell core CPG (DSI, C2, and VSI-B) mediating escape swimming in Tritonia diomedea. Cells use a hybrid integrate-and-fire scheme pioneered by Peter Getting. Each model cell is reconstructed from extensive physiological measurements to precisely mimic I-F curves, synaptic waveforms, and functional connectivity.
Reference:
1 . Calin-Jageman RJ, Tunstall MJ, Mensh BD, Katz PS, Frost WN (2007) Parameter space analysis suggests multi-site plasticity contributes to motor pattern initiation in Tritonia. J Neurophysiol 98:2382-98 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Tritonia;
Cell Type(s): Tritonia swim interneuron dorsal; Tritonia cerebral cell; Tritonia swim interneuron ventral;
Channel(s): I A;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Bursting; Oscillations; Invertebrate;
Implementer(s): Calin-Jageman, Robert [rcalinjageman at gsu dot edu]; Mensh, Brett ; Frost, William N; Katz, Paul S; Tunstall, Mark ;
Search NeuronDB for information about:  I A;
w1 = 0
w2 = 0
w3 = 0
tc1 = 0
tc2 = 0
tc3 = 0
strdef fname

proc readsyn() {localobj synfile
	synfile = new File()
	synfile.ropen($s1)
	

	$o2.G1_weight = synfile.scanvar()
	$o2.G1_eRev = synfile.scanvar()
	$o2.G1_opentc = synfile.scanvar()
	$o2.G1_closetc = synfile.scanvar()

	$o2.G2_weight = synfile.scanvar()
	$o2.G2_eRev = synfile.scanvar()
	$o2.G2_opentc = synfile.scanvar()
	$o2.G2_closetc = synfile.scanvar()

	$o2.G3_weight = synfile.scanvar()
	$o2.G3_eRev = synfile.scanvar()
	$o2.G3_opentc = synfile.scanvar()
	$o2.G3_closetc = synfile.scanvar()


}

proc savesyn() {
	w1 = $o1.G1_weight 
	tc1 = $o1.G1_closetc 
	
	w2 = $o1.G2_weight 
	tc2 = $o1.G2_closetc 

	w3 = $o1.G3_weight 
	tc3 = $o1.G3_closetc 
}

load_file("nrngui.hoc")

// chdir("c:/sims/nfrost")

// chdir("mods")
// nrn_load_dll("nrnmech.dll")
// chdir("..")

load_file("celltypes/C2Type.hoc") 
load_file("celltypes/DSIType.hoc")
load_file("celltypes/VSIType.hoc")
load_file("celltypes/IFType.hoc")
load_file("celltypes/DRIType.hoc")



objref TestCell, IF, DRI, C2
IF = new IFType()
//DRI = new DRIType()
//C2 = new C2Type()

/*  change here */
TestCell = new C2Type()

objectvar IF_Ts, IF_Tnc, T_Ts, T_Tnc, IF_DRIs, IF_DRInc, DRI_Ts, DRI_Tnc, C2_DRIs, C2_DRInc, DSI_C2nc, DSI_C2s, C2_DSIs, C2_DSInc

TestCell.soma {IF_Ts = new tholdsyn(0.5)}
access IF.soma
IF_Tnc = new NetCon(&v(0.5), IF_Ts, 0, 0, 1)

TestCell.soma {T_Ts = new tholdsyn(0.5)}
access TestCell.soma
T_Tnc = new NetCon(&v(0.5), T_Ts, 0, 0, 1)

//TestCell.soma {DRI_Ts = new tholdsyn(0.5)}
//access DRI.soma
//DRI_Tnc = new NetCon(&v(0.5), DRI_Ts, 0, 0, 1)

//DRI.soma {IF_DRIs = new tholdsyn(0.5)}
//access IF.soma
//IF_DRInc = new NetCon(&v(0.5), IF_DRIs, 0, 0, 1)

//DRI.soma {C2_DRIs = new tholdsyn(0.5)}
//access C2.soma
//C2_DRInc = new NetCon(&v(0.5), C2_DRIs, 0, 0, 1)

//C2.soma {DSI_C2s = new tholdsyn(0.5)}
//access TestCell.soma
//DSI_C2nc = new NetCon(&v(0.5), DSI_C2s, 0, 0, 1)

//TestCell.soma {C2_DSIs = new tholdsyn(0.5)}
//access C2.soma
//C2_DSInc = new NetCon(&v(0.5), C2_DSIs, 0, 0, 1)

/* change here */
readsyn("syndefs/nosyn.txt", T_Ts)
readsyn("syndefs/DSI_C2.txt", IF_Ts)
//readsyn("syndefs/RAMP_DRI.txt", IF_DRIs)
//readsyn("syndefs/DRI_DSI.txt", DRI_Ts)
//readsyn("syndefs/C2_DRI.txt", C2_DRIs)
//readsyn("syndefs/DSI_C2.txt", DSI_C2s)
//readsyn("syndefs/C2_DSI.txt", C2_DSIs)

savesyn(IF_Ts)
//savesyn(DRI_Ts)
//savesyn(IF_DRIs)

synscale = 1
tcscale = 1
ifrate = 100
ifstart = 45000

access TestCell.soma
objref etrode
etrode = new IClamp(0.5)
etrode.dur = 900000
etrode.del = 0
etrode.amp = 1.9

objref ifreq
ifreq = new Vector()
ifreq.record(&TestCell.sthold.freq)

tstop = 45000+60000

load_file("fp.ses")

proc init() {

			finitialize(v_init)
			fcurrent()

			TestCell.soma.v = TestCell.ileak.vrest

			for(x = 0; x < 1000; x = x + ifrate) {
				IF_Tnc.event(ifstart + x)
				//IF_DRInc.event(ifstart+x)
			}			
			
			//DRI_Ts.G1_weight = w1 * synscale
			//DRI_Ts.G2_weight = w2 * synscale
			//DRI_Ts.G3_weight = w3 * synscale
			//DRI_Ts.G1_closetc = tc1 * tcscale
			//DRI_Ts.G2_closetc = tc2 * tcscale
			//DRI_Ts.G3_closetc = tc3 * tcscale

			//IF_DRIs.G1_weight = w1 * synscale
			//IF_DRIs.G2_weight = w2 * synscale
			//IF_DRIs.G3_weight = w3 * synscale
			//IF_DRIs.G1_closetc = tc1 * tcscale
			//IF_DRIs.G2_closetc = tc2 * tcscale
			//IF_DRIs.G3_closetc = tc3 * tcscale

			IF_Ts.G1_weight = w1 * synscale
			IF_Ts.G2_weight = w2 * synscale
			IF_Ts.G3_weight = w3 * synscale
			IF_Ts.G1_closetc = tc1 * tcscale
			IF_Ts.G2_closetc = tc2 * tcscale
			IF_Ts.G3_closetc = tc3 * tcscale
		}


proc savefreq() {local x localobj outfile
	outfile = new File()
	outfile.wopen($s1)

	outfile.printf("label:%s\n", "ifreq")
	outfile.printf("%o\n", ifreq.size())

	for(x =0; x < ifreq.size(); x = x + 1) {
			outfile.printf("%f	%f\n", x*dt, ifreq.x[x])
		}
	outfile.close()

}


Loading data, please wait...