A single column thalamocortical network model (Traub et al 2005)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:45539
To better understand population phenomena in thalamocortical neuronal ensembles, we have constructed a preliminary network model with 3,560 multicompartment neurons (containing soma, branching dendrites, and a portion of axon). Types of neurons included superficial pyramids (with regular spiking [RS] and fast rhythmic bursting [FRB] firing behaviors); RS spiny stellates; fast spiking (FS) interneurons, with basket-type and axoaxonic types of connectivity, and located in superficial and deep cortical layers; low threshold spiking (LTS) interneurons, that contacted principal cell dendrites; deep pyramids, that could have RS or intrinsic bursting (IB) firing behaviors, and endowed either with non-tufted apical dendrites or with long tufted apical dendrites; thalamocortical relay (TCR) cells; and nucleus reticularis (nRT) cells. To the extent possible, both electrophysiology and synaptic connectivity were based on published data, although many arbitrary choices were necessary.
Reference:
1 . Traub RD, Contreras D, Cunningham MO, Murray H, LeBeau FE, Roopun A, Bibbig A, Wilent WB, Higley MJ, Whittington MA (2005) Single-column thalamocortical network model exhibiting gamma oscillations, sleep spindles, and epileptogenic bursts. J Neurophysiol 93:2194-232 [PubMed]
2 . Traub RD, Contreras D, Whittington MA (2005) Combined experimental/simulation studies of cellular and network mechanisms of epileptogenesis in vitro and in vivo. J Clin Neurophysiol 22:330-42 [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: Neocortex; Thalamus;
Cell Type(s): Thalamus geniculate nucleus/lateral principal GLU cell; Thalamus reticular nucleus GABA cell; Neocortex U1 L6 pyramidal corticalthalamic GLU cell; Neocortex U1 L2/6 pyramidal intratelencephalic GLU cell; Neocortex fast spiking (FS) interneuron; Neocortex spiking regular (RS) neuron; Neocortex spiking low threshold (LTS) neuron;
Channel(s): I Na,p; I Na,t; I L high threshold; I T low threshold; I A; I K; I M; I h; I K,Ca; I Calcium; I A, slow;
Gap Junctions: Gap junctions;
Receptor(s): GabaA; AMPA; NMDA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON; FORTRAN;
Model Concept(s): Activity Patterns; Bursting; Temporal Pattern Generation; Oscillations; Simplified Models; Epilepsy; Sleep; Spindles;
Implementer(s): Traub, Roger D [rtraub at us.ibm.com];
Search NeuronDB for information about:  Thalamus geniculate nucleus/lateral principal GLU cell; Thalamus reticular nucleus GABA cell; Neocortex U1 L2/6 pyramidal intratelencephalic GLU cell; Neocortex U1 L6 pyramidal corticalthalamic GLU cell; GabaA; AMPA; NMDA; I Na,p; I Na,t; I L high threshold; I T low threshold; I A; I K; I M; I h; I K,Ca; I Calcium; I A, slow;
Files displayed below are from the implementation
/
nrntraub
net
durand.hoc *
groucho.hoc
groucho_gapbld.hoc *
groucho_gapbld_mix.hoc *
network_specification_interface.hoc *
serial_or_par_wrapper.hoc *
synaptic_compmap_construct.hoc *
synaptic_map_construct.hoc *
                            
// network_specification_interface.hoc
// from NetGUI[0], the GUI Network Builder

objref cells, nclist, netcon
{cells = new List() nclist = new List()}

func cell_append() {
	cells.append($o1)
	$o1.position($2,$3,$4)
	return cells.count - 1
}

func nc_append() { // srcindex, tarcelindex, synindex
	if ($3 >= 0) {
		cells.object($1).connect2target(cells.object($2).synlist.object($3),netcon)
		netcon.weight = $4  netcon.delay = $5
	} else {
		cells.object($1).connect2target(cells.object($2).pp.netcon)
		netcon.weight = $4  netcon.delay = $5
	}
nclist.append(netcon)
return nclist.count-1
}

/* instantiate network with commands like
cell_append(new deepaxax_Cell(), -80, 0, 0)
cell_append(new deepaxax_Cell(),  80, 0, 0)

nc_append(1, 0, 0, 4, 8)
nc_append(1, 0, 1, 3, 7)
nc_append(0, 1, 0, 2, 6)
nc_append(0, 1, 0, 1, 5)
first two arguments:
where 0 is the first deepaxax cell, 1 is the second.
next argument:
the synapse number 0 is an AlphaSynKinT0, 1 is an NMDA1 rcptr.
where 1,2,3,4 are weights, 5,6,7,8 are delays

other examples from NetGUI's export of a NetStim hoc file (*'s removed before /'s)
//Network instantiation

  /* NetStim_slow0 /  cell_append(new NetStim_slow_NetStim(),	-131,	 19, 0)
  /* NetStim1 /  cell_append(new NetStim_NetStim(),	-123,	 -30, 0)
  /* Cell2 /  cell_append(new Cell_Cell(),	45,	 -4, 0)
  /* NetStim_slow0 -> Cell2.PulseSyn0 /  nc_append(0,   2, 0,  0,1)
  /* NetStim1 -> Cell2.PulseSyn0 /  nc_append(1,   2, 0,  0,1)

*/

/* note: the automatically created from FORTRAN cell templates
contain the cell templates in the style that would be written
from network builder. */

// here is a template from network builder for the stimulation of cells

begintemplate S_NetStim
public pp, connect2target, x, y, z, position, is_art
objref pp
proc init() {
    pp = new NetStim(.5)
// the interval is expected to be reset in each object instance
    pp.interval = 1e+08
// this arbitrarily large number allows the poisson process
// to deliver as many spikes as would occur without restraint
// in the simulation
    pp.number = 1e8
    pp.start = 0
    pp.noise = 1 // setting for a poisson process
}
func is_art() { return 1 }
proc connect2target() { $o2 = new NetCon(pp, $o1) }
proc position(){x=$1  y=$2  z=$3}
endtemplate S_NetStim

// here is a function which sets up constant current injections into
// the somas of some cell types


objref iclamp_const_list, tmpobj
iclamp_const_list = new List()  // don't know if we will need these

proc set_const_curr_inj() { 
// arguments past are
// double cellname_base, double num_cellname, Vector curr_cellname
//        $1                    $2                   $o3

	for i=1,$2 { // loop over all the cells
	// create the IClamp_const

	// insert IClamp_const

	    cells.object($1 + i).comp[1] tmpobj = new IClamp_const(0.5)
//	    cells.object($1 + i).synlist.append(tmpobj)  // should this be on this list?

	    tmpobj.amp = $o3.x[i]
	    iclamp_const_list.append(tmpobj)
	}
}


if (pmesg) print "made it to end of network_specification_interface.hoc"