Continuum model of tubulin-driven neurite elongation (Graham et al 2006)

 Download zip file 
Help downloading and running models
Accession:59581
This model investigates the elongation over time of a single developing neurite (axon or dendrite). Our neurite growth model describes the elongation of a single,unbranched neurite in terms of the rate of extension of the microtubule cytoskeleton. The cytoskeleton is not explicitly modelled, but its construction is assumed to depend on the available free tubulin at the growing neurite tip.
References:
1 . Graham BP, Lauchlan K, McLean DR (2006) Dynamics of outgrowth in a continuum model of neurite elongation. J Comput Neurosci 20:43-60 [PubMed]
2 . Graham BP, van Ooyen A (2006) Mathematical modelling and numerical simulation of the morphological development of neurons. BMC Neurosci 7 Suppl 1:S9 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Axon; Dendrite;
Brain Region(s)/Organism:
Cell Type(s):
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: MATLAB;
Model Concept(s): Development; Olfaction;
Implementer(s): Graham, Bruce [B.Graham at cs.stir.ac.uk];
% Continuum Model for Neurite Outgrowth
% Graham, Lauchlan & McLean Figure 5
% Steady-state length for variations in D, a and g
% (calculated via steady-state analysis)
% Version 2.0 (BPG & DRM 10-8-05)

% Parameters

% simulation (not used for analysis)
simp.dt = 0.01;                % time step
simp.tmax = 2000;              % simulation time
simp.datat = 100;              % data collection time step
simp.N = 100;                  % number of spatial points
simp.kmax = 10000;             % maximum corrector steps
simp.mc = 0.0001;              % tolerance on C;
simp.ml = 0.0001;              % tolerance on l;

% user-defined
modp.c0 = 10;                  % concentration scale
modp.l0 = 0.01;                % initial (min) length;
modp.D = 30000;                % diffusion constant
modp.a = 100;                  % active transport rate
modp.g = 0.002;                % decay rate
modp.rg = 10;                  % growth rate constant
modp.sg = 100;                 % growth rate set point (threshold)
k1 = 0.5;
k2 = 0.00001;
modp.e0 = modp.g*modp.sg/(k1*modp.c0*modp.rg*modp.a);  % soma flux-source rate
theta = 0;                     % fractional autoregulation
modp.er = theta*modp.e0;       % soma tubulin autoregulation
modp.rdt = 0;                  % autoregulation time delay
modp.el = k2*modp.rg;          % growth cone flux-sink rate
modp.zl = k2*modp.sg;          % growth cone flux-source rate

% plot parameters
tfs = 12;   % title font size

% Range for diffusion (D), active transport (a) and decay (g)
D = [30000 25000 20000 15000 10000 5000];
a = [100 80 60 40 20];
g = [0.002 0.0025 0.003 0.0035 0.005 0.01];

% Large growth
k1 = 0.5;
modp.e0 = modp.g*modp.sg/(k1*modp.c0*modp.rg*modp.a);  % soma flux-source rate
for (i=1:length(D))
  modp.D = D(i)
  % calculated parameters
  [calcp] = CMNG_calcparams(simp, modp);
  % get analytical steady-state values (note: not valid for ah=1)
  [CinflD, linflD(i)] = CMNG_lCanal(simp, modp, calcp, 0);
  linflD(i) = linflD(i)*(modp.D/(modp.rg*modp.c0));
  CinflD = CinflD*modp.c0;
  ahl = calcp.gamma*calcp.beta/(calcp.phi*calcp.alpha)
end
modp.D = 30000;
for (i=1:length(a))
  modp.a = a(i)
  % calculated parameters
  [calcp] = CMNG_calcparams(simp, modp);
  % get analytical steady-state values (note: not valid for ah=1)
  [Cinfla, linfla(i)] = CMNG_lCanal(simp, modp, calcp, 0);
  linfla(i) = linfla(i)*(modp.D/(modp.rg*modp.c0))
  Cinfla = Cinfla*modp.c0;
  ahl = calcp.gamma*calcp.beta/(calcp.phi*calcp.alpha)
end
modp.a = 100;
for (i=1:length(g))
  modp.g = g(i)
  % calculated parameters
  [calcp] = CMNG_calcparams(simp, modp);
  % get analytical steady-state values (note: not valid for ah=1)
  [Cinflg, linflg(i)] = CMNG_lCanal(simp, modp, calcp, 0);
  linflg(i) = linflg(i)*(modp.D/(modp.rg*modp.c0))
  Cinflg = Cinflg*modp.c0;
  ahl = calcp.gamma*calcp.beta/(calcp.phi*calcp.alpha)
end

