CA1 pyramidal neuron: dendritic Ca2+ inhibition (Muellner et al. 2015)

 Download zip file 
Help downloading and running models
Accession:206244
In our experimental study, we combined paired patch-clamp recordings and two-photon Ca2+ imaging to quantify inhibition exerted by individual GABAergic contacts on hippocampal pyramidal cell dendrites. We observed that Ca2+ transients from back-propagating action potentials were significantly reduced during simultaneous activation of individual nearby GABAergic synapses. To simulate dendritic Ca2+ inhibition by individual GABAergic synapses, we employed a multi-compartmental CA1 pyramidal cell model with detailed morphology, voltage-gated channel distributions, and calcium dynamics, based with modifications on the model of Poirazi et al., 2003, modelDB accession # 20212.
Reference:
1 . Müllner FE, Wierenga CJ, Bonhoeffer T (2015) Precision of Inhibition: Dendritic Inhibition by Individual GABAergic Synapses on Hippocampal Pyramidal Cells Is Confined in Space and Time. Neuron 87:576-89 [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: Hippocampus;
Cell Type(s): Hippocampus CA1 pyramidal GLU cell;
Channel(s): I Calcium; I Sodium; I Potassium; I h;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s): Gaba;
Simulation Environment: NEURON;
Model Concept(s): Action Potentials; Dendritic Action Potentials; Active Dendrites; Calcium dynamics;
Implementer(s): Muellner, Fiona E [fiona.muellner at gmail.com];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; I h; I Sodium; I Calcium; I Potassium; Gaba;
% Compare length constants of simulated Ca2+-inhibition for different
% model parameters
% ---
% Fiona Müllner, MPI Neurobiology
% Email: fiona.muellner at gmail.com

clearvars -except rootfolder
space = 5;
fitsingle = 0;

cd(sprintf('%s\\CA1_multi\\experiment\\mul2',rootfolder))
figure
NeuronSim_Summary

subplot(2,1,1)
tempx=[];
tempy=[];
xl=get(gca,'xlim'); xl=round(xl/space)*space;
for i=1:length(newx)
    s = find((diff(newx{1,i})==0).*(diff(resultv{1,i})==0)==0);
    newx{1,i}=newx{1,i}(s);
    resultv{1,i}=resultv{1,i}(s);
    if fitsingle
        sel1=(~isnan(resultv{1,i})).*(newx{1,i}>=0)==1;
        if sum(sel1)>1
            estimates1 = exp_nooffset2(newx{1,i}(sel1),resultv{1,i}(sel1));
        else
            estimates1 = NaN;
        end
        sel1=(~isnan(resultv{1,i})).*(newx{1,i}<=0)==1;
        if sum(sel1)>1
            estimates2 = exp_nooffset2(newx{1,i}(sel1),resultv{1,i}(sel1));
        else
            estimates2 = NaN;
        end
        k(1,i,1:2) = [1/estimates1,-1/estimates2];
    end
    tempy=[tempy,interp1(newx{1,i},resultv{1,i},xl(1):space:xl(2))];
    tempx=[tempx,xl(1):space:xl(2)];
end
newx=tempx; 
resultv=tempy;
sel1=(~isnan(resultv)).*(newx>=0)==1;
if sum(sel1)>1
    [estimates1, model] = exp_nooffset2(newx(sel1),resultv(sel1));
    plot([0:200],exp(-[0:200]*estimates1),'k-','LineWidth',2)
else
    estimates1 = NaN;
end
sel1=(~isnan(resultv)).*(newx<=0)==1;
if sum(sel1)>1
    [estimates2, model] = exp_nooffset2(newx(sel1),resultv(sel1));
    plot(-[0:1000],exp([0:1000]*estimates2),'k-','LineWidth',2)
else
    estimates2 = NaN;
end
text(-1000,0.7,sprintf('distal %1.1f um, proximal %1.1f um',1/estimates1,-1/estimates2))
title('mul2')

h(1,:)=[1/estimates1,-1/estimates2];

cd(sprintf('%s\\CA1_multi\\experiment\\regular',rootfolder))

figure
NeuronSim_Summary

