From fc641680465f67af822616067465b42be5151d39 Mon Sep 17 00:00:00 2001 From: nkoch1 Date: Thu, 5 May 2022 22:14:37 -0400 Subject: [PATCH] Updated Figures 3 and 4, added comments, and changed small things throughout --- Figures/AUC_correlation.pdf | Bin 52527 -> 52613 bytes Figures/AUC_correlation.py | 527 +------------------------------ Figures/rheobase_correlation.pdf | Bin 49524 -> 49433 bytes Figures/rheobase_correlation.py | 2 +- Makefile | 2 +- manuscript.tex | 12 +- 6 files changed, 10 insertions(+), 533 deletions(-) diff --git a/Figures/AUC_correlation.pdf b/Figures/AUC_correlation.pdf index 4aa47f9ec180ffd8d78a7fb046338937e635c8db..4fbf8747b486d98b50d83ab238aa8c67f0a3a4d7 100644 GIT binary patch delta 32239 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

47mSXVF@`JPxbypJ?w)3({MKsgDv5+34W7@)6l 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 delta 32180 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 diff --git a/Figures/AUC_correlation.py b/Figures/AUC_correlation.py index db982e1..5f1f03a 100644 --- a/Figures/AUC_correlation.py +++ b/Figures/AUC_correlation.py @@ -389,7 +389,7 @@ color_dict = {'Cb stellate': '#40A787', # cyan'# # plot setup marker_s_leg = 2 -max_width = 10 +max_width = 20 pad_x = 0.65 pad_y= 0.4 pad_w = 0.85 @@ -523,528 +523,3 @@ plt.show() # fig.savefig('AUC_correlation_2.pdf', bbox_inches='tight') # # # plt.saveas(fig, 'AUC_correlation_2.png') # plt.show() -# -*- coding: utf-8 -*- -""" -Created on Sat Jul 3 19:52:04 2021 - -@author: nils -""" -import pandas as pd -import numpy as np -import string -import textwrap -import json -import matplotlib -import matplotlib.lines as mlines -from matplotlib import ticker -from matplotlib.ticker import NullFormatter -from plotstyle import boxplot_style - -def cm2inch(*tupl): - inch = 2.54 - if isinstance(tupl[0], tuple): - return tuple(i/inch for i in tupl[0]) - else: - return tuple(i/inch for i in tupl) -#%% ##################### From https://stackoverflow.com/questions/52878845/swarmplot-with-hue-affecting-marker-beyond-color ## -# to change marker types in seaborn swarmplot - -import seaborn as sns -import matplotlib.pyplot as plt - -############## Begin hack ############## -from matplotlib.axes._axes import Axes -from matplotlib.markers import MarkerStyle -from numpy import ndarray - -def GetColor2Marker(markers): - colorslist = ['#40A787', # cyan'# - '#F0D730', # yellow - '#C02717', # red - '#007030', # dark green - '#AAB71B', # lightgreen - '#008797', # light blue - '#F78017', # orange - '#478010', # green - '#53379B', # purple - '#2060A7', # blue - '#873770', # magenta - '#D03050' # pink - ] - import matplotlib.colors - palette = [matplotlib.colors.to_rgb(c) for c in colorslist] - mkcolors = [(palette[i]) for i in range(len(markers))] - return dict(zip(mkcolors,markers)) - -def fixlegend(ax,markers,markersize=3,**kwargs): - # Fix Legend - legtitle = ax.get_legend().get_title().get_text() - _,l = ax.get_legend_handles_labels() - colorslist = ['#40A787', # cyan'# - '#F0D730', # yellow - '#C02717', # red - '#007030', # dark green - '#AAB71B', # lightgreen - '#008797', # light blue - '#F78017', # orange - '#478010', # green - '#53379B', # purple - '#2060A7', # blue - '#873770', # magenta - '#D03050' # pink - ] - import matplotlib.colors - palette = [matplotlib.colors.to_rgb(c) for c in colorslist] - mkcolors = [(palette[i]) for i in range(len(markers))] - newHandles = [plt.Line2D([0],[0], ls="none", marker=m, color=c, mec="none", markersize=markersize,**kwargs) \ - for m,c in zip(markers, mkcolors)] - ax.legend(newHandles,l) - leg = ax.get_legend() - leg.set_title(legtitle) - -old_scatter = Axes.scatter -def new_scatter(self, *args, **kwargs): - colors = kwargs.get("c", None) - co2mk = kwargs.pop("co2mk",None) - FinalCollection = old_scatter(self, *args, **kwargs) - if co2mk is not None and isinstance(colors, ndarray): - Color2Marker = GetColor2Marker(co2mk) - paths=[] - for col in colors: - mk=Color2Marker[tuple(col)] - marker_obj = MarkerStyle(mk) - paths.append(marker_obj.get_path().transformed(marker_obj.get_transform())) - FinalCollection.set_paths(paths) - return FinalCollection -Axes.scatter = new_scatter -############## End hack. ############## - -######################################################################################################################## - -#%% -def boxplot_with_markers(ax,max_width, alteration='shift', msize=3): - # size =4 - # ax.tick_params(axis='x', rotation=90) - model_names = ['RS pyramidal','RS inhibitory','FS', - 'RS pyramidal +$K_V1.1$','RS inhibitory +$K_V1.1$', - 'FS +$K_V1.1$','Cb stellate','Cb stellate +$K_V1.1$', - 'Cb stellate $\Delta$$K_V1.1$','STN','STN +$K_V1.1$', - 'STN $\Delta$$K_V1.1$'] - - colorslist = ['#007030', # dark green - '#F0D730', # yellow - '#C02717', # red - '#478010', # green - '#AAB71B', # lightgreen - '#F78017', # orange - '#40A787', # cyan'# - '#008797', # light blue - '#2060A7', # blue - '#D03050', # pink - '#53379B', # purple - '#873770', # magenta - ] - - # colorslist = ['#40A787', # cyan'# - # '#F0D730', # yellow - # 'C02717', # red - # '#007030', # dark green - # '#AAB71B', # lightgreen - # '#008797', # light blue - # '#F78017', # orange - # '#478010', # green - # '#53379B', # purple - # '#2060A7', # blue - # '#873770', # magenta - # '#D03050' # pink - # ] - hlinewidth =0.5 - - import matplotlib.colors - colors = [matplotlib.colors.to_rgb(c) for c in colorslist] # sns.color_palette("hls", 14, desat=0.75)#[cm.tab20(i) for i in range(20)] - clr_dict = {} - for m in range(len(model_names)): - clr_dict[model_names[m]] = colors[m] - Markers = ["o", "o", "o", "^", "^", "^", "D", "D", "D", "s", "s", "s"] - if alteration=='shift': - i = 2 # Kd act - ax.axvspan(i - 0.4, i + 0.4, fill=False, edgecolor = 'k') - df = pd.read_csv('./Figures/Data/AUC_shift_corr.csv') - sns.swarmplot(y="corr", x="$\Delta V_{1/2}$", hue="model", data=df, - palette=clr_dict, linewidth=0, orient='v', ax=ax, size=msize, - order=['Na activation', 'Na inactivation', 'K activation', '$K_V1.1$ activation', - '$K_V1.1$ inactivation', 'A activation', 'A inactivation'], - hue_order=model_names, co2mk=Markers) - lim = ax.get_xlim() - ax.plot([lim[0], lim[1]], [0, 0], ':r',linewidth=hlinewidth) - ax.plot([lim[0], lim[1]], [1, 1], ':k',linewidth=hlinewidth) - ax.plot([lim[0], lim[1]], [-1, -1], ':k',linewidth=hlinewidth) - # ax.get_legend().remove() - # sns.despine(trim=True, bottom=True, ax=ax) - # ax.set(xlabel=None, ylabel=r'Kendall $\it{\tau}$') - ax.set_title("Shift ($\Delta V_{1/2}$)", y=1.05) - elif alteration=='slope': - i = 3 # Kv1.1 act - ax.axvspan(i - 0.4, i + 0.4, fill=False, edgecolor='k') - df = pd.read_csv('./Figures/Data/AUC_scale_corr.csv') - - # Add in points to show each observation - sns.swarmplot(y="corr", x="Slope (k)", hue="model", data=df, #dodge=True, - palette=clr_dict, linewidth=0, orient='v', ax=ax, size=msize, - order=['Na activation', 'Na inactivation', 'K activation', '$K_V1.1$ activation', - '$K_V1.1$ inactivation', 'A activation', 'A inactivation'], - hue_order=model_names, co2mk=Markers) - lim = ax.get_xlim() - # ax.plot([lim[0], lim[1]], [0,0], ':k') - ax.plot([lim[0], lim[1]], [0, 0], ':r',linewidth=hlinewidth) - ax.plot([lim[0], lim[1]], [1, 1], ':k',linewidth=hlinewidth) - ax.plot([lim[0], lim[1]], [-1, -1], ':k',linewidth=hlinewidth) - # Markers = ["o","s","v","^","<",">","p","h","P","X","D","*","8","o"] - # ax=fixlegend(ax, Markers) - # Tweak the visual presentation - # ax.get_legend().remove() - # ax.xaxis.grid(False) - # ax.set_xticklabels(textwrap.fill(x.get_text(), max_width) for x in ax.get_xticklabels()) - # ax.set(xlabel=None, ylabel=r'Kendall $\it{\tau}$') - ax.set_title("Slope (k)", y=1.05) - # sns.despine(trim=True, bottom=True, ax=ax) - elif alteration=='g': - i = 1 # Kd - ax.axvspan(i - 0.4, i + 0.4, fill=False, edgecolor='k') - df = pd.read_csv('./Figures/Data/AUC_g_corr.csv') - - # Add in points to show each observation - sns.swarmplot(y="corr", x="g", hue="model", data=df, #dodge=True, - palette=clr_dict, linewidth=0, orient='v', ax=ax, size=msize, - order=['Na', 'K', '$K_V1.1$', 'A', 'Leak'], - hue_order=model_names, co2mk=Markers) - lim = ax.get_xlim() - # ax.plot([lim[0], lim[1]], [0,0], ':k') - ax.plot([lim[0], lim[1]], [0, 0], ':r',linewidth=hlinewidth) - ax.plot([lim[0], lim[1]], [1, 1], ':k',linewidth=hlinewidth) - ax.plot([lim[0], lim[1]], [-1, -1], ':k',linewidth=hlinewidth) - # Tweak the visual presentation - # ax.xaxis.grid(False) - # sns.despine(trim=True, bottom=True, ax=ax) - # ax.set(xlabel=None, ylabel=r'Kendall $\it{\tau}$') - ax.set_title("Conductance (g)", y=1.05) - # ax.set_xticklabels(textwrap.fill(x.get_text(), max_width) for x in ax.get_xticklabels()) - else: - print('Please chose "shift", "slope" or "g"') - ax.get_legend().remove() - ax.xaxis.grid(False) - sns.despine(trim=True, bottom=True, ax=ax) - ax.set(xlabel=None, ylabel=r'Kendall $\it{\tau}$') - ax.set_xticklabels(textwrap.fill(x.get_text(), max_width) for x in ax.get_xticklabels()) - # fixlegend(ax, Markers) - -def model_legend(ax, marker_s_leg, pos, ncol): - colorslist = [ '#40A787', # cyan'# - '#F0D730', # yellow - '#C02717', # red - '#007030', # dark green - '#AAB71B', # lightgreen - '#008797', # light blue - '#F78017', # orange - '#478010', # green - '#53379B', # purple - '#2060A7', # blue - '#873770', # magenta - '#D03050' # pink - ] - import matplotlib.colors - colors = [matplotlib.colors.to_rgb(c) for c in colorslist] #sns.color_palette("hls", 14, desat=0.75) #[cm.tab20(i) for i in range(20)] - - model_pos = {'Cb stellate':0, 'RS Inhibitory':1, 'FS':2, 'RS Pyramidal':3, - 'RS Inhibitory +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$':4, - 'Cb stellate +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$':5, 'FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$':6, - 'RS Pyramidal +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$':7, 'STN +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$':8, - 'Cb stellate $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$':9, - 'STN $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$':10, 'STN':11} - - Markers = ["o", "o", "o", "^", "^", "^", "D", "D", "D", "s", "s", "s"] - RS_p = mlines.Line2D([], [], color=colors[model_pos['RS Pyramidal']], marker=Markers[model_pos['RS Pyramidal']], markersize=marker_s_leg, linestyle='None', - label='RS pyramidal') - RS_i = mlines.Line2D([], [], color=colors[model_pos['RS Inhibitory']], marker=Markers[model_pos['RS Inhibitory']], markersize=marker_s_leg, linestyle='None', - label='RS inhibitory') - FS = mlines.Line2D([], [], color=colors[model_pos['FS']], marker=Markers[model_pos['FS']], markersize=marker_s_leg, linestyle='None', label='FS') - RS_p_Kv = mlines.Line2D([], [], color=colors[model_pos['RS Pyramidal +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$']], marker=Markers[model_pos['RS Pyramidal +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$']], markersize=marker_s_leg, linestyle='None', - label='RS Pyramidal +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$') - RS_i_Kv = mlines.Line2D([], [], color=colors[model_pos['RS Inhibitory +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$']], marker=Markers[model_pos['RS Inhibitory +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$']], markersize=marker_s_leg, linestyle='None', - label='RS Inhibitory +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$') - FS_Kv = mlines.Line2D([], [], color=colors[model_pos['Cb stellate']], marker=Markers[model_pos['Cb stellate']], markersize=marker_s_leg, linestyle='None', label='FS +$K_V1.1$') - Cb = mlines.Line2D([], [], color=colors[8], marker=Markers[8], markersize=marker_s_leg, linestyle='None', - label='Cb stellate') - Cb_pl = mlines.Line2D([], [], color=colors[model_pos['Cb stellate +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$']], marker=Markers[model_pos['Cb stellate +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$']], markersize=marker_s_leg, linestyle='None', - label='Cb stellate +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$') - Cb_sw = mlines.Line2D([], [], color=colors[model_pos['Cb stellate $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$']], marker=Markers[model_pos['Cb stellate $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$']], markersize=marker_s_leg, linestyle='None', - label='Cb stellate $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$') - STN = mlines.Line2D([], [], color=colors[model_pos['STN']], marker=Markers[model_pos['STN']], markersize=marker_s_leg, linestyle='None', label='STN') - STN_pl = mlines.Line2D([], [], color=colors[model_pos['STN +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$']], marker=Markers[model_pos['STN +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$']], markersize=marker_s_leg, linestyle='None', - label='STN +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$') - STN_sw = mlines.Line2D([], [], color=colors[model_pos['STN $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$']], marker=Markers[model_pos['STN $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$']], markersize=marker_s_leg, linestyle='None', - label='STN $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$') - ax.legend(handles=[RS_p, RS_i, FS, RS_p_Kv, RS_i_Kv, FS_Kv, Cb, Cb_pl, Cb_sw, STN, STN_pl, STN_sw], loc='center', - bbox_to_anchor=pos, ncol=ncol, frameon=False) - -def plot_AUC_alt(ax, model='FS', color1='red', color2='dodgerblue', alteration='shift'): - ax.spines["right"].set_visible(False) - ax.spines["top"].set_visible(False) - model_names = ['RS Pyramidal','RS Inhibitory','FS', - 'RS Pyramidal +$K_V1.1$','RS Inhibitory +$K_V1.1$', - 'FS +$K_V1.1$','Cb stellate','Cb stellate +$K_V1.1$', - 'Cb stellate $\Delta$$K_V1.1$','STN','STN +$K_V1.1$', - 'STN $\Delta$$K_V1.1$'] - - model_name_dict = {'RS Pyramidal': 'RS Pyramidal', - 'RS Inhibitory': 'RS Inhibitory', - 'FS': 'FS', - 'RS Pyramidal +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': 'RS Pyramidal +$K_V1.1$', - 'RS Inhibitory +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': 'RS Inhibitory +$K_V1.1$', - 'FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': 'FS +$K_V1.1$', - 'Cb stellate': 'Cb stellate', - 'Cb stellate +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': 'Cb stellate +$K_V1.1$', - 'Cb stellate $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': 'Cb stellate $\Delta$$K_V1.1$', - 'STN': 'STN', - 'STN +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': 'STN +$K_V1.1$', - 'STN $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': 'STN $\Delta$$K_V1.1$'} - colorslist = ['#007030', # dark green - '#F0D730', # yellow - '#C02717', # red - '#478010', # green - '#AAB71B', # lightgreen - '#F78017', # orange - '#40A787', # cyan'# - '#008797', # light blue - '#2060A7', # blue - '#D03050', # pink - '#53379B', # purple - '#873770', # magenta - ] - - import matplotlib.colors - colors = [matplotlib.colors.to_rgb(c) for c in - colorslist] #sns.color_palette("hls", 14, desat=0.75)#[cm.tab20(i) for i in range(20)] - clr_dict = {} - for m in range(len(model_names)): - clr_dict[model_names[m]] = colors[m] - if alteration=='shift': - df = pd.read_csv('./Figures/Data/AUC_shift_ex.csv') - df = df.sort_values('alteration') - ax.set_xlabel('$\Delta$$V_{1/2}$') - elif alteration=='slope': - df = pd.read_csv('./Figures/Data/AUC_slope_ex.csv') - ax.set_xscale("log") - ax.set_xticks([0.5, 1, 2]) - ax.xaxis.set_major_formatter(ticker.ScalarFormatter()) - ax.xaxis.set_minor_formatter(NullFormatter()) - ax.set_xlabel('Slope factor k') - elif alteration=='g': - df = pd.read_csv('./Figures/Data/AUC_g_ex.csv') - ax.set_xscale("log") - ax.set_xticks([0.5, 1, 2]) - ax.xaxis.set_major_formatter(ticker.ScalarFormatter()) - ax.xaxis.set_minor_formatter(NullFormatter()) - ax.set_xlabel('g') - for mod in model_names: - if mod == model_name_dict[model]: - ax.plot(df['alteration'], df[mod], color=clr_dict[mod], alpha=1, zorder=10, linewidth=2) - else: - ax.plot(df['alteration'], df[mod], color=clr_dict[mod],alpha=1, zorder=1, linewidth=1) - ax.set_ylabel('Normalized AUC') - x = df['alteration'] - y = df[model_name_dict[model]] - ax.set_xlim(x.min(), x.max()) - ax.set_ylim(df[model_names].min().min(), df[model_names].max().max()) - return ax - -def plot_fI(ax, model='RS Pyramidal', type='shift', alt='m', color1='red', color2='dodgerblue'): - model_save_name = {'RS Pyramidal': 'RS_pyr_posp', - 'RS Inhibitory': 'RS_inhib_posp', - 'FS': 'FS_posp', - 'RS Pyramidal +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': 'RS_pyr_Kv', - 'RS Inhibitory +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': 'RS_inhib_Kv', - 'FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': 'FS_Kv', - 'Cb stellate': 'Cb_stellate', - 'Cb stellate +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': 'Cb_stellate_Kv', - 'Cb stellate $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': 'Cb_stellate_Kv_only', - 'STN': 'STN', - 'STN +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': 'STN_Kv', - 'STN $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': 'STN_Kv_only'} - cvals = [-2., 2] - colors = [color1, color2] - norm = plt.Normalize(min(cvals), max(cvals)) - tuples = list(zip(map(norm, cvals), colors)) - cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", tuples) - colors = cmap(np.linspace(0, 1, 22)) - df = pd.read_csv('./Figures/Data/Model_fI/{}_fI.csv'.format(model_save_name[model])) - df.drop(['Unnamed: 0'], axis=1) - newdf = df.loc[df.index[(df['alt'] == alt) & (df['type'] == type)], :] - newdf['mag'] = newdf['mag'].astype('float') - newdf = newdf.sort_values('mag').reset_index() - c = 0 - for i in newdf.index: - ax.plot(json.loads(newdf.loc[i, 'I']), json.loads(newdf.loc[i, 'F']), color=colors[c]) - c += 1 - ax.set_ylabel('Frequency [Hz]') - ax.set_xlabel('Current [nA]') - ax.set_title(model) - ax.spines["right"].set_visible(False) - ax.spines["top"].set_visible(False) - L = ax.get_ylim() - ax.set_ylim([0, L[1]]) - return ax - - -#%% -boxplot_style() -color_dict = {'Cb stellate': '#40A787', # cyan'# - 'RS Inhibitory': '#F0D730', # yellow - 'FS': '#C02717', # red - 'RS Pyramidal': '#007030', # dark green - 'RS Inhibitory +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': '#AAB71B', # lightgreen - 'Cb stellate +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': '#008797', # light blue - 'FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': '#F78017', # orange - 'RS Pyramidal +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': '#478010', # green - 'STN +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': '#53379B', # purple - 'Cb stellate $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': '#2060A7', # blue - 'STN $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': '#873770', # magenta - 'STN': '#D03050' # pink - } - -# plot setup -marker_s_leg = 2 -max_width = 10 -pad_x = 0.65 -pad_y= 0.4 -pad_w = 0.85 -pad_h = 0.7 - -fig = plt.figure() -# fig = plt.figure() -# fig.set_size_inches(cm2inch(17.6,10)) -gs = fig.add_gridspec(3, 6, wspace=1., hspace=0.8) -# plt.subplots_adjust(hspace=0.8) #, wspace=0.6 -ax0 = fig.add_subplot(gs[0,2:6]) -ax0_ex = fig.add_subplot(gs[0,1]) -ax0_fI = fig.add_subplot(gs[0,0]) -ax1 = fig.add_subplot(gs[1,2:6]) -ax1_ex = fig.add_subplot(gs[1,1]) -ax1_fI = fig.add_subplot(gs[1,0]) -ax2 = fig.add_subplot(gs[2,2:6]) -ax2_ex = fig.add_subplot(gs[2,1]) -ax2_fI = fig.add_subplot(gs[2,0]) - -line_width = 1 -# plot fI examples -ax0_fI = plot_fI(ax0_fI, model='FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', type='shift', alt='s', color1='lightgrey', color2='k') -rec = plt.Rectangle((-pad_x, -pad_y), 1 + pad_w, 1 + pad_h, fill=False, lw=line_width,transform=ax0_fI.transAxes, color=color_dict['FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$'], alpha=1, zorder=-1) -rec = ax0_fI.add_patch(rec) -rec.set_clip_on(False) - -ax1_fI = plot_fI(ax1_fI, model='FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', type='slope', alt='u', color1='lightgrey', color2='k') -rec = plt.Rectangle((-pad_x, -pad_y), 1 + pad_w, 1 + pad_h, fill=False, lw=line_width,transform=ax1_fI.transAxes, color=color_dict['FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$'], alpha=1, zorder=-1) -rec = ax1_fI.add_patch(rec) -rec.set_clip_on(False) - -ax2_fI = plot_fI(ax2_fI, model='STN +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', type='g', alt='Leak', color1='lightgrey', color2='k') -rec = plt.Rectangle((-pad_x, -pad_y), 1 + pad_w, 1 + pad_h, fill=False, lw=line_width,transform=ax2_fI.transAxes, color=color_dict['STN +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$'], alpha=1, zorder=-1) -rec = ax2_fI.add_patch(rec) -rec.set_clip_on(False) - -# label subplots with letters -ax0_fI.text(-0.95, 1.12, string.ascii_uppercase[0], transform=ax0_fI.transAxes, size=10, weight='bold') #-0.09 -ax1_fI.text(-0.95, 1.12, string.ascii_uppercase[1], transform=ax1_fI.transAxes,size=10, weight='bold') -ax2_fI.text(-0.95, 1.12, string.ascii_uppercase[2], transform=ax2_fI.transAxes,size=10, weight='bold') - -# plot boxplots -boxplot_with_markers(ax0,max_width, alteration='shift') -boxplot_with_markers(ax1,max_width, alteration='slope') -boxplot_with_markers(ax2,max_width, alteration='g') - -# plot legend -pos = (0.25, -0.6) -ncol = 6 -model_legend(ax2, marker_s_leg, pos, ncol) - -# plot examples -plot_AUC_alt(ax0_ex,model='FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', color1='lightgrey', color2='k', alteration='shift') -plot_AUC_alt(ax1_ex,model='FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', color1='lightgrey', color2='k',alteration='slope') -plot_AUC_alt(ax2_ex, model='STN +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', color1='lightgrey', color2='k', alteration='g') - -#save -# plt.tight_layout(pad=0) -print(fig.dpi) -fig.set_size_inches(cm2inch(20.3,10)) -fig.savefig('./Figures/AUC_correlation.pdf', dpi=fig.dpi) #bbox_inches='tight', dpi=fig.dpi -plt.show() - -# #%% alternative layout -# # boxplot_style() -# marker_s_leg = 8 -# max_width = 10 -# pad_x = 0.2 -# pad_y= 0.4 -# pad_w = 0.22 -# pad_h = 0.6 -# -# fig = plt.figure(figsize=(12,20)) -# gs = fig.add_gridspec(3, 1, hspace=0.4, wspace=0.4) -# gs0 = gs[0].subgridspec(2, 4, wspace=0.6, hspace=1.) -# gs1 = gs[1].subgridspec(2, 4, wspace=0.6, hspace=1.) -# gs2 = gs[2].subgridspec(2, 4, wspace=0.6, hspace=1.) -# ax0 = fig.add_subplot(gs0[1,:]) -# ax0_ex = fig.add_subplot(gs0[0,2:]) -# ax0_fI = fig.add_subplot(gs0[0,:2]) -# ax1 = fig.add_subplot(gs1[1,:]) -# ax1_ex = fig.add_subplot(gs1[0,2:]) -# ax1_fI = fig.add_subplot(gs1[0,:2]) -# ax2 = fig.add_subplot(gs2[1,:]) -# ax2_ex = fig.add_subplot(gs2[0,2:]) -# ax2_fI = fig.add_subplot(gs2[0,:2]) -# -# -# ax0_fI = plot_fI(ax0_fI, model='FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', type='shift', alt='s', color1='lightgrey', color2='k') -# rec = plt.Rectangle((-pad_x, -pad_y), 1 + pad_w, 1 + pad_h, fill=False, lw=2,transform=ax0_fI.transAxes, color=color_dict['FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$'], alpha=1, zorder=-1) -# rec = ax0_fI.add_patch(rec) -# rec.set_clip_on(False) -# -# ax1_fI = plot_fI(ax1_fI, model='FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', type='slope', alt='u', color1='lightgrey', color2='k') -# rec = plt.Rectangle((-pad_x, -pad_y), 1 + pad_w, 1 + pad_h, fill=False, lw=2,transform=ax1_fI.transAxes, color=color_dict['FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$'], alpha=1, zorder=-1) -# rec = ax1_fI.add_patch(rec) -# rec.set_clip_on(False) -# -# ax2_fI = plot_fI(ax2_fI, model='STN +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', type='g', alt='Leak', color1='lightgrey', color2='k') -# rec = plt.Rectangle((-pad_x, -pad_y), 1 + pad_w, 1 + pad_h, fill=False, lw=2,transform=ax2_fI.transAxes, color=color_dict['STN +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$'], alpha=1, zorder=-1) -# rec = ax2_fI.add_patch(rec) -# rec.set_clip_on(False) -# -# # label subplots with letters -# ax0_fI.text(-0.2, 1.38, string.ascii_uppercase[0], transform=ax0_fI.transAxes, size=16, weight='bold') #-0.09 -# ax1_fI.text(-0.2, 1.38, string.ascii_uppercase[1], transform=ax1_fI.transAxes,size=16, weight='bold') -# ax2_fI.text(-0.2, 1.38, string.ascii_uppercase[2], transform=ax2_fI.transAxes,size=16, weight='bold') -# -# # plot boxplots -# boxplot_with_markers(ax0,max_width, alteration='shift') -# boxplot_with_markers(ax1,max_width, alteration='slope') -# boxplot_with_markers(ax2,max_width, alteration='g') -# # plot legend -# pos = (0.5, -1.) -# ncol = 6 -# model_legend(ax2, marker_s_leg, pos, ncol) -# -# # # plot rheo across model for example alteration -# # plot_rheo_alt(ax0_ex,model='FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', color1='red', color2='maroon', alteration='shift') -# # plot_rheo_alt(ax1_ex,model='Cb stellate +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', color1='orchid', color2='purple',alteration='slope') -# # plot_rheo_alt(ax2_ex, model='Cb stellate', color1='darkviolet', color2='indigo', alteration='g') -# # plot_rheo_alt(ax0_ex,model='FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', color1='lightgrey', color2='k', alteration='shift') -# # plot_rheo_alt(ax1_ex,model='Cb stellate +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', color1='lightgrey', color2='k',alteration='slope') -# # plot_rheo_alt(ax2_ex, model='Cb stellate', color1='lightgrey', color2='k', alteration='g') -# -# # plot examples -# plot_AUC_alt(ax0_ex,model='FS', color1='lightgrey', color2='k', alteration='shift') -# plot_AUC_alt(ax1_ex,model='FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', color1='lightgrey', color2='k',alteration='slope') -# plot_AUC_alt(ax2_ex, model='STN +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', color1='lightgrey', color2='k', alteration='g') -# fig.savefig('AUC_correlation_2.pdf', bbox_inches='tight') # -# # plt.saveas(fig, 'AUC_correlation_2.png') -# plt.show() diff --git a/Figures/rheobase_correlation.pdf b/Figures/rheobase_correlation.pdf index 4309db62769aa4ea870696450ec4ce7df7ed2c9d..9fe4c1167edea4b75124f8efeb51d5f1a9d9e9cf 100644 GIT binary patch delta 27962 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 a(j5fm4lv`S#|gMpZgjBgbrF#jK)uK8jB delta 28020 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 T)!QnC1p$Mwn3yD$rLg`Bql`w% diff --git a/Figures/rheobase_correlation.py b/Figures/rheobase_correlation.py index 0e77ed6..e1becdb 100644 --- a/Figures/rheobase_correlation.py +++ b/Figures/rheobase_correlation.py @@ -361,7 +361,7 @@ color_dict = {'Cb stellate': '#40A787', # cyan'# # plot setup marker_s_leg = 2 -max_width = 10 +max_width = 20 pad_x = 0.65 pad_y= 0.4 pad_w = 0.85 diff --git a/Makefile b/Makefile index 8e104a5..473cd69 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ TEXFILE=$(TEXBASE).tex PDFFILE=$(TEXBASE).pdf TXTFILE=$(TEXBASE).txt -REVISION=0691c71d176511c294f39d84c89864fa8c141e4a +REVISION=0691c71d176511c294f39d84c89864fa8c141e4a PDFFIGURES=$(shell sed -n -e '/^[^%].*includegraphics/{s/^.*includegraphics.*{\(.*\)}/\1.pdf/;p}' $(TEXFILE)) diff --git a/manuscript.tex b/manuscript.tex index 4003374..97cb68e 100644 --- a/manuscript.tex +++ b/manuscript.tex @@ -133,11 +133,11 @@ However the effect of a given channelopathy on different neuronal types across t % \textcolor{red}{In the simplest case, the influence on the firing behaviour should correlate with the expression level of the affected gene \textcolor{red}{(cite Niko , other Papers)}. But if a \textcolor{red}{ kinetic parameter} is changed too much, it can have unforseen consequences. } The expression level of an affected gene can correlate with firing behaviour in the simplest case \citep{Layer2021} \textcolor{red}{(cite other Papers?)}, however if a gating property is altered substantially this can have complex consequences. -For instance, altering relative amplitudes of ionic currents can dramatically influence the firing behaviour and dynamics of neurons \citep{rutecki_neuronal_1992, pospischil_minimal_2008,Kispersky2012, golowasch_failure_2002, barreiro_-current_2012, Noebels2017, Layer2021}, however other properties of ionic currents impact neuronal firing as well. In extreme cases, a mutation can have opposite effects on different neuron types. For example, the R1629H SCN1A mutation is associated which increased firing in interneurons, but decreases pyramidal neuron excitability \citep{Hedrich14874}\textcolor{red}{(and the other paper?)}. %not sure which paper you mean Lukas +For instance, altering relative amplitudes of ionic currents can dramatically influence the firing behaviour and dynamics of neurons \citep{rutecki_neuronal_1992, pospischil_minimal_2008,Kispersky2012, golowasch_failure_2002, barreiro_-current_2012, Noebels2017, Layer2021}, however other properties of ionic currents impact neuronal firing as well. In extreme cases, a mutation can have opposite effects on different neuron types. For example, the R1629H SCN1A mutation is associated which increased firing in interneurons, but decreases pyramidal neuron excitability \citep{Hedrich14874}\textcolor{red}{(and the other paper?)}. \notenk{Lukas I'm not sure which other paper you are referencing} %However, the effect on the firing behaviour of different neurons is often unclear \textcolor{red}{(and always incomplete)}. Generally, different neuron types have different ionic current compositions and therefore could react in different ways to changes in one ionic current. In the simpler cases, the respective firing behaviour should mostly correlate with expression level of the affected current and scale with it \textcolor{red}{(cite some stuff, cite NikoPaper)}. \textcolor{red}{If the change in gating kinetics is too strong, the firing behaviour can change qualitatively.} Altering the relative current amplitudes in neuronal models leads to dramtic changes in their firing behaviour and dynamics \citep{rutecki_neuronal_1992, pospischil_minimal_2008,Kispersky2012, golowasch_failure_2002, barreiro_-current_2012, Noebels2017}. \textcolor{red}{The same could happen for other parameters too. \citet{Liu2019} reported a drastically slowed inacitvaiton time constant for a mutation in \textcolor{red}{Na$_V$1.6}, which led to huge depolarization plateaus after an action potential, that lasted several 100 milliseconds.} The most drastic example known to us would be the R1629H mutation in \textcolor{red}{SCN2A}. This mutation increases the excitability of interneurons, but decreases it in pyramidal neurons \textcolor{red}{(cite Hedrich2014 and the other paper)}. \textcolor{red}{Some neuron types may be closer to certain transitions between firing states than other, making these observations even more unpredictable \textcolor{red}{(cite some bifurcation stuff?)}.} -Computational modelling approaches can be used to assess the impacts of changed properties of ionic currents on firing behaviour, bridging the gap between changes in the biophysical properties induced by mutations, firing and clinical symptoms. Conductance-based neuronal models enable insight into the effects of ion channel mutations with specific effects of the resulting ionic current as well as enabling \textit{in silico} assessment of the relative effects of changes in biophysical properties of ionic currents on neuronal firing. Furthermore, modelling approaches enable predictions of the effects of specific mutation and drug induced biophysical property changes. +Computational modelling approaches can be used to assess the impacts of changed ionic current properties on firing behaviour, bridging the gap between changes in the biophysical properties induced by mutations, firing and clinical symptoms. Conductance-based neuronal models enable insight into the effects of ion channel mutations with specific effects of the resulting ionic current as well as enabling \textit{in silico} assessment of the relative effects of changes in biophysical properties of ionic currents on neuronal firing. Furthermore, modelling approaches enable predictions of the effects of specific mutation and drug induced biophysical property changes. We therefore investigate the role that neuronal type plays on the outcome of ionic current kinetic changes on firing by simulating the response of a repertoire of different neuronal models to changes in single current parameters as well as to episodic ataxia type~1 associated \Kv mutations. %In this study we want to get an insight into how changes in ion current kinetics change firing behaviour dependent on neuron type. We will simulate a repertoire of different neuronal models and compare their response to changes in single parameters and to changes as they were observed for mutations in \textcolor{red}{KCNA1}, causing ataxia. @@ -197,7 +197,7 @@ with slope \(k\), voltage for half-maximal activation or inactivation (\(V_{1/2} % Sensitivity analyses enable investigation into how different sources of uncertainty in a model result in uncertainty in model outputs \citep{saltelli_sensitivity_2002} and provide information on the relative impact of model inputs \citep{saltelli_why_2019}. We recently used a one-factor-at-a-time (OFAT) sensitivity analysis approach to evaluate the relative impacts of currents on neuronal firing and developed a scoring system for SCN8A mutations that correlated (p = 0.0077, r = 0.64) with the clinical severity of epilepsy in patients with these mutations \citep{johannesen_genotype-phenotype_2021}. This was done in an isolated neuronal model and suggests that even with disregard of network level effects of mutations, the single cell level outcomes of mutations are relevant to disease phenotypes. OFAT sensitivity analyses indicate which factors have or do not have influence, with uninfluential factors never detected as relevant \citep{saltelli_how_2010}. OFAT sensitivity analyses can be used to screen factors that are influential on model outcomes and provide a mechanism by which factors and their relative influence can be easily identified and used in predictive applications. - Properties of ionic currents common to all models (\(\textrm{I}_{\textrm{Na}}\), \(\textrm{I}_{\textrm{K}}\), \(\textrm{I}_{\textrm{A}}\)/\IKv, and \(\textrm{I}_{Leak}\)) were systematically altered in a one-factor-at-a-time sensitivity analysis for all models. The gating curves for each current were shifted (\(\Delta V_{1/2}\)) from -10 to 10\,mV in increments of 1\,mV. The slope (\(k\)) of the gating curves were altered from half to twice the initial slope. Similarly, the maximal current conductance (\(g\)) was also scaled from half to twice the initial value. For both slope and conductance alterations, alterations consisted of 21 steps spaced equally on a \(\textrm{log}_2\) scale. + Properties of ionic currents common to all models (\(\textrm{I}_{\textrm{Na}}\), \(\textrm{I}_{\textrm{K}}\), \(\textrm{I}_{\textrm{A}}\)/\IKv, and \(\textrm{I}_{\textrm{Leak}}\)) were systematically altered in a one-factor-at-a-time sensitivity analysis for all models. The gating curves for each current were shifted (\(\Delta V_{1/2}\)) from -10 to 10\,mV in increments of 1\,mV. The slope (\(k\)) of the gating curves were altered from half to twice the initial slope. Similarly, the maximal current conductance (\(g\)) was also scaled from half to twice the initial value. For both slope and conductance alterations, alterations consisted of 21 steps spaced equally on a \(\textrm{log}_2\) scale. \subsection*{Model Comparison} Changes in rheobase (\(\Delta rheobase\)) are calculated in relation to the original model rheobase. The contrast of each AUC value (\(AUC_i\)) was computed in comparison to the AUC of the unaltered wild type model (\(AUC_{wt}\)) @@ -230,6 +230,7 @@ To examine the role of cell specific environments of ionic currents on the impac \centering \includegraphics[width=0.5\linewidth]{Figures/firing_characterization.pdf} \\\notejb{Nils, can you put the python script of this figure into the git? I have some ideas I would like to try.} + \\\notenk{Should already be in \path{./Figures}, specifically file: \path{./Figures/firing_characterization.py}} \linespread{1.}\selectfont \caption[]{Characterization of firing with AUC and rheobase. (A) The area under the curve (AUC) of the repetitive firing frequency-current (fI) curve. (B) Changes in firing as characterized by \(\Delta\)AUC and \(\Delta\)rheobase occupy 4 quadrants separated by no changes in AUC and rheobase. Representative schematic fI curves in blue with respect to a reference fI curve (black) depict the general changes associated with each quadrant.} @@ -250,7 +251,7 @@ Neuronal firing is a complex phenomenon and a quantification of firing propertie Neuronal firing is heterogenous across the CNS and a set of neuronal models with heterogenous firing due to different ionic currents is desirable to reflect this heterogeneity. The set of neuronal models used here has considerable diversity as evident in the variability seen across neuronal models both in representative spike trains and their fI curves (\Cref{fig:diversity_in_firing}). The models chosen all fire repetitively and do not exhibit bursting. Some models, such as Cb stellate and RS inhibitory models, display type I firing whereas others such as Cb stellate \(\Delta\)\Kv and STN models have type II firing. Type I firing is characterized by continuous fI curve (i.e. firing rate is continuous) generated through a saddle-node on invariant cycle bifurcation and type II firing is characterized by a discontinuity in the fI curve (i.e. a jump occurs from no firing to firing at a certain frequency) due to a sub-critical Hopf bifurcation \cite{ERMENTROUT2002, ermentrout_type_1996}. Other models lie on a continuum between these prototypical firing classifications. Most neuronal models exhibit hysteresis with ascending and descending ramps eliciting spikes with different thresholds, however the STN +\Kv, STN \(\Delta\)\Kv, and Cb stellate \(\Delta\)\Kv models have large hysteresis (\Cref{fig:diversity_in_firing}). \subsection*{Sensitivity Analysis} -Sensitivity analyses are used to understand how input model parameters contribute to the output of a model \citep{Saltelli2002}. In other words, sensitivity analyses are used to understand how sensitive the output of a model is to a change in input or model parameters. One-factor-a-time sensitivity analysis involve altering one parameter at a time and enable the comparison of a given alteration in parameters of ionic currents across models. Changes in gating \(V_{1/2}\) and slope factor $k$ as well as the maximum conductance affect AUC (\Cref{fig:AUC_correlation} A, B and C). Heterogeneity in the correlation between gating and conductance changes and AUC occurs across models for most ionic currents. In these cases some of the models display non-monotonic relationships (i.e. \( |\text{Kendall} \tau | \approx 0\)\notejb{is this right?} ). However, shifts in A-current activation \(V_{1/2}\), changes in \Kv activation \(V_{1/2}\) and slope factor $k$, and changes in A-current conductance display consistent monotonic relationships across models. +Sensitivity analyses are used to understand how input model parameters contribute to the output of a model \citep{Saltelli2002}. In other words, sensitivity analyses are used to understand how sensitive the output of a model is to a change in input or model parameters. One-factor-a-time sensitivity analysis involve altering one parameter at a time and enable the comparison of a given alteration in parameters of ionic currents across models. Changes in gating \(V_{1/2}\) and slope factor $k$ as well as the maximum conductance affect AUC (\Cref{fig:AUC_correlation} A, B and C). Heterogeneity in the correlation between gating and conductance changes and AUC occurs across models for most ionic currents. In these cases some of the models display non-monotonic relationships (i.e. \( |\text{Kendall} \tau | \approx 0\)\notejb{is this right?} \notenk{Yes, although it is perhaps a bit misleadingly written as this is not the only situation in which the Kendall \(\tau \approx 0\). Kendall \(\tau\) is a measure of monotonic relationships so if there is no relationship or the relationship is completely non-monotonic (i.e. a parabola) then the Kendall \(\tau\) is zero.}). However, shifts in A-current activation \(V_{1/2}\), changes in \Kv activation \(V_{1/2}\) and slope factor $k$, and changes in A-current conductance display consistent monotonic relationships across models. \begin{figure}[ht!] \centering @@ -266,6 +267,7 @@ Alterations in gating \(V_{1/2}\) and slope factor $k$ as well as the maximum co \centering \includegraphics[width=\linewidth]{Figures/rheobase_correlation.pdf} \\\notejb{Oben rechts: linebreak in ``A inactivation'' is weird} + \\\notenk{Habe ich fuer dieses und das AUC Abbildung (Figure 3) geaendert} \linespread{1.}\selectfont \caption[]{The Kendall rank correlation (Kendall \(\tau\)) coefficients between shifts in \(V_{1/2}\) and rheobase, slope factor k and AUC as well as current conductances and rheobase for each model are shown on the right in (A), (B) and (C) respectively. The relationships between rheobase and \(\Delta V_{1/2}\), slope (k) and conductance (g) for the Kendall \(\tau\) coefficients highlights by the black box are depicted in the middle panel. The fI curves corresponding to one of the models are shown in the left panels.} \label{fig:rheobase_correlation} @@ -312,7 +314,7 @@ Variability in ion channel expression often correlates with the expression of ot The variability of ion currents and degeneracy of neurons may account, at least in part, for the observation that the effect of toxins within a neuronal type is frequently not constant \citep{khaliq_relative_2006, puopolo_roles_2007, ransdell_neurons_2013}. \subsection*{Effects of KCNA1 Mutations} -Moderate changes in delayed rectifier potassium currents change the bifurcation structure of Hodgkin Huxley model, with changes analogous to those seen with \Kv mutations resulting in increased excitability due to reduced thresholds for repetitive firing \citep{hafez_altered_2020}. Although the Hodgkin Huxley delayed rectifier lacks inactivation, the increases in excitability seen are in line with \textcolor{red}{both score-based and} simulation-based predictions of the outcomes of \textit{KCNA1} mutations. LOF KCNA1 mutations generally increase neuronal excitability, however the different effects of KCNA1 mutations across models on AUC are indicative that a certain cell type specific complexity exists. Increased excitability seen experimentally with \Kv null mice \citep{smart_deletion_1998, zhou_temperature-sensitive_1998}, with pharmacological \Kv block \citep{chi_manipulation_2007, morales-villagran_protection_1996}, by \citet{hafez_altered_2020} and with simulation-based predictions of KCNA1 mutations. Contrary to these results, \citet{zhao_common_2020} predicted \textit{in silico} that the depolarizing shifts seen as a result of KCNA1 mutations broaden action potentials and interfere negatively with high frequency action potential firing, however \textcolor{green}{they varied stimulus duration between different models and therefore} comparability of firing rates is lacking in this study. +Moderate changes in delayed rectifier potassium currents change the bifurcation structure of Hodgkin Huxley model, with changes analogous to those seen with \Kv mutations resulting in increased excitability due to reduced thresholds for repetitive firing \citep{hafez_altered_2020}. Although the Hodgkin Huxley delayed rectifier lacks inactivation, the increases in excitability seen are in line with simulation-based predictions of the outcomes of \textit{KCNA1} mutations. LOF KCNA1 mutations generally increase neuronal excitability, however the different effects of KCNA1 mutations across models on AUC are indicative that a certain cell type specific complexity exists. Increased excitability seen experimentally with \Kv null mice \citep{smart_deletion_1998, zhou_temperature-sensitive_1998}, with pharmacological \Kv block \citep{chi_manipulation_2007, morales-villagran_protection_1996}, by \citet{hafez_altered_2020} and with simulation-based predictions of KCNA1 mutations. Contrary to these results, \citet{zhao_common_2020} predicted \textit{in silico} that the depolarizing shifts seen as a result of KCNA1 mutations broaden action potentials and interfere negatively with high frequency action potential firing, however \textcolor{green}{they varied stimulus duration between different models and therefore} comparability of firing rates is lacking in this study. Different current properties, such as the difference in \(\textrm{I}_\textrm{A}\) and \IKv in the Cb stellate and STN model families alter the impact of KCNA1 mutations on firing highlighting that knowledge of the biophysical properties of a current and its neuronal expression is vital for holistic understanding of the effects of a given ion channel mutation both at a single cell and network level. \subsection*{Loss or Gain of Function Characterizations Do Not Fully Capture Ion Channel Mutation Effects on Firing}