<< Main Manual 

Tutorial #4. Creating Larger Networks and Introducing Parameter Heterogeneity and Variable Connectivity

This tutorial assumes that you have completed Tutorial #3.

Creating a Larger Network with Heterogeneous Parameters

Now, we are interested in creating a much larger network of CA1 neurons. This can be achieved by generating a stub of zca.net as before and altering the beginning of the file as follows: 

zca.net:
Neuron ID:   1-50
Neuron Name: zca
   Excitatory Connections To:

     Initial conditions:
     VVs        -71.8133
     hhs        0.98786
     nns        2.457e-02
     bbs        0.203517
     zzs        1.41e-03
     s          0

     Associated Variable Values:
     Cm         1
     Iapp       0.661914
     VK         -90
     VL         -70
     VNa        55
     gA         1.4
     gKdr       6
     gL         5.e-02
     gNa        35
     gNaP       0.3
     gZ         1
     gsyn       1
     phi        10
     pms        3
     pns        4
     sigmaa     20
     sigmab     -6
     sigmah     -7
     sigmak     7
     sigmam     9.5
     sigman     10
     sigmap     3
     sigmas     -2
     sigmaz     5
     t_tauh     -40.5
     t_taun     -27
     tauBs      15
     tauZs      75
     taus       15
     thetaa     -50
     thetab     -80
     thetah     -45
     thetam     -30
     thetan     -35
     thetap     -47
     thetas     -10
     thetaz     -39

This will clone the same neuron 50 times in the network and not add any connectivity between the neurons. If we run a simulation of this network, we will see that each neuron will look the same because of the same initial conditions and parameters. To make this more interesting, we can add variation to the VVs initial condition across the network by altering the .setup file.

zca.setup:
Network zca.net                            
Dt 0.05                                    
Print Step Size 1                         
Output t VVs hhs nns bbs zzs s               
# Experiment control 5                       
Change VVs = gauss(-70.0, 5.0)

In this case, we commented out the Experiment directive because we want to confirm that the network is being imported as expected. Run the simulation as before and now look at the zca/final.net file. NeuronetExperimenter expanded the .net file to be more consistent with what we have been using (i.e., listing every neuron and its parameters individually). The VVs initial condition is also altered to be approximately -70 as we indicated in the .setup file.

A useful feature for exploring what statistics the network has across the set of neurons can be found in the autogenerated file zca/final.stats (see below).

Excerpt of zca/final.stats:
Number of Neuron Types: 1
For neurons named zca
Number: 50
Inbound Connections:
name            ave     std     min     max
Excitatory      0       -0      0       0
Inbound Connections Latency:
name            ave     std     min     max
Excitatory      0       -0      0       0
Outbound Connections:
name            ave     std     min     max
Excitatory      0       -0      0       0
Outbound Connections Latency:
name            ave     std     min     max
Excitatory      0       -0      0       0

State Variables:
name    ave             std     min             max
VVs     -69.7967        5.36112 -79.8999        -49.5703
hhs     0.98786         0       0.98786         0.98786
nns     2.457e-02       0       2.457e-02       2.457e-02
bbs     0.203517        0       0.203517        0.203517
zzs     1.41e-03        0       1.41e-03        1.41e-03
s       0               -0      0               0

As expected, the VVs across the network has a mean (ave) of approximately -70 and and standard deviation (std) of ~5 as indicated by the blue text.

When running large simulations, it is often desirable to minimize the output of specific neurons while getting a more general understanding of the behavior of the network. Update the .setup file to include the following in red, but note the comments in blue.

zca.setup:
Network zca.net                                    
Dt 0.05                                    
Print Step Size 1                         
Output VVs                                 # We just output the VVs for each of the 50 neurons to save disk space
Output On Network: VVs                     # Also, average the VVs across the network and output to network.txt
Raster: VVs 7.0                            # Generate a raster diagram using the VVs to determine when a change >7 mV occurs
Experiment control 1
                      
Change VVs = gauss(-70.0, 5.0)

Here are plots of neurons #1 and #3.

tut4_unconnectedNeurons
Here is the average VVs across all the neurons that was saved in the network.txt file:
averageVVsUnconnected
Finally, here is the spike raster for the whole set of neurons that was saved in raster_VVs.dat.
unconnectedRaster

Adding Variable Connectivity to the Network Using an Adjacency Matrix

Now we will connect the neurons with excitatory connections similar to Tutorial #2. Rather than manually specifying the neuronal connections as we did in that tutorial though, we will direct the software to important the connections from an adjacency matrix.

First, save the randRand50-5-directed2.txt file into your simulations working directory. There are 50 rows and 50 columns mapping to each of the 50 neurons. A 1 indicates that the neuron indicated by the row number is connected to the neuron indicated by the column number, while 0 indicates the absence of a connection to that neuron.  


To use the adjacency matrix, we need to update our zca.net file once again with the red text:

zca.net:
Neuron ID:   1-50
Neuron Name: zca
Excitatory Connections To:
   (1-50,0.0,"randRand50-5-directed2.txt")

     Initial conditions:
     hhs        0.98786
     nns        2.457e-02
     bbs        0.203517
     zzs        1.41e-03
     VVs        -71.8133
     s          0

     Associated Variable Values:
     Cm         1
     Iappx      0.661914
     VK         -90
     VL         -70
     VNa        55
     gA         1.4
     gKdr       6
     gL         5.e-02
     gNa        35
     gNaP       0.3
     gZ         1
     gsyn       1
     phi        10
     pms        3
     pns        4
     sigmaa     20
     sigmab     -6
     sigmah     -7
     sigmam     9.5
     sigman     10
     sigmap     3
     sigmas     -2
     sigmaz     5
     t_tauh     -40.5
     t_taun     -27
     tauBs      15
     tauZs      75
     taus       15
     thetaa     -50
     thetab     -80
     thetah     -45
     thetam     -30
     thetan     -35
     thetap     -47
     thetas     -10
     thetaz     -39
     xLocation  0
     yLocation  0
     zLocation  0


Also, since we now have 5 presynaptic connections per neuron, we should scale down our gsyn by a factor of 5 to get similar results to what we were observing in Tutorial #2.

zca.setup:
Network zca.net                                    
Dt 0.05                                    
Print Step Size 1                         
Output VVs
Output On Network: VVs
Raster: VVs 7.0
Experiment unconnected 2 control 2                       
Change VVs = gauss(-70.0, 5.0)
Change gsyn /= 5.0

As you can see, we also added one second of unconnected time during the simulation to see how this effected the network. After that, we can run the simulation in the usual manner, and view the results:

tut4_connectedNeurons

averageVVsConnected
connectedRaster

<< Main Manual