Impact of dendritic size and topology on pyramidal cell burst firing (van Elburg and van Ooyen 2010)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:114359
The code provided here was written to systematically investigate which of the physical parameters controlled by dendritic morphology underlies the differences in spiking behaviour observed in different realizations of the 'ping-pong'-model. Structurally varying dendritic topology and length in a simplified model allows us to separate out the physical parameters derived from morphology underlying burst firing. To perform the parameter scans we created a new NEURON tool the MultipleRunControl which can be used to easily set up a parameter scan and write the simulation results to file. Using this code we found that not input conductance but the arrival time of the return current, as measured provisionally by the average electrotonic path length, determines whether the pyramidal cell (with ping-pong model dynamics) will burst or fire single spikes.
Reference:
1 . van Elburg RA, van Ooyen A (2010) Impact of dendritic size and dendritic topology on burst firing in pyramidal cells. PLoS Comput Biol 6:e1000781 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell;
Brain Region(s)/Organism: Neocortex;
Cell Type(s): Neocortex V1 L6 pyramidal corticothalamic GLU cell;
Channel(s): I Na,t; I K; I M; I K,Ca; I Sodium; I Calcium; I Potassium;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON; MATLAB;
Model Concept(s): Activity Patterns; Bursting; Spatio-temporal Activity Patterns; Simplified Models; Active Dendrites; Influence of Dendritic Geometry; Detailed Neuronal Models; Methods;
Implementer(s): van Elburg, Ronald A.J. [R.van.Elburg at ai.rug.nl];
Search NeuronDB for information about:  Neocortex V1 L6 pyramidal corticothalamic GLU cell; I Na,t; I K; I M; I K,Ca; I Sodium; I Calcium; I Potassium;
% Filename: ReReconstructedCells.m
%
% Show traces from cells with different apical dendritic tree topologies
% ,but unchanged metrics.
%
%
% Author: Ronald A.J. van Elburg ,(RonaldAJ at vanelburg eu)
% Affiliation:
%           Department of Artificial Intelligence
%           Groningen University
%
%
close all
clear all

% Set path to location spike analysis script
addpath(genpath('./../analysis'))

% Set paths to neuron output
FilenameBase='ReReconstructedCells/Results/Sim';
FiguresNameBase='ReReconstructedCells/Figures/';
offset=0; % Offset 0 -> indices for .dat filenames start at 1, Offset -1 -> indices for .dat filenames start at 0
Filename='';

% Specify analysis parameters
ISI_Cutoff=3000;
Analysis_Start=1500;

% Specify endianness neuron binary files
machineformat='l';

% Morphological parameter ranges
TreeNo_step=1;
TreeNo_start=1;
TreeNo_end=7;
TreeNo_simrange=TreeNo_start:TreeNo_step:TreeNo_end;
TreeNo_plotrange=[1,5:7,2:4];%1:1:length(TreeNo_simrange);

% Stimulus types
dendStim_step=1;
dendStim_start=0;
dendStim_end=1;
dendStim_simrange=dendStim_start:dendStim_step:dendStim_end;
dendStim_plotrange=1:1:length(dendStim_simrange);
stimuli={'somatic','dendritic'};

% Map ranges to reusable variables
x_plotrange=TreeNo_plotrange;
x_simrange=TreeNo_simrange;
x_plot_size=length(x_plotrange);

y_plotrange=dendStim_plotrange;
y_simrange=dendStim_simrange;
y_plot_size=length(y_plotrange);


% Preallocate storage objects
spikes=cell(x_plot_size,y_plot_size);   % spike times
tvec=cell(x_plot_size,y_plot_size);     % membrane potential trace: times   
yvec=cell(x_plot_size,y_plot_size);     % membrane potential trace: potential

f=zeros(x_plot_size,y_plot_size);        % frequency
B2=zeros(x_plot_size,y_plot_size);       % Burstmeasure
MeanISI=zeros(x_plot_size,y_plot_size);
TreeNumber=zeros(x_plot_size,y_plot_size);  % TreeNumbers 
MEP=zeros(x_plot_size,1);                   % Mean electrontonic pathlength

