Continuous time stochastic model for neurite branching (van Elburg 2011)

 Download zip file 
Help downloading and running models
Accession:129071
"In this paper we introduce a continuous time stochastic neurite branching model closely related to the discrete time stochastic BES-model. The discrete time BES-model is underlying current attempts to simulate cortical development, but is difficult to analyze. The new continuous time formulation facilitates analytical treatment thus allowing us to examine the structure of the model more closely. ..."
Reference:
1 . van Elburg R (2011) Stochastic Continuous Time Neurite Branching Models with Tree and Segment Dependent Rates Journal of Theoretical Biology 276(1):159-173
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: C or C++ program; MATLAB;
Model Concept(s): Development;
Implementer(s): van Elburg, Ronald A.J. [R.van.Elburg at ai.rug.nl];
%% Set parameter ranges used in calculations
SStep= 0.25;
SRange=-1:SStep:1;

N=11;

% load calculated results
filename=['mat-files/SDCRes_N',num2str(N),'_SRange',num2str(100*SRange(1)),'_',num2str(100*SStep),'_',num2str(100*SRange(end))];
load(filename,'A','C','E','H','M', 'P','SStep','SRange')

%Define bins for  summed electronic path lengths
Nbin=35  %#ok<NOPTS> % Number of bins for summed electronic pathlengths

edge1=min(E)-0.01*(max(E)-min(E));
edgeN=max(E)+0.01*(max(E)-min(E));
edges=edge1:(edgeN-edge1)/Nbin:edgeN;
centers=(edges(2:end)+edges(1:end-1))/2;
[n,bin] = histc(E,edges);  %#ok<ASGLU>

%Define bins for tree asymmetry indices
NAbin=20 %#ok<NOPTS> % Number of bins for tree asymmetrie index
Aedge1=min(A)-0.01*(max(A)-min(A));
AedgeN=max(A)+0.01*(max(A)-min(A));
Aedges=Aedge1:(AedgeN-Aedge1)/NAbin:AedgeN;
Acenters=(Aedges(2:end)+Aedges(1:end-1))/2;
[n,Abin] = histc(A,Aedges);

%% Set plot parameters
% markers and their sizes
markers={'ko-','ko-','ko-','ko-','ko-','ko-','ko-','ko-','ko-'};
a=1.5;
b=1.5;
linewidths={a,a,a,a,a,a,b,a,a};

figurebasename=['figures/SDCRes_N',num2str(N),'_SRange',num2str(100*SRange(1)),'_',num2str(100*SStep),'_',num2str(100*SRange(end))];

%% Make a nice GUI
scrsz = get(0,'ScreenSize');

%%
figure(2)
set(gcf,'Position',[1, 1+scrsz(4)/3, scrsz(3)/2, scrsz(4)/3])
clf
title('S-dependency')


