Basal ganglia network model of subthalamic deep brain stimulation (Hahn and McIntyre 2010)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:127388
Basal ganglia network model of parkinsonian activity and subthalamic deep brain stimulation in non-human primates from the article Instructions are provided in the README.txt file. Contact hahnp@ccf.org if you have any questions about the implementation of the model. Please include "ModelDB - BGnet" in the subject heading.
Reference:
1 . Hahn PJ, McIntyre CC (2010) Modeling shifts in the rate and pattern of subthalamopallidal network activity during deep brain stimulation. J Comput Neurosci 28:425-41 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Basal ganglia;
Cell Type(s): Subthalamus nucleus projection neuron; Globus pallidus neuron;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s): Dopamine; Gaba; Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Bursting; Parkinson's; Deep brain stimulation;
Implementer(s): Hahn, Philip [hahnp at ccf.org];
Search NeuronDB for information about:  Dopamine; Gaba; Glutamate;
/*----------------------------------------------------------------------------

	SIMULATIONS OF INTERCONNECTED STN, GPe & GPi - Parallel network version
	=============================================

----------------------------------------------------------------------------*/


//----------------------------------------------------------------------------

load_file("nrngui.hoc")

create acell_home_
access acell_home_

celsius=33
dt=0.05
steps_per_ms=20
tstop=10000
v_init=-58



//----------------------------------------------------------------------------

objref pnm

load_file("pBGconst.hoc")

readParms("pPARrun.txt")

load_file("netparmpi.hoc")

pnm = new ParallelNetManager(ncell)



//----------------------------------------------------------------------------

objref rf

if (pnm.pc.id() == 0) {
	rf = new File("randseed.txt")
	rf.ropen()
	seedVal = rf.scanvar()
	rf.close()

	// master sends seed to workers

	pnm.pc.post("seed", seedVal)

} else {

	// workers receive seed from master

	ret = 0
	while (ret == 0) {
		if (ret = pnm.pc.look("seed")) {
			seedVal = pnm.pc.upkscalar()
		}
	}
}




//----------------------------------------------------------------------------

xopen("pSTN.tem")
xopen("pGPeA.tem")
xopen("pGPi.tem")

allocCells()




//----------------------------------------------------------------------------

load_file("pBGbias.hoc")		// add bias currents to set resting frequencies
load_file("pBGconnect1.hoc")		// network make connections
load_file("pBGinput.hoc")		// cortical and striatal inputs
load_file("pBGstim.hoc")		// stimulate
load_file("pBGrecord.hoc")		// record supplemental info (spike times recorded by pnm)

load_file("pBGutil.hoc")


//----------------------------------------------------------------------------


randomize(seedVal)

//pnm.set_maxstep(10) // will end up being minimum synaptic delay

pnm.want_all_spikes()

//xopen("parBGnet.ses")

//stdinit()
//runtime = startsw()
//pnm.psolve(tstop)
//runtime = startsw() - runtime

//load_file("pBGtrainUtil2.hoc")
load_file("pBGconfData.hoc")


//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
//	END OF COMMON CODE (that is run by all worker processes)
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------

pnm.pc.runworker

objref res
res = new Vector()


// Update and save seed value
rf.wopen("randseed.txt")
rf.printf("%d\n", seedVal+1)
rf.close()

strdef fname

i = xred("Enter number of launch file ", -1, 0, 999)

if (i >= 0) {
	sprint(fname, "pBGLaunch.%03d", i)
	print "Launching file ", fname
	load_file(fname)
}


pnm.pc.done