Exemple #1
0
    for d in data.split_periodic(11000, adjust=True, closed_intervals=False):
        d = d.trim_left(10000, adjust=True)
        act_gate = d['ito.g']
        output = output + [max(act_gate, key=abs)]
    norm = max(output)
    try:
        for i in range(len(output)):
            output[i] /= norm
    except:
        output = [float('inf'),]*len(output)
    return output

wang_act = Experiment(
    dataset=wang_act_dataset,
    protocol=wang_act_protocol,
    conditions=wang_conditions,
    sum_stats=wang_act_sum_stats,
    description=wang_act_desc,
    Q10=None,
    Q10_factor=0.)


#
# Inactivation [Wang1993]
#
wang_inact_desc = """
    Steady-state inactivation curve for ito in human
    atrial myocytes [Wang1993] cf Fig 2c.

    Voltage-dependent inactivation was assessed with the use of a
    two-pulse protocol with a 1000 ms prepulse to voltages between -80
    and +40 mV, followed by a 1000 ms test pulse to +60 mV.
variances_act = [sd_**2 for sd_ in sd_act]
mewes_act_dataset = np.asarray([vsteps_act, act, variances_act])

mewes_act_protocol = myokit.pacing.steptrain(vsteps_act, -40, 10000, 450)

mewes_conditions = {
    'phys.T': 295.15,  # K
    'ca_conc.Ca_o': 1.8  # mM
}


def mewes_act_sum_stats(data):
    output = []
    for d in data.split_periodic(10450, adjust=True, closed_intervals=False):
        d = d.trim_left(10000, adjust=True)
        act_gate = d['ical.g']
        output = output + [max(act_gate, key=abs)]
    norm = max(output)
    for i in range(len(output)):
        output[i] /= norm
    return output


mewes_act = Experiment(dataset=mewes_act_dataset,
                       protocol=mewes_act_protocol,
                       conditions=mewes_conditions,
                       sum_stats=mewes_act_sum_stats,
                       description=mewes_act_desc,
                       Q10=None,
                       Q10_factor=0.)
Exemple #3
0
def dias_iv_sum_stats(data):
    return dias_iv_tau_sum_stats(data, ss=True, tau=False)


def dias_taua_sum_stats(data):
    return dias_iv_tau_sum_stats(data, ss=False, taua=True, taui=False)


def dias_taui_sum_stats(data):
    return dias_iv_tau_sum_stats(data, ss=False, taua=False, taui=True)


dias_iv = Experiment(dataset=dias_iv_dataset,
                     protocol=dias_iv_protocol,
                     conditions=dias_conditions,
                     sum_stats=dias_iv_sum_stats,
                     description=dias_iv_desc,
                     Q10=Q10_cond,
                     Q10_factor=1)
dias_tau_act = Experiment(dataset=dias_taua_dataset,
                          protocol=dias_iv_protocol,
                          conditions=dias_conditions,
                          sum_stats=dias_taui_sum_stats,
                          description=dias_iv_desc,
                          Q10=Q10_tau,
                          Q10_factor=-1)
dias_tau_inact = Experiment(dataset=dias_taui_dataset,
                            protocol=dias_iv_protocol,
                            conditions=dias_conditions,
                            sum_stats=dias_taui_sum_stats,
                            description=dias_iv_desc,
Exemple #4
0
}


def dias_iv_sum_stats(data):
    output = []
    for d in data.split_periodic(5100, adjust=True):
        d = d.trim(5000, 5100, adjust=True)
        current = d['ina.i_Na']
        index = np.argmax(np.abs(current))
        output = output + [current[index] / max_observed_peak]
    return output


dias2014_iv = Experiment(dataset=dias_iv_dataset,
                         protocol=dias_iv_protocol,
                         conditions=dias_conditions,
                         sum_stats=dias_iv_sum_stats,
                         description=dias_iv_description)

### Inactivation
nakajima_desc = """Inactivation curve from Nakajima 2009.
Measurements taken at room temperature so no adjustment.
"""
vsteps_inact, inact, sd_inact = data.Inact_Nakajima()
variances_inact = [sd**2 for sd in sd_inact]
nakajima_inact_dataset = np.asarray([vsteps_inact, inact, variances_inact])

nakajima_inact_protocol = availability_linear(-130, -20, 10, -120, -20, 5000,
                                              500, 0, 100)
nakajima_conditions = {
    'membrane.Na_o': 145e3,
Exemple #5
0

def nguyen_iv_sum_stats(data):
    output = []
    for d in data.split_periodic(5300, adjust=True):
        d = d.trim(5000, 5300, adjust=True)
        current = d['icat.i_CaT']
        index = np.argmax(np.abs(current))
        output = output + [current[index] / max_iv_peak]
    return output


nguyen_iv = Experiment(dataset=nguyen_iv_dataset,
                       protocol=nguyen_iv_protocol,
                       conditions=nguyen_conditions,
                       sum_stats=nguyen_iv_sum_stats,
                       description=nguyen_iv_desc,
                       Q10=Q10_cond,
                       Q10_factor=1)

#
# Steady-state inactivation [Nguyen2013]
#
nguyen_inact_desc = """Inactivation curve for icat from Nguyen 2013 Fig 5E.
Recordings at room temperature.
"""

vsteps_inact, inact, sd_inact = data.Inact_Nguyen()
variances_inact = [sd**2 for sd in sd_inact]
nguyen_inact_dataset = np.asarray([vsteps_inact, inact, variances_inact])
}  # K


def sakakibara_iv_sum_stats(data):
    output = []
    for d in data.split_periodic(11000, adjust=True):
        d = d.trim_left(10000, adjust=True)
        current = d['ina.i_Na']
        output = output + [max(current, key=abs)]
    return output


sakakibara_iv = Experiment(dataset=sakakibara_iv_dataset,
                           protocol=sakakibara_iv_protocol,
                           conditions=sakakibara_conditions,
                           sum_stats=sakakibara_iv_sum_stats,
                           description=sakakibara_iv_desc,
                           Q10=Q10_cond,
                           Q10_factor=1)

#
# IV curves for varying extracellular Sodium [Sakakibara1992]
#
sakakibara_iv_Nao2_desc = """
    describes the protocol used to measure the differents IV-curves in the Sakakibara Paper (figure 3A)
    this protocol is for measuring the curve with Nao = 2mM

    page 5 of the paper :
    Test pulses were applied at 0.1 Hz
    """
Na_o = 2
        d = d.trim_left(10000, adjust=True)
        current = d['ical.i_CaL']
        peak = max(current, key=abs)
        ss = current[-1]

        try:
            output = output + [1 - ss / peak]
        except:
            output = output + [float('inf')]
    return output


sun_inact_kin = Experiment(
    dataset=[sun_inact_kin_tf_dataset, sun_inact_kin_ts_dataset],
    protocol=sun_inact_kin_protocol,
    conditions=sun_conditions,
    sum_stats=sun_inact_kin_sum_stats,
    description=sun_inact_kin_desc,
    Q10=Q10_tau_inact,
    Q10_factor=-1)

sun_inact_kin_fast = Experiment(dataset=sun_inact_kin_tf_dataset,
                                protocol=sun_inact_kin_protocol,
                                conditions=sun_conditions,
                                sum_stats=sun_inact_kin_sum_stats_tf,
                                description=sun_inact_kin_desc,
                                Q10=Q10_tau_inact,
                                Q10_factor=-1)

sun_inact_kin_slow = Experiment(dataset=sun_inact_kin_ts_dataset,
                                protocol=sun_inact_kin_protocol,
                                conditions=sun_conditions,
Exemple #8
0
    'phys.T': 306.15,  # K
    'k_conc.K_i': 140,  # mM
    'k_conc.K_o': 5.4
}


def firek_inact_sum_stats(data):
    output = []
    for d in data.split_periodic(20800, adjust=True, closed_intervals=False):
        d = d.trim_left(20400, adjust=True)
        inact_gate = d['ito.g']
        output = output + [max(inact_gate, key=abs)]
    norm = max(output)
    try:
        for i in range(len(output)):
            output[i] /= norm
    except:
        output = [
            float('inf'),
        ] * len(output)
    return output


firek_inact = Experiment(dataset=firek_inact_dataset,
                         protocol=firek_inact_protocol,
                         conditions=firek_conditions,
                         sum_stats=firek_inact_sum_stats,
                         description=firek_inact_desc,
                         Q10=None,
                         Q10_factor=0.)
Exemple #9
0
toyoda_conditions = {'extra.K_o': 5.4e3, 'potassium.K_i': 130e3, 'phys.T': 308}


def toyoda_iv_sum_stats(data):
    output = []
    for d in data.split_periodic(11000, adjust=True):
        d = d.trim(5000, 6000, adjust=True)
        output = output + [d['ikr.i_Kr'][-1]]  # / max_observed_peak_iv]
    return output


toyoda_iv = Experiment(dataset=toyoda_iv_dataset,
                       protocol=toyoda_iv_protocol,
                       conditions=toyoda_conditions,
                       sum_stats=toyoda_iv_sum_stats,
                       description=toyoda_iv_desc,
                       Q10=Q10_cond,
                       Q10_factor=1)

#
# Activation kinetics [Toyoda2010]
#
toyoda_taua_desc = """Activation kinetics Toyoda 2010 (Fig 3C).
Assessed by envelope-of-tails protocol. Series of depolarising
steps of varying duration with single exponential fit to peak
tail current elicited upon repolarisation to holding potential.

