<< 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:
     V          -71.8133
     hhs        0.98786
     nns        2.457e-02
     bbs        0.203517
     zzs        1.41e-03
     s_AMPA     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 V initial condition across the network by altering the .setup file.

zca.setup:
Network zca.net                            
Dt 0.05                                    
Print Step Size 1                         
Output V hhs nns bbs zzs s_AMPA              
Experiment control 5                       
Change V = 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 V 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
V       -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_AMPA  0               -0      0               0

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

Here are plots of neurons #7 and #9 using:

> nne_plotPair zca_raster.setup 7 9  


zca_raster_7_9.png
Here is the average V across all the neurons that was saved in the network.txt file:


> nne_plotAverageNeurons zca_raster.setup

zca_raster_averages.png
Finally, here is the spike raster for the whole set of neurons that was saved in raster_V.dat:

> nne_plotRaster zca_raster.setup

zca_raster3.png

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_connected.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
     V          -71.8133
     s_AMPA     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_connected.setup:
Network zca_connected.net                                    
Dt 0.05                                    
Print Step Size 1                         
Output V
Output On Network: V
Raster: V 7.0
Experiment unconnected 2 control 2                       
Change V = 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:

zca_connected.png
zca_connected_average.png


zca_connected_raster.png

>> Tutorial #5. Adding Additional Types of Neurons to a Network

<< Main Manual