예제 #1
0
def Protocol_Inact_Schneider():
    """
    describes the protocol used to measure the activation curve in the Schneider Paper (figure 4)
    

    page 4 of the paper :

    Starting from a conditioning
    potential of -135 mV, the cells were depolarized
    with prepulses varying from -135 mV to +5 mV in
    10-mV steps with a subsequent test pulse to -20 mV.
    To test for fast and intermediate inactivation, h infinity curves
    were determined with five different prepulse durations
    (increasing from 32 ms to 512ms by factors of 2,
    Fig. 4). 

    the double pulse protocol is not more described so the sakakibara one has been applied to complete the lack of information
    """

    conditions_list, protocol_list = [], []
    tpreMeasuring_list, tMeasuring_list = [], []

    conditions = {
        'cleft_space_ion_concentrations.Na_c': 120,
        'intracellular_ion_concentrations.Na_i': 70,
        'membrane.T': 297.15
    }

    for tstep in [32, 64, 128, 256, 512]:
        tperiod = 3000  # ms
        #tstep = 1000 # ms (not precised in the paper, 1s seems enough to mesure the peak current)
        twait = 2
        ttest = 30
        tpre = tperiod - tstep - twait - ttest
        tpreMeasuring = tperiod - ttest
        tMeasuring = ttest  # the sum tMeasuring and tpreMeasuring should be equal to tperiod
        Vhold = -135  # mV
        Vtest = -20
        Vlower = -135.001
        Vupper = 5
        dV = 10

        protocol = availability(Vlower, Vupper, dV, Vhold, Vtest, tpre, tstep,
                                twait, ttest)

        protocol_list.append(protocol)
        conditions_list.append(conditions)
        tpreMeasuring_list.append(tpreMeasuring)
        tMeasuring_list.append(tMeasuring)

    return protocol_list, conditions_list, tpreMeasuring_list, tMeasuring_list
예제 #2
0
def Protocol_Inact_Sakakibara():
    """
    describes the protocol used to measure the activation curve in the Sakakibara Paper (figure 2)
    
    page 7 of the paper : 
    The voltage dependence of h, was studied using a double-pulse protocol consisting of a
    1-second conditioning pulse from holding a potential of-140 mV 0.1 Hz (inset at lower left).
    Current amplitude elicited during the test pulse was normalized to that in absence of a conditioning pulse.

    TODO : The corresponding block in summary statistics function need to be changed to normalize the conditionning pulse

    The protocol is a double pulse protocol at the frequency of 0.1Hz
    
    """

    conditions = {'cleft_space_ion_concentrations.Na_c': 5,
                 'intracellular_ion_concentrations.Na_i': 5,
                 'membrane.T': 290.15} # not precised but by hypothesis, 
                                       # the same values as figure 1B were
                                       # used for the concentrations
    

    
    tperiod = 10000 # ms
    tstep = 1000 # ms (not precised in the paper, 1s seems enough to mesure the peak current)
    twait = 2 
    ttest = 30
    tpre = tperiod - tstep - twait - ttest
    tpreMeasuring = tperiod - tstep - twait - ttest # tperiod - ttest
    tMeasuring = ttest # ttest # the sum tMeasuring, tpreMeasuring and tpostMeasuring should be equal to tperiod
    tpostMeasuring = tstep + twait
    Vhold = -140 # mV
    Vtest = -20
    Vlower = -140 
    dV = 10
    Vupper = -40 + dV
    
    protocol = availability(Vlower,Vupper, dV,Vhold, Vtest, tpre, tstep, twait, ttest)
    
    return protocol, conditions , tpreMeasuring , tMeasuring , tpostMeasuring
예제 #3
0
ventricular cells from Xu 1999 Figure 9.

Used in the absence of reliable data for
HL-1 as ito in mouse atrial myocytes is similar to ito_f in
mouse ventricular myocytes [Xu1999] and HL-1 are derived from
mouse atrial myocytes.

Experiments recorded at room temperature.
"""

vsteps_inact, inact, sd_inact = data.Inact_Xu()
variances_inact = [sd_**2 for sd_ in sd_inact]
xu_inact_dataset = np.asarray([vsteps_inact, inact, variances_inact])

xu_inact_protocol = availability(
    vsteps_inact, -70., 50., 15000., 5000., 0., 5000.
)

def xu_inact_sum_stats(data):
    output = []
    for d in data.split_periodic(25000., adjust=True):
        d = d.trim(20000., 25000., adjust=True)
        current = d['ito.i_to']
        output = output + [max(current, key=abs)]
    for i in range(1, len(output)):
        output[i] = output[i]/output[0]
    output[0] = 1.
    return output

xu_inact = Experiment(
    dataset=xu_inact_dataset,
예제 #4
0
wang_inact_desc = """
    Steady-state inactivation curve for isus in human
    atrial myocytes [Wang1993] cf Fig 7a.

    Isus is measured from the steady-state current at the end
    of a 2000 ms test pulse at +40 mV preceded by a 1000 ms
    conditioning pulse at various potentials delivered from a
    holding potential of -60 mV. Current amplitude is normalised
    to the maximum value obtained with a conditioning voltage of
    -90 mV.
    """
vsteps_inact, inact, sd_inact = data.Inact_Wang()
variances_inact = [sd_**2 for sd_ in sd_inact]
wang_inact_dataset = np.asarray([vsteps_inact, inact, variances_inact])

wang_inact_protocol = availability(vsteps_inact, -60, 40, 20000, 1000, 0, 2000)


def wang_inact_sum_stats(data):
    output = []
    for d in data.split_periodic(23000, adjust=True, closed_intervals=False):
        d = d.trim_left(21000, adjust=True)
        inact_gate = d['isus.g']
        output = output + [inact_gate[-1]]
    norm = output[0]
    try:
        for i in range(len(output)):
            output[i] /= norm
    except:
        output = [
            float('inf'),
예제 #5
0
#
firek_inact_desc = """
    Steady-state inactivation curve for isus in human
    atrial myocytes [Firek1995] cf Fig 3c.

    A two-pulse protocol was applied to obtain the steady-state
    inactivation relationships. P1 depolarized the cell to selected
    voltages from the holding potential (-80 mV). P2 was of fixed
    amplitude and duration; it depolarized the cell to 0 mV to activate
    the outward currents.
    """
vsteps_inact, inact, sd_inact = data.Inact_Firek()
variances_inact = [sd_**2 for sd_ in sd_inact]
firek_inact_dataset = np.asarray([vsteps_inact, inact, variances_inact])

firek_inact_protocol = availability(vsteps_inact, -80, 0, 20000, 2500, 0, 400)

firek_conditions = {
    '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(22900, adjust=True, closed_intervals=False):
        d = d.trim_left(22500, adjust=True)
        inact_gate = d['isus.g']
        output = output + [inact_gate[-1]]
    norm = max(output)