Spiny neuron model with dopamine-induced bistability (Gruber et al 2003)
ModelDBRepository/39949
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
<HTML> <HEAD> <!-- readme.html --> <!-- version 1.2 7:55 AM 6/21/2004 --> <TITLE>NEURON implementation of spiny neuron model</TITLE> </HEAD> <BODY bgcolor="#ffffff" text="#000000" link="#CC0000" alink="#FF3300" vlink="#330099"> <h1 align=center> NEURON implementation of spiny neuron model </h1> These programs reproduce figures from the paper<br> "Modulation of Striatal Single Units by Expected Reward: A Spiny Neuron Model Displaying Dopamine-Induced Bistability"<br> Aaron J. Gruber, Sara A. Solla, D., James Surmeier, and James C. Houk<br> J Neurophysiol 90: 1095 1114, 2003 <p> Address questions to Ted Carnevale<br> <a href="ted.carnevale@yale.edu">ted.carnevale@yale.edu</a> <p> The following comments show <a href="#usage">how to operate</a> these programs, and discuss the <a href="#implementation"> implementation of the models </a> and how to reuse this code. <h2> <br> <a name="usage">Usage</a> </h2> <ol> <li>Unzip spinycell.zip into an empty directory. <li>Compile the mod files with nrnivmodl (or mknrndll if you're using MSWin) <li>Follow the instructions below. </ol> <h3> <br> Figs. 2 and 3A </h3> Use NEURON to execute <a href="figs2and3A.hoc">figs2and3A.hoc</a> <br> Click on the Plot button in each of the three Graphers. <blockquote> <img SRC="./figs/figs2and3A.gif"> </blockquote> <h3> <br> Figs. 3B and C </h3> Use NEURON to execute <a href="fig3BC.hoc">fig3BC.hoc</a> <br> Click one of the buttons in this small panel <blockquote> <img SRC="./figs/fig3BC.gif"> </blockquote> <p> to bring up a plot that reproduces Fig. 3B <blockquote> <img SRC="./figs/fig3B.gif"> </blockquote> <p> or Fig. 3C <blockquote> <img SRC="./figs/fig3C.gif"> </blockquote> <h3> <br> Fig. 4 </h3> Use NEURON to execute <a href="fig4.hoc">fig4.hoc</a> <br> The graph is created automatically. <blockquote> <img SRC="./figs/fig4.gif"> </blockquote> <h3> <br> Fig. 6 </h3> Use NEURON to execute <a href="fig6.hoc">fig6.hoc</a> <br> On the right there is a graph window. Just below this is a small panel with buttons labeled "Fig. 6a" and "Fig. 6b". Click on one of these to generate the corresponding family of plots. <blockquote> <b>Fig. 6a</b> <br> <img SRC="./figs/fig6a.gif"> </blockquote> <blockquote> <b>Fig. 6b</b> <br> <img SRC="./figs/fig6b.gif"> </blockquote> Notes: <ol> <li>The first 200-300 ms of each trace is a "warmup" or "stabilization" interval during which the model reaches a dynamic equilibrium appropriate for the baseline synaptic drive. <li>The increase of synaptic drive starts at 400 ms. <li>The pseudorandom afferent spike trains are different on each run, so each press of these buttons produces a slighly different family of traces. However, the envelopes of the individual trajectories are essentially similar from run to run. <br> <b>Example: repeat "Fig. 6b run"</b> <br> <img SRC="./figs/fig6bagain.gif"> <li>Mean synaptic conductance appears to be the primary determinant of the membrane potential trajectories. Other details of synaptic input (negexp ISI spike trains driving the relatively simple ExpSyn mechanism here, vs. the more complex, empirically derived model of synaptic activity used by Gruber et al.) affect only the low-level fluctuations of the individual traces. </ol> <h3> <br> Figs. 7A and B </h3> Use NEURON to execute <a href="fig7a.hoc">fig7a.hoc</a> or <a href="fig7a.hoc">fig7b.hoc</a> <br> The graphs are created automatically. <blockquote> <b>Fig. 7A</b> <br> <img SRC="./figs/fig7a.gif"> </blockquote> <blockquote> <b>Fig. 7B</b> <br> <img SRC="./figs/fig7b.gif"> </blockquote> Note: The actual values of mu used for the figures in the paper were not available. The values used in these programs are sufficient to demonstrate the same dynamical features of the model that were illustrated by the original figures. <h3> <br> Fig. 10A and B </h3> Use NEURON to execute <a href="fig10ab.hoc">fig10ab.hoc</a> <br> This brings up several windows, the rightmost of which are a stack of graphs. From the top down, these graphs will show <ul> <li>the membrane potential of the spiny neuron <li>the cortical input spike train <li>the time course of the modulatory action of dopaminergic input </ul> Above these graphs is a small panel with four radio buttons that set the "experimental conditions." Select one of the four possible combinations and click on the RunControl's Init & Run button to launch a simulation. <blockquote> <b>Example 1: weak cortical input, target unrewarded</b> <p> <img SRC="./figs/fig10weakunrewarded.gif"> </blockquote> <blockquote> <b>Example 2: strong cortical input, target rewarded</b> <p> <img SRC="./figs/fig10strongrewarded.gif"> </blockquote> Notes: <ol> <li>During the first few hundred ms, the model reaches a dynamic equilibrium appropriate for the background synaptic drive. <li>Sequential runs under the same conditions will differ because a different afferent spike train is used each time. </ol> <h2> <br> <a name="implementation">Model implementation</a> </h2> <p> Among these files there are actually two different implementations of a spiny neuron model. The first is used to generate the figures that illustrate the basic properties of the model (Figs. 2 - 4 and 7), and the second is used for those figures that show how dopamine affects the model's response to afferent spike trains (Figs. 6 and 10). <p> Both implementations use the same membrane currents, which are specified by these files: <pre> caL.mod kir2.mod ksi.mod leak.mod </pre> Of these, only caL.mod includes temperature dependence (needs <code>celsius = 20</code> to reproduce the figures from the paper). <p> Some of the programs also use the mechanisms specified in one or both of these files: <pre> damsg.mod gspike.mod </pre> These mechanisms are described later in this document. <h3> <br> Implementation 1: a "stand-alone" model cell </h3> The properties of the model used for Figs. 2 - 4 and 7 are specified by these graphical tools <blockquote> <img SRC="./figs/model1.gif"> </blockquote> <p> These were set up with NEURON's GUI, and they are recreated by having NEURON execute the code in <b>model_mu_1.ses</b>. Think of this file as a "virtual experimental preparation," somewhat analogous to a single cell in tissue culture or an acutely isolated soma. <p> This file is loaded by the following programs : <pre> figs2and3A.hoc fig3BC.hoc fig4.hoc fig7a.hoc fig7b.hoc </pre> It needs only one thing to be a complete specification of a model of a spiny neuron : some way for the caL and kir2 mechanisms to discover the value of the "dopamine message." In figs2and3A.hoc this is done by the statements <pre> msg = 1 soma for (x,0) { // skip the nodes at 0 and 1 setpointer mu_caL(x), msg setpointer mu_kir2(x), msg } </pre> which link the "mu" POINTERs of caL and kir2 to the hoc scalar msg. Except for fig7a.hoc and fig7b.hoc, the other programs that use model_mu_1.ses contain similar statements. This is OK for simulations in which mu remains constant or changes abruptly from one steady level to another. <p> For fig7a.hoc and fig7b.hoc, computational efficiency requires a different approach. Unlike other simulations involving the "stand-alone model," these need msg to have nontrivial dynamics. Using a hoc scalar and modifying NEURON's main computational loop to force incremental changes in msg at every fadvance() is not the best way to do this. <p> Therefore fig7a.hoc and fig7b.hoc employ a DAsyn point process. This "net-ready" synaptic mechanism has a state variable msg which, in this implementation, has first order dynamics and can be driven by spike events. The file fig7syn.hoc contains the statements that link the "mu" POINTERS of caL and kir2 to this msg. <blockquote> DAsyn is also used in the program that reproduces Fig. 10 (see below). </blockquote> <h3> <br> Implementation 2: a "networked" model cell </h3> The "networked" model cell is used by these two programs: <pre> fig6.hoc fig10ab.hoc </pre> This model implementation has a "fast conductance change excitatory synapse" (ExpSyn) that receives spike trains representing afferent cortical activity. It happens to be implemented with NEURON's NetReadyCellGUI tool, but its anatomical and biophysical properties are identical to those of the "stand-alone" model. <p> The NetReadyCellGUI tool that specifies the properties of this "biological model cell", and the ArtCellGUI tool that specifies the properties of the artificial spiking cells that generate the afferent spike trains, were created using NEURON's GUI and saved to session files called fig6netcells.ses and fig10netcells.ses. <blockquote> As noted above, the conductance fluctuations used in the simulations reported by Gruber et al. are quite different from those generated by spike trains with negexp statistics converging on an ExpSyn mechanism. Even so, the simulation results produced by these files are qualitatively quite similar to the published figures. Mean synaptic conductance, rather than its detailed fluctuations, appears to be the principal factor that governs the time course of membrane potential. </blockquote> Network architectures were specified with the NetGUI tool and saved to session files called fig6net.ses and fig10net.ses. "Instrumentation" (simulation controls and graphical displays of results) are contained in fig6netrig.ses and fig10netrig.ses. <p> fig6.hoc uses a simple hoc scalar called msg to represent dopaminergic effect, and the mu POINTERs of the caL and kir2 mechanisms are linked to it in the file fig6.hoc. As noted previously, the simulations that generate Figure 10 use a DAsyn point process so that msg can have its own dynamics and yet be computationally efficient. fig10syn.hoc contains the statements that link the mu POINTERs of caL and kir2 to the DAsyn's msg. <blockquote> The "spike" mechanism used by Gruber et al. 2003 for Fig. 10 requires an implementation that demands fig10ab.hoc be run only with fixed time step integration (see gspike.mod). </blockquote> <p> <b>Reusable hoc code</b> <p> c_cell.hoc contains a template (class definition) for model neurons with properties identical to the one that was used to generate Fig. 10, complete with both an ExpSyn (to receive "cortical input spikes") and a DAsyn (to receive "dopaminergic input spikes"). It can be used, with or without NEURON's GUI, to spawn new instances of this model neuron that are suitable for use in network simulations. <blockquote> <pre> load_file("c_cell.hoc") objref foo foo = new List() for i=0,99 foo.append(new C_Cell()) foo.count() // returns 100 // now there are 100 of these cells ready to be connected into a network </pre> </blockquote> <b>Caveat: </b> Be sure to specify the operating temperature, e.g. <pre> celsius = 20 </pre> <blockquote> <b>How I created c_cell.hoc</b> <ol> <li>Clicked on the "Hoc File" button of fig10ab.hoc's NetGUI tool and specified fig10network.hoc as the name of the output file <li>Extracted the template for the C_Cell class from fig10network.hoc <li>Finally, made one small but important modification to the C_Cell template: <br> adding a "forsec all" loop to proc synapses() so that the mu POINTERs of every instance of caL and kir2 will be linked to the DAsyn's msg variable </ol> Here's the modified proc synapses()-- <pre> proc synapses() { /* ExpSyn0 */ soma syn_ = new ExpSyn(0.5) synlist.append(syn_) syn_.tau = 3 /* DAsyn1 */ soma syn_ = new DAsyn(0.5) synlist.append(syn_) // attach all POINTERs to DAsyn.msg forsec all { if (issection("caL")) { for (x,0) { // skip the nodes at 0 and 1 setpointer mu_caL(x), synlist.object(1).msg } } if (issection("kir2")) { for (x,0) { // skip the nodes at 0 and 1 setpointer mu_kir2(x), synlist.object(1).msg } } } } </pre> </blockquote> </BODY></HTML>
About
Spiny neuron model with dopamine-induced bistability (Gruber et al 2003)
Topics
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published