Conductance-based Neural Model of Primary Auditory Cortex Response to Sequences of Tones

From Emcap



by Johan Larsson <>

Computational Neuroscience Group, Universitat Pompeu Fabra

July 2nd 2008

Copyright (c) 2006-2008 All Rights Reserved.

TonoTopicHH Package

What Is The Module?

This module is a flexible platform for simulating a patch of primary auditory cortex (A1) and its response to input of a certain width and strength. It is intended to be used for simulating the response of A1 to sequences of alternating pure tones, and has considerable possibilities for command-line user configuration.

What Are The Inputs/Outputs?

The input is generated in the program and is user-controlled through two parameters, one setting the width (-IS flag, see below) and one setting the amplitude (-R flag, see below) of the input rate. This rate represents the input from the ventral Medial Geniculate Body (MGBv) of the thalamus to A1.

The output of the program is principally the rasters generated by the neurons simulated, across time and spectral space. Additionally, files containing currents and subthreshold conductances in non-firing neurons are saved.

What Are The Parameters?

When you write
./TonoTopicHH -h 
at the command line, the following information is displayed.
Possible input (format: -flag <parameter> [default value]):

-se  <Random seed>                                          [87542     ]
-pr  <Presentation Rate (Hz)>                               [    5     ]
-df  <|B-A| tone distance (%)>                              [    0     ]
-C   <#Columns>                                             [   73     ]
-N   <#Neurons/Column>                                      [   10     ]
-S   <#Synapses/Neuron>                                     [  100     ]
-G   <ThalamoCortical Max. Cond. (gTC)>                     [    1.15  ]
-gR  <Ratio of inhibitory to excitatory gTC value>          [    1.0   ]
-R   <External Input Rate (Hz)>                             [10000     ]
-eqG <gEgICond (0/1; if 1, program sets gIE=gEE & gII=gEI)> [    1     ]
-gEE <Exc.->Exc. Max. Cond.>                                [    0.0   ]
-gEI <Inh.->Exc. Max. Cond.>                                [    0.0   ]
-gIE <Exc.->Inh. Max. Cond. (when gEgICond==1, gIE=gEE)>    [    0.0   ]
-gII <Inh.->Inh. Max. Cond. (when gEgICond==1, gII=gEI)>    [    0.0   ]
-iR  <IcurrRiseFct>                                         [    2.0   ]
-iD  <IcurrDecayFct>                                        [    0.5   ]
-eqN <IequalsE (0/1)>                                       [    1     ]
-b   <spike block (0/1)>                                    [    1     ]
-mTw <ModWhatTC (1:gTC; 2:rates; 3:#syns)>                  [    2     ]
-mTh <ModHowTC (1:Gaussian; 2:Linear; 3:Exponential)>       [    3     ]
-mC  <ModHowIC (1:Gaussian; 2:Linear; 3:Exponential)>       [    3     ]
-Df  <fD (synaptic depression factor)>                      [    0.002 ]
-Dt  <tauD (synaptic depression time constant, ms)>         [  800     ]
-Ds  <steady-state depression start values (0/1)>           [    1     ]
-rU  <rampup (0/1)>                                         [    0     ]
-rD  <rampdown (0/1)>                                       [    0     ]
-IS  <input spread (oct.)>                                  [    0.5   ]
-eS  <intracortical excitation spread (oct.)>               [    1/36  ]
-iS  <intracortical inhibition spread (oct.)>               [    0.5   ]
-td  <tone duration (ms)>                                   [   20.0   ]
-sd  <simulation duration (ms)>                             [  500.0   ]
-o   <#octaves modelled>                                    [    2.0   ]
-P   <file path>                                            [    "./"  ]

This lists all the parameters that are possible for the user to adjust, with their respective default values. If you want to change a value, when calling the program, just add the corresponding flag followed by a space and the new value for that parameter (see example below). Each parameter is explained further in the document ProgramComments.pdf, included in the software package.

What Are The System Requirements?

The module needs to be compiled using a C++ compiler such as g++ (download from or from another mirror site to be found at

Libraries used: iostream.h, cstdio.h, ctype.h, stdlib.h, math.h, MersenneTwister.h, sstream.h, fstream.h, string.h. All are standard except MersenneTwister.h, which is freely available on the web (; © (2002) Richard J. Wagner; original publication: M. Matsumoto and T. Nishimura, "Mersenne Twister: A 623-Dimensionally Equidistributed Uniform Pseudo-Random Number Generator", ACM Transactions on Modeling and Computer Simulation, Vol. 8, No. 1, January 1998, pp 3-30.)

For data analysis, it is convenient but not necessary to have access to Matlab (see How to Use, below).

The module is platform independent.

How To Cite

Montbrió E., Almeida R., Larsson J. and Deco G, A model of the primary auditory cortex response to sequences of pure tones (in preparation)

How To Use

As for using the main program, see below (section Example of Use).

Concerning data analysis,Matlab (© MathWorks Inc.) was used by the author for this purpose. In principle, data analysis can be carried out by free programs such as gnuplot and octave. Many ad hoc Matlab scripts are available upon request, which considerably simplify analysis. The most important ones are included in the software package, along with a description in the file ProgramComments.pdf.

Input File Format

No input file.

Output File Format

All data files are saved as ASCII files, typically with the first column containing the time value, in ms, followed by all other data columns. The only exception to this are the raster files, which are saved in the sparse data format of Matlab (<Time step> <Neuron #> 1), which is read by the spy function. The output files are listed in the file ProgramComments.pdf.

Example Of Use

1: Compile module using g++ (Makefile provided for convenience; just type make, with the Makefile situated in the same directory as the source files).

2: Launch program with parameter values of choice, e.g.,

./TonoTopicHH -gEE 0.075 -gEI 0.025 -G 1.15 -o 6.0 -R 1000.0 -td 50.0 -sd 1000.0

This launches the program with all values retaining their default values, except

gEE = gIE = 0.075 (since default value for gEgICond is 1)
gEI = gII = 0.025 (since default value for gEgICond is 1)
gTC = 1.15
External input: 1000 Hz
#octaves modelled: 6 octaves
Tone Duration: 50 ms
Simulation Duration: 1000 ms

3: Wait for program to terminate.

4: Look at data with program of choice (if Matlab is available, use m-files provided and explained in the software package).