deleting dendrites

Managing anatomically complex model cells with the CellBuilder. Importing morphometric data with NEURON's Import3D tool or Robert Cannon's CVAPP. Where to find detailed morphometric data.
Post Reply
monkeybusiness

deleting dendrites

Post by monkeybusiness » Thu Jul 02, 2015 3:18 am

Hello,

I try to delete dendrites in my code. The aim is to investigate firing patterns, and as when active dendrites are present, dendritic topology may influence firing behaviour, I want to delete dendrites, or their ion channels. I tried both, but this did not succeed.
The whole model is this:
http://senselab.med.yale.edu/ModelDB/Sh ... ell1zr.hoc

The main hoc file (ca3b-cell1zr.hoc) contains this code, which is related to the dendrites:

Code: Select all

numaxon=1
numsoma=1
[u]numbasal=52
numapical=81[/u]
...
xopen("geo-cell1zr.hoc")
xopen("fixnseg.hoc")           
...
}

forall {insert pas area(.5)}

[i]forsec "dendrite" { 
	insert ds
	insert hd 
        insert na3 
        insert kdr 
	insert kap 
	insert cacum depth_cacum=diam/2
        insert cal 
        insert can 
        insert cat 
	insert cagk  
	insert KahpM95 
}[/i]

forsec "soma" { 
	insert ds
	insert hd 
        insert na3 
        insert kdr 
	insert kap 
	insert km
	insert kd
	insert cacum depth_cacum=diam/2
        insert cal 
        insert can 
        insert cat 
	insert cagk  
	insert KahpM95 
}

forsec "axon" {   
	insert na3 
        insert kdr 
        insert kap 
}

      
proc init() {
	access soma
        forall {
		v=Vrest e_pas=Vrest
	        if (ismembrane("cal")) {
                gcalbar_cal=gc
                gcanbar_can=gc
                gcatbar_cat=gc
		gbar_cagk= gKc 
		gbar_KahpM95 = gahp 
		}
	}

forsec "axon" {   
	gbar_na3=gna*AXONM 
        gkdrbar_kdr=gkdr 
        gkabar_kap = KMULTP  sh_kap=0
}

forsec "soma" {   
	ghdbar_hd=ghd
        gbar_na3=gna  
        gkdrbar_kdr=gkdr 
        gkabar_kap = KMULTP 
	gbar_km= gkm
	gkdbar_kd = gkd
}

for i=0, numbasal-1 dendrite[i] {
	ghdbar_hd=ghd
        gbar_na3=gna 
        gkdrbar_kdr=gkdr
	gkabar_kap=KMULTP
}
                
[i]forsec "apical_dendrite" {
	ghdbar_hd=ghd
        gbar_na3=gna 
        gkdrbar_kdr=gkdr
	gkabar_kap=KMULTP
}[/i]
The first thing I thought is deleting the ion channels, because then the topology does not have to be changed. But when I delete the code represented in italic, I do not obtain the normal GUI, but only the hoc interpreter with the neuron main menu. The hoc interpreter sais: k_ion mechanism not inserted in section dendrite[0]. I do not know how I can solve this problem and succesfully delete dendritic ion channels.

The second option for me was to delete all dendrites. Therefore, in the hoc file I deleted the above italic code, and the underscore code, plus all geometry in the geo-cell1zr.hoc file which was related to dendrites, till only the code below was left:

Code: Select all

//changed axon and soma

{create soma[1.]}
{create axon[1]}

{access soma[0.]}
{pt3dclear()}
{pt3dadd(-1.135,21.,1.702,13.21)}
{pt3dadd(-1.135,21.,12.92,13.21)}

{soma[0] connect axon[0](0), 1}
{access axon[0]}
{pt3dclear()}
{pt3dadd(-0.568,-1,-0.023,1.5)}
{pt3dadd(3.5,7,7,1)}
{pt3dadd(5.5,14,7,1)}
{pt3dadd(6.5,22.5,6,1)}
{pt3dadd(6,29.5,7,1)}
{pt3dadd(1.5,36,12,1)}
{pt3dadd(-2.5,41,14,1)}
{pt3dadd(-7.5,45,15.5,1)}
{pt3dadd(-9,45,19.5,1)}
{pt3dadd(-13.5,45.5,22.5,1)}
{pt3dadd(-16.5,47,25.5,1)}
{pt3dadd(-11.5,51.5,30,1)}
{pt3dadd(-11.5,54.5,36.5,1)}
{pt3dadd(-11,57.5,40.5,1)}
{pt3dadd(-8.5,60.5,44.5,1)}
Starting the program leads to the regular GUI, but when starting a simulation, directly a firing pattern (without processing and stuff) is shown with burst firing, which does normally not occur. What can I do to delete dendrites or dendritic channels?

Thank you in advance.

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

Re: deleting dendrites

Post by ted » Thu Jul 02, 2015 1:47 pm

monkeybusiness wrote:I try to delete dendrites in my code. The aim is to investigate firing patterns, and as when active dendrites are present, dendritic topology may influence firing behaviour, I want to delete dendrites, or their ion channels.
. . .
The first thing I thought is deleting the ion channels, because then the topology does not have to be changed. But when I delete the code represented in italic, I do not obtain the normal GUI, but only the hoc interpreter with the neuron main menu. The hoc interpreter sais: k_ion mechanism not inserted in section dendrite[0].
The error message happened because you got rid of the statements that insert ion channels, but you didn't get rid of the statements that refer to properties of those ion channels.
The second option for me was to delete all dendrites. Therefore, in the hoc file I deleted the above italic code, and the underscore code, plus all geometry in the geo-cell1zr.hoc file which was related to dendrites
. . .
Starting the program leads to the regular GUI, but when starting a simulation, directly a firing pattern (without processing and stuff) is shown with burst firing, which does normally not occur.
Neither "deleting dendrites" nor "deleting channels" is a good idea. Why? Deleting dendrites does a lot more than eliminate the channels that were located in those dendrites. It also causes a massive change in the structure of the equations that define the model cell. Each compartment in each dendrite is associated not only with differential equations that govern channel gating, it is also associated with a differential equation that governs membrane potential in that compartment. Eliminate dendrites, and you are creating an entirely new model that is described by a very different set of differential equations. In particular, you are eliminating the effects of membrane capacitance and axial resistance in the deleted dendrites--you're changing the fundamental electrotonic structure of the model cell. This is not at all equivalent to eliminating active dendritic properties.

Deleting channels is guaranteed to cause debugging headaches because of the way this model's code is written. It contains many traps for the unwary, which were (inadvertently) planted there by the model's own author(s), who wrote code that worked despite itself, and would be hard to maintain and debug. The proc init() alone could serve as a good example of how not to write a custom init() procedure.

Even if you were starting with outstanding source code, it would not be a good idea to either delete dendrites or ion channels, because you would then be faced with a difficult if not impossible task: proving that, in deleting dendrites or channels, you did not also introduce a bug of your own.

Your best bet is to write a procedure that iterates over all the segments in all sections of interest, setting ion channel densities in those sections to 0. Your success in using that procedure may be stymied by statements in that awful proc init(). You'll need to look at the other hoc or ses files in that model entry to see if any of them fiddle with channel densities--maybe one reason that proc init() contains so many statements that assign values to channel densities because they are necessary to undo mischief that is buried in one or more of the other hoc and ses files.

And whatever you do, you will need to confirm that your assignments of 0 to channel densities has taken effect, and in just those sections that you intended. ModelView will be helpful in making that determination.

Post Reply