CA1 pyramidal neuron: synaptically-induced bAP predicts synapse location (Sterratt et al. 2012)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:144490
This is an adaptation of Poirazi et al.'s (2003) CA1 model that is used to measure BAP-induced voltage and calcium signals in spines after simulated Schaffer collateral synapse stimulation. In the model, the peak calcium concentration is highly correlated with soma-synapse distance under a number of physiologically-realistic suprathreshold stimulation regimes and for a range of dendritic morphologies. There are also simulations demonstrating that peak calcium can be used to set up a synaptic democracy in a homeostatic manner, whereby synapses regulate their synaptic strength on the basis of the difference between peak calcium and a uniform target value.
Reference:
1 . Sterratt DC, Groen MR, Meredith RM, van Ooyen A (2012) Spine calcium transients induced by synaptically-evoked action potentials can predict synapse location and establish synaptic democracy. PLoS Comput Biol 8:e1002545 [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:
Cell Type(s): Hippocampus CA1 pyramidal GLU cell;
Channel(s): I Na,t; I L high threshold; I T low threshold; I A; I K; I M; I Mixed; I R; I_AHP;
Gap Junctions:
Receptor(s): AMPA; NMDA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Dendritic Action Potentials; Synaptic Plasticity;
Implementer(s): Sterratt, David ; Groen, Martine R [martine.groen at gmail.com];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; AMPA; NMDA; I Na,t; I L high threshold; I T low threshold; I A; I K; I M; I Mixed; I R; I_AHP;
/
bpap
CA1_multi
datastore
pars
plots
poirazi-nmda-car
tests
validation-plots
README.txt
ampa_forti.mod
cacum.mod
cad.mod *
cagk.mod
cal.mod
calH.mod
car.mod
car_mag.mod
cat.mod
d3.mod *
h.mod
hha_old.mod
hha2.mod
kadist.mod
kaprox.mod
kca.mod
km.mod
nap.mod
nmda_andr.mod
somacar.mod
binaverages.m
bpap-cell.hoc
bpap-data.hoc
bpap-dendburst.hoc
bpap-graphics.hoc
bpap-gui.hoc
bpap-gui.ses
bpap-pars.hoc
bpap-record.hoc
bpap-run.hoc
bpap-scaling.hoc
bpap-sims.hoc
bpap-sims-cell1.hoc
bpap-sims-cell2.hoc
bpap-sims-scaling.hoc
bpap-somainj.hoc
bpap-spiketrain.hoc
ca1_mrg_cell1.hoc
ca1_mrg_cell2.hoc
ca1_poirazi.hoc
ChannelBlocker.hoc
CrossingFinder.hoc
epspsizes.hoc
figure-example.R
figures.R
figures-common.R
FileUtils.hoc
FormatFile.hoc
ghk.inc
GraphUtils.hoc
Integrator.hoc
Makefile
mosinit.hoc
NmdaAmpaSpineSynStim.hoc
NmdaAmpaSynStim.hoc
ObjectClass.hoc
plotscalingresults_pergroup1.m
plotscalingresults5.m
PointProcessDistributor.hoc
ReferenceAxis.hoc
removezeros.m
RPlot.hoc
scaling_plots.m
Segment.hoc
SimpleSpine.hoc
Spine.hoc
TreePlot.hoc
TreePlotArray.hoc
triexpsyn.inc
units.inc
utils.hoc
validate-bpap.hoc
VarList.hoc
VCaGraph.hoc
                            
function[]=plotscalingresults5(casrimax,distances,synweight,trunksri)
    % replaces zeros (no calcium measured) in the original data with NaN
    casrimax=removezeros(casrimax);
    
    [nrruns,nrsegments]=size(synweight); % note nrruns is nrrun+1 because the synaptic weights are defined at the end of the run

    sortdistances(:,1)=distances;
    sortdistances(:,2)=1:size(distances,2);
    sorteddistances=sortrows(sortdistances,1);
    sorteddistances(:,3)=1:size(distances,2);
    sorteddistances2=sortrows(sorteddistances,2);
    colorlistjet=colormap(jet(size(distances,2)));
    
  
    %plot casrimax with subthreshold responses
    
    %thresholdca=0.0478391;
    thresholdca=0.052;
    nrskippedtr=6;
    
    figure()
    subplot('Position',[0.07 0.1 0.78 0.8])
    hold on
    for nrsegment=1:nrskippedtr:nrsegments
        plot(casrimax(1:nrruns-1,nrsegment)*1000,'Color',colorlistjet(sorteddistances2(nrsegment,3),:))
    end
    plot([1,nrruns-1],[thresholdca, thresholdca]*1000,'k--')
    xlabel('# run')
    ylabel('peak calcium')

    subplot('Position',[0.85 0.12 0.1 0.76])
    hold on
    for nrsegment=1:nrsegments
        plot(1,nrsegment, 'sq','MarkerFaceColor', colorlistjet(nrsegment,:),'MarkerEdgeColor',colorlistjet(nrsegment,:),'MarkerSize',14) 
    end
    ylim([0,size(distances,2)])
    axis('off')
    text(1.5,1,'0','FontSize',10)
    text(1.5,488,num2str(max(distances),4),'FontSize',10)      
    
    %plot casrimax as dots in stead of lines (incl subthreshold)
        figure()
    subplot('Position',[0.07 0.1 0.78 0.8])
    hold on
    for nrsegment=1:nrskippedtr:nrsegments
        plot(casrimax(1:nrruns-1,nrsegment)*1000,'.','MarkerSize',4,'Color',colorlistjet(sorteddistances2(nrsegment,3),:))
    end
    plot([1,nrruns-1],[thresholdca, thresholdca]*1000,'k--')
    xlabel('# run')
    ylabel('peak calcium')

    subplot('Position',[0.85 0.12 0.1 0.76])
    hold on
    for nrsegment=1:nrsegments
        plot(1,nrsegment, 'sq','MarkerFaceColor', colorlistjet(nrsegment,:),'MarkerEdgeColor',colorlistjet(nrsegment,:),'MarkerSize',14) 
    end
    ylim([0,size(distances,2)])
    axis('off')
    text(1.5,1,'0','FontSize',10)
    text(1.5,488,num2str(max(distances),4),'FontSize',10) 
    
    %plot casrimax without subthreshold responses. 
    figure()
    subplot('Position',[0.07 0.1 0.78 0.8])
    hold on
    
    casrimaxwithoutsub=casrimax;
    for run=1:nrruns-1
        if(min(casrimax(run,:))<0.030)
            casrimaxwithoutsub(run,:)=NaN;
            
        else
            casrimaxwithoutsub(run,:)=casrimax(run,:);
            plot([run,run],[105,108],'k-') % plot a line in case of suprathreshold responses
        end
    end
    
    for nrsegment=1:nrskippedtr:nrsegments
        plot(casrimaxwithoutsub(1:nrruns-1,nrsegment)*1000,'Color',colorlistjet(sorteddistances2(nrsegment,3),:))
    end
    plot([1,nrruns-1],[thresholdca, thresholdca]*1000,'k--')
    xlabel('# run')
    ylabel('peak calcium')
    
    subplot('Position',[0.85 0.12 0.1 0.76])
    hold on
    for nrsegment=1:nrsegments
        plot(1,nrsegment, 'sq','MarkerFaceColor', colorlistjet(nrsegment,:),'MarkerEdgeColor',colorlistjet(nrsegment,:),'MarkerSize',14) 
    end
    ylim([0,size(distances,2)])
    axis('off')
    text(1.5,1,'0','FontSize',10)
    text(1.5,488,num2str(max(distances),4),'FontSize',10)    
    
    % measure the amount of stimulations per segment
    stimnostim=casrimax>0;
    nrstimperseg=sum(stimnostim);
    figure()
    subplot(1,2,1)
    plot(nrstimperseg,'.')
    ylabel('nr stims')
    xlabel('segments nr')
    subplot(1,2,2)
    plot(distances,nrstimperseg,'.')
    xlabel('distances')
    
    % only plot synweight for synapses that are activated at least ones
    for nrsegment=1:nrsegments
        if(nrstimperseg(nrsegment)==0)
            synweight(:,nrsegment)=NaN;
        end
    end
   
    figure()
    subplot('Position',[0.07 0.1 0.78 0.8])
    hold on
    for nrsegment=1:nrskippedtr:nrsegments
        plot(synweight(1:nrruns-1,nrsegment)*10^6,'Color',colorlistjet(sorteddistances2(nrsegment,3),:))
    end
    xlabel('nr stim')
    ylabel('synaptic strength')

    subplot('Position',[0.85 0.12 0.1 0.76])
    hold on
    for nrsegment=1:nrsegments
        plot(1,nrsegment, 'sq','MarkerFaceColor', colorlistjet(nrsegment,:),'MarkerEdgeColor',colorlistjet(nrsegment,:),'MarkerSize',14) 
    end
    ylim([0,size(distances,2)])
    axis('off')
    text(1.5,1,'0','FontSize',10)
    text(1.5,488,num2str(max(distances),4),'FontSize',10)
    
    figure()
    hold on
    for nrsegment=1:nrsegments
        if(max(nrsegment==trunksri+1)==1)
            % trunk segment
            %plot(distances(nrsegment),synweight(1,nrsegment)*10^6,'o','MarkerEdgeColor','k','MarkerFaceColor','w','MarkerSize',8)
            plot(distances(nrsegment),synweight(200,nrsegment)*10^6,'o','MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',8) 
        else
            % non trunk segment
            %plot(distances(nrsegment),synweight(1,nrsegment)*10^6,'o','MarkerEdgeColor',[0.6 0.6 0.6],'MarkerFaceColor','w','MarkerSize',8)
            plot(distances(nrsegment),synweight(200,nrsegment)*10^6,'o','MarkerEdgeColor',[0.6 0.6 0.6],'MarkerFaceColor',[0.6 0.6 0.6],'MarkerSize',8)            
        end
    end
    
    plot([0,max(distances)],[200,200],'-k')
    xlim([0 1000])
    %ylim([0 nrruns-1])
    xlabel('distance')
    ylabel('synaptic weight')
    title('synaptic weight at start (open) and end of scaling (closed)')
    
    figure()
    plot(synweight(1:200,:),casrimax(1:200,:),'.')
    ylabel('peak calcium')
    xlabel('synaptic strength')
    
    
end

Loading data, please wait...