- Author:
- termi-official <termi-official@users.noreply.github.com>
- Date:
- 2025-05-15 16:01:20+02:00
- Desc:
- Add documentation for submission
- Permanent Source URI:
- https://staging.physiomeproject.org/workspace/d20/rawfile/8465ce0a385cdc40e2f79b001798d600e9f9e4d2/models/channels/ogiermann_2025_piezo1.cellml
<?xml version='1.0' encoding='UTF-8'?>
<!-- Model for Piezo1 based on the 4 state model
Lewis, A. H., Cui, A. F., McDonald, M. F., & Grandl, J. (2017). Transduction of repetitive mechanical stimuli by Piezo1 and Piezo2 ion channels. Cell reports, 19(12), 2572-2585.
And the experiments found in
Wu, J., Young, M., Lewis, A. H., Martfeld, A. N., Kalmeta, B., & Grandl, J. (2017). Inactivation of mechanically activated Piezo1 ion channels is determined by the C-terminal extracellular domain and the inner pore helix. Cell reports, 21(9), 2357-2366.
Moroni, M., Servin-Vences, M. R., Fleischer, R., Sánchez-Carranza, O., & Lewin, G. R. (2018). Voltage gating of mechanosensitive PIEZO channels. Nature communications, 9(1), 1-15.
Lewis, A. H., & Grandl, J. (2020). Inactivation kinetics and mechanical gating of Piezo1 ion channels depend on subdomains within the cap. Cell reports, 30(3), 870-880.-->
<model name="ogiermann_2025_piezo1_model" xmlns="http://www.cellml.org/cellml/1.1#" xmlns:cellml="http://www.cellml.org/cellml/1.1#" xmlns:xlink="http://www.w3.org/1999/xlink">
<import xlink:href="ogiermann_2025_piezo1_params.cellml">
<component component_ref="parameters" name="myparameters"/>
<!--comp myequilibrium using comp equilibrium;-->
</import>
<!--def map between kinetics and myequilibrium for
vars P_Open and P_Open;
vars P_Closed and P_Closed;
vars P_I1 and P_I1;
vars P_I2 and P_I2;
enddef;-->
<connection>
<map_components component_1="myparameters" component_2="kinetics"/>
<map_variables variable_1="r1" variable_2="r1"/>
<map_variables variable_1="r2" variable_2="r2"/>
<map_variables variable_1="r3" variable_2="r3"/>
<map_variables variable_1="r4" variable_2="r4"/>
<map_variables variable_1="r5" variable_2="r5"/>
<map_variables variable_1="r6" variable_2="r6"/>
<map_variables variable_1="r7" variable_2="r7"/>
<map_variables variable_1="r8" variable_2="r8"/>
<map_variables variable_1="ce1" variable_2="ce1"/>
<map_variables variable_1="ce2" variable_2="ce2"/>
<map_variables variable_1="ce3" variable_2="ce3"/>
<map_variables variable_1="ce4" variable_2="ce4"/>
<map_variables variable_1="ce5" variable_2="ce5"/>
<map_variables variable_1="ce6" variable_2="ce6"/>
<map_variables variable_1="ce7" variable_2="ce7"/>
<map_variables variable_1="ce8" variable_2="ce8"/>
<map_variables variable_1="cm2" variable_2="cm2"/>
<map_variables variable_1="cm4" variable_2="cm4"/>
</connection>
<component name="kinetics">
<variable name="time" public_interface="in" units="ms"/>
<!-- Inputs-->
<variable name="pressure" public_interface="in" units="mmHg"/>
<variable name="gradmu" public_interface="in" units="mV"/>
<!-- Approximate initial state for 0 pressure and -80 mV-->
<!--var P_Open: dimensionless {pub: out, priv: in};
var P_Closed: dimensionless {pub: out, priv: in};
var P_I1: dimensionless {pub: out, priv: in};
var P_I2: dimensionless {pub: out, priv: in};-->
<variable initial_value="0.0" name="P_Open" public_interface="out" units="dimensionless"/>
<variable initial_value="0.3" name="P_Closed" public_interface="out" units="dimensionless"/>
<variable initial_value="0.1" name="P_I1" public_interface="out" units="dimensionless"/>
<variable initial_value="0.6" name="P_I2" public_interface="out" units="dimensionless"/>
<!-- Parameters-->
<!--var r1: per_ms {pub: in};
var r2: per_ms {pub: in};
var r3: per_ms {pub: in};
var r4: per_ms {pub: in};
var r5: per_ms {pub: in};
var r6: per_ms {pub: in};
var r7: per_ms {pub: in};
var r8: per_ms {pub: in};
var ce1: dimensionless {pub: in};
var ce2: dimensionless {pub: in};
var ce3: dimensionless {pub: in};
var ce4: dimensionless {pub: in};
var ce5: dimensionless {pub: in};
var ce6: dimensionless {pub: in};
var ce7: dimensionless {pub: in};
var ce8: dimensionless {pub: in};
var cm2: dimensionless {pub: in};
var cm4: dimensionless {pub: in};-->
<variable initial_value="0.02634342" name="r1" public_interface="out" units="per_ms"/>
<variable initial_value="0.0008000712" name="r3" public_interface="out" units="per_ms"/>
<variable initial_value="0.008945307" name="r4" public_interface="out" units="per_ms"/>
<variable initial_value="1.3529515e-5" name="r5" public_interface="out" units="per_ms"/>
<variable initial_value="6.206403e-5" name="r6" public_interface="out" units="per_ms"/>
<variable initial_value="6.603723e-6" name="r7" public_interface="out" units="per_ms"/>
<variable initial_value="0.00079357607" name="r8" public_interface="out" units="per_ms"/>
<variable initial_value="-2.3753126" name="ce1" public_interface="out" units="dimensionless"/>
<variable initial_value="-5.6010337" name="ce3" public_interface="out" units="dimensionless"/>
<variable initial_value="0.70629007" name="ce4" public_interface="out" units="dimensionless"/>
<variable initial_value="-12.101605" name="cm4" public_interface="out" units="dimensionless"/>
<variable initial_value="6.46389" name="ce5" public_interface="out" units="dimensionless"/>
<variable initial_value="-1.2173947" name="ce6" public_interface="out" units="dimensionless"/>
<variable initial_value="8.739162" name="ce7" public_interface="out" units="dimensionless"/>
<variable initial_value="-3.364573" name="ce8" public_interface="out" units="dimensionless"/>
<variable name="r2" public_interface="out" units="per_ms"/>
<variable name="ce2" public_interface="out" units="dimensionless"/>
<variable name="cm2" public_interface="out" units="dimensionless"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>r2</ci>
<apply>
<divide/>
<apply>
<times/>
<ci>r1</ci>
<ci>r3</ci>
<ci>r5</ci>
</apply>
<apply>
<times/>
<ci>r4</ci>
<ci>r6</ci>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>ce2</ci>
<apply>
<minus/>
<apply>
<minus/>
<apply>
<plus/>
<ci>ce1</ci>
<ci>ce3</ci>
<ci>ce5</ci>
</apply>
<ci>ce4</ci>
</apply>
<ci>ce6</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>cm2</ci>
<apply>
<minus/>
<ci>cm4</ci>
</apply>
</apply>
</math>
<!-- The probability flow along edges for the Markov chain-->
<variable name="p_O_I1" units="per_ms"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>p_O_I1</ci>
<apply>
<times/>
<ci>r1</ci>
<apply>
<exp/>
<apply>
<divide/>
<apply>
<times/>
<ci>ce1</ci>
<ci>gradmu</ci>
</apply>
<cn cellml:units="mV">140</cn>
</apply>
</apply>
</apply>
</apply>
</math>
<variable name="p_I1_O" units="per_ms"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>p_I1_O</ci>
<apply>
<times/>
<ci>r2</ci>
<apply>
<exp/>
<apply>
<plus/>
<apply>
<divide/>
<apply>
<times/>
<ci>ce2</ci>
<ci>gradmu</ci>
</apply>
<cn cellml:units="mV">140</cn>
</apply>
<apply>
<divide/>
<apply>
<times/>
<ci>cm2</ci>
<ci>pressure</ci>
</apply>
<cn cellml:units="mmHg">70</cn>
</apply>
</apply>
</apply>
</apply>
</apply>
</math>
<variable name="p_I1_C" units="per_ms"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>p_I1_C</ci>
<apply>
<times/>
<ci>r3</ci>
<apply>
<exp/>
<apply>
<divide/>
<apply>
<times/>
<ci>ce3</ci>
<ci>gradmu</ci>
</apply>
<cn cellml:units="mV">140</cn>
</apply>
</apply>
</apply>
</apply>
</math>
<variable name="p_C_I1" units="per_ms"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>p_C_I1</ci>
<apply>
<times/>
<ci>r4</ci>
<apply>
<exp/>
<apply>
<plus/>
<apply>
<divide/>
<apply>
<times/>
<ci>ce4</ci>
<ci>gradmu</ci>
</apply>
<cn cellml:units="mV">140</cn>
</apply>
<apply>
<divide/>
<apply>
<times/>
<ci>cm4</ci>
<ci>pressure</ci>
</apply>
<cn cellml:units="mmHg">70</cn>
</apply>
</apply>
</apply>
</apply>
</apply>
</math>
<variable name="p_C_O" units="per_ms"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>p_C_O</ci>
<apply>
<times/>
<ci>r5</ci>
<apply>
<exp/>
<apply>
<divide/>
<apply>
<times/>
<ci>ce5</ci>
<ci>gradmu</ci>
</apply>
<cn cellml:units="mV">140</cn>
</apply>
</apply>
</apply>
</apply>
</math>
<variable name="p_O_C" units="per_ms"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>p_O_C</ci>
<apply>
<times/>
<ci>r6</ci>
<apply>
<exp/>
<apply>
<divide/>
<apply>
<times/>
<ci>ce6</ci>
<ci>gradmu</ci>
</apply>
<cn cellml:units="mV">140</cn>
</apply>
</apply>
</apply>
</apply>
</math>
<variable name="p_I2_O" units="per_ms"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>p_I2_O</ci>
<apply>
<times/>
<ci>r7</ci>
<apply>
<exp/>
<apply>
<divide/>
<apply>
<times/>
<apply>
<divide/>
<apply>
<times/>
<ci>ce7</ci>
<ci>gradmu</ci>
</apply>
<cn cellml:units="mV">140</cn>
</apply>
<ci>pressure</ci>
</apply>
<cn cellml:units="mmHg">70</cn>
</apply>
</apply>
</apply>
</apply>
</math>
<variable name="p_O_I2" units="per_ms"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>p_O_I2</ci>
<apply>
<times/>
<ci>r8</ci>
<apply>
<exp/>
<apply>
<divide/>
<apply>
<times/>
<ci>ce8</ci>
<ci>gradmu</ci>
</apply>
<cn cellml:units="mV">140</cn>
</apply>
</apply>
</apply>
</apply>
<!-- Evolution law-->
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>time</ci>
</bvar>
<ci>P_Open</ci>
</apply>
<apply>
<plus/>
<apply>
<times/>
<apply>
<minus/>
<apply>
<plus/>
<ci>p_O_I1</ci>
<ci>p_O_I2</ci>
<ci>p_O_C</ci>
</apply>
</apply>
<ci>P_Open</ci>
</apply>
<apply>
<times/>
<ci>p_C_O</ci>
<ci>P_Closed</ci>
</apply>
<apply>
<times/>
<ci>p_I1_O</ci>
<ci>P_I1</ci>
</apply>
<apply>
<times/>
<ci>p_I2_O</ci>
<ci>P_I2</ci>
</apply>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>time</ci>
</bvar>
<ci>P_Closed</ci>
</apply>
<apply>
<plus/>
<apply>
<times/>
<apply>
<minus/>
<apply>
<plus/>
<ci>p_C_I1</ci>
<ci>p_C_O</ci>
</apply>
</apply>
<ci>P_Closed</ci>
</apply>
<apply>
<times/>
<ci>p_O_C</ci>
<ci>P_Open</ci>
</apply>
<apply>
<times/>
<ci>p_I1_C</ci>
<ci>P_I1</ci>
</apply>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>time</ci>
</bvar>
<ci>P_I1</ci>
</apply>
<apply>
<plus/>
<apply>
<times/>
<apply>
<minus/>
<apply>
<plus/>
<ci>p_I1_O</ci>
<ci>p_I1_C</ci>
</apply>
</apply>
<ci>P_I1</ci>
</apply>
<apply>
<times/>
<ci>p_C_I1</ci>
<ci>P_Closed</ci>
</apply>
<apply>
<times/>
<ci>p_O_I1</ci>
<ci>P_Open</ci>
</apply>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>time</ci>
</bvar>
<ci>P_I2</ci>
</apply>
<apply>
<plus/>
<apply>
<times/>
<apply>
<minus/>
<ci>p_I2_O</ci>
</apply>
<ci>P_I2</ci>
</apply>
<apply>
<times/>
<ci>p_O_I2</ci>
<ci>P_Open</ci>
</apply>
</apply>
</apply>
</math>
</component>
</model>