Location: Hodgkin & Huxley (1952) model @ ab2962b87966 / experiments / gating_experiment.cellml

Author:
WeiweiAi <wai484@aucklanduni.ac.nz>
Date:
2022-03-31 10:48:40+13:00
Desc:
Add open channel IV of HH models; Add simulation and plot python scripts
Permanent Source URI:
http://models.cellml.org/workspace/64f/rawfile/ab2962b8796666ad9938a2577611c954f006b5fd/experiments/gating_experiment.cellml

<?xml version='1.0' encoding='UTF-8'?>
<model name="gating_experiment" 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">
    <!-- run voltage clamp experiments-->
    <import xlink:href="../cellLib/Components/units.cellml">
        <units name="ms" units_ref="ms"/>
        <units name="mV_per_ms" units_ref="mV_per_ms"/>
        <units name="mV" units_ref="mV"/>
    </import>
    <import xlink:href="../cellLib/Components/time.cellml">
        <component component_ref="time_ms" name="time"/>
    </import>
    <import xlink:href="../components/activation_function.cellml">
        <component component_ref="activation_function" name="activation_function"/>
    </import>
    <import xlink:href="../cellLib/Protocols/Voltage_ramp_protocol.cellml">
        <component component_ref="vramp_protocol_ms" name="vramp_protocol_ms"/>
    </import>
    <!-- Connect the time source variable to the model and stimulus protocol -->
    <connection>
        <map_components component_1="vramp_protocol_ms" component_2="time"/>
        <map_variables variable_1="time" variable_2="time"/>
    </connection>
    <!-- Define the stimulus protocol parameter values -->
    <component name="Vstim_para">
        <variable initial_value="40" name="V_init" public_interface="out" units="mV"/>
        <variable initial_value="-1" name="V_rate" public_interface="out" units="mV_per_ms"/>
    </component>
    <connection>
        <map_components component_1="Vstim_para" component_2="vramp_protocol_ms"/>
        <map_variables variable_1="V_init" variable_2="V_init"/>
        <map_variables variable_1="V_rate" variable_2="V_rate"/>
    </connection>
    <!-- and connect the actual stimulus current to the model -->
    <connection>
        <map_components component_1="activation_function" component_2="vramp_protocol_ms"/>
        <map_variables variable_1="V_b" variable_2="V"/>
    </connection>
    <!-- SED-ML (and CSim simulation description above) is only able to address variables at the top level of the model hierarchy, so we need to define the variables we want SED-ML to be able to address here. -->
    <component name="outputs">
        <variable name="time" public_interface="in" units="ms"/>
        <variable name="V" public_interface="in" units="mV"/>
        <variable name="minus_V" public_interface="in" units="mV"/>
        <variable name="m_inf" public_interface="in" units="dimensionless"/>
        <variable name="n_inf" public_interface="in" units="dimensionless"/>
        <variable name="h_inf" public_interface="in" units="dimensionless"/>
        <variable name="m3_inf" public_interface="in" units="dimensionless"/>
        <variable name="m3h_inf" public_interface="in" units="dimensionless"/>
        <variable name="n4_inf" public_interface="in" units="dimensionless"/>
        <variable name="tau_m" public_interface="in" units="ms"/>
        <variable name="tau_h" public_interface="in" units="ms"/>
        <variable name="tau_n" public_interface="in" units="ms"/>
    </component>
    <!-- and connect the output variable definitions to their actual source in the model -->
    <connection>
        <map_components component_1="outputs" component_2="activation_function"/>
        <map_variables variable_1="m_inf" variable_2="m_inf"/>
        <map_variables variable_1="n_inf" variable_2="n_inf"/>
        <map_variables variable_1="h_inf" variable_2="h_inf"/>
        <map_variables variable_1="m3_inf" variable_2="m3_inf"/>
        <map_variables variable_1="m3h_inf" variable_2="m3h_inf"/>
        <map_variables variable_1="n4_inf" variable_2="n4_inf"/>
        <map_variables variable_1="tau_m" variable_2="tau_m"/>
        <map_variables variable_1="tau_h" variable_2="tau_h"/>
        <map_variables variable_1="tau_n" variable_2="tau_n"/>
        <map_variables variable_1="minus_V" variable_2="minus_V"/>
    </connection>
    <!-- and connect the time output to the source time variable -->
    <connection>
        <map_components component_1="outputs" component_2="time"/>
        <map_variables variable_1="time" variable_2="time"/>
    </connection>
    <connection>
        <map_components component_1="outputs" component_2="vramp_protocol_ms"/>
        <map_variables variable_1="V" variable_2="V"/>
    </connection>
</model>