% Plot distribution versus Summed Electrotonic Pathlengths
subplot(1,3,1)
hold on
curves=zeros(length(SRange),Nbin);
for S=1:length(SRange)
    curves(S,:)=accumarray({bin'},P(:,S));
end

for S=1:length(SRange)
    plot(centers,curves(S,:)+(S-1)*0.08,markers{S},'LineWidth',linewidths{S},'MarkerFaceColor','w')
    if(mod(S,2)==1)
        text(centers(1),curves(S,1)+(S-1)*0.08+0.045,['S = ', num2str(SRange(S))],'Fontsize',12)
    end
end
text(centers(1),0.88,['N = ', num2str(N)],'Fontsize',12);
xlabel('Summed Electrotonic Pathlengths','Fontsize',12)
ylabel('Probability Density','Fontsize',12)
set(gca,'YTick',0.08*0:13)
set(gca,'LineWidth',2,'Fontsize',10);
axis auto
axis([centers(1)-0.2,centers(end)+0.1,-0.1,1.1])


% Plot distribution versus Log_2 Multiplicity
subplot(1,3,2)
hold on
offset=0.08;

curves=zeros(length(SRange),N-1);
Mcenters=0:N-2;

for S=1:length(SRange)
    curves(S,:)=accumarray({round(log(10)/log(2)*(M))+1},P(:,S));
end

log2mean=zeros(size(S));

for S=1:length(SRange)
    
    plot(Mcenters,curves(S,:)+(S-1)*offset,markers{S},'LineWidth',linewidths{S},'MarkerFaceColor','w')
    if(mod(S,2)==1)
        text(Mcenters(1),curves(S,1)+(S-1)*offset+0.03,['S = ', num2str(SRange(S))],'Fontsize',12);
    end
end
text(Mcenters(1),0.88,['N = ', num2str(N)],'Fontsize',12);
xlabel('Log_2 Multiplicity','Fontsize',12)
ylabel('Probability Density','Fontsize',12)
set(gca,'YTick',offset*0:13)
%  set(gca,'LineWidth',2);axis auto
set(gca,'LineWidth',2,'Fontsize',10)
axis([Mcenters(1)-1,Mcenters(end)+0.1,-0.1,1])


% Plot distribution versus tree asymmetry index
subplot(1,3,3)
hold on


curves=zeros(length(SRange),NAbin);
for S=1:length(SRange)
    curves(S,:)=accumarray({Abin'},P(:,S));
end

for S=1:length(SRange)
    plot(Acenters,curves(S,:)+(S-1)*0.08,markers{S},'LineWidth',linewidths{S},'MarkerFaceColor','w')
    if(mod(S,2)==1)
        text(Acenters(1),curves(S,1)+(S-1)*0.08+0.03,['S = ', num2str(SRange(S))],'Fontsize',12)
    end
end
text(Acenters(1),0.88,['N = ', num2str(N)],'Fontsize',12);
xlabel('Tree Asymmetry Index','Fontsize',12)
ylabel('Probability Density','Fontsize',12)
set(gca,'YTick',0.08*0:13)
set(gca,'LineWidth',2,'Fontsize',10);
axis auto
axis([0,1,-0.1,1])

%%
figure(3)
set(gcf,'Position',[1, 1+1+scrsz(4)*2/3, scrsz(3)/2, scrsz(4)/3])
clf
hold on

linestyle='.'       % Best for large datasets
linestyle='d-'      % Best for small datasets

subplot(1,3,1)
plot(E(:),linestyle)
ylabel('Summed Electrotonic Pathlengths','Fontsize',12)
xlabel('Tree Index','Fontsize',12)
set(gca,'LineWidth',2,'Fontsize',10)
axis([0.25,double(C)+0.75,min(min(E))*1.05-max(max(E))*0.05,max(max(E))*1.05-min(min(E))*0.05])

subplot(1,3,2)
plot(log(10)/log(2).*M(:),linestyle)
ylabel('Log_2 Multiplicity','Fontsize',12)
xlabel('Tree Index','Fontsize',12)
set(gca,'LineWidth',2,'Fontsize',10)
axis([0.25,C+0.75,0,log(10)/log(2).*max(max(M))+0.5])

subplot(1,3,3)
plot(A(:),linestyle)
ylabel('Tree Asymmetry Index','Fontsize',12)
xlabel('Tree Index','Fontsize',12)
set(gca,'LineWidth',2,'Fontsize',10)
axis([0.25,C+0.75,0,1])
%%
figure(4)
set(gcf,'Position',[1, 1, scrsz(3)/2, scrsz(4)/3])
clf
hold on
subplot(1,3,1)
plot(E(:),A(:),'.')
ylabel('Tree Asymmetry Index','Fontsize',12)
xlabel('Summed Electrotonic Pathlengths','Fontsize',12)
set(gca,'LineWidth',2,'Fontsize',10);axis auto

subplot(1,3,2)
plot(log(10)/log(2).*M(:),E(:),'.')
ylabel('Summed Electrotonic Pathlengths','Fontsize',12)
xlabel('Log_2 Multiplicity','Fontsize',12)
set(gca,'LineWidth',2,'Fontsize',10);
axis auto

subplot(1,3,3)
plot(A(:),log(10)/log(2).*M(:),'.')
ylabel('Log_2 Multiplicity','Fontsize',12)
xlabel('Tree Asymmetry Index','Fontsize',12)
set(gca,'LineWidth',2,'Fontsize',10)
axis auto



%%


format={'png'};
[dummy,size_format]=size(format);
for x=1:1:size_format
    figure(2)
    set(gcf,'PaperPositionMode','auto','PaperOrientation','portrait')
    print(gcf, ['-d',format{x}],'-r120',[figurebasename,'SDependencies_N',num2str(N)])
    figure(3)
    set(gcf,'PaperPositionMode','auto','PaperOrientation','portrait')
    print(gcf, ['-d',format{x}],'-r120',[figurebasename,'TreeAsymmetryMeasureComparison_N',num2str(N)])
    figure(4)
    set(gcf,'PaperPositionMode','auto','PaperSize', [scrsz(3)/2, scrsz(4)/3],'PaperOrientation','portrait')
    print(gcf, ['-d',format{x}],'-r120',[figurebasename,'TreeAsymmetryMeasuresVsIndex_N',num2str(N)])
end

%%
format={'pdf'};
[dummy,size_format]=size(format);
for x=1:1:size_format
    figure(4)
    units= get(gcf,'PaperUnits');
    set(gcf,'PaperUnits','points','PaperSize', [scrsz(3)/2, scrsz(4)/3])
    set(gcf,'PaperPositionMode','auto','PaperSize', [scrsz(3)/2, scrsz(4)/3],'PaperOrientation','portrait')
    print(gcf, ['-d',format{x}],'-r120',[figurebasename,'TreeAsymmetryMeasuresVsIndex_N',num2str(N)])
    set(gcf,'PaperUnits',units)
end



%%
% format={'pdf','jpg'};
% [dummy,size_format]=size(format);
% for x=1:1:size_format
%     figure(2)
%     set(gcf,'PaperPositionMode','auto','PaperOrientation','portrait')
%     saveas(gcf, [figurebasename,'SDependencies_N',num2str(N)],format{x})
%     figure(3)
%     set(gcf,'PaperPositionMode','auto','PaperOrientation','portrait')
%     saveas(gcf, [figurebasename,'TreeAsymmetryMeasureComparison_N',num2str(N)],format{x})
%     figure(4)
%     units= get(gcf,'PaperUnits');
%     set(gcf,'PaperUnits','points')
%     set(gcf,'PaperSize', [scrsz(3)/2, scrsz(4)/3],'PaperPositionMode','auto','PaperOrientation','portrait')
%     saveas(gcf, [figurebasename,'TreeAsymmetryMeasuresVsIndex_N',num2str(N)],format{x})
%     set(gcf,'PaperUnits',units)
% end




Loading data, please wait...