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
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
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,
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'),
# 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)