Introduction:
-------------
This is the source code for the model which was used in the paper
"Electrostimulation to reduce synaptic scaling driven progression of
Alzheimer's disease" by Mark Rowan, Samuel Neymotin and Bill Lytton.
Front Comput Neurosci (2014) 8:39
http://dx.doi.org/10.3389/fncom.2014.00039

Abstract:
---------
Cell death and synapse dysfunction are two likely causes of cognitive
decline in AD.  As cells die and synapses lose their drive, remaining
cells suffer an initial decrease in activity.  Neuronal homeostatic
synaptic scaling then provides a feedback mechanism to restore
activity.  This homeostatic mechanism is believed to sense levels of
activity-dependent cytosolic calcium within the cell and to adjust
neuronal firing activity by increasing the density of AMPA synapses at
remaining synapses to achieve balance.  The scaling mechanism
increases the firing rates of remaining cells in the network to
compensate for decreases in network activity.  However, this effect
can itself become a pathology, as it produces increased imbalance
between excitatory and inhibitory circuits, leading to greater
susceptibility to further cell loss via calcium-mediated
excitotoxicity.  Here, we present a mechanistic explanation of how
directed brain stimulation might be expected to slow AD progression
based on computational simulations in a 470-neuron biomimetic model of
a neocortical column.  The simulations demonstrate that the addition
of low-intensity electrostimulation (neuroprosthesis) to a network
undergoing AD-like cell death can raise global activity and break this
homeostatic-excitotoxic cascade.  The increase in activity within the
remaining cells in the column results in lower scaling-driven AMPAR
upregulation, reduced imbalances in excitatory and inhibitory
circuits, and lower susceptibility to ongoing damage.

Usage:
------
To generate data for the figures in the paper, follow the instructions
under 'compiling' (below) then run the relevant commands from the
following list. Be aware that most of the experiments will take a
couple of days to run and will produce large amounts of data (> 2GB)
due to the very long amounts of time being simulated (~44 hours).

Compiling:
----------
Linux: Change to the 'mod' directory and run the command 'mkmod' to
build the necessary .mod files.

Figures:
--------
Figure 5
batchscripts/experiments/0deletionNoscaling.sh
batchscripts/experiments/1AD.sh
python plotavg.py rowanms-data/neurostim/0deletionNoscaling activity noinhib: scale noinhib
python plotavg.py rowanms-data/neurostim/1AD/ activity noinhib: scale noinhib


Figure 6/7
batchscripts/experiments/3ADprosfreq.sh
batchscripts/experiments/3ADproswt.sh
python plotdeletions.py rowanms-data/neurostim/3ADprosfreq
python plotdeletions.py rowanms-data/neurostim/3ADproswt
python plotavg.py rowanms-data/neurostim/3ADprosfreq/proswt0 activity noinhib: scale noinhib
python plotavg.py rowanms-data/neurostim/3ADprosfreq/proswt2 activity noinhib: scale noinhib

Figure 8/9
batchscripts/experiments/4localADprosfreq.sh
batchscripts/experiments/4localADproswt.sh
python plotdeletions.py data/4localADprosfreq
python plotdeletions.py data/4localADproswt
python plotavg.py rowanms-data/neurostim/4loclaADprosfreq/proswt0 activity noinhib: scale noinhib
python plotavg.py rowanms-data/neurostim/4localADprosfreq/proswt2 activity noinhib: scale noinhib

Figure 10
batchscripts/experiments/6testinfo.sh
python plotntes.py rowanms-data/neurostim/6testinfo/proswt2 1
python plotntes.py rowanms-data/neurostim/6testinfo/proswt2 2
python plotntes.py rowanms-data/neurostim/6testinfo/proswt2 3

Figure 11
batchscripts/experiments/7ADinfo.sh
python plotntes.py rowanms-data/neurostim/7ADinfowt/proswt0 1
python plotntes.py rowanms-data/neurostim/7ADinfowt/proswt0 100
python plotntes.py rowanms-data/neurostim/7ADinfowt/proswt2 100
python plotdeletions.py rowanms-data/neurostim/7ADinfowt



Running custom sims:
--------------------
Execute the simulation directly using ./runsim.sh [savepath] [optional args]

  where [optional args] is a list such as "{variable=value
  other_variable=value}" e.g. "{strdef simfilename
  simfilename="stdp_scaling.hoc"}" (which runs STDP sim)


Batch runs:
-----------
To run multiple experiments in a batch on a cluster (e.g. to get
results over various different values of activitytau), create a basic
script in batchscripts and fill in the variable name, values, and
optional arguments. (See the scripts already inside batchscripts for
examples). This is currently set up to use a GridEngine cluster, but
you can edit clusterrun.sh to change cluster settings.

To execute:

  batchscripts/<script>

To run all scripts in a directory:

  run-parts batchscripts/<directory>/


Code hierarchy:
---------------
batchscripts/<script>
 |_ batchcommon
   |_ clusterrun.sh
     |_ runsim.sh
       |_ sim.hoc
         |  sim setup files
         |  alz.hoc

20160921 This version incorporates fixes that allows the model to run
on mac OS X.