pyramidal spine-neck EPSPs

Anything that doesn't fit elsewhere.
davidhubbardmd
Posts: 45
Joined: Mon Nov 07, 2022 11:44 am
Location: San Diego, California

Re: pyramidal spine-neck EPSPs

Post by davidhubbardmd »

I should mention that I was unable to save my changes with various attempts at new folder names and ses names.
davidhubbardmd
Posts: 45
Joined: Mon Nov 07, 2022 11:44 am
Location: San Diego, California

Re: pyramidal spine-neck EPSPs

Post by davidhubbardmd »

I added voltage graphs at neck(0), neck(.5), and neck(1)
https://drive.google.com/file/d/1hEc2VS ... sp=sharing

Also, if you change the topology then be sure to save & update cell.ses; if graphs, save & update basicrig.ses and if NetStim or ExpSyn, save&update syndrive.ses.

Here are the NEURON parameters I used:
https://docs.google.com/document/d/1eqj ... sp=sharing
ted
Site Admin
Posts: 6286
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: pyramidal spine-neck EPSPs

Post by ted »

I drastically increased the neck resistance from 100 ohm to 100 Mohm (1e-9) based on the published range of about 25-800 Mohm)
Some problems here.

Assuming that 100 Mohm means 100 megohms, the number in the parentheses should be 1e8. But that's just a distraction, irrelevant to the remainder of the quoted sentence.

The real problem is that the parameter Ra does not specify the value of a resistance. Ra specifies the resistivity of a conductive medium, and its units are in (units of resistance) * (units of length). Given a conductive medium with resistivity Ra ohm cm, if you have a cylinder of that medium which has cross-sectional area A in cm2 and length L in cm, the resistance between the two ends of the cylinder in ohms will be
Ra * L / A
(dimension check: ohm cm * cm divided by cm2 equals ohm)

Experimental determination of the resistivity of biological tissues can be difficult, but the range reported in the experimental and modeling neuroscience literature is from about 50 to 200 ohm cm.

A helpful way to think about resistivity is to realize that, if the resistivity of a particular conductive medium is 100 ohm cm, the resistance between the opposite faces of a 1x1x1 cm cube of this conductive medium will be 100 ohms.

For a 1 um long cylinder that has a circular cross section with diameter 1 um, the resistance from one end of the cylinder to the other (AKA "axial" or "longitudinal" resistance of the cylinder--why not just call it "end-to-end"?) is
Ra * (ohm cm) * 1 * cm / (PI * 0.25 um2) = Ra * (4/PI) * ohm * cm2 / um2
Since 1 cm = 1e4 um, this becomes
Ra * (4/PI) * 1e8 ohms ~ 127 * Ra megohms
If Ra is 100 ohm cm, the end-to-end resistance is ~ 12.7 gigohms--huge!

OOPS! Nobody has ever seen a 1 cm long spine neck. Lengths tend to be around 1 um. The end-to-end resistance of a 1 um long cylinder with circular cross section (diameter 1 um) is
Ra * (ohm cm) * 1 * um / (PI * 0.25 um2) = Ra * (4/PI) * ohm * cm * um / um2
Since 1 cm = 1e4 um, this becomes
Ra * (4/PI) * 1e4 ohms ~ 1.27e4 * Ra ohms
If Ra is 100 ohm cm, the end-to-end resistance is ~ 1.27e4 * 100 = 1.27 megohms. That's not nothing, but it's pretty small compared to the input resistance of a dendrite (load on the downstream end of a spine neck) which is on the order of several hundred megohms if not larger. And even smaller comparted to the resistance of an AMPAergic synapse itself, which for a single synaptic activation is about 1 gigohm.

Longer necks--up to about 5 um--have been reported in human biopsy or autopsy material in the setting of developmental retardation and dementia. But the end-to-end resistance of even a 10 um long neck would be only ~ 12.7 megohms.
I’ve linked the plot here:
The link doesn't work for me.
The spine_head (kopf) and spine_neck had identical EPSP waveforms peaking at - 57 mV. I was not expecting that given that the resistance in the neck is much greater.

