Subiculum network model with dynamic chloride/potassium homeostasis (Buchin et al 2016)

 Download zip file 
Help downloading and running models
Accession:206365
This is the code implementing the single neuron and spiking neural network dynamics. The network has the dynamic ion concentrations of extracellular potassium and intracellular chloride. The code contains multiple parameter variations to study various mechanisms of the neural excitability in the context of chloride homeostasis.
Reference:
1 . Buchin A, Chizhov A, Huberfeld G, Miles R, Gutkin BS (2016) Reduced Efficacy of the KCC2 Cotransporter Promotes Epileptic Oscillations in a Subiculum Network Model. J Neurosci 36:11619-11633 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Synapse; Extracellular; Dendrite; Realistic Network; Glia;
Brain Region(s)/Organism: Hippocampus;
Cell Type(s): Hippocampus CA1 pyramidal GLU cell; Hodgkin-Huxley neuron; Hippocampus CA1 PV+ fast-firing interneuron;
Channel(s): KCC2; I Sodium; I Potassium; Na/K pump; I Calcium; I Chloride; I Cl, leak; I M; I Na, leak; I K,leak; I_HCO3; I Na,p;
Gap Junctions:
Receptor(s): NMDA; AMPA; GabaA;
Gene(s):
Transmitter(s): Ions; Gaba; Glutamate;
Simulation Environment: MATLAB; XPPAUT;
Model Concept(s): Bursting; Epilepsy; Chloride regulation; Activity Patterns; Oscillations; Homeostasis; Potassium buffering; Brain Rhythms; Extracellular Fields;
Implementer(s): Buchin, Anatoly [anat.buchin at gmail.com];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; GabaA; AMPA; NMDA; I Chloride; I Na,p; I K,leak; I M; I Sodium; I Calcium; I Potassium; Na/K pump; I Cl, leak; I Na, leak; KCC2; I_HCO3; Gaba; Glutamate; Ions;
/
BuchinEtAl2016KCC2
.git
hooks
applypatch-msg.sample *
commit-msg.sample *
post-update.sample *
pre-applypatch.sample *
pre-commit.sample *
prepare-commit-msg.sample *
pre-push.sample *
pre-rebase.sample *
update.sample *
                            
#!/bin/sh
#
# An example hook script to block unannotated tags from entering.
# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
#
# To enable this hook, rename this file to "update".
#
# Config
# ------
# hooks.allowunannotated
#   This boolean sets whether unannotated tags will be allowed into the
#   repository.  By default they won't be.
# hooks.allowdeletetag
#   This boolean sets whether deleting tags will be allowed in the
#   repository.  By default they won't be.
# hooks.allowmodifytag
#   This boolean sets whether a tag may be modified after creation. By default
#   it won't be.
# hooks.allowdeletebranch
#   This boolean sets whether deleting branches will be allowed in the
#   repository.  By default they won't be.
# hooks.denycreatebranch
#   This boolean sets whether remotely creating branches will be denied
#   in the repository.  By default this is allowed.
#

# --- Command line
refname="$1"
oldrev="$2"
newrev="$3"

# --- Safety check
if [ -z "$GIT_DIR" ]; then
	echo "Don't run this script from the command line." >&2
	echo " (if you want, you could supply GIT_DIR then run" >&2
	echo "  $0 <ref> <oldrev> <newrev>)" >&2
	exit 1
fi

if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
	echo "usage: $0 <ref> <oldrev> <newrev>" >&2
	exit 1
fi

# --- Config
allowunannotated=$(git config --bool hooks.allowunannotated)
allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
denycreatebranch=$(git config --bool hooks.denycreatebranch)
allowdeletetag=$(git config --bool hooks.allowdeletetag)
allowmodifytag=$(git config --bool hooks.allowmodifytag)

# check for no description
projectdesc=$(sed -e '1q' "$GIT_DIR/description")
case "$projectdesc" in
"Unnamed repository"* | "")
	echo "*** Project description file hasn't been set" >&2
	exit 1
	;;
esac

# --- Check types
# if $newrev is 0000...0000, it's a commit to delete a ref.
zero="0000000000000000000000000000000000000000"
if [ "$newrev" = "$zero" ]; then
	newrev_type=delete
else
	newrev_type=$(git cat-file -t $newrev)
fi

case "$refname","$newrev_type" in
	refs/tags/*,commit)
		# un-annotated tag
		short_refname=${refname##refs/tags/}
		if [ "$allowunannotated" != "true" ]; then
			echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
			echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
			exit 1
		fi
		;;
	refs/tags/*,delete)
		# delete tag
		if [ "$allowdeletetag" != "true" ]; then
			echo "*** Deleting a tag is not allowed in this repository" >&2
			exit 1
		fi
		;;
	refs/tags/*,tag)
		# annotated tag
		if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
		then
			echo "*** Tag '$refname' already exists." >&2
			echo "*** Modifying a tag is not allowed in this repository." >&2
			exit 1
		fi
		;;
	refs/heads/*,commit)
		# branch
		if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
			echo "*** Creating a branch is not allowed in this repository" >&2
			exit 1
		fi
		;;
	refs/heads/*,delete)
		# delete branch
		if [ "$allowdeletebranch" != "true" ]; then
			echo "*** Deleting a branch is not allowed in this repository" >&2
			exit 1
		fi
		;;
	refs/remotes/*,commit)
		# tracking branch
		;;
	refs/remotes/*,delete)
		# delete tracking branch
		if [ "$allowdeletebranch" != "true" ]; then
			echo "*** Deleting a tracking branch is not allowed in this repository" >&2
			exit 1
		fi
		;;
	*)
		# Anything else (is there anything else?)
		echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
		exit 1
		;;
esac

# --- Finished
exit 0