Location: Single PASMC model (Gosak et al 2014) @ 4a876c7a7a78 / Components / assembleModel.m

Author:
WeiweiAi <wai484@aucklanduni.ac.nz>
Date:
2022-04-13 21:21:26+12:00
Desc:
Add the starting .csv and model composing scr
Permanent Source URI:
https://staging.physiomeproject.org/workspace/83f/rawfile/4a876c7a7a7873b4002f577fc1aa9256e8fc41c6/Components/assembleModel.m

clear
addpath(genpath('../cellLib/Scripts/'))
file='Vars.csv';
% build new components from the .csv
comp_dir=pwd;
[comp,idx]=newComp([comp_dir filesep file]);

% copy the existing components if need
% read the existing model and get the existing components
%comp=copyComp(comp,listComp,idx);

% Encapsuate new components
encap=["Cai"];
chd=["JVOCCi","JNCXi","JSERCAi","JCICRi","JPMCAi","Jleaki"];
comp=encapNew(comp,encap,chd,idx);

encap=["Casr"];
chd=["JSERCAi","JCICRi","Jleaki"];
comp=encapNew(comp,encap,chd,idx);

encap=["Vm"];
chd=["JNKA","JCli","JVOCCi","JNCXi","JKi"];
comp=encapNew(comp,encap,chd,idx);
comp=getPara(comp,idx);
comp=updateVIO(comp,idx);
% Add equations to components
Eqs=["J_VOCCi=G_Ca*((v_Ca1-v_i)/(1{dimensionless}+exp((v_Ca2-v_i)/R_Ca)));",...    
"J_NCXi=G_NCX*(c_i/(c_i+c_NCX))*(v_NCX-v_i);",...    
"J_SERCAi=B*(pow(c_i,2{dimensionless})/(pow(c_i,2{dimensionless})+pow(c_b,2{dimensionless})));",...    
"J_CICRi=C*(pow(s_i,2{dimensionless})/(pow(s_i,2{dimensionless})+pow(s_c,2{dimensionless})))*(pow(c_i,4{dimensionless})/(pow(c_i,4{dimensionless})+pow(c_c,4{dimensionless})));",...    
"J_PMCAi=D*c_i*(1{dimensionless}+(v_i-v_d)/(R_d));",...    
"J_leaki=L*s_i;",...    
"J_NKA=C_NKA*(K_out/(K_mK+K_out));",...    
"J_Cli=G_Cl*(v_i-v_Cl);",...    
"J_Ki=G_Ki*w_i*(v_i-v_K);",...    
"ode(w_i,t)=lambda*(K_activationi-w_i);",...
"ode(c_i,t)=J_VOCCi-J_NCXi-J_SERCAi+J_CICRi-J_PMCAi+J_leaki;",...    
"ode(s_i,t)=J_SERCAi-J_CICRi-J_leaki;",...    
"ode(v_i,t)=gamma*(-J_NKAi-J_Cli+2{dimensionless}*J_VOCCi+J_NCXi-J_Ki);"];

for i=1:8
    comp(i).Eqs=Eqs(i);
end
comp(9).Eqs=Eqs(9:10);
for i=10:12
    comp(i).Eqs=Eqs(i+1);
end

% Build models
cmnames=string(extractfield(comp,'name'));
modelnames=cmnames(1:9);
listComp=strings(0,5);
for i=1:length(modelnames)
    modelname=modelnames(i);
    listComp=[modelname,modelname,"","","Y"];
    listMap=strings(0,2);
    model=buildModel(modelname,comp,listComp,listMap,idx);
    modelfile=strcat(modelname,'.txt');
    writeModel(model,comp,modelfile,idx)
end

modelname='Cai';
icomp=comp(cmnames==modelname);
chd=icomp.children;
listComp=strings(0,5);
listComp_chd=listComp;
listMap=strings(0,2);
for i=1:length(chd)
    ichd=chd(i);
    listComp_chd(i,:)=[ichd,ichd,strcat(ichd,".cellml"),ichd,"Y"];
    listMap(i,:)=[modelname,ichd];
end
listComp_parent=[modelname,modelname,"","","Y"];
listComp=[listComp_chd;listComp_parent];
model=buildModel(modelname,comp,listComp,listMap,idx);
modelfile=strcat(modelname,'.txt');
writeModel(model,comp,modelfile,idx)

modelname='Casr';
icomp=comp(cmnames==modelname);
chd=icomp.children;
listComp=strings(0,5);
listComp_chd=listComp;
listMap=strings(0,2);
for i=1:length(chd)
    ichd=chd(i);
    listComp_chd(i,:)=[ichd,ichd,strcat(ichd,".cellml"),ichd,"Y"];
    listMap(i,:)=[modelname,ichd];
end
listComp_parent=[modelname,modelname,"","","Y"];
listComp=[listComp_chd;listComp_parent];
model=buildModel(modelname,comp,listComp,listMap,idx);
modelfile=strcat(modelname,'.txt');
writeModel(model,comp,modelfile,idx)

modelname='Vm';
icomp=comp(cmnames==modelname);
chd=icomp.children;
listComp=strings(0,5);
listComp_chd=listComp;
listMap=strings(0,2);
for i=1:length(chd)
    ichd=chd(i);
    listComp_chd(i,:)=[ichd,ichd,strcat(ichd,".cellml"),ichd,"Y"];
    listMap(i,:)=[modelname,ichd];
end
listComp_parent=[modelname,modelname,"","","Y"];
listComp=[listComp_chd;listComp_parent];
model=buildModel(modelname,comp,listComp,listMap,idx);
modelfile=strcat(modelname,'.txt');
writeModel(model,comp,modelfile,idx)

cmnames=string(extractfield(comp,'name'));
modelnames=cmnames(13);
listComp=strings(0,5);
for i=1:length(modelnames)
    modelname=modelnames(i);
    listComp=[modelname,modelname,"","","Y"];
    listMap=strings(0,2);
    model=buildModel(modelname,comp,listComp,listMap,idx);
    modelfile=strcat(modelname,'.txt');
    writeModel(model,comp,modelfile,idx)
end