Connectivity and synapse weight design methods

This documentation will cover methods and reasons to design connectivity and synapse weights in the simulation.

TPM vs TM models

CARLsim implements a variation of the Tsodyks-Pawelzik-Markram (TPM) synapse model (Moradi & Ascoli, 2019; Moradi et al., 2022) which will be referred to as the TM (Tsodyks and Markram) model (Moradi et. al., 2022; Senn et al., 2001). Through personal correspondence, it was established that part of the work in (Kopsick, 2023) found the TM model produces equivalent results to the TPM model when the same Hippocampome.org site parameters were used in each model. Therefore, this work used Hippocampome.org’s synapse model parameters in CARLsim’s TM model.

Grid cell to interneuron connections

Selecting which connections should occur from grid cells to interneurons (INs) can help control the spacing, positioning, and rotation of grid feilds. Adding grid cell to interneuron connection can help reinforce firing in bump within a rotated grid pattern. Each IN is connected to grid cells in a center-surround (CS) connection distribution. The CS distributions support the firing of bumps in their centers and inhibit firing in their surround regions. Bump firing leads to grid field firing in firing vs. animal location rate map (physical space) plot. Controling bump firing locations through selecting connectivity therefore leads to controling the positions, spacing, and rotations of grid fields.

Selecting bump locations by designing CS connectivity is able to reinforce firing in fields within a rotated grid pattern. This firing helps influence the grid patterns to remain in a formation that fits those fields instead of drifting into another rotation. In addition, a specific desired rotation angle can be set and the one-to-few grid cell to INs connections help sustain that selected angle to persist over simulated time. In the animal data plots, specific rotations of grid patterns have been observed. The one-to-few neurons connected can be selected in a way that helps match the intended rotation observed in the animal data. Selecting which INs are connected can also help reinforce spacing and positioning of fields between each other to reproduce that seen in the animal data.

Some things to keep in mind are adding an amount of IN connections that is within biologically reported levels. The article describes some of the properties associated with these levels such as connectivity found in animals, synapse parameters that modulate the amount of inhibition signaled that is affected by connectivity, and how connectivity may be specific to the dorsoventral axis of the medial entorhinal cortex. A balance is typically intended between advantages gained by adding connections and keeping connectivity within biologically realistic levels.

Programming grid cell to IN connections

The grid cell connections control which CS synapses (ring connection shapes) connections are sent from INs to grid cells. Selecting the rings to synapse with grid cells can help control the spacing of attractor network bumps and rotation of bump grid patterns. Specifying that the ring centers be at the same location that intended bumps should be located in bump grid patterns helps reinforce the way that bump grid patterns occur. A preview of what the rings will look like relative to the grid cell neural layer can be observed with the script scripts/generate_params/plot_weights.m. It is required that a matrix named comb_syn_wts be present in the matlab workspace to run plot_weights.m. This matrix can be generated by using the generate_weights.m script with the variable write_to_csv set to 1 and only_show_plot_preview set to 0 as described below.

Some useful variables in plot_weights.m are:
x_size_in: size of IN neural layer.
x_size: size of grid cell layer.
x_srt: x-axis starting position of centroid.
y_srt: y-axis starting position of centroid.
cent_x: this should match cent_x intended to be used in the simulation.
cent_y: this should match cent_y intended to be used in the simulation.

The function SomeToSomeConnection() in general_funct.cpp automates a process of repeating the grid cell to IN connection in a tiled fashion. The grid pattern being a repeating one makes repeating the connections in this way able to reinforce the pattern. The variables cent_x and cent_y in general_params.cpp set where in the grid cell neural layer the centroids of the CS rings are intended to be positioned. This affects the grid cell to IN connections that are made in the way that each post-synaptic IN neuron will synaptically connect a CS ring back to the grid cell layer. Setting cent_x and cent_y (centroid x,y) can be done in a way that each centroid x,y is a position in a grid pattern that a bump will be intended to be located. There is not a need to specify where every bump in the grid pattern will be located because the attractor network will self-assemble bumps in the grid pattern if they are given guidence of where a few bumps in the grid pattern should be located.

