Prosthetic electrostimulation for information flow repair in a neocortical simulation (Kerr 2012)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:141505
This model is an extension of a model ( http://modeldb.yale.edu/138379 ) recently published in Frontiers in Computational Neuroscience. This model consists of 4700 event-driven, rule-based neurons, wired according to anatomical data, and driven by both white-noise synaptic inputs and a sensory signal recorded from a rat thalamus. Its purpose is to explore the effects of cortical damage, along with the repair of this damage via a neuroprosthesis.
Reference:
1 . Kerr CC, Neymotin SA, Chadderdon GL, Fietkiewicz CT, Francis JT, Lytton WW (2012) Electrostimulation as a prosthesis for repair of information flow in a computer model of neocortex. IEEE Trans Neural Syst Rehabil Eng 20:153-60 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Neocortex;
Cell Type(s): Neocortex L5/6 pyramidal GLU cell; Neocortex L2/3 pyramidal GLU cell; Neocortex V1 interneuron basket PV GABA cell; Neocortex fast spiking (FS) interneuron; Neocortex spiny stellate cell;
Channel(s): I Chloride; I Sodium; I Potassium;
Gap Junctions:
Receptor(s): GabaA; AMPA; NMDA; Gaba;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Activity Patterns; Deep brain stimulation; Information transfer; Brain Rhythms;
Implementer(s): Lytton, William [bill.lytton at downstate.edu]; Neymotin, Sam [Samuel.Neymotin at nki.rfmh.org]; Kerr, Cliff [cliffk at neurosim.downstate.edu];
Search NeuronDB for information about:  Neocortex L5/6 pyramidal GLU cell; Neocortex L2/3 pyramidal GLU cell; Neocortex V1 interneuron basket PV GABA cell; GabaA; AMPA; NMDA; Gaba; I Chloride; I Sodium; I Potassium; Gaba; Glutamate;
/
neuroprosthesis
README
infot.mod *
intf6_.mod *
intfsw.mod *
misc.mod *
nstim.mod *
staley.mod *
stats.mod *
vecst.mod *
batch.hoc
boxes.hoc
bsmart.py
col.hoc
comparecausality.py
comparerasters.py
declist.hoc
decmat.hoc *
decnqs.hoc *
decvec.hoc
default.hoc *
drline.hoc *
filtutils.hoc
flexinput.hoc
grvec.hoc
infot.hoc *
init.hoc
intfsw.hoc
labels.hoc
local.hoc *
misc.h *
mosinit.hoc
network.hoc
nload.hoc
nqs.hoc
nqsnet.hoc
nrnoc.hoc
params.hoc
pyhoc.py
ratlfp.dat *
run.hoc
runsim
setup.hoc *
simctrl.hoc *
spkts.hoc *
staley.hoc *
stats.hoc *
stdgui.hoc *
syncode.hoc *
updown.hoc *
xgetargs.hoc *
                            
#!/bin/bash
# This program runs the neuroprosthesis model.
#
# For more information, please contact Cliff Kerr on
# cliffk@neurosim.downstate.edu
# 
# Version: 2011sep28


# User-configurable options
cort_or_thal=1 # cortical (1) or thalamic (2) damage/prosthesis 
modelsize=1 # Sets the number of cells in the model. The paper used modelsize=10, but this takes up a lot of RAM and is quite slow.
simduration=20e3 # How many ms to run the model for. The paper used simulationtime=90e3, but this is also quite slow.
basefilename="neuropros" # Choose the base name of the files to output

tic=`date +%s` # Get current time, to check how long the simulation takes


# Save sim data
## First, input arguments
echo "~~~~~INPUT ARGUMENTS~~~~~" > $basefilename-sim.txt; echo "runsim $*" >> $basefilename-sim.txt # Save input arguments
for i in 1 2 3 4 5; do echo "" >> $basefilename-sim.txt; done # Make space
## Next, this file
echo "~~~~~RUNSIM~~~~~" >> $basefilename-sim.txt; cat runsim >> $basefilename-sim.txt # Save this file
for i in 1 2 3 4 5; do echo "" >> $basefilename-sim.txt; done # Make space
## All hoc files
for file in *.hoc
	do echo "~~~~~${file}~~~~~" >> $basefilename-sim.txt # Save this file
	cat $file >> $basefilename-sim.txt # Save all hoc files 
	for i in 1 2 3 4 5; do echo "" >> $basefilename-sim.txt; done # Make space
done
## All mod files
for file in *.mod
	do echo "~~~~~${file}~~~~~" >> $basefilename-sim.txt # Save this file
	cat $file >> $basefilename-sim.txt # Save all mod files 
	for i in 1 2 3 4 5; do echo "" >> $basefilename-sim.txt; done # Make space
done

# Figure out where the executable is living
if [ -f ./i686/special ]; then executable="./i686/special"; fi
if [ -f ./x86_64/special ]; then executable="./x86_64/special"; fi

if [ $executable ] # Only run if the executable is found!
	then
	for b_d_p in 1 2 3 # Loop over baseline (1), damage (2), and prosthesis (3) cases
		do
		
		# This line is what actually runs the model!!
		$executable -c "mytstop=$simduration" -c "strdef outfn1, outfn2" -c "outfn1=\"$basefilename$b_d_p-lfp.txt\"" -c "outfn2=\"$basefilename$b_d_p-spk.txt\"" -c "c_or_t=$cort_or_thal" -c "b_d_p=$b_d_p" -c "freq=20" -c "sigprct=80" -c "sigwt=20" -c "scale=$modelsize" batch.hoc 
		
		# Remove the stupid row/column info at the top of the matrix
		if [ -f $basefilename$b_d_p-spk.txt ] # Output files exist -- good
			then
			echo 'Removing empty first row...'
			sed -i 1d $basefilename$b_d_p-spk.txt
			sed -i 1d $basefilename$b_d_p-lfp.txt
		else
			echo 'Simulation aborted!' # Output files don't exist -- bad
		fi
	
	done

else
	echo "Executable not found! Please find 'special' manually."
fi

elapsed=$(( `date +%s` - tic )) # Find out elapsed time
echo "runsim: done; elapsed time: $elapsed s."
echo ""
echo "Performing analysis..."

python comparerasters.py & # Create Fig. 4/6 from the paper
python comparecausality.py & # Create Fig. 5/7 from the paper