/* * Mathematical Model of the Electromechanical Heart Contractile * System * * Model Structure * * Computational modelling in molecular cardiology has recently * focused on simulating subsets of myocardial excitation-contraction * processes. As people try to improve their understanding of myocardial * function, there is an increasing interest in excitation-contraction * coupling and mechanical events in cardiac muscle. It is hoped * that these computer simulations will also help explain the pathophysiological * mechanisms of heart failure. * * In their 2001 paper, Mlcek, Neumann, Kittnar and Novak concentrate * on the molecular level of electromechanical events in cardiac * muscle. They introduce an actomyosin subsystem accompanied by * a simple regulatory subsystem involving calcium binding to troponin * C (see below). They performed many simulations to prove the * stability of their model and they then used the simulation results * to help interpret experimental and clinical data. * * The complete original paper reference is cited below: * * Mathematical Model of the Electromechanical Heart Contractile * System - Regulatory Subsystem Physiological Considerations, * M. Mlcek, J. Neumann, O. Kittnar and V. Novak, 2001, Physiological * Research , 50, 425-432. PubMed ID: 11551150 * * The raw CellML descriptions of the model can be downloaded in * various formats as described in . * * reaction_diagram * * [[Image file: mlcek_2001.png]] * * Diagram of the regulatory subsystem scheme and the actomyosin * subsystem scheme. */ import nsrunit; // Warning: unit conversion turned off due to unit errors in 4 equation(s) unit conversion off; // unit micromolar predefined unit first_order_rate_constant=1 second^(-1); unit second_order_rate_constant=1E3 meter^3*second^(-1)*mole^(-1); math main { //Warning: the following variables were set 'extern' or given // an initial value of '0' because the model would otherwise be // underdetermined: A, kTA, kTA_, kDPA, kDPA_, kan, kab, M_ATP, // A_M_ATP, M_ADP_Pi, A_M_ADP_Pi, Cai, TnC, u, kH, kH_, w1, kAH, // kAH_, kDAP_, AM_ADP, kAD_, AM, kAT, kAT_, ATP, w6, kr, CaF realDomain time second; time.min=0; extern time.max; extern time.delta; real A(time) micromolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) A=0; extern real kTA second_order_rate_constant; extern real kTA_ first_order_rate_constant; extern real kDPA second_order_rate_constant; extern real kDPA_ first_order_rate_constant; extern real kan second_order_rate_constant; extern real kab first_order_rate_constant; real M_ATP(time) micromolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) M_ATP=0; real A_M_ATP(time) micromolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) A_M_ATP=0; real M_ADP_Pi(time) micromolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) M_ADP_Pi=0; real A_M_ADP_Pi(time) micromolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) A_M_ADP_Pi=0; real Cai(time) micromolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) Cai=0; real TnC(time) micromolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) TnC=0; extern real u dimensionless; extern real kH first_order_rate_constant; extern real kH_ second_order_rate_constant; extern real w1 dimensionless; extern real kAH first_order_rate_constant; extern real kAH_ first_order_rate_constant; extern real kDAP_ first_order_rate_constant; real AM_ADP(time) micromolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) AM_ADP=0; extern real kAD_ first_order_rate_constant; real AM(time) micromolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) AM=0; extern real kAT second_order_rate_constant; extern real kAT_ first_order_rate_constant; real ATP(time) micromolar; //Warning: Assuming zero initial condition; nothing provided in original CellML model. when(time=time.min) ATP=0; extern real w6 dimensionless; extern real kr first_order_rate_constant; extern real CaF micromolar; // // A:time=(kTA_*A_M_ATP+kDPA_*A_M_ADP_Pi+u*kan*Cai*TnC-(kTA*A*M_ATP+kDPA*A*M_ADP_Pi+kab*A)); // M_ADP_Pi:time=(kH*M_ATP+kDPA_*A_M_ADP_Pi+w1*u*kan*Cai*TnC-(kH_*M_ADP_Pi+kDPA*A*M_ADP_Pi+kab*M_ADP_Pi)); // A_M_ADP_Pi:time=(kAH*A_M_ATP+kDPA_*A*M_ADP_Pi-(kDPA_*A_M_ADP_Pi+kDAP_*A_M_ADP_Pi+kAH_*A_M_ADP_Pi)); // AM_ADP:time=(kDAP_*A_M_ADP_Pi-kAD_*AM_ADP); // AM:time=(kAT_*A_M_ATP+kAD_*AM_ADP-kAT_*AM*ATP); // ATP:time=(kAT_*A_M_ATP-kAT*AM*ATP); // A_M_ATP:time=(kTA*A*M_ATP+kAT*AM*ATP+kAH_*A_M_ADP_Pi-(kTA_*A_M_ATP+kAT_*A_M_ATP+kAH*A_M_ATP)); // M_ATP:time=(kH_*M_ADP_Pi+kTA_*A_M_ATP+w6*u*kan*Cai*TnC-(kH*M_ATP+kTA*A*M_ATP+kab*M_ATP)); // TnC:time=(1/u*kab*A-kan*Cai*TnC); // Cai:time=(1/u*kab*A+CaF:time-(kan*Cai*TnC+kr*Cai)); // // }