Some example settings for cent_x and cent_y are located in the general_params.cpp files in the project directories /scripts/settings_archive/. The different project directories provide examples of different grid scales and simulation versions with different average grid cell firing rates. These examples can be used with CS synaptic distributions of those projects created with generate_weights.m that will be explained later. The setting in project directories were ones used in simulations in the article.

The variable use_saved_g_to_i_conns in general_parms.cpp controls if grid cell to IN connections should be recalculated using SomeToSomeConnection() (set as 0) or if they should be loaded from a file such as grc_to_in_conns.csv (set as 1). Recalculating them takes additional computational time. Recalculations should be done if the values in cent_x and cent_y change. Possibly recalculations should be done if changes are made in the csv file produced by generate_weights.m (typically synapse_weights.csv; described later). If no changes such as those are made than use_saved_g_to_i_conns can be set to 1 and time is saved when running the simulation.

A factor to consider when designating which grid cell to IN connections are present is the total amount of inhibition signaling created. Some testing of different settings may be needed to find such a balance. Creating too many CS rings for each grid cell by specifying many connections with cent_x and cent_y can cause a high amount of inhibition to be present. This can be challenging to counteract with additional excitatory input from a source such as the variable dir_to_grc_g_fast that specifies the conductance constant (g) of synaptic connections from conjunctive cell input onto grid cells. Placing dir_to_grc_g_fast at too high a level can be beyond levels that fit with those reported in Hippocampome.org’s synaptic physiology page. A balance of inhibition and excitation that supports stable bump activity and with within biological levels reported in animal studies is a common goal for choosing parameter values.

Another factor to consider in setting grid cell to IN connections is if they suffiently support bump positioning for an intended grid pattern. Some testing may be needed to find how specifying certain bump positions through the grid cell to IN connections in cent_x and cent_y are able to create more or less stable bump activities. Running a simulation through some different movement functions specified in the “movement paths” documentation can test how stable the bumps are under different movement conditions.

Typically it can be useful to avoid the CS rings overlapping too much. This can be previewed in plot_weights.m. Overlapping can potentially cause a conflict in directing the movement of bumps over time. Rings that only have relatively small synapse weights overlapping compared to higher weights can potentially not cause issues because their total weights that combine in the overlap can be less than near by higher weights. It can in general be useful to have rings close enough to each other to avoid gaps between them and their neighboring rings in the direct path angle between centroids of the rings. The attractor network may automatically self organize to produce additional unwanted bumps in the gap space if it is large enough. Overall, it is typically useful for the rings to have a balance of being close to each other but not too close. Examples of possible configurations can be seen using the example settings data provided.

Comparison to other studies

A study has reported possibly alternative grid cell to IN connectivity than what is used in this work. That study used a technique of spike-time cross-correlograms from simultaneously electrophysiologically recorded neurons to infer synaptic activity (Buetfering et al., 2014). 26 of 211 grid cell to IN pairs recorded were indicated to have synaptic connections. This amount of connections should be interpreted with the understanding that 22 connections out of 66 of the pairs were on the same tetrode. This makes those pairs potentially higher in likelihood to have connections than more distant neurons in 3D space. The simulation in this work included an average of ~16 grid cell to IN connections at most, which is lower than indicated by the study, but it includes both local and further distant connections in 3D space. Future work in animal experimentation and simulations can advance investigations into what amount of connectivity would be useful to include. The study also describes some possible issues with INs providing phase-dependent signaling to grid cells and methods related to those described in (Dunn et al., 2017) could be added as future work to the model as an update for that.

Programming CS connections

The script generate_weights.m can be used to build CS synaptic weights from INs to grid cells. Any connection with a weight above 0 will be included as a connection in the simulation, and 0 weight synapses will not be added as connections. One element of the simulation that these CS rings will affect is the size that each attractor network bump will be.

