Sensorimotor cortex reinforcement learning of 2-joint virtual arm reaching (Neymotin et al. 2013)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:150245
"... We developed a model of sensory and motor neocortex consisting of 704 spiking model-neurons. Sensory and motor populations included excitatory cells and two types of interneurons. Neurons were interconnected with AMPA/NMDA, and GABAA synapses. We trained our model using spike-timing-dependent reinforcement learning to control a 2-joint virtual arm to reach to a fixed target. ... "
Reference:
1 . Neymotin SA, Chadderdon GL, Kerr CC, Francis JT, Lytton WW (2013) Reinforcement learning of two-joint virtual arm reaching in a computer model of sensorimotor cortex. Neural Comput 25:3263-93 [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:
Cell Type(s): Neocortex L5/6 pyramidal GLU cell; Neocortex U1 L2/6 pyramidal intratelencephalic GLU cell; Neocortex V1 interneuron basket PV GABA cell; Neocortex fast spiking (FS) interneuron; Neocortex spiking regular (RS) neuron; Neocortex spiking low threshold (LTS) neuron;
Channel(s):
Gap Junctions:
Receptor(s): GabaA; AMPA; NMDA;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Synaptic Plasticity; Learning; Reinforcement Learning; STDP; Reward-modulated STDP; Sensory processing;
Implementer(s): Neymotin, Sam [Samuel.Neymotin at nki.rfmh.org]; Chadderdon, George [gchadder3 at gmail.com];
Search NeuronDB for information about:  Neocortex L5/6 pyramidal GLU cell; Neocortex V1 interneuron basket PV GABA cell; Neocortex U1 L2/6 pyramidal intratelencephalic GLU cell; GabaA; AMPA; NMDA; Gaba; Glutamate;
/
a2dmodeldb
readme.html
drspk.mod *
infot.mod *
intf6_.mod *
misc.mod *
nstim.mod *
stats.mod *
vecst.mod *
arm.hoc
basestdp.hoc
col.hoc
colors.hoc *
declist.hoc *
decmat.hoc *
decnqs.hoc *
decvec.hoc *
default.hoc *
drline.hoc *
filtutils.hoc *
geom.hoc
grvec.hoc *
hinton.hoc *
infot.hoc *
init.hoc
labels.hoc *
misc.h *
mosinit.hoc
network.hoc
nload.hoc
nqs.hoc *
nqsnet.hoc *
nrnoc.hoc *
params.hoc
python.hoc
pywrap.hoc *
run.hoc
samutils.hoc *
screenshot.png
sense.hoc *
setup.hoc *
simctrl.hoc *
stats.hoc *
stim.hoc
syncode.hoc *
trainedplast.nqs
units.hoc *
xgetargs.hoc *
                            
: $Id: drspk.mod,v 1.27 2011/11/22 04:23:40 samn Exp $

UNITS {
    (mV) = (millivolt)
    (nA) = (nanoamp)
}

NEURON {
  POINT_PROCESS DRSPK
  GLOBAL refrac, vrefrac, rdmthresh
  RANGE drive,rand,inrefrac,fflag,qq,thresh
  NONSPECIFIC_CURRENT i
}

PARAMETER {
  refrac = 5 (ms)
  vrefrac = 0 (mV)
  drive = 0
  rand = 1
  fflag=1
  i = 0 (nA)
  rdmthresh = 0
}

ASSIGNED {
  : i (nA)
  v (mV)
  inrefrac
  qq
  thresh
}

CONSTRUCTOR {
  VERBATIM 
  ENDVERBATIM
}

INITIAL {
  net_send(0, 3)
  i=0
  drive=0
  qq=0
  if (rdmthresh) {
    rand=1
    thresh=1
  }
  inrefrac=0
}

BREAKPOINT {
  if (inrefrac) {
    qq = 0
  } else {
    qq = drive
    thresh = rand
  }
  i = -qq
}

NET_RECEIVE(w) {
  if (flag == 1 && !inrefrac) {
    net_event(t)
    net_send(refrac, 2)
    v = vrefrac
    inrefrac=1
    qq = 0
  } else if (flag == 2) {
    inrefrac=0
    if(v > thresh) { net_send(0,1) }
  } else if (flag == 3) {
    WATCH (v>thresh) 1
  }	
}

:** vers gives version
PROCEDURE vers () {
  printf("$Id: drspk.mod,v 1.27 2011/11/22 04:23:40 samn Exp $\n")
}