subplot(2,1,1)
tempx=[];
tempy=[];
xl=get(gca,'xlim'); xl=round(xl/space)*space;
for i=1:length(newx)
    s = find((diff(newx{1,i})==0).*(diff(resultv{1,i})==0)==0);
    newx{1,i}=newx{1,i}(s);
    resultv{1,i}=resultv{1,i}(s);
    if fitsingle
        sel1=(~isnan(resultv{1,i})).*(newx{1,i}>=0)==1;
        if sum(sel1)>1
            estimates1 = exp_nooffset2(newx{1,i}(sel1),resultv{1,i}(sel1));
        else
            estimates1 = NaN;
        end
        sel1=(~isnan(resultv{1,i})).*(newx{1,i}<=0)==1;
        if sum(sel1)>1
            estimates2 = exp_nooffset2(newx{1,i}(sel1),resultv{1,i}(sel1));
        else
            estimates2 = NaN;
        end
        k(2,i,1:2) = [1/estimates1,-1/estimates2];
    end
    tempy=[tempy,interp1(newx{1,i},resultv{1,i},xl(1):space:xl(2))];
    tempx=[tempx,xl(1):space:xl(2)];
end
newx=tempx; 
resultv=tempy;
sel1=(~isnan(resultv)).*(newx>=0)==1;
if sum(sel1)>1
    [estimates1, model] = exp_nooffset2(newx(sel1),resultv(sel1));
    plot([0:200],exp(-[0:200]*estimates1),'k-','LineWidth',2)
else
    estimates1 = NaN;
end
sel1=(~isnan(resultv)).*(newx<=0)==1;
if sum(sel1)>1
    [estimates2, model] = exp_nooffset2(newx(sel1),resultv(sel1));
    plot(-[0:500],exp([0:500]*estimates2),'k-','LineWidth',2)
else
    estimates2 = NaN;
end
text(-500,0.7,sprintf('distal %1.1f um, proximal %1.1f um',1/estimates1,-1/estimates2))
title('regular')

h(2,:)=[1/estimates1,-1/estimates2];

cd(sprintf('%s\\CA1_multi\\experiment\\div2',rootfolder))
figure
NeuronSim_Summary

subplot(2,1,1)
tempx=[];
tempy=[];
xl=get(gca,'xlim'); xl=round(xl/space)*space;
for i=1:length(newx)
    s = find((diff(newx{1,i})==0).*(diff(resultv{1,i})==0)==0);
    newx{1,i}=newx{1,i}(s);
    resultv{1,i}=resultv{1,i}(s);
    if fitsingle
        sel1=(~isnan(resultv{1,i})).*(newx{1,i}>=0)==1;
        if sum(sel1)>1
            estimates1 = exp_nooffset2(newx{1,i}(sel1),resultv{1,i}(sel1));
        else
            estimates1 = NaN;
        end
        sel1=(~isnan(resultv{1,i})).*(newx{1,i}<=0)==1;
        if sum(sel1)>1
            estimates2 = exp_nooffset2(newx{1,i}(sel1),resultv{1,i}(sel1));
        else
            estimates2 = NaN;
        end
        k(3,i,1:2) = [1/estimates1,-1/estimates2];
    end
    tempy=[tempy,interp1(newx{1,i},resultv{1,i},xl(1):space:xl(2))];
    tempx=[tempx,xl(1):space:xl(2)];
end
newx=tempx; 
resultv=tempy;
sel1=(~isnan(resultv)).*(newx>=0)==1;
if sum(sel1)>1
    [estimates1, model] = exp_nooffset2(newx(sel1),resultv(sel1));
    plot([0:100],exp(-[0:100]*estimates1),'k-','LineWidth',2)
else
    estimates1 = NaN;
end
sel1=(~isnan(resultv)).*(newx<=0)==1;
if sum(sel1)>1
    [estimates2, model] = exp_nooffset2(newx(sel1),resultv(sel1));
    plot(-[0:250],exp([0:250]*estimates2),'k-','LineWidth',2)
else
    estimates2 = NaN;
end
text(-250,0.7,sprintf('distal %1.1f um, proximal %1.1f um',1/estimates1,-1/estimates2))
title('div2')

h(3,:)=[1/estimates1,-1/estimates2];

cd(sprintf('%s\\CA1_multi\\experiment\\spinesadded',rootfolder))
figure
NeuronSim_Summary

