Page 1 of 1

STDP in artificial cells

Posted: Tue Aug 14, 2012 7:32 am
by peadargrant
Currently I am modelling a population of 100 neurons using IntFire2() cells. I would like to investigate a number of (possible) plastic effects in the network. On another thread, I noticed that the STDP models to date on ModelDB are all set up as point processes for use on biophysical cells. What is the best "first stop" for modelling STDP in networks of artificial cells using NEURON? Also, is there any particular method to avoid?

Re: STDP in artificial cells

Posted: Tue Aug 14, 2012 5:28 pm
by ted
There are lots of ways to implement STDP but in any given simulation environment only a few will be efficient and "natural" or "idiomatic" for that particular simulator. In the case of NEURON, for synapses attached to an artificial spiking neuron it would be best for the plasticity rule to be implemented as part of the model cell specification, i.e. in the NMODL source code for the model cell class. That requires FOR_NETCON to work for models designated as ARTIFICIAL_CELLs, but as of now that isn't working. I'll see if this can be fixed and get back to you.

Re: STDP in artificial cells

Posted: Wed Aug 15, 2012 4:54 pm
by peadargrant
Thanks very much Ted, much appreciated,

I did see an example in ModelDB accession number 64261. Essentially what it does is introduce a new Artificial Cell that receives the pre and post-synaptic events (at a cost of two additional NetCon objects I think), which then adjusts the weight in the relevant synapse via a pointer from the NMODL code. I might give it a go and see how I get on...

Re: STDP in artificial cells

Posted: Fri Mar 22, 2013 1:25 pm
by gchadder3
We are also wishing to implement STDP on ArtCells with a solution that can potentially generalize to conductance-based cells. The ModelDB accession number 64261 looks very useful as place to begin, assuming that the FOR_NETCONS() functionality still does not work for ArtCells. For each original NetCon synapse between ArtCells, it involves making 2 more NetCons and a weight adjuster object. One of the new NetCons runs from the pre-synaptic cell to the weight adjuster PointProcess and this has a non-negative weight. The other new NetCon runs from the post-synaptic cell and has a negative weight, so the NET_RECEIVE block of the weight adjuster can tell which unit spiked based on weight sign. It then updates a remembered pre- or post-synaptic last-spike-time, and uses a pointer called wsyn to update the NetCon weight from the original NetCon synapse.

This solution seems potentially quite generalizable even beyond ArtCells. We also want to use the same weight-adjuster object to implement eligibility traces for dopaminergic reinforcement learning.

Does this approach seem like a good long-term one, or is there better solution? We want something that isn't too tied to a particular ArtCell type.

Re: STDP in artificial cells

Posted: Fri Mar 22, 2013 1:54 pm
by ted
Checking NEURON's mercurial repository
http://www.neuron.yale.edu/hg/neuron/nrn/
for FOR_NETCON turns up this
FOR_NETCON works for ARTIFICIAL_CELL
author Michael Hines <michael.hines@yale.edu>
date Tue, 04 Sep 2012 15:14:43 -0400 (6 months ago)
so use any development code from that date onward (I'd suggest the latest)

Re: STDP in artificial cells

Posted: Fri Mar 22, 2013 3:05 pm
by gchadder3
Is FOR_NETCONS() documented somewhere? We have the stdp.mod file, but it's not clear from this how FOR_NETCONS() works.

Re: STDP in artificial cells

Posted: Fri Mar 22, 2013 3:43 pm
by ted
Most of the relevant posts were generated when the WWW site was entirely static pages, so some links need to be updated or you would probably already have found what you needed.

The original news item is
http://www.neuron.yale.edu/neuron/stati ... 23_06.html
but here's a more detailed description:
Discussion of stdp.mod
viewtopic.php?f=16&t=470&p=1614#p1614