This is the readme for the models associated with the paper:
Munro E, Borgers C (2010) Mechanisms of very fast oscillations in
networks of axons coupled by gap junctions. J Comput Neurosci
These model files were contributed by Erin Munro
ecmun at bu.edu
Example build and run: Under linux an executable can be built in the
5_compartment_model folder with the following command:
gcc -lm Traub1999_5comp.c CA3pyramidal_axon.c cell.c gap_junction.c \
my_math.c connections.c poisson_stim.c -o run.exe
For code runnability a test can be started with a command like
./run.exe -V -65 -60 -gj 10 10.1 -seed 1 10 -run_time 1 -stim_stop 0.5
(this is only for demonstration of the format of the command)
Details about the model files and parameters are provided below.
5_compartment_model:
This folder contains all the code for the 5-compartment axon
model. The model is written in C, but uses an object-oriented
style. The axon model is contained in CA3pyramidal_axon.c, which is
the 5 axonal compartments from Traub et al. (1999) with a fixed
somatic voltage. The axon uses the framework from cell.c, where you
can make compartment connections and add currents. The two currents
that can be added are gap junctional currents (gap_junction.c) and
external Poisson stimulation (poisson_stim.c).
Traub1999_5comp.c simulates the large network model of an axonal
plexus using the axon from CA3pyramidal_axon.c and the same network as
Traub et al. (1999) (implemented in connections.c). It takes the
following arguments:
-V V_Sl V_Su: run simulation for somatic voltages V_Sl to V_Su (0.2 mV
between each voltage)
-gj g_gjl g_gju: run simulation for gap junction conductances g_gjl to
g_gju (0.1 nS between each conductance)
-seed seedl seedu: run simulation for seeds seedl to seedu (seeds 1-10
used in Munro & Borgers (2010)
-run_time: length of simulation in ms
-stim_stop: time to stop Poisson stimulation in ms
For each (V_s, g_gj) pair, it prints out a data file that is readable
into MATLAB as a matrix. The first column gives the time and each
subsequent column gives the voltage (in mV) of an axon. Note, not all
calculated times are listed in this matrix for efficiency.
graph_refractory_test.c simulates the small network model and outputs
the time in between the two stimulations (delta) along with the firing
times of axons 0, 1, and 2 (1-3 in Munro & Borgers (2010)). It takes
the following arguments:
-V V_Sl V_Su: run simulation for somatic voltages V_Sl to V_Su (0.2 mV
between each voltage)
-gj g_gjl g_gju: run simulation for gap junction conductances g_gjl to
g_gju (0.1 nS between each conductance)
-delta deltal deltau: run simulation for delta values deltal to deltau
(dt=0.0025 ms between each delta)
Traub1999_reproduction:
This folder contains our implementation in C of the model for figure
12 in Traub et al. (1999). The CA3 pyramidal cell model is in
traub69.c. The network is implemented in connections.c. run_traub.c
puts these together to run the full simulation. The output is printed
in data files readable by MATLAB as matrices. Each data file contains
500 ms of data. The first column stands for time. Columns 2 and 3
stand for the voltages of the soma and second-to-last axonal
compartment of the cell 1. Likewise, all subsequent columns list the
voltages of the soma and then second-to-last axonal compartment of
each cell in order. Note, not all calculated times are printed in
these files for efficiency reasons.
cellular_automata:
This folder contains the MATLAB codes for the two modified cellular
automata to model noise and re-entrant activity from the axonal
plexus. The file conn.out contains the network generated for the
models in C (all axonal plexus simulations and the Traub 1999
reproduction use this network).
CA_sol_double.m contains the general cellular automaton to model
noise, and run_CA_double_exp.m runs the experiment to mimick noise.
CA_sol_ref.m contains the general cellular automaton to model
re-entrant activity, and run_CA_ref_exp.m runs the experiment to
mimick re-entrant activity with various refractory periods for
4-connected cells.
MATLAB_files:
Here are some MATLAB files that were used to analyze the data,
including analysis on large random networks as well as processing of
data from the 5-compartment model.
cconn2mconn.m - converts connections network generated in C to cell
array readable by other MATLAB files
cluster_placement.m - arranges cells according to cluster size
conn_analysis.m - prints out brief synopsis of properties of network,
and returns the clusters within the network
count_4_conn_neighbors.m - counts down stream neighbors of 4-connected
cells to determine "typical" gap junctional load
find_cycles.m - gives an underestimate of the number of cycles going
through a cell
freq.m - generates the power spectrum and plots the results
remove_cells.m - returns a modified network where all connections to
4-connected cells are removed
spike_failures.m - lists propagations failures (and successes) in a
given data set
spike_timing.m - lists the spike times from a given data set and plots
a rastergram