A mathematical model of evoked calcium dynamics in astrocytes (Handy et al 2017)

 Download zip file 
Help downloading and running models
" ...Here we present a qualitative analysis of a recent mathematical model of astrocyte calcium responses. We show how the major response types are generated in the model as a result of the underlying bifurcation structure. By varying key channel parameters, mimicking blockers used by experimentalists, we manipulate this underlying bifurcation structure and predict how the distributions of responses can change. We find that store-operated calcium channels, plasma membrane bound channels with little activity during calcium transients, have a surprisingly strong effect, underscoring the importance of considering these channels in both experiments and mathematical settings. ..."
1 . Handy G, Taheri M, White JA, Borisyuk A (2017) Mathematical investigation of IP3-dependent calcium dynamics in astrocytes. J Comput Neurosci 42:257-273 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Glia;
Brain Region(s)/Organism:
Cell Type(s):
Channel(s): Ca pump; I_SERCA; I Calcium;
Gap Junctions:
Receptor(s): IP3;
Simulation Environment: MATLAB; XPP;
Model Concept(s): Calcium dynamics; Oscillations; Bifurcation;
Implementer(s): Handy, Gregory [handy at math.utah.edu]; Taheri, Marsa ;
Search NeuronDB for information about:  IP3; I Calcium; I_SERCA; Ca pump;
function [TrueTroughVal, TrueTroughLoc, PeakVal, PeakLoc] = PeaksAndTroughs_TH(x, threshPk, threshDist)
% Copyright: Marsa Taheri and Gregory Handy, 2016
% This code was used to simulate the mathematical model of Astrocyte 
% IP3-dependent Ca responses in 2 papers submitted in Nov 2016.
%Uses the 'threshPk' value to determine all the Peaks seen in trace 'x'.
%Also finds the last trough before each peak and uses the 'threshDist' to
%determine whether it is a True Trough or not.
%The output is all the True Trough values and locations as well as all the
%Peak values and locations.

[PeakVal, PeakLoc]=findpeaks(x, 'MINPEAKHEIGHT', threshPk);
[~, locn]=findpeaks(-x);

count=1; L=length(PeakLoc);
troughLoc=zeros(L); troughVal=zeros(L);
if L==0
    TrueTroughVal=[]; TrueTroughLoc=[];
    PeakVal=[]; PeakLoc=[];
    for i=1:L
        if isempty(locn) || locn(1)>PeakLoc(1)%If there's No trough before 1st peak
            startResp = find(x>1.05*x(1), 1, 'first');
            if size(locn,2)==1
                locn=[startResp; locn];
                locn=[startResp, locn];
        troughLoc(i)=locn(find(locn<PeakLoc(i), 1, 'last'));
        if PeakVal(i) > (troughVal(i) + threshDist)

Loading data, please wait...