No BSD License  

Highlights from
Neurocal

image thumbnail
from Neurocal by Zeng Lertmanorat
Simulation describing the electrical activity of nerve cell (neuron) by solving cable equation

create_dummymodel
function create_dummymodel
global  zeng zeng2 t
dummymodelindex_i=1;
for i =1:length(zeng2.dummymodel)
    zeng2.dummymodel{i}.nodes=cell(length(zeng2.dummymodel{i}.var),1);  
    zeng2.dummymodel{i}.nodes_all=[];
    nodes_all=[];
    i_C=[];
    for j=1:length(zeng2.dummymodel{i}.var)
        zeng2.dummymodel{i}.nodes{j}=zeng2.setup.nseg_length(zeng2.dummymodel{i}.var(j),1):zeng2.setup.nseg_length(zeng2.dummymodel{i}.var(j),2);  
        zeng2.dummymodelindex(dummymodelindex_i,:)=[zeng2.dummymodel{i}.var(j) i  length(nodes_all)+[1 length(zeng2.dummymodel{i}.nodes{j})]];;
        dummymodelindex_i=dummymodelindex_i+1;
        nodes_all=[nodes_all zeng2.dummymodel{i}.nodes{j}];
        i_C=[i_C;1./(zeng2.dummyvar{zeng2.dummymodel{i}.var(j)}.cm+zeros(length(zeng2.dummymodel{i}.nodes{j}),1))]; 
    end
    zeng2.dummymodel{i}.nodes_all=nodes_all;
    zeng2.dummymodel{i}.nodes_all_length=length(nodes_all);
    zeng2.dummymodel{i}.i_C=i_C;
    [zeng2.dummymodel{i}.G zeng2.dummymodel{i}.E zeng2.dummymodel{i}.const_G zeng2.dummymodel{i}.const_E]=create_GE(i);
end
%------------------------------------------
if zeng.dtmode==1 %fix
   n_sim=ceil(zeng.tf/zeng.dt*1000);
elseif zeng.dtmode==2
   n_sim=ceil(zeng.tf/10*1000); %10u second steps.
elseif zeng.dtmode==3
   n_sim=ceil(zeng.tf/1*1000); %1u second steps.
end
t=zeros(1,n_sim);                % allocate memory for t
dummymodel_length=length(zeng2.dummymodel);

zeng2.dummyvm=zeros(zeng2.setup.nseg_total,n_sim);
zeng2.dummygate=cell(1,dummymodel_length);

if ~isempty(zeng.Iexstim)
    zeng2.dummyve=zeros(zeng2.setup.nseg_total,n_sim);
else
    zeng2.dummyve=[];
end

for p=1:zeng2.setup.n_var
   zeng2.dummyvm([zeng2.setup.nseg_length(p,1):zeng2.setup.nseg_length(p,2)],1)=zeng2.dummyvar{p}.vini;
end
for s=1:dummymodel_length
   feval(zeng2.dummymodel{s}.name,'setting',zeng.temperature);
   for q=1:zeng2.dummymodel{s}.gatenumber
      zeng2.dummygate{s}{q}=zeros(length(zeng2.dummymodel{s}.nodes_all) ,n_sim );
      alfa=feval(zeng2.dummymodel{s}.name,[zeng2.dummymodel{s}.gate{q} '_alfa'],zeng2.dummyvm(zeng2.dummymodel{s}.nodes_all,1));
      beta=feval(zeng2.dummymodel{s}.name,[zeng2.dummymodel{s}.gate{q} '_beta'],zeng2.dummyvm(zeng2.dummymodel{s}.nodes_all,1));
      zeng2.dummygate{s}{q}(:,1)=alfa./(alfa+beta) ;
   end
end
%------------------------------------------

Contact us at files@mathworks.com