IonChannelModel) import data.iha.data_iha as data import numpy as np modelfile = 'models/Korhonen2009_iha.mmt' iha = IonChannelModel('iha', modelfile, vvar='membrane.V', logvars=['environment.time', 'iha.i_ha', 'iha.G_ha']) ### Exp 1 - IV curve. iv_vsteps, iv_curr, iv_errs, iv_N = data.IV_Sartiani() iv_data = ExperimentData(x=iv_vsteps, y=iv_curr, N=iv_N, errs=iv_errs, err_type='SEM') stim_times = [500, 1500, 500] stim_levels = [-40, -120, iv_vsteps] def max_curr(data): return max(data[0]['iha.i_ha'], key=abs) iv_prot = ExperimentStimProtocol(stim_times, stim_levels, measure_index=2, measure_fn=max_curr) sartiani_conditions = dict(T=293, Ko=25000, Ki=120000, Nao=140000, Nai=10800)
import data.ical.data_ical as data import numpy as np modelfile = 'models/Generic_iCaL.mmt' ical = IonChannelModel('ical', modelfile, vvar='membrane.V', logvars=['ical.i_CaL', 'ical.G_CaL', 'environment.time']) ### Exp 1 - IV curve iv_vsteps, iv_curr, iv_errs, iv_N = data.IV_Rao() iv_data = ExperimentData(x=iv_vsteps, y=iv_curr, N=iv_N, errs=iv_errs, err_type='SEM') stim_times = [1000, 100, 500] stim_levels = [-80, iv_vsteps, -80] def peak_curr(data): return max(data[0]['ical.i_CaL'], key=abs) iv_prot = ExperimentStimProtocol(stim_times, stim_levels, measure_index=1, measure_fn=peak_curr) rao_conditions = dict(T=298, Ca_o=5000, Ca_subSL=0.2) iv_exp = Experiment(iv_prot, iv_data, rao_conditions) ### Exp 2 - activation act_vsteps, act_cond, act_errs, act_N = data.Act_Rao() act_data = ExperimentData(x=act_vsteps, y=act_cond, N=act_N,
IonChannelModel) import data.ik1.data_ik1 as data import numpy as np modelfile = 'models/Generic_iK1.mmt' ik1 = IonChannelModel('ik1', modelfile, vvar='membrane.V', logvars=['ik1.i_K1']) ### Exp 1 - IV Curve iv_vsteps, iv_curr, iv_errs, iv_N = data.IV_Goldoni() iv_data = ExperimentData(x=iv_vsteps, y=iv_curr, N=iv_N, errs=iv_errs, err_type='STD') stim_times = [500, 100, 500] stim_levels = [-50, iv_vsteps, -50] def ss_curr(data): return data[0]['ik1.i_K1'] iv_prot = ExperimentStimProtocol(stim_times, stim_levels, measure_index=1, measure_fn=ss_curr, time_independent=True)
from ionchannelABC import (Experiment, ExperimentData, ExperimentStimProtocol, IonChannelModel) import data.ikur.data_ikur as data import numpy as np modelfile = 'models/Generic_iKur.mmt' ikur = IonChannelModel( 'ikur', modelfile, vvar='membrane.V', logvars=['environment.time', 'ikur.i_Kur', 'ikur.G_Kur']) ### Exp 1 - IV curve iv_vsteps, iv_curr, iv_errs, _ = data.IV_Maharani() iv_data = ExperimentData(x=iv_vsteps, y=iv_curr, errs=iv_errs, err_type='STD') stim_times = [5000, 300] stim_levels = [-60, iv_vsteps] def max_ikur(data): return max(data[0]['ikur.i_Kur']) iv_prot = ExperimentStimProtocol(stim_times, stim_levels, measure_index=1, measure_fn=max_ikur) maharani_conditions = dict(T=310, Ko=4000, Ki=120000) iv_exp = Experiment(iv_prot, iv_data, maharani_conditions)
# 'p6': (0, 0.001), # 'p7': (0, 100), # 'p8': (0, 1.0), # 'q1': (0, 100), # 'q2': (0, 100)} ikr = IonChannelModel('ikr', modelfile, vvar='membrane.V', logvars=['environment.time', 'ikr.i_Kr', 'ikr.G_Kr']) ### Exp 1 - IV curve. iv_vsteps, iv_curr, iv_errs, iv_N = data.IV_Toyoda() iv_data = ExperimentData(x=iv_vsteps, y=iv_curr, errs=iv_errs) stim_times = [1000, 1000, 100] stim_levels = [-50, iv_vsteps, -50] def tail_curr(data): return data[0]['ikr.i_Kr'][-1] iv_prot = ExperimentStimProtocol(stim_times, stim_levels, measure_index=1, measure_fn=tail_curr) toyoda_conditions1 = dict(K_o=5400, K_i=130000, Na_o=140330, Na_i=6000, T=308) iv_exp = Experiment(iv_prot, iv_data, toyoda_conditions1) ### Exp 2 - Activation curve.
# r10=(0, 1), # r11=(0, 10), # r12=(-0.1, 0), # r13=(0, 1), # r14=(-1, 0), # r15=(-1, 0), # r16=(0, 100)) ina = IonChannelModel('ina', modelfile, vvar='membrane.V', logvars=['environment.time', 'ina.i_Na', 'ina.G_Na']) ### Exp 1 - IV curve iv_vsteps, iv_curr, _, _ = data.IV_Lee() iv_data = ExperimentData(x=iv_vsteps, y=iv_curr) stim_times = [5000, 20] stim_levels = [-80, iv_vsteps] def peak_curr(data): return max(data[0]['ina.i_Na'], key=abs) #def normalise_by_peak(sim_results): # peak = 445.1308 # peak current determined from unmodified sim # sim_results = [r / peak for r in sim_results] # return sim_results def normalise(sim_results): m = abs(max(sim_results, key=abs)) sim_results = [r / m for r in sim_results]
import data.icat.data_icat as data import numpy as np modelfile = 'models/Generic_iCaT.mmt' icat = IonChannelModel( 'icat', modelfile, vvar='membrane.V', logvars=['environment.time', 'icat.i_CaT', 'icat.G_CaT']) ### Exp 1 - IV curve iv_vsteps, iv_curr, iv_errs, iv_N = data.IV_Nguyen() iv_data = ExperimentData(x=iv_vsteps, y=iv_curr, N=iv_N, errs=iv_errs, err_type='SEM') stim_times = [5000, 300, 500] stim_levels = [-75, iv_vsteps, -75] def max_icat(data): return max(data[0]['icat.i_CaT'], key=lambda x: abs(x)) iv_prot = ExperimentStimProtocol(stim_times, stim_levels, measure_index=1, measure_fn=max_icat) nguyen_conditions = dict(Ca_o=5000, Ca_subSL=0.2, T=295)
post_fn=unwrap) pulse_train_data = ExperimentData( x=[ 'vrp', #'ca_i', #'k_i', 'na_i', 'apa', 'apd90', #'ca_amp', 't_ca_rise', 't_ca50', 't_ca90' ], y=[ -67.0, #0.1, #1.5e5, 2.0e4, 105, 42, #0.7, 52, 157, 397 ], errs=[ -69, #0.05, #0.75e5, 1.0e4, 103, 33, #0.35, 50, 151, 383 ]) pulse_train_exp = Experiment(pulse_train_prot, pulse_train_data, dias_conditions)