subplot(2,1,1)
tempx=[];
tempy=[];
xl=get(gca,'xlim'); xl=round(xl/space)*space;
for i=1:length(newx)
    s = find((diff(newx{1,i})==0).*(diff(resultv{1,i})==0)==0);
    newx{1,i}=newx{1,i}(s);
    resultv{1,i}=resultv{1,i}(s);
    if fitsingle
        sel1=(~isnan(resultv{1,i})).*(newx{1,i}>=0)==1;
        if sum(sel1)>1
            estimates1 = exp_nooffset2(newx{1,i}(sel1),resultv{1,i}(sel1));
        else
            estimates1 = NaN;
        end
        sel1=(~isnan(resultv{1,i})).*(newx{1,i}<=0)==1;
        if sum(sel1)>1
            estimates2 = exp_nooffset2(newx{1,i}(sel1),resultv{1,i}(sel1));
        else
            estimates2 = NaN;
        end
        k(6,i,1:2) = [1/estimates1,-1/estimates2];
    end
    tempy=[tempy,interp1(newx{1,i},resultv{1,i},xl(1):space:xl(2))];
    tempx=[tempx,xl(1):space:xl(2)];
end
newx=tempx; 
resultv=tempy;
sel1=(~isnan(resultv)).*(newx>=0)==1;
if sum(sel1)>1
    [estimates1, model] = exp_nooffset2(newx(sel1),resultv(sel1));
    plot([0:100],exp(-[0:100]*estimates1),'k-','LineWidth',2)
else
    estimates1 = NaN;
end
sel1=(~isnan(resultv)).*(newx<=0)==1;
if sum(sel1)>1
    [estimates2, model] = exp_nooffset2(newx(sel1),resultv(sel1));
    plot(-[0:250],exp([0:250]*estimates2),'k-','LineWidth',2)
else
    estimates2 = NaN;
end
text(-250,0.7,sprintf('distal %1.1f um, proximal %1.1f um',1/estimates1,-1/estimates2))
title('spinesadded')

h(4,:)=[1/estimates1,-1/estimates2];


cd(sprintf('%s\\CA1_multi\\experiment\\smalltau',rootfolder))
figure
NeuronSim_Summary

subplot(2,1,1)
tempx=[];
tempy=[];
xl=get(gca,'xlim'); xl=round(xl/space)*space;
for i=1:length(newx)
    s = find((diff(newx{1,i})==0).*(diff(resultv{1,i})==0)==0);
    newx{1,i}=newx{1,i}(s);
    resultv{1,i}=resultv{1,i}(s);
    if fitsingle
        sel1=(~isnan(resultv{1,i})).*(newx{1,i}>=0)==1;
        if sum(sel1)>1
            estimates1 = exp_nooffset2(newx{1,i}(sel1),resultv{1,i}(sel1));
        else
            estimates1 = NaN;
        end
        sel1=(~isnan(resultv{1,i})).*(newx{1,i}<=0)==1;
        if sum(sel1)>1
            estimates2 = exp_nooffset2(newx{1,i}(sel1),resultv{1,i}(sel1));
        else
            estimates2 = NaN;
        end
        k(2,i,1:2) = [1/estimates1,-1/estimates2];
    end
    tempy=[tempy,interp1(newx{1,i},resultv{1,i},xl(1):space:xl(2))];
    tempx=[tempx,xl(1):space:xl(2)];
end
newx=tempx; 
resultv=tempy;
sel1=(~isnan(resultv)).*(newx>=0)==1;
if sum(sel1)>1
    [estimates1, model] = exp_nooffset2(newx(sel1),resultv(sel1));
    plot([0:200],exp(-[0:200]*estimates1),'k-','LineWidth',2)
else
    estimates1 = NaN;
end
sel1=(~isnan(resultv)).*(newx<=0)==1;
if sum(sel1)>1
    [estimates2, model] = exp_nooffset2(newx(sel1),resultv(sel1));
    plot(-[0:500],exp([0:500]*estimates2),'k-','LineWidth',2)
else
    estimates2 = NaN;
end
text(-500,0.7,sprintf('distal %1.1f um, proximal %1.1f um',1/estimates1,-1/estimates2))
title('smalltau')

h(5,:)=[1/estimates1,-1/estimates2];


figure
plot([2,1,0.5],h(1:3,1),'bo-')
hold all
plot([2,1,0.5],h(1:3,2),'c^-')
plot(1,h(4,1),'om')
plot(1,h(5,1),'og')
plot(1,h(4,2),'^m')
plot(1,h(5,2),'^g')


xlim([0,2.5])
legend('regular prox','regular dist','spines 0.5','tau0.5')





Loading data, please wait...