Cortical Populations -------------------- The population will all be of the same type, for example, "ux01" or "ui01" for generic excitatory and inhibitory units. This will determine how a units inputs are processed to produced its output. The pre-computed (PC) inputs (from ON and OFF LGN cells) include the scale, bias, and noise for *ifc_ex_* params. **The IFC params for inhibitory scale, bias, and noise are currently not used,** however, perhaps the bias and the noise could be used to form a PC inhibitory conductance? The PC inputs are combined with the dynamic (D) inputs in the 'pop_util_deriv_01' routine. Some excitatory units will have two compartments. The transfer resistance is set to be 15.4 nS = 65 MOhm (Larkum et al. 2004, Cerebral Cortex, used 65 MOhm). - **ifc_ex_g_tran** - (0 default) transfer conductance. If > 0, there will be a dendritic compartment, and NMDA can be used. If 0, then there will be no dendritic compartment, and no NMDA can be used. Each excitatory cell has the following conductances: - **AMPA** - EPSC is given by the following parameters for alpha functions: - pop_ex_psc_tau_ex - onto ex cells - pop_ex_psc_amp_ex - This will set the amplitude of the AMPA conductance, and that for NMDA will be scaled according to 'nmda_frac'. - **NMDA** - (from Lauritzen et al., 2001; see also Carmignoto and Vicini 1992; Lester et al. 1990). Channels were 35.5% open at spike threshold, 52.5mV (Krukowski and Miller, 2001). Used 90% NMDA integrated current (Krukowski and Miller, 2001). To model the NMDA unitary conductance shape of Lauritzen et al. (2001), three alpha-functions are summed (see 'COMPARE_ALPHA_DBL_EXP' in 'test0.c'). The parameters are: - nmda_alpha_1 - 0.09 (time to peak = 1/alpha msec) - nmda_alpha_2 - 0.025 - nmda_amp_2 - 0.8 - nmda_alpha_3 - 0.008 - nmda_amp_3 - 0.1 The shape of this function is then scaled so that the fraction of integrated current (Krukowski and Miller, 2001, used 90%), NMDA/AMPA, is 'nmda_frac' for a cell clamped at the spike threshold. **A separate value, 'lgn_nmda_frac' specifies the fraction for thalamocortical synapses.** Apparently, increasing 'lgn_nmda_frac' adds to the NMDA input but keeps the same amount of AMPA input (as opposed to trying to keep the total excitatory conductance equal while only adjusting the relative fraction). Thus, changing the NMDA fraction from say 80% to 0 will reduce the total amount of excitatory input. The voltage dependence of the NMDA is given by Jahr and Stevens (1990) Equation 4a, whereas their Eqn 4c does not seem to be a very good approximation. - **LEAKAGE** - **ADAPTATION** Excitatory units will recieve inputs from the LGN via AMPA/NMDA excitatory conductances. Inhibitory units will recieve only AMPA input. The precomputed LGN NMDA input has the same scaling as the AMPA input, but **the bias and the noise are added only to the AMPA input** because AMPA and NMDA are ultimately added together (after NMDA is scaled as a function of V). **Thomson and Deuchars, 1994** cite Salt and Herring (1991) for the idea that LGN->CTX_E is non-NMDA. Background input rates ********************** Poisson activity can be added to the excitatory and inhibitory input conductances for the cortical units. The following examples show how to set the background rates to a single value for the entire population ("ex" here): - **pop_ex_bg_ex_rate** [rate] - (0.0 default) - spikes/sec arriving via the "ex" conductance - **pop_ex_bg_ex_amp** [amp] - (1.0 default) - EPSG amplitude relative to *pop_ex_psc_amp_ex* - **pop_ex_bg_in_rate** [rate] - (0.0 default) - spikes/sec arriving via the "in" conductance - **pop_ex_bg_in_amp** [amp] - (1.0 default) - EPSG amplitude relative to *pop_ex_psc_amp_in* Correlated activity between a pair of cells (or several non-overlapping pairs) can be achieved using "CUSTOMIZE" commands. Connectivity - ********************** Connections between populations of cells are specified using the **input** object. The following types of inputs exist: - **regular** - inputs between cortical populations - **lgn_on_off** - inputs from LGN population
(See section below on LGN to CTX). - **bg** - background spikes - **ex_rate** [rate] - (0.0 default) - spikes/sec arriving via the "ex" conductance - **ex_amp** [amp] - (1.0 default) - EPSG amplitude relative to *pop_ex_psc_amp_ex* - **in_rate** [rate] - (0.0 default) - spikes/sec arriving via the "in" conductance - **in_amp** [amp] - (1.0 default) - EPSG amplitude relative to *pop_ex_psc_amp_in* **Example**:: type bg # Background input spikes ex_rate 100.0 # spikes/s ex_amp 4.0 # relative to _psc_amp_ex in_rate 200.0 # spikes/s in_amp 2.0 # relative to _psc_amp_in . Writing and Reading from files ****************************** Some patterns of synaptic connections specified by <input> are time consuming to compute, and are best computed once and then read from a file during repeated use of the model. Some input types can have associated connectivity files (.conn), which allow connection patterns to be stored to be read later. This is configured using the top-level parameters: - **mod_conn_rw** - "read", "write", or "none" (default) - **mod_conn_dir_r** - directory path prefix for *file_read* - **mod_conn_dir_w** - directory path prefix for *file_write* Set **mod_conn_rw** to "write" or "read" to write or read connections, respectively. You **cannot** do both at once. Set it to "none" (the default), to do neither. In addition to setting these top-level values, the following must be used within any relevant model inputs: :: type regular ... file_write conn/local/e2i.conn # Writes only if 'mod_conn_rw' is "write" file_read conn/global/e2i.conn # Reads only if 'mod_conn_rw' is "read" ... The value of *file_write* is added to any prefix specified using *mod_conn_dir_w*, and likewise with *file_read*. In this example, connections would be written to one directory by setting *mod_conn_rw* to "write" and then read back from a different directory with the "read" setting. Connectivity - LGN to CTX ************************* The routine *mod_conn_layer_gabor_map* is called to set the connections from the LGN to cortical cells. Currently, this routine calls by default the routine *mod_conn_gabor_02* to pick the specific connections. mod_conn_gabor_02 ~~~~~~~~~~~~~~~~~ - Create a 2D Gabor function, called **p**. - Take the absolute value of **p** - Scale **p** to have a maximum value of 1. - Call the routine *mod_conn_meth_02*, sending **p** Make a set, **G**, of all grid points for which **p** is greater than *eps* (a small probability value). Choose at random with replacement from **G** the specified number of inputs. If any input is chosen more times than allowed (specified by *..._maxrep*), then disregard this input, and choose another in its place. Gabor function params _____________________ - sf 1.00 # (cyc/deg) SF - sd_orth 0.25 # (deg) Gaussian SD for Gabor RF, orthog to ori - sd_par 0.43 # (deg) Gaussian SD for Gabor RF, parallel to ori - phseed 6577 # for chosing phase (random in 1 of 4 phases) - seed 1777 # for chosing DOG sampling - nsamp 200 # number of samples to select as inputs - maxrep 1 # number of times any one connection can be sampled - eps 0.05 # no connections where profile < this frac of max - balance 1 # 0-do not balance ON/OFF, 1-balance ON/OFF - cell_condition all # "all", "0", "1", "2" ... E.g., cone type Gabor function params - phase ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - phtype 0 # 0-constant for all in z-axis, 1-regular steps - ph0 0 # initial phase (phtype 1) - phstep 90 # step by this phase (phtype 1) Connectivity - CTX I to E (and E-E, and I-I) ******************************************** The connections from inhibitory to excitatory cortical cells are made in a correlation-based fashion. There are several algorithms for doing this, and the algorithm can be selected using the parameter *conn_i2e_algorithm* below. Parameters ~~~~~~~~~~ - **conn_i2e_algorithm** - values are listed below (0 is default) - 0 (*mod_conn_corr_on_off*) - pointwise correlation - 1 (*mod_conn_corr_on_off_01*) - convolve sampling points (1's for ON, and -1's for OFF) with the center Gaussian of the DOG to create masks for both E and I RFs. The correlation metric is the sum of the products of the RF masks. The distribution of all negative values is formed. The values are scaled so that the mean plus 2 SDs is set to have weight 1. Any higher values are set to 1. Any values lower than **conn_i2e_minw** are set to 0. - **conn_i2e_minw** - Do not make synaptic connections if the weight would be below this value. This can significantly lower the number of I->E contacts, and may speed up the model. - **conn_i2e_prob** - Of the set of valid weights, choose connections with this probability (Default 1.0). - **conn_i2e_seed** - Randomization seed for i2e connections, used only when conn_i2e_prob < 1.0 (Default 1880). - **conn_e2e_algorithm** - (-1 default, no connections) 1=connections - **conn_e2e_...** - See parameters above for *conn_i2e_*... - **conn_e2i_algorithm** - (-1 default, no connections) 1=connections - **conn_e2i_...** - See parameters above for *conn_i2e_*... Connectivity - "distrib" ************************ The "distrib" object defines the distribution of connections between cells in layers. Below is a list of values that can be used for the value of **type** within the distrib. **NOTE** there appears to be an inconsistency in the placement of the **file** parameter, because it appears for some 'distrib' types below, but not for 'ori_dist' (where it apparently appears in the 'input' object. This should be resolved. ori_dist ~~~~~~~~ - **cdist** - (um) SD of Gaussian weighting function (max is 1) in orientation. Set to any negative value for SD infinity (i.e., no distance constraint). [-1.0 default] - **cori** - (deg) SD of Gaussian weighting function (max is 1) in cortical distance. Set to any negative value for SD infinity (i.e., no orientation constraint). [-1.0 default] - **ori_mean_flag** - 0 - [default] orientation of the post-syn cell is the reference - 1 - add an offset to the orientation of the post-syn cell - 2 - use a fixed, absolute orientation as the reference - **cori_offset** - (deg) used only if **ori_mean_flag** is 1 - **cori_mu** - (deg) used only if **ori_mean_flag** is 2 - **minw** - (0..1) make no synapses with weights below this threshold [0.0 default] - **normw** - (synapses) Normalize the total of all weights to this number of synapses [0.0, default, no normalization] - **prob** - () probability of making a connection [1.0 default] - **seed** - (non-zero int) randomization seed for applying 'prob' [23138 default] - **self** - (0/1) 0-disallow connection to self [1 default] corr_lgn ~~~~~~~~ - **file** - (file name) read inputs from file, ignoring parameters here. Comment this out to disable. - **algorithm** - (0,1,...) strategy for picking random connections. Only '1' works now. [1 default] - **minw** - (0..1) make no synapses with weights below this threshold [0.0 default] - **cdist** - (um) Cutoff distance - no synapses beyond this distance; ignored if less than or equal to zero [0 default]. - **prob** - () probability of making a connection [1.0 default] - **seed** - (non-zero int) randomization seed for applying 'prob' [23138 default] - **corr_sign** - (1) sign of correlation: 1-positive, -1-negative [1 default]. - **normw** - (synapses) Normalize the total of all weights to this number of synapses [0.0, default, no normalization] gabor_mask ~~~~~~~~~~ - **file** - (file name) read inputs from file, ignoring parameters here. Comment this out to disable. - **mask_pre_pop** - name of LGN layer, e.g., 'rgc' or 'lgn' [exit] - **sf** - (cyc/deg) [exit] - **sd_orth** - (deg) [exit] - **sd_par** - (deg) [exit] - **cdist** - () [exit] - **minw** - () [exit] - **seed** - () [exit] - **prob** - () [exit] - **normw** - () [exit] binoc_mask ~~~~~~~~~~~ This implements a Gabor mask like 'gabor_mask', but allows binocular inputs with a disparity. - **file** - (file name) read inputs from file, ignoring parameters here. Comment this out to disable. - **disp_x** - (pix) [0.0] - **disp_y** - (pix) [0.0] - **sf** - (cyc/deg) [exit] - **sd_orth** - (deg) [exit] - **sd_par** - (deg) [exit] - **cdist** - () [exit] - **minw** - () [exit] - **seed** - () [exit] - **prob** - () [exit] - **normw** - () [exit]