/* * A numerical model of the renal distal tubule * * Model Status * * This is the CellML description of Chang and Fujita's 1999 numerical * model of the renal distal tubule. It should be noted that the * initial conditions used in this description represent those * in the early distal tubule. For model representations of the * late distal tublule, these initial values should be replaced * with those listed in the orginal paper for the late distal tubule. * The model from the original paper has been modified slightly * to include differential equations defining the change in solute * concentrations over time. These equations were added to facilitate * the use of the CellML code in CMISS. Note that the model is * not running correctly in COR or OpenCell and there are unit * inconsistencies. * * Model Structure * * ABSTRACT: A numerical model of the rat distal tubule was developed * to simulate water and solute transport in this nephron segment. * This model incorporates the following: 1) Na-Cl cotransporter, * K-Cl cotransporter, Na channel, K channel, and Cl channel in * the luminal membrane; 2) Na-K-ATPase, K channel, and Cl channel * in the basolateral membrane; and 3) conductances for Na, K, * and Cl in the paracellular pathway. Transport rates were calculated * using kinetic equations. Axial heterogeneity was represented * by partitioning the model into two subsegments with different * sets of model parameters. Model equations derived from the principles * of mass conservation and electrical neutrality were solved numerically. * Values of the model parameters were adjusted to minimize a penalty * function that was devised to quantify the difference between * model predictions and experimental results. The developed model * could simulate the water and solute transport of the distal * tubule in the normal state, as well as in conditions including * thiazide or amiloride application and various levels of sodium * load and tubular flow rate. * * The original paper reference is cited below: * * A numerical model of the renal distal tubule, Hangil Chang and * Toshiro Fujita, 1999, American Journal of Physiology, 276, F952-F959. * PubMed ID: 10362782 * * diagram of the model * * [[Image file: chang_1999b.png]] * * Transport mechanisms of model tubule. In the luminal cell membrane, * there are Na-Cl cotransporter, K-Cl cotransporter, Na channel, * K channel, and Cl channel. In the basolateral cell membrane, * there are Na-K-ATPase, K channel, and Cl channel. In the paracellular * pathway, which faces luminal and basolateral compartments, there * are conductances for sodium, potassium, and chloride. Axial * heterogeneity of the distal tubule was represented by changing * the model parameters in the early and the late parts of the * model tubule. */ import nsrunit; // Warning: unit conversion turned off due to unit errors in 11 equation(s) unit conversion off; // unit millivolt predefined unit cm_per_s=.01 meter^1*second^(-1); unit mmol_per_cm3=1E3 meter^(-3)*mole^1; unit flux=1E3 meter^(-3)*second^(-1)*mole^1; unit C_per_mmol=1E3 second^1*ampere^1*mole^(-1); unit J_per_mmol=1E3 kilogram^1*meter^2*second^(-2)*kelvin^(-1)*mole^(-1); //Warning: unit mmHg_ renamed from mmHg, as the latter is predefined in JSim with different fundamental units. unit mmHg_ = fundamental; unit cm_per_s_mmHg=.01 meter^1*second^(-1)*mmHg_^(-1); math main { realDomain time second; time.min=0; extern time.max; extern time.delta; real C_m_Imp mmol_per_cm3; C_m_Imp=0.1033; real C_c_Imp mmol_per_cm3; C_c_Imp=0.1124; real psi_m millivolt; psi_m=-28.0; real psi_c millivolt; psi_c=-86.4; real C_m_Na(time) mmol_per_cm3; when(time=time.min) C_m_Na=0.05; real C_m_K(time) mmol_per_cm3; when(time=time.min) C_m_K=0.002; real C_m_Cl(time) mmol_per_cm3; when(time=time.min) C_m_Cl=0.03; real C_c_Na(time) mmol_per_cm3; when(time=time.min) C_c_Na=0.0164; real C_c_K(time) mmol_per_cm3; when(time=time.min) C_c_K=0.1637; real C_c_Cl(time) mmol_per_cm3; when(time=time.min) C_c_Cl=0.0203; real C_s_Na(time) mmol_per_cm3; when(time=time.min) C_s_Na=1.438E-1; real C_s_K(time) mmol_per_cm3; when(time=time.min) C_s_K=4.25E-3; real C_s_Cl(time) mmol_per_cm3; when(time=time.min) C_s_Cl=1.12E-1; real J_mc_Na(time) flux; real J_ms_Na(time) flux; real J_sc_Na(time) flux; real J_mc_K(time) flux; real J_ms_K(time) flux; real J_sc_K(time) flux; real J_mc_Cl(time) flux; real J_ms_Cl(time) flux; real J_sc_Cl(time) flux; real RT J_per_mmol; RT=2.579; real F C_per_mmol; F=96.48; real C_s_Imp mmol_per_cm3; C_s_Imp=4.525E-2; real psi_s millivolt; psi_s=0.0; real J_mc_NaCl(time) flux; real G_mc_Na(time) flux; real P_mc_Na cm_per_s; P_mc_Na=3.27E-6; real J_mc_NaCl_max flux; J_mc_NaCl_max=3.21E-5; real K_mc_Na_NaCl mmol_per_cm3; K_mc_Na_NaCl=5.11E-2; real K_mc_Cl_NaCl mmol_per_cm3; K_mc_Cl_NaCl=1.92E-2; real J_mc_KCl(time) flux; real G_mc_K(time) flux; real J_mc_KCl_max flux; J_mc_KCl_max=6.31E-8; real K_mc_K_KCl mmol_per_cm3; K_mc_K_KCl=5.30E-2; real K_mc_Cl_KCl mmol_per_cm3; K_mc_Cl_KCl=2.13E-2; real P_mc_K cm_per_s; P_mc_K=4.90E-7; real G_mc_Cl(time) flux; real P_mc_Cl cm_per_s; P_mc_Cl=1.43E-6; real J_a(time) flux; real J_a_max flux; J_a_max=2.69E-6; real K_Na_ATPase mmol_per_cm3; K_Na_ATPase=1.20E-2; real G_sc_K(time) flux; real P_sc_K cm_per_s; P_sc_K=4.74E-4; real G_sc_Cl(time) flux; real P_sc_Cl cm_per_s; P_sc_Cl=9.16E-5; real G_ms_Na(time) flux; real P_ms_Na cm_per_s; P_ms_Na=4.80E-6; real G_ms_K(time) flux; real P_ms_K cm_per_s; P_ms_K=4.80E-6; real G_ms_Cl(time) flux; real P_ms_Cl cm_per_s; P_ms_Cl=2.40E-6; real J_Na(time) flux; real J_K(time) flux; real J_Cl(time) flux; real Osm_m(time) mmol_per_cm3; real Osm_c(time) mmol_per_cm3; real Osm_s(time) mmol_per_cm3; real J_mc_v(time) cm_per_s; real L_mc_v cm_per_s_mmHg; L_mc_v=5.22E-9; real J_ms_v(time) cm_per_s; real L_ms_v cm_per_s_mmHg; L_ms_v=0.0; real J_sc_v(time) cm_per_s; real L_sc_v cm_per_s_mmHg; L_sc_v=5.22E-7; real J_v(time) cm_per_s; // // // C_m_Na:time=((-1)*(J_mc_Na+J_ms_Na)); C_s_Na:time=(J_ms_Na-J_sc_Na); C_c_Na:time=(J_mc_Na+J_sc_Na); C_m_K:time=((-1)*(J_mc_K+J_ms_K)); C_s_K:time=(J_ms_K-J_sc_K); C_c_K:time=(J_mc_K+J_sc_K); C_m_Cl:time=((-1)*(J_mc_Cl+J_ms_Cl)); C_s_Cl:time=(J_ms_Cl-J_sc_Cl); C_c_Cl:time=(J_mc_Cl+J_sc_Cl); // // J_mc_Na=(J_mc_NaCl+G_mc_Na); G_mc_Na=(P_mc_Na*(F*(psi_m-psi_c)/RT)*((C_m_Na-C_c_Na*exp((-1)*(F/RT)*(psi_m-psi_c)))/(1-exp((-1)*(F/RT)*(psi_m-psi_c))))); J_mc_NaCl=(J_mc_NaCl_max*((C_m_Na/K_mc_Na_NaCl*(C_m_Cl/K_mc_Cl_NaCl)-C_c_Na/K_mc_Na_NaCl*(C_c_Cl/K_mc_Cl_NaCl))/((1+C_m_Na/K_mc_Na_NaCl*(C_m_Cl/K_mc_Cl_NaCl))*(1+C_c_Na/K_mc_Na_NaCl)*(1+C_c_Cl/K_mc_Cl_NaCl)+(1+C_c_Na/K_mc_Na_NaCl*(C_c_Cl/K_mc_Cl_NaCl))*(1+C_m_Na/K_mc_Na_NaCl)*(1+C_m_Cl/K_mc_Cl_NaCl)))); // J_mc_K=(J_mc_KCl+G_mc_K); G_mc_K=(P_mc_K*(F*(psi_m-psi_c)/RT)*((C_m_K-C_c_K*exp((-1)*(F/RT)*(psi_m-psi_c)))/(1-exp((-1)*(F/RT)*(psi_m-psi_c))))); J_mc_KCl=(J_mc_KCl_max*((C_m_K/K_mc_K_KCl*(C_m_Cl/K_mc_Cl_KCl)-C_c_K/K_mc_K_KCl*(C_c_Cl/K_mc_Cl_KCl))/((1+C_m_K/K_mc_K_KCl*(C_m_Cl/K_mc_Cl_KCl))*(1+C_c_K/K_mc_K_KCl)*(1+C_c_Cl/K_mc_Cl_KCl)+(1+C_c_K/K_mc_K_KCl*(C_c_Cl/K_mc_Cl_KCl))*(1+C_m_K/K_mc_K_KCl)*(1+C_m_Cl/K_mc_Cl_KCl)))); // J_mc_Cl=(J_mc_NaCl+J_mc_KCl+G_mc_Cl); G_mc_Cl=(P_mc_Cl*((-1)*F*(psi_m-psi_c)/RT)*((C_m_Cl-C_c_Cl*exp((-1)*((-1)*F/RT)*(psi_m-psi_c)))/(1-exp((-1)*((-1)*F/RT)*(psi_m-psi_c))))); // J_sc_Na=((-3)*J_a); J_a=(J_a_max*(1/(1+(K_Na_ATPase/C_c_Na)^3))); // J_sc_K=(2*J_a+G_sc_K); G_sc_K=(P_sc_K*(F*(psi_s-psi_c)/RT)*((C_s_K-C_c_K*exp((-1)*(F/RT)*(psi_s-psi_c)))/(1-exp((-1)*(F/RT)*(psi_s-psi_c))))); // J_sc_Cl=G_sc_Cl; G_sc_Cl=(P_sc_Cl*((-1)*F*(psi_s-psi_c)/RT)*((C_s_Cl-C_c_Cl*exp((-1)*((-1)*F/RT)*(psi_s-psi_c)))/(1-exp((-1)*((-1)*F/RT)*(psi_s-psi_c))))); // J_ms_Na=G_ms_Na; G_ms_Na=(P_ms_Na*(F*(psi_m-psi_s)/RT)*((C_m_Na-C_s_Na*exp((-1)*(F/RT)*(psi_m-psi_s)))/(1-exp((-1)*(F/RT)*(psi_m-psi_s))))); // J_ms_K=G_ms_K; G_ms_K=(P_ms_K*(F*(psi_m-psi_s)/RT)*((C_m_K-C_s_K*exp((-1)*(F/RT)*(psi_m-psi_s)))/(1-exp((-1)*(F/RT)*(psi_m-psi_s))))); // J_ms_Cl=G_ms_Cl; G_ms_Cl=(P_ms_Cl*((-1)*F*(psi_m-psi_s)/RT)*((C_m_Cl-C_s_Cl*exp((-1)*((-1)*F/RT)*(psi_m-psi_s)))/(1-exp((-1)*((-1)*F/RT)*(psi_m-psi_s))))); // J_Na=(J_mc_Na+J_ms_Na); // J_K=(J_mc_K+J_ms_K); // J_Cl=(J_mc_Cl+J_ms_Cl); // Osm_m=(C_m_Na+C_m_K+C_m_Cl+C_m_Imp); Osm_c=(C_c_Na+C_c_K+C_c_Cl+C_c_Imp); Osm_s=(C_s_Na+C_s_K+C_s_Cl+C_s_Imp); // J_mc_v=(L_mc_v*RT*(Osm_m-Osm_c)); // J_ms_v=(L_ms_v*RT*(Osm_m-Osm_s)); // J_sc_v=(L_sc_v*RT*(Osm_s-Osm_c)); // J_v=(J_mc_v+J_ms_v); }