Supplementary Code for "Synaptic Convergence Regulates SynchronizationDependent
Spike Transfer in Feedforward Neural Networks"
Pachaya Sailamul, Jaeson Jang, SeBum Paik
There are two parts for code in this model.
1) The generation of feedforward network with three convergent structures; GaussianGaussian
(GG) model, UniformConstant (UC), and UniformExponential (UE) models. This part was implemented in MATLAB
2) Given the network structure generated in step 1, a feedforward neural network is built with NEURON simulator.
Note that, there is option for "hetereogeneity testing", where activity of the source cells are not homogeneous (phase of each cell is random in normal distribution)
==============================================================
The generation of three convergent structure in MATLAB
==============================================================
Files in this part:
Required Input Files
Cells_position_source_layer1.txt //Position of cells in Source Layer
Cells_position_target_layer2.txt //Position of cells in Target Layer
Main File
Step1_Generate_convergence_connections.m // Main MATLAB script
Supporting Files
func_gauss.m // Return gaussian value of a given distance
GetCellsDistInfo.m // Return information about distribution of cell in a layer; cell position, distance matrix, nearest neighbor distance
GenPhase_random_cntrl.m // (optional) Generate random phase for source cells
Output:
Input/ConvergentInput_GG_SIMCODE[..].txt // Convergence Connection with GG model
Input/ConvergentInput_UC_SIMCODE[..].txt // Convergence Connection with UC model
Input/ConvergentInput_UE_SIMCODE[..].txt // Convergence Connection with UE model
Heterogeneity/Heterogeneity_SIMCODE[..].txt //Phase information for source cells
==============================================================
The model in NEURON simulator
==============================================================
Files in this part:
Required Input Files
Cells_position[..].txt // Source and Target Cells position
Input/ConvergentInput_XX_SIMCODE[..].txt // Convergence Connection with GG, UC, and UE model
Main File
step2_network_simulation.hoc // Main NEURON model and simulation script
Supporting Files
CaT.mod // mod files for Ttype calcium channel (from the NEURON simulator community)
vecevent.mod // mod files for vector stream of events (from the NEURON simulator community)
ranstream.hoc // random stream (from the NEURON simulator community)
CellsTemplate.hoc // cells template
Parameters.hoc // Cells and network parameters list
Output:
SomaVolt_SIMCODE[..].txt // Recorded membrane potential
Soma_i_cap_SIMCODE[..].txt //Recorded membrane current (cap for capacitance)
RecordConnList_SIMCODE[..].txt // Connection list
InputSpkTrain_SIMCODE[..].txt // Input spike trains
==============================================================
Template for input and output text files
==============================================================
1) Input Cell position
 Pattern of Cell position Files

Line#1 : N // # of cell
Line#2 : X_1 Y_1 // Cell#1's position in X, Y coordinate
.
.
Line#N+1 : X_N Y_N // Cell#N's position

 Files in this catagory
a. Cells_position_source_layer1.txt
b. Cells_position_target_layer2.txt
2) Convergence connections information (output of MATLAB code , input for NEURON model)
 Pattern (# of line = # of connections+1, # of column = 4)

Line#1 : #Connections #Layer1 // Total number of Connection , Total number of cells in Layer1
Line#2 : pre post weight delay //Presynaptic cell ID Postsynaptic cell ID Weight of connection Signal transmission Delay 1 2 3 .. cell#N //ID of cells
.
.

 Files in this catagory
a.Input/ConvergentInput_GG_SIMCODE[..].txt
b.Input/ConvergentInput_UC_SIMCODE[..].txt
c.Input/ConvergentInput_UE_SIMCODE[..].txt
3) Phase of source cells
 Pattern (# of line = # of cells)

Line#1 : PHI_1 // Cell#1's phase
Line#2 : PHI_2 // Cell#2's phase
.
.
Line#N : PHI_N // Cell#N's phase

 Files in this catagory
a.Heterogeneity/Heterogeneity_SIMCODE[..].txt
4) Output of recorded vector
 Pattern (# of line = tstop+3, # of column = # of cells)

Line#1 : #E #I tstop 0 .. 0 //#E = number of excitatory cell in the recorded vector, #I = number of inhibitory cell (0 in this model), tstop = run time, 0s were added to match total column of the data
Line#2 : 0 1 2 3 .. cell#N //ID of cells
Line#3 : v_0[0] v_1[0] v_2[0] v_3[0] .. v_N[0] //First recorded value of all the cells
.
.
Line#N+3 : v_0[tstop] v_1[tstop] v_2[tstop] v_3[tstop] .. v_N[tstop] //Last recorded value of all the cells

 Files in this catagory
a.Result/SomaVolt_SIMCODE[..].txt
b.Result/Soma_i_cap_SIMCODE[..].txt
5) Recorded Convergence connections (output from NEURON model)
 Pattern (# of line = # of connections+1, # of column = 4)

Line#1 : #Source #target #Connections tstop //Number of cell
Line#2 : pre post weight delay //Presynaptic cell ID Postsynaptic cell ID Weight of connection Signal transmission Delay 1 2 3 .. cell#N //ID of cells
.
.

 Files in this catagory
a.Result/RecordConnList_SIMCODE[..].txt
6) Recorded input spike train in layer 1
 Pattern (# of line = tstop+3, length = number of spikes)

Line#1 : #E #I tstop //#E = number of excitatory cell in the recorded vector, #I = number of inhibitory cell (0 in this model), tstop = run time[ms]
Line#2 : 0 t_1 t_2 .. //ID of cells, spike location at time t_1, t_2, ... and so on
.
.
Line#N+1 : cellID# t_1 t_2 .. // ID of cells, spike location at time t_1, t_2, ... and so on

 Files in this catagory
a.Result/InputSpkTrain_SIMCODE[..].txt
==============================================================
Advice on running the program
==============================================================
For the first run, nrndll of all the mod files have to be made first by run "mknrndll" and choose the directory of this folder.