Also surprising to me, the soma had a small response of about 2 mV.
Probably because you probably set Ra to 1e-9, which is an extremely low resistivity for any conductive medium. That would make the resistance between the spine head and dendritic shaft too small to have any effect on the spread of electrical signals between the spine head and adjacent dendrite.

<< this post has been revised to include a discussion of spine neck resistance based on experimentally observed neck lengths--NTC >>
ted
Site Admin
Posts: 6286
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: pyramidal spine-neck EPSPs

Post by ted »

I should mention that I was unable to save my changes with various attempts at new folder names and ses names.
The problem is in the way I built init.hoc. I built it in several steps.

The first step was to get the specification of the model cell into a CellBuilder. That's a lot of work, so when I finished it, I saved it to a session file (cell.ses) all by itself.

The next step was to add basic tools for running simulations and viewing results: a RunControl panel, a plot of soma v vs. t, and a "space plot" of v (a graph of v vs distance along a couple of paths in the cell). These new GUI items I saved to a new session file (basicrig.ses). I did that to keep them separate from the CellBuilder, in case the time would come when I wanted to use the CellBuilder with a different set of GUI tools.

The third step was to add a couple of PointProcessManagers--one used to implement an ExpSyn that emulates an AMPAergic synapse attached to the model cell, and the other used to implement a NetStim to generate events that drive the ExpSyn. And of course I saved these to a third session file (syndrive.ses).

And at each of these steps I added a load_file() statement to init.hoc so that init.hoc would know to load the corresponding ses file.

So how do you proceed if you want to save a change you made? The simplest thing to do is: just use the NEURON Main Menu's "File/save session" to save everything to a new ses file. Give that file a short name (don't use spaces or punctuation other than the dot that precedes the ses extension). Then copy init.hoc to a new file with a matching name, and use a text editor to change this new file so that it loads your new ses file. Then you can use NEURON to execute your new hoc file, and NEURON will recreate the GUI tools just as you saved them.

Example: suppose you're exploring the effect of neck length, and you get to a point where you'd like to save things the way they are. Do a File / save session to write all the GUI panels/graphs/etc to a file called necklength.ses. Then copy init.hoc to a file called initlength.hoc, and use a text editor to change

Code: Select all

load_file("cell.ses")
load_file("basicrig.ses") // RunControl, v vs. t, and v along paths
load_file("syndrive.ses") // PPMs as NetStim and ExpSyn
to

Code: Select all

