sectioning neuron based on distance from soma

The basics of how to develop, test, and use models.
Post Reply
LauraD
Posts: 10
Joined: Wed Oct 24, 2018 12:09 pm

sectioning neuron based on distance from soma

Post by LauraD » Fri Nov 30, 2018 5:52 pm

Hello,
I have a granule cell that was built and then imported to Neuron. Everything came out beautiful in the hoc code but now I want to section the neuron into thirds based on distance from the soma.


I want to make a Proximal, Middle and Distal group so I can specify the channels on each.
Is there a simple way to define this?
I was trying to use the distance() function discussed on other threads, unsuccessfully.
Kind Regards,
Laura

ted
Site Admin
Posts: 5372
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: sectioning neuron based on distance from soma

Post by ted » Sun Dec 02, 2018 2:06 pm

In order to provide a useful answer, I must ask you to refine your question.
based on distance from the soma . . .
I want to make a Proxima, Middle and Distal group
Question 1: Groups of what? Sections?
Questions 2 and 3: Based on distance of what from the soma? Section midpoint? proximal end? distal end? Also, the soma is not vanishingly small. What location in the soma is supposed to be the reference point for distance measurements? Some midpoint, 0 end, 1 end?
Questions 4, 5, and 6: What distance measure do you want--radial (euclidian) distance, elevation below or above the plane in which the soma lies (similar to depth from cortical surface), or path distance (along the intervening neurites) to the somatic reference point? And is distance supposed to be anatomical distance in microns, or normalized distance (where 1 is the distance between the somatic reference point and the most distal point in the cell)?

LauraD
Posts: 10
Joined: Wed Oct 24, 2018 12:09 pm

Re: sectioning neuron based on distance from soma

Post by LauraD » Tue Dec 04, 2018 12:08 pm

Hello,
I apologize, I realize now the question was vague. I will do my best to explain.
1. We want to apply parameters to different part of the neuron depending on how far away from the soma is. The goal is gradually have less channels the more we move away from the soma. The goal was to take the closest third of the neuron (in regards to the center of the soma, measuring out in all directions) and be able to give all the portions of dendrites in that area one set of channels., then do the same for the middle third and then the farthest third of the dendrite.

I was looking at the Subsets, Parameterized Domain Specification and the range for the neuron was p=318.784
So I want to create these groups and then be able to specify channels separately for each.
Proximal (center of soma-106.261)
Middle (106.261-212.522)
Distal (212.522-318.784)

Question 2&3: center of the soma for distance measurements since its a 3D neuron.
Question 4: path distance along the intervening neurites

6: I would love to do normalized distance if possible, so I could take the values above and just do 0-0.33 , 0.33-0.66, 0.66-1 or whatever intervals we decide to use.

Thank you for your guidance
Kind Regards,
Laura

rbdewell
Posts: 4
Joined: Wed Sep 09, 2015 2:47 pm

Re: sectioning neuron based on distance from soma

Post by rbdewell » Tue Dec 04, 2018 6:53 pm

Something like this should work:

Code: Select all

soma distance()
maxdist=0
// get maximum distance
forall for(x,0) if (distance(x)>maxdist) maxdist=distance(x)

// generate sectionlists
objref prox, mid, dist
prox = new SectionList()
mid = new SectionList()
dist = new SectionList()

forall {
	if (distance(0.5)/maxdist < 1/3) {		// if proximal
		prox.append
	} else if (distance(0.5)/maxdist > 2/3) {	// if distal
		dist.append()
	} else {	// not distal or proximal so middle
		mid.append()
	}
}
then code like forsec prox{ ... } can be used to set local properties

ted
Site Admin
Posts: 5372
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: sectioning neuron based on distance from soma

Post by ted » Wed Dec 05, 2018 10:32 am

That helps, but two important questions remain unanswered:
Question 1: Groups of what? Sections?
Questions 2 and 3: Based on distance of what from the soma? Section midpoint? proximal end? distal end?
The goal is gradually have less channels the more we move away from the soma.
If the goal is to have channel density vary gradually with distance, shouldn't channel density vary along the length of each section? In which case the distance should be measured from the proximal reference point (soma(0.5)) to the center of each segment, right? And instead of three sets of sections, you'd just have one set of sections (the sections in which channel density varies with distance from the reference point), and a continuous function of distance that governs the relative channel density in each segment.

LauraD
Posts: 10
Joined: Wed Oct 24, 2018 12:09 pm

Re: sectioning neuron based on distance from soma

Post by LauraD » Thu Dec 13, 2018 12:24 pm

If the goal is to have channel density vary gradually with distance, shouldn't channel density vary along the length of each section? In which case the distance should be measured from the proximal reference point (soma(0.5)) to the center of each segment, right?

correct.

And instead of three sets of sections, you'd just have one set of sections (the sections in which channel density varies with distance from the reference point), and a continuous function of distance that governs the relative channel density in each segment.
also correct, but another thing I am not sure how to code but would love to learn how.
Kind Regards,
Laura

LauraD
Posts: 10
Joined: Wed Oct 24, 2018 12:09 pm

Re: sectioning neuron based on distance from soma

Post by LauraD » Thu Dec 13, 2018 2:19 pm

rbdewell wrote:
Tue Dec 04, 2018 6:53 pm
Something like this should work:

Code: Select all

soma distance()
maxdist=0
// get maximum distance
forall for(x,0) if (distance(x)>maxdist) maxdist=distance(x)

// generate sectionlists
objref prox, mid, dist
prox = new SectionList()
mid = new SectionList()
dist = new SectionList()

forall {
	if (distance(0.5)/maxdist < 1/3) {		// if proximal
		prox.append
	} else if (distance(0.5)/maxdist > 2/3) {	// if distal
		dist.append()
	} else {	// not distal or proximal so middle
		mid.append()
	}
}
then code like forsec prox{ ... } can be used to set local properties
Thank you for providing me with this! I tried it and it provided no errors when running.
However, I tried removing channels to test if the action potentials would still work if a section had no channels.
Unfortunately it seems to still be working identically to before with and without the channels. Any better suggestions on how to test it/ update the code?
Kind Regards,
Laura

Post Reply