Data recorded at 308K.
"""
Exemple #10
0
# SUMMARY STATISTICS
def Li_iv_80_sum_stats(data):
    output = []
    for d in data.split_periodic(tperiod_iv_Li, adjust=True):
        d = d.trim_left(tpreMeasuring_iv_Li, adjust=True)
        current = d['i_caL.i_Ca_L'][:-1]  # the last value is sometimes a nan
        # (because V =0 at the end of the simulation and that I in nygren model is not defined for V = 0)
        output = output + [max(current, key=abs) - current[-1]]
    return output


# Experiment
Li_iv_80 = Experiment(name=Li_iv_80_name,
                      dataset=Li_iv_80_dataset,
                      protocol=Li_iv_80_protocol,
                      conditions=Li_conditions,
                      sum_stats=Li_iv_80_sum_stats,
                      description=Li_iv_80_desc,
                      Q10=Q10_cond,
                      Q10_factor=1)

#######################################################################################################################
### IV curve - Li 1997
Li_iv_60_name = "IV   HP = -60mV"
Li_iv_60_desc = """
    describes the protocol used to measure the IV peak-current curve in the Li Paper figure 1C

    page 2 of the paper : I-V relations of Ica were determined using 300-ms depolarizing steps every 10s from HP of -80,-60, and -40 mV
    The magnitude was measured as the difference between the peak inward current and the steady state current at the end of the depolarizing step
    
    protocol used in figure 1C: single test pulse at a frequency of 0.1Hz : every 10s, the voltage step occurs. 
    """
Exemple #11
0
                    output_inact = output_inact + [float('inf')]
    return output_act + output_inact


def courtemanche_act_kin_sum_stats(data):
    return courtemanche_kin_sum_stats(data, act=True, inact=False)


def courtemanche_inact_kin_sum_stats(data):
    return courtemanche_kin_sum_stats(data, act=False, inact=True)


courtemanche_kin = Experiment(
    dataset=[courtemanche_act_kin_dataset, courtemanche_inact_kin_dataset],
    protocol=courtemanche_kin_protocol,
    conditions=wang_conditions,
    sum_stats=courtemanche_kin_sum_stats,
    description=courtemanche_kin_desc,
    Q10=Q10_tau,
    Q10_factor=-1)
courtemanche_act_kin = Experiment(dataset=courtemanche_act_kin_dataset,
                                  protocol=courtemanche_kin_protocol,
                                  conditions=wang_conditions,
                                  sum_stats=courtemanche_act_kin_sum_stats,
                                  description=courtemanche_kin_desc,
                                  Q10=Q10_tau,
                                  Q10_factor=-1)
courtemanche_inact_kin = Experiment(dataset=courtemanche_inact_kin_dataset,
                                    protocol=courtemanche_kin_protocol,
                                    conditions=wang_conditions,
                                    sum_stats=courtemanche_inact_kin_sum_stats,
                                    description=courtemanche_kin_desc,
Exemple #12
0
}


def lu_iv_sum_stats(data):
    output = []
    for d in data.split_periodic(5330, adjust=True):
        d = d.trim(5030, 5330, adjust=True)
        peak_curr = max(d['ikss.i_Kss'], key=abs)
        output = output + [peak_curr]
    return output


lu_iv = Experiment(dataset=lu_iv_dataset,
                   protocol=lu_iv_protocol,
                   conditions=lu_conditions,
                   sum_stats=lu_iv_sum_stats,
                   description=lu_iv_desc,
                   Q10=Q10_cond,
                   Q10_factor=1)

#
# IV curve [Yang2005]
#
yang_iv_desc = """Peak, steady-state current density and inactivation
time constants at voltage steps for 4-AP sensitive currents in
HL-1 from Yang 2005 Figure 8B.

Assuming steadystate current is ikss.

Measurements taken at room temperature.
"""