small changes to manuscript.tex

This commit is contained in:
nkoch1 2022-09-18 11:05:51 +02:00
parent 387c1c907d
commit 0d4eb27b1f
2 changed files with 764 additions and 46 deletions

718
Code/AUC_rheo_csv_gen.py Normal file
View File

@ -0,0 +1,718 @@
import pandas as pd
import numpy as np
import h5py
import os
#%% correlation analysis
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
model_labels = ['RS pyramidal', 'RS inhibitory', 'FS', 'IB', 'Cb stellate', 'Cb stellate +$K_V1.1$',
'Cb stellate $\Delta$$K_V1.1$', 'STN', 'STN +$K_V1.1$', 'STN $\Delta$$K_V1.1$']
# colors = [cm.tab10(i) for i in range(20)]
# clr_dict = {}
# for m in range(len(models)):
# clr_dict[models[m]] = colors[m]
var = ['m', 'h', 'n', 's', 'u', 'a', 'b', 'n_A', 'h_a']
var_dict = {}
var_dict['RS_pyramidal'] = ['m', 'h', 'n', 's', 'u']
var_dict['RS_inhib'] = ['m', 'h', 'n', 's', 'u']
var_dict['FS'] = ['m', 'h', 'n', 's', 'u']
var_dict['IB'] = ['m', 'h', 'n', 's', 'u']
var_dict['Cb_stellate'] = ['m', 'h', 'n', 'a', 'b']
var_dict['Cb_stellate_Kv'] = ['m', 'h', 'n', 'a', 'b', 's', 'u']
var_dict['Cb_stellate_Kv_only'] = ['m', 'h', 'n', 's', 'u']
var_dict['STN'] = ['m', 'h', 'n', 'n_A', 'h_A', 's', 'u']
var_dict['STN_Kv'] = ['m', 'h', 'n', 'n_A', 'h_A', 's', 'u']
var_dict['STN_Kv_only'] = ['m', 'h', 'n', 's', 'u']
folder = './SA_fig/corr_df'
if not os.path.isdir(folder):
os.makedirs(folder)
# % AUC
# % shift
shift_m = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_shift_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_m[mod] = pd.read_json(json_file)['m'].sort_index()
shift_m.sort_index(inplace=True)
shift_m.replace(0., np.NaN, inplace=True)
shift_m = (shift_m - shift_m.loc[0, :]) # /shift_m.loc[0,:]
shift_m.to_json(os.path.join(folder, 'shift_m_rheo.json'))
shift_h = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_shift_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_h[mod] = pd.read_json(json_file)['h'].sort_index()
shift_h.sort_index(inplace=True)
shift_h.replace(0., np.NaN, inplace=True)
shift_h = (shift_h - shift_h.loc[0, :]) # /shift_h.loc[0,:]
shift_h.to_json(os.path.join(folder, 'shift_h_rheo.json'))
shift_n = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_shift_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_n[mod] = pd.read_json(json_file)['n'].sort_index()
shift_n.sort_index(inplace=True)
shift_n.replace(0., np.NaN, inplace=True)
shift_n = (shift_n - shift_n.loc[0, :]) # /shift_n.loc[0,:]
shift_n.to_json(os.path.join(folder, 'shift_n_rheo.json'))
shift_s = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_shift_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_s[mod] = pd.read_json(json_file)['s'].sort_index()
shift_s.sort_index(inplace=True)
shift_s.replace(0., np.NaN, inplace=True)
shift_s = (shift_s - shift_s.loc[0, :]) # /shift_s.loc[0,:]
shift_s.to_json(os.path.join(folder, 'shift_s_rheo.json'))
shift_u = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_shift_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_u[mod] = pd.read_json(json_file)['u'].sort_index()
shift_u.sort_index(inplace=True)
shift_u.replace(0., np.NaN, inplace=True)
shift_u = (shift_u - shift_u.loc[0, :]) # /shift_u.loc[0,:]
shift_u.to_json(os.path.join(folder, 'shift_u_rheo.json'))
shift_a = pd.DataFrame()
models = ['Cb_stellate', 'Cb_stellate_Kv']
for mod in models:
with open('./SA_summary_df/{}_shift_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
# test =pd.read_json(json_file)
shift_a[mod] = pd.read_json(json_file)['n_A'].sort_index()
models = ['STN', 'STN_Kv']
for mod in models:
with open('./SA_summary_df/{}_shift_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_a[mod] = pd.read_json(json_file)['a'].sort_index()
shift_a.sort_index(inplace=True)
shift_a.replace(0., np.NaN, inplace=True)
shift_a = (shift_a - shift_a.loc[0, :]) # /shift_a.loc[0,:]
shift_a.to_json(os.path.join(folder, 'shift_a_rheo.json'))
shift_b = pd.DataFrame()
models = ['Cb_stellate', 'Cb_stellate_Kv']
for mod in models:
with open('./SA_summary_df/{}_shift_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_b[mod] = pd.read_json(json_file)['h_A'].sort_index()
models = ['STN', 'STN_Kv']
for mod in models:
with open('./SA_summary_df/{}_shift_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_b[mod] = pd.read_json(json_file)['b'].sort_index()
shift_b.sort_index(inplace=True)
shift_b.replace(0., np.NaN, inplace=True)
shift_b = (shift_b - shift_b.loc[0, :]) # /shift_b.loc[0,:]
shift_b.to_json(os.path.join(folder, 'shift_b_rheo.json'))
# % slope
slope_m = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_slope_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_m[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['m'].sort_index()
# slope_m.set_index(slope_m.index.astype('float'))
slope_m.index = slope_m.index.map(float)
slope_m.sort_index(inplace=True)
slope_m.replace(0., np.NaN, inplace=True)
slope_m = (slope_m - slope_m.loc[1.0, :]) # /slope_m.loc[1.0,:]
slope_m.to_json(os.path.join(folder, 'slope_m_rheo.json'))
slope_h = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_slope_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_h[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['h'].sort_index()
slope_h.index = slope_h.index.map(float)
slope_h.sort_index(inplace=True)
slope_h.replace(0., np.NaN, inplace=True)
slope_h = (slope_h - slope_h.loc[1.0, :]) # /slope_h.loc[1.0,:]
slope_h.to_json(os.path.join(folder, 'slope_h_rheo.json'))
slope_n = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_slope_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_n[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['n'].sort_index()
slope_n.index = slope_n.index.map(float)
slope_n.sort_index(inplace=True)
slope_n.replace(0., np.NaN, inplace=True)
slope_n = (slope_n - slope_n.loc[1.0, :]) # /slope_n.loc[1.0,:]
slope_n.to_json(os.path.join(folder, 'slope_n_rheo.json'))
slope_s = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_slope_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_s[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['s'].sort_index()
slope_s.index = slope_s.index.map(float)
slope_s.sort_index(inplace=True)
slope_s.replace(0., np.NaN, inplace=True)
slope_s = (slope_s - slope_s.loc[1.0, :]) # /slope_s.loc[1.0,:]
slope_s.to_json(os.path.join(folder, 'slope_s_rheo.json'))
slope_u = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_slope_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_u[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['u'].sort_index()
slope_u.index = slope_u.index.map(float)
slope_u.sort_index(inplace=True)
slope_u.replace(0., np.NaN, inplace=True)
slope_u = (slope_u - slope_u.loc[1.0, :]) # /slope_u.loc[1.0,:]
slope_u.to_json(os.path.join(folder, 'slope_u_rheo.json'))
slope_a = pd.DataFrame()
models = ['Cb_stellate', 'Cb_stellate_Kv']
for mod in models:
with open('./SA_summary_df/{}_slope_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
# test =pd.read_json(json_file)
slope_a[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['n_A'].sort_index()
models = ['STN', 'STN_Kv']
for mod in models:
with open('./SA_summary_df/{}_slope_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_a[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['a'].sort_index()
slope_a.index = slope_a.index.map(float)
slope_a.sort_index(inplace=True)
slope_a.replace(0., np.NaN, inplace=True)
slope_a = (slope_a - slope_a.loc[1.0, :]) # /slope_a.loc[1.0,:]
slope_a.to_json(os.path.join(folder, 'slope_a_rheo.json'))
slope_b = pd.DataFrame()
models = ['Cb_stellate', 'Cb_stellate_Kv']
for mod in models:
with open('./SA_summary_df/{}_slope_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_b[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['h_A'].sort_index()
models = ['STN', 'STN_Kv']
for mod in models:
with open('./SA_summary_df/{}_slope_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_b[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['b'].sort_index()
slope_b.index = slope_b.index.map(float)
slope_b.sort_index(inplace=True)
slope_b.replace(0., np.NaN, inplace=True)
slope_b = (slope_b - slope_b.loc[1.0, :]) # /slope_b.loc[1.0,:]
slope_b.to_json(os.path.join(folder, 'slope_b_rheo.json'))
# % g
g_Na = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_g_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
g_Na[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['Na'].sort_index()
g_Na.index = g_Na.index.map(float)
g_Na.sort_index(inplace=True)
g_Na.replace(0., np.NaN, inplace=True)
g_Na = (g_Na - g_Na.loc[1.0, :]) # /g_Na.loc[1.0,:]
g_Na.to_json(os.path.join(folder, 'g_Na_rheo.json'))
g_Kd = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_g_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
g_Kd[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['Kd'].sort_index()
g_Kd.index = g_Kd.index.map(float)
g_Kd.sort_index(inplace=True)
g_Kd.replace(0., np.NaN, inplace=True)
g_Kd = (g_Kd - g_Kd.loc[1.0, :]) # /g_Kd.loc[1.0,:]
g_Kd.to_json(os.path.join(folder, 'g_Kd_rheo.json'))
g_Kv = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_g_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
g_Kv[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['Kv'].sort_index()
g_Kv.index = g_Kv.index.map(float)
g_Kv.sort_index(inplace=True)
g_Kv.replace(0., np.NaN, inplace=True)
g_Kv = (g_Kv - g_Kv.loc[1.0, :]) # /g_Kv.loc[1.0,:]
g_Kv.to_json(os.path.join(folder, 'g_Kv_rheo.json'))
g_A = pd.DataFrame()
models = ['Cb_stellate', 'Cb_stellate_Kv', 'STN', 'STN_Kv']
for mod in models:
with open('./SA_summary_df/{}_g_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
g_A[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['A'].sort_index()
g_A.index = g_A.index.map(float)
g_A.sort_index(inplace=True)
g_A.replace(0., np.NaN, inplace=True)
g_A = (g_A - g_A.loc[1.0, :]) # /g_A.loc[1.0,:]
g_A.to_json(os.path.join(folder, 'g_A_rheo.json'))
g_Leak = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_g_rheo.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
g_Leak[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['Leak'].sort_index()
g_Leak.index = g_Leak.index.map(float)
g_Leak.sort_index(inplace=True)
g_Leak.replace(0., np.NaN, inplace=True)
g_Leak = (g_Leak - g_Leak.loc[1.0, :]) # /g_Leak.loc[1.0,:]
g_Leak.to_json(os.path.join(folder, 'g_Leak_rheo.json'))
# % AUC rel
# % shift
shift_m = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_shift_AUC_rel.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_m[mod] = pd.read_json(json_file)['m'].sort_index()
shift_m.sort_index(inplace=True)
shift_m.replace(0., np.NaN, inplace=True)
shift_m = (shift_m - shift_m.loc[0, :]) / shift_m.loc[0, :]
shift_m.to_json(os.path.join(folder, 'shift_m_AUC_rel.json'))
shift_h = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_shift_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_h[mod] = pd.read_json(json_file)['h'].sort_index()
shift_h.sort_index(inplace=True)
shift_h.replace(0., np.NaN, inplace=True)
shift_h = (shift_h - shift_h.loc[0, :]) / shift_h.loc[0, :]
shift_h.to_json(os.path.join(folder, 'shift_h_AUC_rel.json'))
shift_n = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_shift_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_n[mod] = pd.read_json(json_file)['n'].sort_index()
shift_n.sort_index(inplace=True)
shift_n.replace(0., np.NaN, inplace=True)
shift_n = (shift_n - shift_n.loc[0, :]) / shift_n.loc[0, :]
shift_n.to_json(os.path.join(folder, 'shift_n_AUC_rel.json'))
shift_s = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_shift_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_s[mod] = pd.read_json(json_file)['s'].sort_index()
shift_s.sort_index(inplace=True)
shift_s.replace(0., np.NaN, inplace=True)
shift_s = (shift_s - shift_s.loc[0, :]) / shift_s.loc[0, :]
shift_s.to_json(os.path.join(folder, 'shift_s_AUC_rel.json'))
shift_u = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_shift_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_u[mod] = pd.read_json(json_file)['u'].sort_index()
shift_u.sort_index(inplace=True)
shift_u.replace(0., np.NaN, inplace=True)
shift_u = (shift_u - shift_u.loc[0, :]) / shift_u.loc[0, :]
shift_u.to_json(os.path.join(folder, 'shift_u_AUC_rel.json'))
shift_a = pd.DataFrame()
models = ['Cb_stellate', 'Cb_stellate_Kv']
for mod in models:
with open('./SA_summary_df/{}_shift_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
# test =pd.read_json(json_file)
shift_a[mod] = pd.read_json(json_file)['n_A'].sort_index()
models = ['STN', 'STN_Kv']
for mod in models:
with open('./SA_summary_df/{}_shift_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_a[mod] = pd.read_json(json_file)['a'].sort_index()
shift_a.sort_index(inplace=True)
shift_a.replace(0., np.NaN, inplace=True)
shift_a = (shift_a - shift_a.loc[0, :]) / shift_a.loc[0, :]
shift_a.to_json(os.path.join(folder, 'shift_a_AUC_rel.json'))
shift_b = pd.DataFrame()
models = ['Cb_stellate', 'Cb_stellate_Kv']
for mod in models:
with open('./SA_summary_df/{}_shift_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_b[mod] = pd.read_json(json_file)['h_A'].sort_index()
models = ['STN', 'STN_Kv']
for mod in models:
with open('./SA_summary_df/{}_shift_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
shift_b[mod] = pd.read_json(json_file)['b'].sort_index()
shift_b.sort_index(inplace=True)
shift_b.replace(0., np.NaN, inplace=True)
shift_b = (shift_b - shift_b.loc[0, :]) / shift_b.loc[0, :]
shift_b.to_json(os.path.join(folder, 'shift_b_AUC_rel.json'))
# % slope
slope_m = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_slope_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_m[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['m'].sort_index()
# slope_m.set_index(slope_m.index.astype('float'))
slope_m.index = slope_m.index.map(float)
slope_m.sort_index(inplace=True)
slope_m.replace(0., np.NaN, inplace=True)
slope_m = (slope_m - slope_m.loc[1.0, :]) / slope_m.loc[1.0, :]
slope_m.to_json(os.path.join(folder, 'slope_m_AUC_rel.json'))
slope_h = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_slope_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_h[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['h'].sort_index()
slope_h.index = slope_h.index.map(float)
slope_h.sort_index(inplace=True)
slope_h.replace(0., np.NaN, inplace=True)
slope_h = (slope_h - slope_h.loc[1.0, :]) / slope_h.loc[1.0, :]
slope_h.to_json(os.path.join(folder, 'slope_h_AUC_rel.json'))
slope_n = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_slope_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_n[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['n'].sort_index()
slope_n.index = slope_n.index.map(float)
slope_n.sort_index(inplace=True)
slope_n.replace(0., np.NaN, inplace=True)
slope_n = (slope_n - slope_n.loc[1.0, :]) / slope_n.loc[1.0, :]
slope_n.to_json(os.path.join(folder, 'slope_n_AUC_rel.json'))
slope_s = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_slope_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_s[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['s'].sort_index()
slope_s.index = slope_s.index.map(float)
slope_s.sort_index(inplace=True)
slope_s.replace(0., np.NaN, inplace=True)
slope_s = (slope_s - slope_s.loc[1.0, :]) / slope_s.loc[1.0, :]
slope_s.to_json(os.path.join(folder, 'slope_s_AUC_rel.json'))
slope_u = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_slope_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_u[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['u'].sort_index()
slope_u.index = slope_u.index.map(float)
slope_u.sort_index(inplace=True)
slope_u.replace(0., np.NaN, inplace=True)
slope_u = (slope_u - slope_u.loc[1.0, :]) / slope_u.loc[1.0, :]
slope_u.to_json(os.path.join(folder, 'slope_u_AUC_rel.json'))
slope_a = pd.DataFrame()
models = ['Cb_stellate', 'Cb_stellate_Kv']
for mod in models:
with open('./SA_summary_df/{}_slope_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
# test =pd.read_json(json_file)
slope_a[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['n_A'].sort_index()
models = ['STN', 'STN_Kv']
for mod in models:
with open('./SA_summary_df/{}_slope_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_a[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['a'].sort_index()
slope_a.index = slope_a.index.map(float)
slope_a.sort_index(inplace=True)
slope_a.replace(0., np.NaN, inplace=True)
slope_a = (slope_a - slope_a.loc[1.0, :]) / slope_a.loc[1.0, :]
slope_a.to_json(os.path.join(folder, 'slope_a_AUC_rel.json'))
slope_b = pd.DataFrame()
models = ['Cb_stellate', 'Cb_stellate_Kv']
for mod in models:
with open('./SA_summary_df/{}_slope_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_b[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['h_A'].sort_index()
models = ['STN', 'STN_Kv']
for mod in models:
with open('./SA_summary_df/{}_slope_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
slope_b[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['b'].sort_index()
slope_b.index = slope_b.index.map(float)
slope_b.sort_index(inplace=True)
slope_b.replace(0., np.NaN, inplace=True)
slope_b = (slope_b - slope_b.loc[1.0, :]) / slope_b.loc[1.0, :]
slope_b.to_json(os.path.join(folder, 'slope_b_AUC_rel.json'))
# % g
g_Na = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_g_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
g_Na[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['Na'].sort_index()
g_Na.index = g_Na.index.map(float)
g_Na.sort_index(inplace=True)
g_Na.replace(0., np.NaN, inplace=True)
g_Na = (g_Na - g_Na.loc[1.0, :]) / g_Na.loc[1.0, :]
g_Na.to_json(os.path.join(folder, 'g_Na_AUC_rel.json'))
g_Kd = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_g_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
g_Kd[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['Kd'].sort_index()
g_Kd.index = g_Kd.index.map(float)
g_Kd.sort_index(inplace=True)
g_Kd.replace(0., np.NaN, inplace=True)
g_Kd = (g_Kd - g_Kd.loc[1.0, :]) / g_Kd.loc[1.0, :]
g_Kd.to_json(os.path.join(folder, 'g_Kd_AUC_rel.json'))
g_Kv = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_g_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
g_Kv[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['Kv'].sort_index()
g_Kv.index = g_Kv.index.map(float)
g_Kv.sort_index(inplace=True)
g_Kv.replace(0., np.NaN, inplace=True)
g_Kv = (g_Kv - g_Kv.loc[1.0, :]) / g_Kv.loc[1.0, :]
g_Kv.to_json(os.path.join(folder, 'g_Kv_AUC_rel.json'))
g_A = pd.DataFrame()
models = ['Cb_stellate', 'Cb_stellate_Kv', 'STN', 'STN_Kv']
for mod in models:
with open('./SA_summary_df/{}_g_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
g_A[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['A'].sort_index()
g_A.index = g_A.index.map(float)
g_A.sort_index(inplace=True)
g_A.replace(0., np.NaN, inplace=True)
g_A = (g_A - g_A.loc[1.0, :]) / g_A.loc[1.0, :]
g_A.to_json(os.path.join(folder, 'g_A_AUC_rel.json'))
g_Leak = pd.DataFrame()
models = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for mod in models:
with open('./SA_summary_df/{}_g_AUC_rel_acc.json'.format(mod)) as json_file:
# data = pd.read_json(json_file)
g_Leak[mod] = pd.read_json(json_file, convert_axes=False, convert_dates=False)['Leak'].sort_index()
g_Leak.index = g_Leak.index.map(float)
g_Leak.sort_index(inplace=True)
g_Leak.replace(0., np.NaN, inplace=True)
g_Leak = (g_Leak - g_Leak.loc[1.0, :]) / g_Leak.loc[1.0, :]
g_Leak.to_json(os.path.join(folder, 'g_Leak_AUC_rel.json'))
#%% create JSON files for each alt type
# folder
top_dir = '/home/koch/SA_new'
# for each alt_type create pd df
shift_AUC = pd.DataFrame()
shift_rheo = pd.DataFrame()
shift_fI = pd.DataFrame(dtype=object)
shift_I_mag = pd.DataFrame(dtype=object)
slope_AUC = pd.DataFrame()
slope_rheo = pd.DataFrame()
slope_fI = pd.DataFrame(dtype=object)
slope_I_mag = pd.DataFrame(dtype=object)
g_AUC = pd.DataFrame()
g_rheo = pd.DataFrame()
g_fI = pd.DataFrame(dtype=object)
g_I_mag = pd.DataFrame(dtype=object)
print('SA pd gen')
dir_names = ['RS_pyramidal', 'RS_inhib', 'FS', 'IB', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN',
'STN_Kv', 'STN_Kv_only']
for dir_name in dir_names:
folder = os.path.join(top_dir, dir_name)
print(folder)
# for each alt_type create pd df
shift_AUC = pd.DataFrame()
shift_rheo = pd.DataFrame()
shift_fI = pd.DataFrame(dtype=object)
shift_I_mag = pd.DataFrame(dtype=object)
slope_AUC = pd.DataFrame()
slope_rheo = pd.DataFrame()
slope_fI = pd.DataFrame(dtype=object)
slope_I_mag = pd.DataFrame(dtype=object)
g_AUC = pd.DataFrame()
g_rheo = pd.DataFrame()
g_fI = pd.DataFrame(dtype=object)
g_I_mag = pd.DataFrame(dtype=object)
for root, dirs, files in os.walk(folder):
for file in files:
if file.endswith('.hdf5'):
with h5py.File(os.path.join(folder, file), "r+") as f:
alt = f['data'].attrs['alteration']
test = f['data'].attrs['alteration_info'].replace(' ', ',')
alt_info = literal_eval(test)
var = alt_info[0]
alt_type = alt_info[1]
if alt_type == 'shift':
shift_AUC.loc[alt, var] = f['analysis']['AUC'][()]
shift_rheo.loc[alt, var] = f['analysis']['rheobase'][()]
shift_fI.loc[alt, var] = 0
shift_fI = shift_fI.astype(object)
shift_fI.at[alt, var] = f['analysis']['F_inf'][:].tolist()
shift_I_mag.loc[alt, var] = 0
shift_I_mag = shift_I_mag.astype(object)
shift_I_mag.at[alt, var] = ((np.arange(f['data'].attrs['I_low'], f['data'].attrs['I_high'],
(f['data'].attrs['I_high'] - f['data'].attrs['I_low']) /
f['data'].attrs['stim_num'])) * 1000).tolist() # nA
elif alt_type == 'slope':
slope_AUC.loc[alt, var] = f['analysis']['AUC'][()]
slope_rheo.loc[alt, var] = f['analysis']['rheobase'][()]
slope_fI.loc[alt, var] = 0
slope_fI = slope_fI.astype(object)
slope_fI.at[alt, var] = f['analysis']['F_inf'][:].tolist()
slope_I_mag.loc[alt, var] = 0
slope_I_mag = slope_I_mag.astype(object)
slope_I_mag.at[alt, var] = ((np.arange(f['data'].attrs['I_low'], f['data'].attrs['I_high'],
(f['data'].attrs['I_high'] - f['data'].attrs['I_low']) /
f['data'].attrs['stim_num'])) * 1000).tolist()
elif alt_type == 'g':
g_AUC.loc[alt, var] = f['analysis']['AUC'][()]
g_rheo.loc[alt, var] = f['analysis']['rheobase'][()]
g_fI.loc[alt, var] = 0
g_fI = g_fI.astype(object)
g_fI.at[alt, var] = f['analysis']['F_inf'][:].tolist()
g_I_mag.loc[alt, var] = 0
g_I_mag = g_I_mag.astype(object)
g_I_mag.at[alt, var] = ((np.arange(f['data'].attrs['I_low'], f['data'].attrs['I_high'],
(f['data'].attrs['I_high'] - f['data'].attrs['I_low']) /
f['data'].attrs['stim_num'])) * 1000).tolist()
else:
print(file, 'Unknown alteration type')
# save df with folder+alt_type
save_folder = os.path.join(top_dir, 'SA_summary_df')
if not os.path.isdir(save_folder):
os.makedirs(save_folder)
shift_AUC.to_json(os.path.join(save_folder, '{}_shift_AUC.json'.format(dir_name)))
shift_rheo.to_json(os.path.join(save_folder, '{}_shift_rheo.json'.format(dir_name)))
shift_fI.to_json(os.path.join(save_folder, '{}_shift_fI.json'.format(dir_name)))
shift_I_mag.to_json(os.path.join(save_folder, '{}_shift_I_mag.json'.format(dir_name)))
slope_AUC.to_json(os.path.join(save_folder, '{}_slope_AUC.json'.format(dir_name)))
slope_rheo.to_json(os.path.join(save_folder, '{}_slope_rheo.json'.format(dir_name)))
slope_fI.to_json(os.path.join(save_folder, '{}_slope_fI.json'.format(dir_name)))
slope_I_mag.to_json(os.path.join(save_folder, '{}_slope_I_mag.json'.format(dir_name)))
g_AUC.to_json(os.path.join(save_folder, '{}_g_AUC.json'.format(dir_name)))
g_rheo.to_json(os.path.join(save_folder, '{}_g_rheo.json'.format(dir_name)))
g_fI.to_json(os.path.join(save_folder, '{}_g_fI.json'.format(dir_name)))
g_I_mag.to_json(os.path.join(save_folder, '{}_g_I_mag.json'.format(dir_name)))
#%% CREATE CSV FILES ###################################################################################################
#%% AUC
AUC_shift_df = pd.read_json('./Sensitivity_analysis/shift_box_kendall_corr_rel.json', orient='records')
AUC_slope_df = pd.read_json('./Sensitivity_analysis/slope_box_kendall_corr_rel.json', orient='records') #, lines=True)
AUC_g_df = pd.read_json('./Sensitivity_analysis/g_box_kendall_corr_rel.json', orient='records')
for i in np.array(['FS', 'IB', 'RS inhibitory', 'RS pyramidal']):
AUC_shift_df.loc[AUC_shift_df['model'] == i, 'model'] = i + ' +$K_V1.1$' # ''+$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$'
AUC_slope_df.loc[AUC_slope_df['model'] == i, 'model'] = i + ' +$K_V1.1$' #' +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$'
AUC_g_df.loc[AUC_g_df['model'] == i, 'model'] = i + ' +$K_V1.1$' #' +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$'
AUC_shift_df_posp = pd.read_json('./Sensitivity_analysis/shift_box_kendall_corr_rel_pospischil.json', orient='records')
AUC_slope_df_posp = pd.read_json('./Sensitivity_analysis/slope_box_kendall_corr_rel_pospischil.json', orient='records') #, lines=True)
AUC_g_df_posp = pd.read_json('./Sensitivity_analysis/g_box_kendall_corr_rel_pospischil.json', orient='records')
AUC_shift_df = AUC_shift_df.append(AUC_shift_df_posp)
AUC_slope_df = AUC_slope_df.append(AUC_slope_df_posp)
AUC_g_df = AUC_g_df.append(AUC_g_df_posp)
AUC_shift_df.to_csv('AUC_shift_corr.csv')
AUC_slope_df.to_csv('AUC_scale_corr.csv')
AUC_g_df.to_csv('AUC_g_corr.csv')
#%% rheo
rheo_shift_df = pd.read_json('./Sensitivity_analysis/rheo_shift_box_kendall_corr.json', orient='records')
rheo_slope_df = pd.read_json('./Sensitivity_analysis/rheo_slope_box_kendall_corr.json', orient='records') #, lines=True)
rheo_g_df = pd.read_json('./Sensitivity_analysis/rheo_g_box_kendall_corr.json', orient='records')
for i in np.array(['FS', 'IB', 'RS inhibitory', 'RS pyramidal']):
rheo_shift_df.loc[rheo_shift_df['model'] == i, 'model'] = i + ' +$K_V1.1$' #' +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$'
rheo_slope_df.loc[rheo_slope_df['model'] == i, 'model'] = i + ' +$K_V1.1$' #' +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$'
rheo_g_df.loc[rheo_g_df['model'] == i, 'model'] = i + ' +$K_V1.1$' #' +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$'
rheo_shift_df_posp = pd.read_json('./Sensitivity_analysis/rheo_shift_box_kendall_corr_pospischil.json', orient='records')
rheo_slope_df_posp = pd.read_json('./Sensitivity_analysis/rheo_slope_box_kendall_corr_pospischil.json', orient='records') #, lines=True)
rheo_g_df_posp = pd.read_json('./Sensitivity_analysis/rheo_g_box_kendall_corr_pospischil.json', orient='records')
rheo_shift_df = rheo_shift_df.append(rheo_shift_df_posp)
rheo_slope_df = rheo_slope_df.append(rheo_slope_df_posp)
rheo_g_df = rheo_g_df.append(rheo_g_df_posp)
rheo_shift_df.to_csv('rheo_shift_corr.csv')
rheo_slope_df.to_csv('rheo_scale_corr.csv')
rheo_g_df.to_csv('rheo_g_corr.csv')

View File

@ -96,49 +96,49 @@
\section*{Titlepage for eNeuro - will be put into Word file provided for submission}
\subsection{Manuscript Title (50 word maximum)}
Loss or Gain of Function? Neuronal Firing Effects of Ion Channel Mutations Depend on the Cell Type
\subsection{Abbreviated Title (50 character maximum)}
Effects of Ion Channel Mutation Depend on Cell Type
\subsection{List all Author Names and Affiliations in order as they would appear in the published article}
Nils A. Koch\textsuperscript{1,2}, Lukas Sonnenberg\textsuperscript{1,2}, Ulrike B.S. Hedrich\textsuperscript{3}, Stephan Lauxmann\textsuperscript{1,3}, Jan Benda\textsuperscript{1,2}
\textsuperscript{1}Institute for Neurobiology, University of Tuebingen, 72072 Tuebingen, Germany\\
\textsuperscript{2}Bernstein Center for Computational Neuroscience Tuebingen, 72076 Tuebingen, Germany\\
\textsuperscript{3} Department of Neurology and Epileptology, Hertie Institute for Clinical Brain Research, University of Tuebingen, 72076 Tuebingen, Germany\\
\subsection{Author Contributions - Each author must be identified with at least one of the following: Designed research, Performed research, Contributed unpublished reagents/ analytic tools, Analyzed data, Wrote the paper.}
\notenk{Adjust as you deem appropriate}\\
NK, LS, UBSH, SL, JB Designed Research;
NK Performed research;
NK, LS Analyzed data;
NK, LS,UBSH, SL, JB Wrote the paper
\subsection{Correspondence should be addressed to (include email address)}
\ \notenk{Nils oder Jan?}
\subsection{Number of Figures}
5
\subsection{Number of Tables}
3
\subsection{Number of Multimedia}
0
\subsection{Number of words for Abstract}
\notenk{Added when manuscript is finalized}
\subsection{Number of Words for Significance Statement}
\notenk{Added when manuscript is finalized}
\subsection{Number of words for Discussion}
\notenk{Added when manuscript is finalized}
\subsection{Acknowledgements}
\subsection{Conflict of Interest}
Authors report no conflict of interest.
\\\textbf{A.} The authors declare no competing financial interests.
\subsection{Funding sources}
\notenk{Add as appropriate - I don't know this information}\notejb{SmartStart}
\newpage{}
%\section*{Titlepage for eNeuro - will be put into Word file provided for submission}
%\subsection{Manuscript Title (50 word maximum)}
%Loss or Gain of Function? Neuronal Firing Effects of Ion Channel Mutations Depend on the Cell Type
%
%\subsection{Abbreviated Title (50 character maximum)}
%Effects of Ion Channel Mutation Depend on Cell Type
%
%\subsection{List all Author Names and Affiliations in order as they would appear in the published article}
%Nils A. Koch\textsuperscript{1,2}, Lukas Sonnenberg\textsuperscript{1,2}, Ulrike B.S. Hedrich\textsuperscript{3}, Stephan Lauxmann\textsuperscript{1,3}, Jan Benda\textsuperscript{1,2}
%
%\textsuperscript{1}Institute for Neurobiology, University of Tuebingen, 72072 Tuebingen, Germany\\
%\textsuperscript{2}Bernstein Center for Computational Neuroscience Tuebingen, 72076 Tuebingen, Germany\\
%\textsuperscript{3} Department of Neurology and Epileptology, Hertie Institute for Clinical Brain Research, University of Tuebingen, 72076 Tuebingen, Germany\\
%
%\subsection{Author Contributions - Each author must be identified with at least one of the following: Designed research, Performed research, Contributed unpublished reagents/ analytic tools, Analyzed data, Wrote the paper.}
%\notenk{Adjust as you deem appropriate}\\
%NK, LS, UBSH, SL, JB Designed Research;
%NK Performed research;
%NK, LS Analyzed data;
%NK, LS,UBSH, SL, JB Wrote the paper
%
%\subsection{Correspondence should be addressed to (include email address)}
%\ \notenk{Nils oder Jan?}
%\subsection{Number of Figures}
% 5
%\subsection{Number of Tables}
%3
%\subsection{Number of Multimedia}
%0
%\subsection{Number of words for Abstract}
%\notenk{Added when manuscript is finalized}
%\subsection{Number of Words for Significance Statement}
%\notenk{Added when manuscript is finalized}
%\subsection{Number of words for Discussion}
%\notenk{Added when manuscript is finalized}
%\subsection{Acknowledgements}
%
%\subsection{Conflict of Interest}
%Authors report no conflict of interest.
%\\\textbf{A.} The authors declare no competing financial interests.
%\subsection{Funding sources}
%\notenk{Add as appropriate - I don't know this information}\notejb{SmartStart}
%\newpage{}
\begingroup
@ -225,7 +225,7 @@ For this reason, we quantified neuronal firing using the rheobase as well as the
The smallest current at which steady state firing occured was identified and the current step interval preceding the occurrence of steady state firing was simulated at higher resolution (100 current steps) to determine the current at which steady state firing began. Firing was simulated with 100 current steps from this current upwards for 1/5 of the overall current range. Over this range a fI curve was constructed and the integral, or area under the curve (AUC), of the fI curve over this interval was computed with the composite trapezoidal rule and used as a measure of firing rate independent from rheobase.
To obtain the rheobase at a higher current resolution than the fI curve, the current step interval preceding the occurrence of action potentials was explored at higher resolution with 100 current steps spanning the interval (stepsizes of 0.05 pA and 0.0175 pA respectively) \notenk{To address the comment below I added reason and step sizes to make it clearer why this was done}. Membrane responses to these current steps were then analyzed for action potentials and the rheobase was considered the lowest current step for which an action potential was elicited. \noteuh{Ich verstehe aber nicht so ganz, was dann der Unterschied zu oben ist? Ab wann hast du den steady-state definiert? Wie viele Aktionspotentiale mussten mindestens auftreten? Das ist mir unklar. Und für die Rheobas hast du dann geschaut, wann min. 1 AP aufgetreten ist, oder?} \notenk{Der Unterschied zu oben ist dass oben die Ziel Stromschrit gefunden wird wo das Feuern anfaengt (z.B. 0.07 kein feuern, 0.08 feuern). Dieser Stromschrit wird dann wieder Simuliert mit kleinere schritte (z.B. 0.007, 0.00701, 0.00702, …, 0.0799, 0.08). Die Rheobas wird dann von diese kleiner schritte gefunden wo min 1 AP aufgreten ist (damit die Rheobase feiner aufgeloest ist)}
To obtain the rheobase at a higher current resolution than the fI curve, the current step interval preceding the occurrence of action potentials was explored at higher resolution with 100 current steps spanning the interval (stepsizes of 0.05 pA and 0.0175 pA respectively) \notenk{To address the comment below I added the reason and step sizes to make it clearer why this was done}. Membrane responses to these current steps were then analyzed for action potentials and the rheobase was considered the lowest current step for which an action potential was elicited. \noteuh{Ich verstehe aber nicht so ganz, was dann der Unterschied zu oben ist? Ab wann hast du den steady-state definiert? Wie viele Aktionspotentiale mussten mindestens auftreten? Das ist mir unklar. Und für die Rheobas hast du dann geschaut, wann min. 1 AP aufgetreten ist, oder?} \notenk{Der Unterschied zu oben ist dass oben die Ziel Stromschrit gefunden wird wo das Feuern anfaengt (z.B. 0.07 kein feuern, 0.08 feuern). Dieser Stromschrit wird dann wieder Simuliert mit kleinere schritte (z.B. 0.007, 0.00701, 0.00702, …, 0.0799, 0.08). Die Rheobas wird dann von diese kleiner schritte gefunden wo min 1 AP aufgreten ist (damit die Rheobase feiner aufgeloest ist)}
All models exhibited tonic firing and any instances of periodic bursting were excluded to simplify the characterization of firing. \noteuh{Die Pyramidenzellen haben auch nie am Anfang einen kurzen „burst“ gezeigt? Ich frage nur, weil das in Zellen bei einigen Pyramidenzellen der Fall ist. Die hast du auch alles ausgeschlossen, um die Variabilität zu minimieren?} \notenk{Mit bursting meine ich hier repetitiven bursts, bzw. Periodisches bursting mit interburst Intervale. Den Fall wo die Pyramidenzellen am Anfang einen kurzen "burst" haben ist vorgekommen, wird aber hier nicht analysiert weil wir das "steady state" feuern hier betrachten - added ``periodic'' to make this clear} Firing characterization was performed on steady-state firing and as such adaptation processes are neglected in our analysis.
\subsection*{Sensitivity Analysis and Comparison of Models}
@ -300,7 +300,7 @@ Qualitative differences can be found, for example, when increasing the maximal c
\centering
\includegraphics[width=\linewidth]{Figures/AUC_correlation.pdf}
\linespread{1.}\selectfont
\caption[]{Effects of altered channel kinetics on AUC in various neuron models. The fI curves corresponding to shifts in FS \(+\)\Kv model delayed rectifier K half activation \(V_{1/2}\) (A), changes \Kv activation slope factor \(k\) in the FS \(+\)\Kv model (D), and changes in maximal conductance of delayed rectifier K current in the STN \(+\)\Kv model (G) are shown. The \ndAUC of fI curves is plotted against delayed rectifier K half activation potential (\(\Delta V_{1/2}\); D), \Kv activation slope factor \(k\) (k/\(\textrm{k}_{WT}\); E) and maximal conductance \(g\) of the delayed rectifier K current (g/\(\textrm{g}_{WT}\); H) for all models (thin lines) with relationships from the fI curve examples (A, D, G respectively) highlighted by thick lines with colors corresponding to the box highlighting each set of fI curves. The Kendall rank correlation (Kendall \(\tau\)) coefficients between shifts in half maximal potential \(V_{1/2}\) and \ndAUC (C), slope factor k and \ndAUC (F) as well as maximal current conductances and \ndAUC (I) for each model and current property is computed. The relationships between \(\Delta V_{1/2}\), k/\(\textrm{k}_{WT}\), and g/\(\textrm{g}_{WT}\) and \ndAUC for the Kendall rank correlations highlighted in the black boxes are depicted in (B), (E) and (H) respectively. \noteuh{Den Unterschied zwischen den dicken und dünnen Linien kann man relativ schlecht sehen. Obwohl ja die dicke Linie auch der Farbe des Kastens entspricht. Aber wenn man B/W druckt, dann sieht man das halt schlecht…} \notenk{Added color gradient x-axis in B, E, H to indicate color scale in A,D,G} \notenk{add axis gradient to legend? Add better description to legend? A, D,G are fI curves where different things are changed, with grey being lowest value, black the highest}}
\caption[]{Effects of altered channel kinetics on AUC in various neuron models. The fI curves corresponding to shifts in FS \(+\)\Kv model delayed rectifier K half activation \(V_{1/2}\) (A), changes \Kv activation slope factor \(k\) in the FS \(+\)\Kv model (D), and changes in maximal conductance of delayed rectifier K current in the STN \(+\)\Kv model (G) are shown. The fI curves corresponding to the smallest and largest alterations are seen in grey and black respectively for (A,D, and G) in accordance to the x-axis in B, E, and H. The \ndAUC of fI curves is plotted against delayed rectifier K half activation potential (\(\Delta V_{1/2}\); D), \Kv activation slope factor \(k\) (k/\(\textrm{k}_{WT}\); E) and maximal conductance \(g\) of the delayed rectifier K current (g/\(\textrm{g}_{WT}\); H) for all models (thin lines) with relationships from the fI curve examples (A, D, G respectively) highlighted by thick lines with colors corresponding to the box highlighting each set of fI curves. The Kendall rank correlation (Kendall \(\tau\)) coefficients between shifts in half maximal potential \(V_{1/2}\) and \ndAUC (C), slope factor k and \ndAUC (F) as well as maximal current conductances and \ndAUC (I) for each model and current property is computed. The relationships between \(\Delta V_{1/2}\), k/\(\textrm{k}_{WT}\), and g/\(\textrm{g}_{WT}\) and \ndAUC for the Kendall rank correlations highlighted in the black boxes are depicted in (B), (E) and (H) respectively. \noteuh{Den Unterschied zwischen den dicken und dünnen Linien kann man relativ schlecht sehen. Obwohl ja die dicke Linie auch der Farbe des Kastens entspricht. Aber wenn man B/W druckt, dann sieht man das halt schlecht…} \notenk{Added color gradient x-axis in B, E, H to indicate color scale in A,D,G, and added a tence to legend to make this clearer}}
\label{fig:AUC_correlation}
\end{figure}
@ -313,7 +313,7 @@ Although changes in half maximal potential \(V_{1/2}\) and slope factor \(k\) ge
\centering
\includegraphics[width=\linewidth]{Figures/rheobase_correlation.pdf}
\linespread{1.}\selectfont
\caption[]{Effects of altered channel kinetics on rheobase. The fI curves corresponding to shifts in FS \(+\)\Kv model \Kv activation \(V_{1/2}\) (A), changes \Kv inactivation slope factor \(k\) in the Cb stellate \(+\)\Kv model (D), and changes in maximal conductance of the leak current in the Cb stellate model (G) are shown. The \drheo of fI curves is plotted against \Kv half activation potential (\(\Delta V_{1/2}\); B), \Kv inactivation slope factor \(k\) (k/\(\textrm{k}_{WT}\); E) and maximal conductance \(g\) of the leak current (g/\(\textrm{g}_{WT}\); H) for all models (thin lines) with relationships from the fI curve examples (A, D, G respectively) highlighted by thick lines with colors corresponding to the box highlighting each set of fI curves. The Kendall rank correlation (Kendall \(\tau\)) coefficients between shifts in half maximal potential \(V_{1/2}\) and \drheo (C), slope factor k and \drheo (F) as well as maximal current conductances and \drheo (I) for each model and current property is computed. The relationships between \(\Delta V_{1/2}\), k/\(\textrm{k}_{WT}\), and g/\(\textrm{g}_{WT}\) and \drheo for the Kendall rank correlations highlighted in the black boxes are depicted in (B), (E) and (H) respectively. \notenk{Added color gradient x-axis in B, E, H to indicate color scale in A,D,G}}
\caption[]{Effects of altered channel kinetics on rheobase. The fI curves corresponding to shifts in FS \(+\)\Kv model \Kv activation \(V_{1/2}\) (A), changes \Kv inactivation slope factor \(k\) in the Cb stellate \(+\)\Kv model (D), and changes in maximal conductance of the leak current in the Cb stellate model (G) are shown. The fI curves corresponding to the smallest and largest alterations are seen in grey and black respectively for (A,D, and G) in accordance to the x-axis in B, E, and H. The \drheo of fI curves is plotted against \Kv half activation potential (\(\Delta V_{1/2}\); B), \Kv inactivation slope factor \(k\) (k/\(\textrm{k}_{WT}\); E) and maximal conductance \(g\) of the leak current (g/\(\textrm{g}_{WT}\); H) for all models (thin lines) with relationships from the fI curve examples (A, D, G respectively) highlighted by thick lines with colors corresponding to the box highlighting each set of fI curves. The Kendall rank correlation (Kendall \(\tau\)) coefficients between shifts in half maximal potential \(V_{1/2}\) and \drheo (C), slope factor k and \drheo (F) as well as maximal current conductances and \drheo (I) for each model and current property is computed. The relationships between \(\Delta V_{1/2}\), k/\(\textrm{k}_{WT}\), and g/\(\textrm{g}_{WT}\) and \drheo for the Kendall rank correlations highlighted in the black boxes are depicted in (B), (E) and (H) respectively. \notenk{Added color gradient x-axis in B, E, H to indicate color scale in A,D,G and added a sentence to make it clearer.}}
\label{fig:rheobase_correlation}
\end{figure}