% Moderate growth
k1 = 1.05;  % analysis not valid for k1=1
modp.e0 = modp.g*modp.sg/(k1*modp.c0*modp.rg*modp.a);  % soma flux-source rate
for (i=1:length(D))
  modp.D = D(i)
  % calculated parameters
  [calcp] = CMNG_calcparams(simp, modp);
  % get analytical steady-state values (note: not valid for ah=1)
  [CinfmD, linfmD(i)] = CMNG_lCanal(simp, modp, calcp, 0);
  linfmD(i) = linfmD(i)*(modp.D/(modp.rg*modp.c0));
  CinfmD = CinfmD*modp.c0;
  ahl = calcp.gamma*calcp.beta/(calcp.phi*calcp.alpha)
end
modp.D = 30000;
for (i=1:length(a))
  modp.a = a(i)
  % calculated parameters
  [calcp] = CMNG_calcparams(simp, modp);
  % get analytical steady-state values (note: not valid for ah=1)
  [Cinfma, linfma(i)] = CMNG_lCanal(simp, modp, calcp, 0);
  linfma(i) = linfma(i)*(modp.D/(modp.rg*modp.c0))
  Cinfma = Cinfma*modp.c0;
  ahl = calcp.gamma*calcp.beta/(calcp.phi*calcp.alpha)
end
modp.a = 100;
for (i=1:length(g))
  modp.g = g(i)
  % calculated parameters
  [calcp] = CMNG_calcparams(simp, modp);
  % get analytical steady-state values (note: not valid for ah=1)
  [Cinfmg, linfmg(i)] = CMNG_lCanal(simp, modp, calcp, 0);
  linfmg(i) = linfmg(i)*(modp.D/(modp.rg*modp.c0))
  Cinfmg = Cinfmg*modp.c0;
  ahl = calcp.gamma*calcp.beta/(calcp.phi*calcp.alpha)
end

% Small growth
k1 = 10;
modp.e0 = modp.g*modp.sg/(k1*modp.c0*modp.rg*modp.a);  % soma flux-source rate
for (i=1:length(D))
  modp.D = D(i)
  % calculated parameters
  [calcp] = CMNG_calcparams(simp, modp);
  % get analytical steady-state values (note: not valid for ah=1)
  [CinfsD, linfsD(i)] = CMNG_lCanal(simp, modp, calcp, 0);
  linfsD(i) = linfsD(i)*(modp.D/(modp.rg*modp.c0));
  CinfsD = CinfsD*modp.c0;
  ahl = calcp.gamma*calcp.beta/(calcp.phi*calcp.alpha)
end
modp.D = 30000;
for (i=1:length(a))
  modp.a = a(i)
  % calculated parameters
  [calcp] = CMNG_calcparams(simp, modp);
  % get analytical steady-state values (note: not valid for ah=1)
  [Cinfsa, linfsa(i)] = CMNG_lCanal(simp, modp, calcp, 0);
  linfsa(i) = linfsa(i)*(modp.D/(modp.rg*modp.c0))
  Cinfsa = Cinfsa*modp.c0;
  ahl = calcp.gamma*calcp.beta/(calcp.phi*calcp.alpha)
end
modp.a = 100;
for (i=1:length(g))
  modp.g = g(i)
  % calculated parameters
  [calcp] = CMNG_calcparams(simp, modp);
  % get analytical steady-state values (note: not valid for ah=1)
  [Cinfsg, linfsg(i)] = CMNG_lCanal(simp, modp, calcp, 0);
  linfsg(i) = linfsg(i)*(modp.D/(modp.rg*modp.c0))
  Cinfsg = Cinfsg*modp.c0;
  ahl = calcp.gamma*calcp.beta/(calcp.phi*calcp.alpha)
end

% Plot sensitivity against base case (D=30000, a=100, g=0.002)
dD = D./D(1);
da = a./a(1);
dg = g(1)./g;

subplot(3,3,1);
plot(dD, linflD./linflD(1), 'k*-');
hold on;
plot(dD, linfmD./linfmD(1), 'ko-');
plot(dD, linfsD./linfsD(1), 'ks-');
title('D','FontSize',tfs);
xlabel('Rate (%)');
ylabel('Length (%)');
%legend('large','mod','small',4);

subplot(3,3,2);
plot(da, linfla./linfla(1), 'k*-');
hold on;
plot(da, linfma./linfma(1), 'ko-');
plot(da, linfsa./linfsa(1), 'ks-');
title('a','FontSize',tfs);
xlabel('Rate (%)');

subplot(3,3,3);
plot(dg, linflg./linflg(1), 'k*-');
hold on;
plot(dg, linfmg./linfmg(1), 'ko-');
plot(dg, linfsg./linfsg(1), 'ks-');
title('g','FontSize',tfs);
xlabel('Rate (%)');
%legend('large','mod','small', 2);

Loading data, please wait...