Esempio n. 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.
Esempio n. 2
0
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.)
Esempio n. 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,
Esempio n. 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,
Esempio n. 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
Esempio n. 7
0
        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,
Esempio n. 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.)
Esempio n. 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.
"""
Esempio n. 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. 
    """
Esempio n. 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,
Esempio n. 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.
"""