import nsrunit; unit conversion on; unit per_second=1 second^(-1); // unit nanomolar predefined // unit micromolar predefined unit nanomolar_per_second=1E-6 meter^(-3)*second^(-1)*mole^1; // unit picolitre predefined unit picolitre_per_second=1E-15 meter^3*second^(-1); unit picolitre_nanomolar_per_second=1E-21 second^(-1)*mole^1; math main { realDomain time second; time.min=0; extern time.max; extern time.delta; real kappa_L1(time) per_second; real kappa_P1 per_second; kappa_P1=0.132; real kappa_L2(time) per_second; real kappa_P2 per_second; kappa_P2=3.78; real kappa_L2_0 per_second; kappa_L2_0=0.054; real kappa_L2_1 per_second; kappa_L2_1=2.4; real Kd_Ca(time) nanomolar; real n dimensionless; n=3; real Ca_i(time) nanomolar; when(time=time.min) Ca_i=75; real Ca_o nanomolar; Ca_o=2000000.0; real Ca_i_ss(time) nanomolar; real gamma dimensionless; gamma=0.24; real Ca_s(time) nanomolar; when(time=time.min) Ca_s=5300.0; real Ca_s_ss(time) nanomolar; // // kappa_L1=(if ((time>=(0 second)) and (time<(40 second))) (5E-6 per_second) else (2E-5 per_second)); kappa_L2=(kappa_L2_0+kappa_L2_1/(1+(Kd_Ca/Ca_i)^n)); Kd_Ca=(if ((time>=(0 second)) and (time<(80 second))) (1E3 nanomolar) else (500 nanomolar)); // Ca_i:time=((-1)*(kappa_L1+kappa_P1+gamma*(kappa_L2+kappa_P2))*Ca_i+gamma*kappa_L2*Ca_s+kappa_L1*Ca_o); Ca_i_ss=(Ca_o/(1+kappa_P1/kappa_L1)); // Ca_s:time=((kappa_L2+kappa_P2)*Ca_i-kappa_L2*Ca_s); Ca_s_ss=(Ca_i_ss*(1+kappa_P2/kappa_L2)); }