A Model Circuit of Thalamocortical Convergence (Behuret et al. 2013)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:150240
“… Using dynamic-clamp techniques in thalamic slices in vitro, we combined theoretical and experimental approaches to implement a realistic hybrid retino-thalamo-cortical pathway mixing biological cells and simulated circuits. … The study of the impact of the simulated cortical input on the global retinocortical signal transfer efficiency revealed a novel control mechanism resulting from the collective resonance of all thalamic relay neurons. We show here that the transfer efficiency of sensory input transmission depends on three key features: i) the number of thalamocortical cells involved in the many-to-one convergence from thalamus to cortex, ii) the statistics of the corticothalamic synaptic bombardment and iii) the level of correlation imposed between converging thalamic relay cells. In particular, our results demonstrate counterintuitively that the retinocortical signal transfer efficiency increases when the level of correlation across thalamic cells decreases. …”
Reference:
1 . Behuret S, Deleuze C, Gomez L, Fregnac Y and Bal T (2013) Cortically-controlled population stochastic facilitation as a plausible substrate for guiding sensory transfer across the thalamic gateway PLoS Computational Biology 9(12):e1003401
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; Retina;
Cell Type(s): Thalamus geniculate nucleus/lateral principal GLU cell; Thalamus reticular nucleus GABA cell; Neocortex U1 L5B pyramidal pyramidal tract GLU cell; Retina ganglion GLU cell; Thalamus lateral geniculate nucleus interneuron;
Channel(s): I Na,t; I T low threshold; I K; I M;
Gap Junctions:
Receptor(s): GabaA; AMPA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Synaptic Convergence;
Implementer(s): Behuret, Sebastien [behuret at unic.cnrs-gif.fr];
Search NeuronDB for information about:  Thalamus geniculate nucleus/lateral principal GLU cell; Thalamus reticular nucleus GABA cell; Retina ganglion GLU cell; Neocortex U1 L5B pyramidal pyramidal tract GLU cell; GabaA; AMPA; I Na,t; I T low threshold; I K; I M;
/
TCconvergenceModel
README.html
cadecay.mod *
ConductancePattern.mod
ConstantCurrent.mod
hh2.mod *
IM.mod
IT.mod
ITGHK.mod
RandomGenerator.mod
RetinalInput.mod
SineWaveCurrent.mod
SynapticNoise.mod
Demo.hoc
DEMO.png
Geometry.hoc
GUI.hoc
mosinit.hoc
Recording.hoc
Run.hoc
screenshot.png
Simulation.hoc
Templates.hoc
                            
:
: RetinalInput.mod
:
: This mechanism describes the retinal input spike-train.
: (Depends on RandomGenerator.mod, see "setpointer" in Geometry.hoc)
:
: Thalamocortical convergence studies
: Sebastien Behuret, UNIC/CNRS Paris, 2009
:

NEURON
{
	POINT_PROCESS RetinalInput

	RANGE Frequency, Phase, Noise, Gamma, InterCorrelation
	RANGE Spike, Spike10
	RANGE LastISI, LastSpike, SpikeCount
	RANGE SpikeTime
	POINTER ExpRand1, ExpRand2, ExpRand3
}

PARAMETER
{
	Frequency = 5 (/s)
	Phase = 0 (ms)
	Noise = 0
	Gamma = 0
	InterCorrelation = 0
}

ASSIGNED
{
	Spike
	Spike10

	LastISI (ms)
	LastSpike (ms)
	SpikeCount

	SpikeTime

	ExpRand1
	ExpRand2
	ExpRand3
}

INITIAL
{
	Spike = 0
	Spike10 = 0

	LastISI = 0
	LastSpike = 0
	SpikeCount = 0

	CalculateSpikeTime()
	SpikeTime = SpikeTime + Phase
}

BREAKPOINT
{
	SOLVE TriggerSpike
}

PROCEDURE CalculateSpikeTime()
{
	LOCAL i

	UNITSOFF
		if (Noise != 1) : Will use an exponential distribution if Noise <> 1
		{
			if (scop_random() <= InterCorrelation)
			{
				SpikeTime = t + 1e3 * (1 - Noise + Noise * ExpRand1) / Frequency
			}
			else
			{
				SpikeTime = t + 1e3 * (1 - Noise + Noise * exprand(1)) / Frequency
			}
		}
		else : InterCorrelation will not work if Gamma > 3
		{
			SpikeTime = t

			if (Gamma == 3 && scop_random() <= InterCorrelation)
			{
				SpikeTime = SpikeTime + (1e3 / (Frequency * Gamma)) * (ExpRand1 + ExpRand2 + ExpRand3)
			}
			else
			{
				FROM i = 1 TO Gamma
				{
					SpikeTime = SpikeTime + 1e3 * exprand(1) / (Frequency * Gamma)			
				}
			}
		}
	UNITSON
}

PROCEDURE TriggerSpike()
{
	if (t >= SpikeTime)
	{
		Spike = 1
		Spike10 = 10

		LastISI = t - LastSpike
		LastSpike = t
		SpikeCount = SpikeCount + 1

		CalculateSpikeTime()
	}
	else
	{
		Spike = 0
		Spike10 = 0
	}
}