Examples of generate_weights.m settings that can be used for different grid scales and to aid in creating different average grid cell firing rates are found in the project folders in the directory /scripts/settings_archive/. These are settings that were used to produce results in the article.

Some key parameters control important aspects of the connectivity design script. They are:
write_to_csv: toggle writing the csv file (e.g., synapse_weights.csv) that can be used in the simulation. Selecting this option will take additional computational time.
only_show_plot_preview: create a preview of what the connectivity and weights look like in a plot.
grid_size_ref: length of one axis (x- or y-axis) of the interneurons neural layer. This assumes the neural layer will be square.
grid_size_target: length of one axis (x- or y-axis) of the grid cell neural layer. This assumes the neural layer will be square.
start_x_shift: the starting x-axis coordinate for the CS ring’s centroid.
start_y_shift: the starting y-axis coordinate for the CS ring’s centroid.
r_s: CS ring scale. This is an overall scale adjustment.

The CS ring is constructed by a difference in gaussians equation. Specific parts of the equation (parameters) can be adjusted to affect the properties of the ring. Some key parameters are:
p4: ring center size adjustment parameter
p8: ring center size adjustment parameter 2
p7: ring surround size adjustment parameter
p16: ring surround size adjustment parameter 2
There are two parameters for center and surround adjustments, and each of the parameters may adjust the shapes in at least a little different ways. When fine tuning ring shapes these parameters can be used together.

These parameters listed above were the main ones used to create different CS rings for versions of the simulation used in the article.

The connectivity of the CS synapse distribution created by the script can be found using methods described in the “finding interneuron connectivity” section of the “plotting and analyzing results” documentation. This can be used to ensure that connectivity created is within levels that fit with connectivity reported in animal studies. Trying to use the created csv file with the simulation in a test movement function (e.g., move_straight) can test how the generated CS distribution performs.

If particularly large CS rings are wanted, for instance, in large grid scale simulation settings, then a relatively larger IN layer size may be needed than compared to smaller grid scales. For example, in the article, typically a IN layer size of 60x60 neurons was used for large grid scale settings and 50x50 neurons for other grid scale settings. A reason for the larger grid scale being needed is that the way the IN rings tile around the edges of the grid cell layer can be incomplete without a large enough IN layer.

References:

Buetfering, C., Allen, K., & Monyer, H. (2014). Parvalbumin interneurons provide grid cell–driven recurrent inhibition in the medial entorhinal cortex. Nature Neuroscience, 17(5), Article 5. https://doi.org/10.1038/nn.3696

Dunn, B., Wennberg, D., Huang, Z., & Roudi, Y. (2017). Grid cells show field-to-field variability and this explains the aperiodic response of inhibitory interneurons (arXiv:1701.04893). arXiv. https://doi.org/10.48550/arXiv.1701.04893

Kopsick, J. D., Tecuatl, C., Moradi, K., Attili, S. M., Kashyap, H. J., Xing, J., Chen, K., Krichmar, J. L., & Ascoli, G. A. (2023). Robust Resting-State Dynamics in a Large-Scale Spiking Neural Network Model of Area CA3 in the Mouse Hippocampus. Cognitive Computation. 15, 1190–1210. https://doi.org/10.1007/s12559-021-09954-2

Moradi, K., & Ascoli, G. A. (2019). A comprehensive knowledge base of synaptic electrophysiology in the rodent hippocampal formation. Hippocampus, 30(4), 314–331. https://doi.org/10.1002/hipo.23148

Moradi, K., Aldarraji, Z., Luthra, M., Madison, G. P., & Ascoli, G. A. (2022). Normalized unitary synaptic signaling of the hippocampus and entorhinal cortex predicted by deep learning of experimental recordings. Communications Biology, 5(1), 1–19. https://doi.org/10.1038/s42003-022-03329-5

Senn, W., Markram, H., & Tsodyks, M. (2001). An Algorithm for Modifying Neurotransmitter Release Probability Based on Pre- and Postsynaptic Spike Timing. Neural Computation, 13(1), 35–67. https://doi.org/10.1162/089976601300014628