/*
load_file("cell.ses")
load_file("basicrig.ses") // RunControl, v vs. t, and v along paths
load_file("syndrive.ses") // PPMs as NetStim and ExpSyn
*/
load_file("necklength.ses")
Then save the revised file back to initlength.hoc (and exit from the text editor, if you're all done). Now you can use NEURON to execute initlength.hoc, and NEURON will treat everything from the /* down to the */ as comments (i.e. it will ignore those lines). However, it WILL read the stuff you saved in necklength.ses, and using those instructions it will recreate the entire graphical user interface just as you left it.
davidhubbardmd
Posts: 45
Joined: Mon Nov 07, 2022 11:44 am
Location: San Diego, California

Re: pyramidal spine-neck EPSPs

Post by davidhubbardmd »

Thank you Ted. I saved my session file to a new name, necklength.ses; I created a new version of init, I named initlength; I Notepad-edited the initlength.hoc to include only load_file(“necklength.ses”). What a fast solution for saving stuff.

I changed Rm to 200, since it is a measure of resistivity not resistance.

I changed Net Stim to interval 10ms and number of stim to 1, and start time to 0.
I shortened the RunControl to Tstop to 20 ms.

https://docs.google.com/document/d/1fc5 ... sp=sharing
ted
Site Admin
Posts: 6286
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: pyramidal spine-neck EPSPs

Post by ted »

In my post from Thu Dec 29, 2022 2:16 pm the calculations of neck resistance from cytoplasmic resistivity Ra and spine neck dimensions was incomplete and inaccurate. I have now revised that part of the post; please be sure to re-read it.
What a fast solution for saving stuff.
Yep. The fancy term for this is "low code" software development. The quickest and most powerful way to work with NEURON is to combine use of the GUI and programming in a way that takes advantage of both while minimizing user effort.
I changed Rm to 200, since it is a measure of resistivity not resistance.
You mean "Ra".
I shortened the RunControl to Tstop to 20 ms.
Yep, no need to run a long simulation if your primary interest is in the effect of a single synaptic activation.
I changed Net Stim to interval 10ms and number of stim to 1, and start time to 0.
There's a problem here. Experimentalists like to see a flat baseline before they apply a stimulus--otherwise how can one know that observed activity was actually provoked by the stimulus and not just "spontaneous" or "background" activity? Modelers need to do the same, because there is no guarantee that a particular model is actually starting from a "resting" point.

So what do you see if you change the NetStim's start time to 1000 ms (i.e. long after the end of the simulation)?

BTW this time I was able to see the figure (document) your URL referenced.
davidhubbardmd
Posts: 45
Joined: Mon Nov 07, 2022 11:44 am
Location: San Diego, California

Re: pyramidal spine-neck EPSPs

Post by davidhubbardmd »

Thank you Ted.
With a Tstop of 100 ms, and NetStim time at 10, 200 and 1000m, I ran the experiment.
https://docs.google.com/document/d/1rSy ... sp=sharing

Results: I was surprised to see that the delay of 10ms was not seen with delays of 200 and 1000ms.
I realized that NetStim start is the time delay before the first trigger, not subsequent triggers; so no delay is seen in a plot of the first 100ms.

I think I'm ready to see the ion currents during the spine_neck's EPSP.
davidhubbardmd
Posts: 45
Joined: Mon Nov 07, 2022 11:44 am
Location: San Diego, California

Re: pyramidal spine-neck EPSPs

Post by davidhubbardmd »

Now I want to look at the influence on the spine_neck EPSP of multiple synaptic conductances at the spine_head.

Test 1: Interval = 15 ms Number of triggers = 3
Results: passive current peaks at 0.00064 and returns to a baseline of about -6.4 . I suspect the units are mA/cm2 but I was unable to confirm that.
Test 2: Interval = 10 ms Number of triggers = 3
Results: At interval = 10ms, the spine_neck current does not return to baseline zero, implying that positive ion influx is continuing during this overlap of synaptic EPSPs.

Issue: With a 5 ms delay (Net Stim start(ms) = 5, I see an additional 1 ms delay that I have not yet tracked down.

https://docs.google.com/document/d/1B4K ... sp=sharing
ted
Site Admin
Posts: 6286
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: pyramidal spine-neck EPSPs

Post by ted »

What do you think all that wiggly stuff is that occupies the first 10 or 20 ms of simulation even in the absence of synaptic input?
davidhubbardmd
Posts: 45
Joined: Mon Nov 07, 2022 11:44 am
Location: San Diego, California

Re: pyramidal spine-neck EPSPs

Post by davidhubbardmd »

I played around and came up with a 20 ms plot with a 10 ms delay.

Result: I do see a rather linear depolarization between about 1 ms and 10 ms, too thin for me to accurately cross-hair. I wonder if the Neuron simulator is re-initializing the resting membrane. I couldn’t think of any other ways to test hypotheses.

https://docs.google.com/document/d/19p8 ... sp=sharing
ted
Site Admin
Posts: 6286
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: pyramidal spine-neck EPSPs

Post by ted »

Get rid of the synaptic activation altogether (set the NetStim's number parameter to 0 or change its start parameter to a very large value). Then resize the voltage axis graph:
Click in the square in its left upper corner, and continue pressing on the mouse button while dragging the cursor up a bit and then over to the secondary menu to select
View = plot
Release the mouse button, and the y axis will automatically resize to fit the range of plotted data.
davidhubbardmd
Posts: 45
Joined: Mon Nov 07, 2022 11:44 am
Location: San Diego, California

Re: pyramidal spine-neck EPSPs

Post by davidhubbardmd »

I set NetStim number = 0 AND start(ms) =1000
Results:
Looks like the AMPA activation, peaking at about 4.8 ms, even though there shouldn’t be one. because I turned it off. And it looks like it’s arising in the soma.
https://docs.google.com/document/d/13Sj ... sp=sharing

I wondered if I had left an ol' Alpha Synapse lying around in the soma but I couldn't find evidence of it.
I had made a note that NetStim location at soma(.) was ok, but I tried to use Shape to move the Net Stim location to kopf where the spine_head is and where the AMPA synapse should model the post-synaptic density of glutamate channels esp. I found only the soma and dendrites on the stick shape, no neck or head (kopf).
Then there was the nc.weight that I drastically misjudged, and that still uploads in the Load_file hoc, although at a standard 1e-3.
Last edited by davidhubbardmd on Wed Jan 04, 2023 5:37 pm, edited 1 time in total.
davidhubbardmd
Posts: 45
Joined: Mon Nov 07, 2022 11:44 am
Location: San Diego, California

Re: pyramidal spine-neck EPSPs

Post by davidhubbardmd »

BTW, Graph>box>dragup>View=Plot has already saved my sanity several times. Scary that a click and drag can decide easily ignored vs unexpected result.
ted
Site Admin
Posts: 6286
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: pyramidal spine-neck EPSPs

Post by ted »

NetStim location at soma
It doesn't matter where the NetStim is "located." It's an artificial spiking cell, which in NEURON means it doesn't have any sections at all. It just happens that the PointProcessManager GUI tool provides a convenient GUI interface for managing an artificial spiking cell's parameters. But the PointProcessManager (AKA PPM) was originally developed to manage the parameters and spatial location of objecs whose spatial location really DOES matter. Instead of implementing a new tool specifically intended to manage the properties of artificial spiking cells, it was quicker and simpler to just use the PPM.
I wondered if I had left an ol' Alpha Synapse lying around
Nope. The small damped oscillation that you're seeing is caused by the fact that the hh mechanism's resting potential isn't actually -65 mV--it's closer to -64.98 mV, but even if you changed v_init to that value there would still be a damped oscillation, albeit a smaller one.

There are three lessons here. First, not all models are implemented in a way that they are in a steady state condition at the beginning of a simulation.

Second, not all things that a model does have deep significance. Some are just accidental, e.g. as in this case where the model is initialized to something other than its true resting potential.

Third, regarding the hh mechanism itself: for most purposes it is sufficient to initialize to -65 mV e.g. if you're dealing with large stimuli. This would probably be fine for your own modeling. But someone who really needs a flatter baseline for the first ms or so of a simulation might want to change v_init (the value of this parameter appears in the numeric field adjacent to the RunControl panel's Init button) to something else--for example, by running a simulation of a single compartment model with hh and seeing what v becomes after 25 ms or later, then using that as the value for v_init.
I tried to use Shape to move the Net Stim location to kopf where the spine_head is . . . I found only the soma and dendrites on the stick shape
Because the scale of the image on your computer screen is such that the spine is too small to be seen. You'll have to zoom in on the shape plot to see it. But, as discussed above the "position" of an artificial spiking cell such as a NetStim has nothing to do with anything. In particular it has nothing to do with the synaptic mechanisms that it drives with events. That is controlled by the "target" parameter of the hoc or Python statement that creates the NetCon that conveys events from a presynaptic source (in this case, a NetCon) to the synaptic target. See the statement

nc = new NetCon(ns, syn)

in init.hoc from the demo code that I sent you. In this statement, "ns" refers to an instance of the NetStim class, and "syn" refers to an instance of the ExpSyn class.

For more info about NetCons, see

Code: Select all

https://nrn.readthedocs.io/en/latest/hoc/modelspec/programmatic/network/netcon.html#netcon
davidhubbardmd
Posts: 45
Joined: Mon Nov 07, 2022 11:44 am
Location: San Diego, California

Re: pyramidal spine-neck EPSPs

Post by davidhubbardmd »

Taking a peek at spine_neck current flow.
Interval = 9 ms Number of triggers = 4 NetStim start = 5
https://docs.google.com/document/d/1xTl ... sp=sharing

Results: passive current (Graph 2) does not return to baseline between synaptic activations (trough = 0.00012 mA/cm2, confirm units), suggesting that positive ion influx is continuing during this overlap of synaptic EPSPs.

I tried adding a neck.ica or neck.i_ca to a Graph, but of course it really shouldn't be that easy, anyway.

Cachan.mod looks promising and loadable (I found it just by using Search in Quick links; what a fast way to stand on the shoulders of giants!)
Post Reply