for y_coord=1:1:y_plot_size
    for x_coord=1:1:x_plot_size
 
        Filename=[FilenameBase,'_',num2str(x_plotrange(x_coord)+offset),'_',num2str(y_plotrange(y_coord)+offset),'_j4a_spikes_j4a_spikes_soma.dat'];         
        j4a_spikes_soma=nrn_vread(Filename,machineformat);
        
        Filename=[FilenameBase,'_',num2str(x_plotrange(x_coord)+offset),'_',num2str(y_plotrange(y_coord)+offset),'_j4a_vtrace_soma_tvec.dat'];         
        tvec{x_coord,y_coord}=nrn_vread(Filename,machineformat);
        
        Filename=[FilenameBase,'_',num2str(x_plotrange(x_coord)+offset),'_',num2str(y_plotrange(y_coord)+offset),'_j4a_vtrace_soma_yvec.dat'];         
        yvec{x_coord,y_coord}=nrn_vread(Filename,machineformat);

        [B2(x_coord,y_coord),MeanISI(x_coord,y_coord)] = burstMeasure(j4a_spikes_soma(j4a_spikes_soma > Analysis_Start),ISI_Cutoff);
        if(isnan(B2)==1)
            B2=-1;
        end

        spikes{x_coord,y_coord}=j4a_spikes_soma;

        f(x_coord,y_coord)=spikeFrequency(j4a_spikes_soma(j4a_spikes_soma > Analysis_Start));
        TreeNumber(x_coord,y_coord)=x_plotrange(x_coord);
    end
end

for x_coord=1:1:x_plot_size
        Filename=[FilenameBase,'_',num2str(x_plotrange(x_coord)+offset),'_mep11.dat'];
        MEP(x_coord,1)=nrn_vread(Filename,machineformat);
end





%%  Plot Membrane Potential 
figure(5)
handles=zeros(x_plot_size,y_plot_size);
for y_coord=1:1:y_plot_size
    for x_coord=1:1:x_plot_size
 
        handles(x_coord,y_coord)=subplot(x_plot_size,y_plot_size,(x_coord-1)*y_plot_size+y_coord);
        plot(tvec{x_coord,y_coord},yvec{x_coord,y_coord},'k-')
        
        xlim([2000,3000])
        ylim([-80,40])
        set(gca,'Visible','off')
       text(3100,40, ['B=',num2str(B2(x_coord,y_coord),'%0.2f')],'FontName','Arial','FontSize',10)
       text(3050,80, ['MEP=',num2str(MEP( x_coord),'%0.2f')],'FontName','Arial','FontSize',10)
    end
end
subplot(x_plot_size,y_plot_size,(x_plot_size-1)*y_plot_size+1)
scaleBar(2800,-70,100,50,'100 ms','50 mV')

%%  Plot Spike Trains 
figure(501)
clf
spikePlot(spikes,gca,100,1000);
ylabel('TreeNumber')
set(gca, 'yticklabel',[1:7,1:7])

%% Plot B2 versus MEP
figure(12)
clf 
hold on
plot(MEP,B2(:,1),'rO','MarkerFaceColor','r')
plot(MEP,B2(:,2),'g^','MarkerFaceColor','g')
ylabel('Bursting')
xlabel('MEP (\lambda)')
title('Bursting vs MEP')
legend(stimuli)

%% Plot B2 versus Tree Number
figure(1201)
clf
hold on
plot(TreeNumber(:,1),B2(:,1)','r+')
plot(TreeNumber(:,1),B2(:,2)','go')
ylabel('Bursting')
xlabel('Tree Number')
xlim([0,8])
title(' B2 versus Tree Number')
legend(stimuli)

%% Plot f versus TreeNumber
figure(1202)
clf 
hold on
plot(TreeNumber(:,1),f(:,1),'r+')
plot(TreeNumber(:,1),f(:,2),'go')
ylabel('Frequency (Hz)')
xlabel('Tree Number')
xlim([0,8])
title(' f versus Tree Number')
legend(stimuli)

Loading data, please wait...