update figures based on discussion with Jan and Lukas and added gmax distribution figure

This commit is contained in:
nkoch1 2023-04-22 00:43:46 -04:00
parent 251c622d1b
commit ea38cddf11
46 changed files with 77197 additions and 73 deletions

10168
Figures/AUC_correlation.eps Normal file

File diff suppressed because it is too large Load Diff

BIN
Figures/AUC_correlation.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 KiB

BIN
Figures/AUC_correlation.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 KiB

BIN
Figures/Untitled.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

View File

@ -140,7 +140,7 @@ gs00 = gs0[:,0].subgridspec(5, 3, wspace=1.8, hspace=1.5)
gs01 = gs0[:,1].subgridspec(5, 3, wspace=1.8, hspace=1.5)
gs02 = gs0[:,2].subgridspec(5, 3, wspace=1.8, hspace=1.5)
ax_diag = fig.add_subplot(gs02[:3, :])
ax_diag = fig.add_subplot(gs02[2:, :])
import matplotlib.image as mpimg
img = mpimg.imread('./Figures/model_diagram2.png')
ax_diag.imshow(img)
@ -156,26 +156,26 @@ ax1_spikes = fig.add_subplot(gs00[0,0:2])
ax1_fI = fig.add_subplot(gs00[0, 2])
ax2_spikes = fig.add_subplot(gs01[0,0:2])
ax2_fI = fig.add_subplot(gs01[0, 2])
ax3_spikes = fig.add_subplot(gs00[1,0:2])
ax3_fI = fig.add_subplot(gs00[1, 2])
ax4_spikes = fig.add_subplot(gs01[1,0:2])
ax4_fI = fig.add_subplot(gs01[1, 2])
ax5_spikes = fig.add_subplot(gs00[2, 0:2])
ax5_fI = fig.add_subplot(gs00[2, 2])
ax6_spikes = fig.add_subplot(gs01[2, 0:2])
ax6_fI = fig.add_subplot(gs01[2, 2])
ax7_spikes = fig.add_subplot(gs00[3,0:2])
ax7_fI = fig.add_subplot(gs00[3, 2])
ax8_spikes = fig.add_subplot(gs01[3,0:2])
ax8_fI = fig.add_subplot(gs01[3, 2])
ax9_spikes = fig.add_subplot(gs00[4,0:2])
ax9_fI = fig.add_subplot(gs00[4, 2])
ax10_spikes = fig.add_subplot(gs01[4,0:2])
ax10_fI = fig.add_subplot(gs01[4, 2])
ax11_spikes = fig.add_subplot(gs02[3,0:2])
ax11_fI = fig.add_subplot(gs02[3, 2])
ax12_spikes = fig.add_subplot(gs02[4,0:2])
ax12_fI = fig.add_subplot(gs02[4, 2])
ax3_spikes = fig.add_subplot(gs02[0,0:2])
ax3_fI = fig.add_subplot(gs02[0, 2])
ax4_spikes = fig.add_subplot(gs00[1,0:2])
ax4_fI = fig.add_subplot(gs00[1, 2])
ax5_spikes = fig.add_subplot(gs01[1, 0:2])
ax5_fI = fig.add_subplot(gs01[1, 2])
ax6_spikes = fig.add_subplot(gs02[1,0:2])
ax6_fI = fig.add_subplot(gs02[1, 2])
ax7_spikes = fig.add_subplot(gs00[2,0:2])
ax7_fI = fig.add_subplot(gs00[2, 2])
ax8_spikes = fig.add_subplot(gs01[2,0:2])
ax8_fI = fig.add_subplot(gs01[2, 2])
ax9_spikes = fig.add_subplot(gs00[3,0:2])
ax9_fI = fig.add_subplot(gs00[3, 2])
ax10_spikes = fig.add_subplot(gs01[3,0:2])
ax10_fI = fig.add_subplot(gs01[3, 2])
ax11_spikes = fig.add_subplot(gs00[4,0:2])
ax11_fI = fig.add_subplot(gs00[4, 2])
ax12_spikes = fig.add_subplot(gs01[4, 0:2])
ax12_fI = fig.add_subplot(gs01[4, 2])
spike_axs = [ax1_spikes, ax2_spikes, ax3_spikes, ax4_spikes, ax5_spikes,ax6_spikes, ax7_spikes, ax8_spikes,
ax11_spikes,ax9_spikes,ax10_spikes, ax12_spikes]#, ax13_spikes, ax14_spikes]
@ -195,12 +195,12 @@ for i in range(len(models)):
plot_fI(fI_axs[i], model=models[i])
# add scalebars
add_scalebar(ax9_spikes, matchx=False, matchy=False, hidex=True, hidey=True, sizex=100, sizey=50, labelx='100\u2009ms',
add_scalebar(ax6_spikes, matchx=False, matchy=False, hidex=True, hidey=True, sizex=100, sizey=50, labelx='100\u2009ms',
labely='50\u2009mV', loc=3, pad=-0.5, borderpad=-1.0, barwidth=2, bbox_to_anchor=Bbox.from_bounds(-0.275, -0.05, 1, 1),
bbox_transform=ax9_spikes.transAxes)
add_scalebar(ax10_spikes, matchx=False, matchy=False, hidex=True, hidey=True, sizex=100, sizey=50, labelx='100\u2009ms',
bbox_transform=ax6_spikes.transAxes)
add_scalebar(ax11_spikes, matchx=False, matchy=False, hidex=True, hidey=True, sizex=100, sizey=50, labelx='100\u2009ms',
labely='50\u2009mV', loc=3, pad=-0.5, borderpad=-1.0, barwidth=2, bbox_to_anchor=Bbox.from_bounds(-0.275, -0.05, 1, 1),
bbox_transform=ax10_spikes.transAxes)
bbox_transform=ax11_spikes.transAxes)
add_scalebar(ax12_spikes, matchx=False, matchy=False, hidex=True, hidey=True, sizex=100, sizey=50, labelx='100\u2009ms',
labely='50\u2009mV', loc=3, pad=-0.5, borderpad=-1.0, barwidth=2, bbox_to_anchor=Bbox.from_bounds(-0.275, -0.05, 1, 1),
bbox_transform=ax12_spikes.transAxes)

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 KiB

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
Figures/model_diagram.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

BIN
Figures/model_diagram2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
Figures/model_g.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 KiB

177
Figures/model_g.py Normal file
View File

@ -0,0 +1,177 @@
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import string
from plotstyle import scheme_style
import pandas as pd
from matplotlib import cm
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)
def show_spines(ax, spines='lrtb'):
""" Show and hide spines.
From github.com/janscience/plottools.git spines.py
Parameters
----------
ax: matplotlib figure, matplotlib axis, or list of matplotlib axes
Axis on which spine and ticks visibility is manipulated.
If figure, then apply manipulations on all axes of the figure.
If list of axes, apply manipulations on each of the given axes.
spines: string
Specify which spines and ticks should be shown.
All other ones or hidden.
'l' is the left spine, 'r' the right spine,
't' the top one and 'b' the bottom one.
E.g. 'lb' shows the left and bottom spine, and hides the top
and and right spines, as well as their tick marks and labels.
'' shows no spines at all.
'lrtb' shows all spines and tick marks.
Examples
--------
```py
import matplotlib.pyplot as plt
import plottools.spines
fig, (ax0, ax1, ax2) = plt.subplots(1, 3)
ax0.show_spines('lb')
ax1.show_spines('bt')
ax2.show_spines('tr')
```
![show](figures/spines-show.png)
"""
# collect spine visibility:
xspines = []
if 't' in spines:
xspines.append('top')
if 'b' in spines:
xspines.append('bottom')
yspines = []
if 'l' in spines:
yspines.append('left')
if 'r' in spines:
yspines.append('right')
# collect axes:
if isinstance(ax, (list, tuple, np.ndarray)):
axs = ax
elif hasattr(ax, 'get_axes'):
# ax is figure:
axs = ax.get_axes()
else:
axs = [ax]
if not isinstance(axs, (list, tuple)):
axs = [axs]
for ax in axs:
# hide spines:
ax.spines['top'].set_visible('top' in xspines)
ax.spines['bottom'].set_visible('bottom' in xspines)
ax.spines['left'].set_visible('left' in yspines)
ax.spines['right'].set_visible('right' in yspines)
# ticks:
if len(xspines) == 0:
ax.xaxis.set_ticks_position('none')
ax.xaxis.label.set_visible(False)
ax.xaxis._orig_major_locator = ax.xaxis.get_major_locator()
ax.xaxis.set_major_locator(ticker.NullLocator())
else:
if hasattr(ax.xaxis, '_orig_major_locator'):
ax.xaxis.set_major_locator(ax.xaxis._orig_major_locator)
delattr(ax.xaxis, '_orig_major_locator')
elif isinstance(ax.xaxis.get_major_locator(), ticker.NullLocator):
ax.xaxis.set_major_locator(ticker.AutoLocator())
if len(xspines) == 1:
ax.xaxis.set_ticks_position(xspines[0])
ax.xaxis.set_label_position(xspines[0])
else:
ax.xaxis.set_ticks_position('both')
ax.xaxis.set_label_position('bottom')
if len(yspines) == 0:
ax.yaxis.set_ticks_position('none')
ax.yaxis.label.set_visible(False)
ax.yaxis._orig_major_locator = ax.yaxis.get_major_locator()
ax.yaxis.set_major_locator(ticker.NullLocator())
else:
if hasattr(ax.yaxis, '_orig_major_locator'):
ax.yaxis.set_major_locator(ax.yaxis._orig_major_locator)
delattr(ax.yaxis, '_orig_major_locator')
elif isinstance(ax.yaxis.get_major_locator(), ticker.NullLocator):
ax.yaxis.set_major_locator(ticker.AutoLocator())
if len(yspines) == 1:
ax.yaxis.set_ticks_position(yspines[0])
ax.yaxis.set_label_position(yspines[0])
else:
ax.yaxis.set_ticks_position('both')
ax.yaxis.set_label_position('left')
def plot_g(ax, df, models, i, let_x, let_y, titlesize=10, letsize=12):
# c = [cm.plasma(x) for x in np.linspace(0., 1., 9)]
# c = [cm.turbo(x) for x in np.linspace(0., 1., 9)]
c = [cm.gray(x) for x in np.linspace(0., 0.75, 9)]
myorder = [0, 4, 1, 6, 2,7, 3,8]
colors = [c[i] for i in myorder]
df.plot.bar(y=models[i], rot=90, ax=ax, legend=False,
ylabel='$\mathrm{g}_{\mathrm{max}}$ [$\mathrm{mS}/ \mathrm{cm}^2$]',
color=colors)
ax.set_title(models[i], fontsize=titlesize)
show_spines(ax, spines='lb')
ax.text(let_x, let_y, string.ascii_uppercase[i], transform=ax.transAxes, size=letsize, weight='bold')
ax.set_yscale('log')
return ax
index = ['$\mathrm{g}_{\mathrm{Na}}$', '$\mathrm{g}_{\mathrm{Kd}}$', '$\mathrm{g}_{\mathrm{K_V1.1}}$',
'$\mathrm{g}_{\mathrm{A}}$', '$\mathrm{g}_{\mathrm{M}}$', '$\mathrm{g}_{\mathrm{L}}$',
'$\mathrm{g}_{\mathrm{T}}$', ' $\mathrm{g}_{\mathrm{Ca,K}}$', ' $\mathrm{g}_{\mathrm{Leak}}$']
df = pd.DataFrame({'RS Pyramidal': [56, 6, 0, 0, 0.075, 0, 0, 0, 0.0205],
'RS Pyramidal +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': [56, 5.4, 0.6, 0, 0.075, 0, 0, 0, 0.0205],
'RS Inhibitory': [10, 2.1, 0, 0, 0.0098, 0, 0, 0, 0.0205],
'RS Inhibitory +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': [10, 1.89, 0.21, 0, 0.0098, 0, 0, 0, 0.0205],
'FS': [58, 3.9, 0, 0, 0.075, 0, 0, 0, 0.038],
'FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': [58, 3.51, 0.39, 0, 0.075, 0, 0, 0, 0.038],
'Cb stellate': [3.4, 9.0556, 0, 15.0159, 0, 0, 0.4545, 0, 0.07407],
'Cb stellate +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': [3.4, 8.15, 0.90556, 15.0159, 0, 0, 0.4545, 0, 0.07407],
'Cb stellate $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': [3.4, 9.0556, 1.50159, 0, 0, 0, 0.4545, 0, 0.07407],
'STN': [49, 57, 0, 5, 0, 5, 5, 1, 0.035],
'STN +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': [49, 56.43, 0.57, 5, 0, 5, 5, 1, 0.035],
'STN $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$': [49, 57, 0.5, 0, 0, 5, 5, 1, 0.035]},
index=index)
#% with legend
scheme_style()
models = ['Cb stellate', 'RS Inhibitory', 'FS', 'RS Pyramidal', 'RS Inhibitory +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$',
'Cb stellate +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', 'FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$',
'RS Pyramidal +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', 'STN +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$',
'Cb stellate $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$',
'STN $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', 'STN']
fig, axs = plt.subplots(4, 3, figsize=cm2inch(17.2, 20)) # , sharey=True)
plt.subplots_adjust(hspace=1.5, wspace=1.0)
let_x = -0.6
let_y = 1.2
titlesize = 9
letsize = 10
axs[0, 0] = plot_g(axs[0, 0], df, models, 0, let_x, let_y, titlesize=titlesize, letsize=letsize)
axs[0, 1] = plot_g(axs[0, 1], df, models, 1, let_x, let_y, titlesize=titlesize, letsize=letsize)
axs[0, 2] = plot_g(axs[0, 2], df, models, 2, let_x, let_y, titlesize=titlesize, letsize=letsize)
axs[1, 0] = plot_g(axs[1, 0], df, models, 3, let_x, let_y, titlesize=titlesize, letsize=letsize)
axs[1, 1] = plot_g(axs[1, 1], df, models, 4, let_x, let_y, titlesize=titlesize, letsize=letsize)
axs[1, 2] = plot_g(axs[1, 2], df, models, 5, let_x, let_y, titlesize=titlesize, letsize=letsize)
axs[2, 0] = plot_g(axs[2, 0], df, models, 6, let_x, let_y, titlesize=titlesize, letsize=letsize)
axs[2, 1] = plot_g(axs[2, 1], df, models, 7, let_x, let_y, titlesize=titlesize, letsize=letsize)
axs[2, 2] = plot_g(axs[2, 2], df, models, 8, let_x, let_y, titlesize=titlesize, letsize=letsize)
axs[3, 0] = plot_g(axs[3, 0], df, models, 9, let_x, let_y, titlesize=titlesize, letsize=letsize)
axs[3, 1] = plot_g(axs[3, 1], df, models, 10, let_x, let_y, titlesize=titlesize, letsize=letsize)
axs[3, 2] = plot_g(axs[3, 2], df, models, 11, let_x, let_y, titlesize=titlesize, letsize=letsize)
# save
# fig.set_size_inches(cm2inch(21,20))
fig.savefig('./Figures/model_g.jpg', dpi=300, bbox_inches='tight') # pdf # eps
plt.show()

33493
Figures/ramp_firing.eps Normal file

File diff suppressed because it is too large Load Diff

BIN
Figures/ramp_firing.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 KiB

BIN
Figures/ramp_firing.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 870 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 928 KiB

BIN
Figures/summary_fig.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

BIN
Figures/summary_fig.pdf Normal file

Binary file not shown.

View File

@ -6,20 +6,22 @@ from matplotlib.colors import colorConverter as cc
from matplotlib.colors import to_hex
import string
from plotstyle import scheme_style
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 pandas as pd
from matplotlib import cm
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
]
def cm2inch(*tupl):
@ -247,22 +249,41 @@ def plot_quadrant(ax):
b[0] = '\u2212'
b[1] = '+'
ax.set_yticklabels(b)
#
# #%%
#
# imgplot = plt.imshow(img)
# plt.show()
def plot_g(ax, df, i):
# c = [cm.plasma(x) for x in np.linspace(0., 1., 9)]
# c = [cm.turbo(x) for x in np.linspace(0., 1., 9)]
# c = [cm.gray(x) for x in np.linspace(0., 0.75, 8)]
# myorder = [0, 4, 1, 6, 2, 7, 3]
# colors = [c[i] for i in myorder]
tab10 = [cm.tab10(x) for x in np.linspace(0., 1, 10)]
Accent = [cm.Accent(x) for x in np.linspace(0., 1, 8)]
colors = [colorslist[2], Accent[7], tab10[4], 'limegreen', tab10[5], tab10[9], tab10[1], 'fuchsia']
df.plot.bar(y=i, rot=90, ax=ax, legend=False, color=colors, ylabel='$\mathrm{g}_{\mathrm{max}}$')
# ax.set_title(models[i], fontsize=titlesize)
show_spines(ax, spines='lb')
ax.set_xticks([])
ax.set_yticks([])
ax.set_ylim(0, 8)
ax.set_xlim(-0.75, 8)
# ax.text(let_x, let_y, string.ascii_uppercase[i], transform=ax.transAxes, size=letsize, weight='bold')
# ax.set_yscale('log')
return ax
index = ['1', '2', '3','4','5','6','7','8']
df = pd.DataFrame({1: [6, 5.5, 2, 0, 1., 0, 6, 1.5],
2: [8, 5, 8, 4, 0., 4, 0, 6.],
3: [4, 4, 3, 3, 0., 1, 3, 0.]}, index=index)
# %% with legend
scheme_style()
import matplotlib.image as mpimg
img = mpimg.imread('./Figures/summary_diagram2.png')
img = mpimg.imread('./Figures/summary_diagram3.png')
inset_ylim = (0, 100)
lfsize = 8
lfsize = 7
fig = plt.figure(figsize=cm2inch(17.2, 12))
gs = gridspec.GridSpec(14, 3, top=0.95, bottom=0.1, left=0.15, right=0.95, hspace=0.2, wspace=0.1)
gs = gridspec.GridSpec(15, 3, top=0.95, bottom=0.1, left=0.15, right=0.95, hspace=0.4, wspace=0.2)
# gs0 = gs[1:13, 2].subgridspec(3, 1, hspace=0.9, wspace=0.25) # width_ratios=[0.3, 0.3,0.3], height_ratios=[0.35],
@ -281,7 +302,15 @@ ax0 = fig.add_subplot(gs[:, :2])
ax0.imshow(img)
show_spines(ax0, '')
axin1 = ax0.inset_axes([2200, 0, 400.0, 300], transform=ax0.transData)
axin1 = plot_g(axin1, df, 1)
axin2 = ax0.inset_axes([2200, 1200, 400.0, 300], transform=ax0.transData)
axin2 = plot_g(axin2, df, 2)
axin3 = ax0.inset_axes([2200, 2400, 400.0, 300], transform=ax0.transData)
axin3 = plot_g(axin3, df, 3)
# show_spines(axin1, '')
# show_spines(axin2, '')
# show_spines(axin3, '')
# ax1.text(-0.95, -0.55, 'GOF/\nLOF?', ha='right')
plot_diff_sqrt(ax1, b2=0.06, c2=65)
@ -290,9 +319,11 @@ ax1.annotate('', (0.225, 7), (0.07, 7),
arrowprops=dict(arrowstyle="<|-", color=colorslist[2], lw=0.5, mutation_scale=5), zorder=-10) #
ax1.annotate('', (0.8, 80), (0.85, 55),
arrowprops=dict(arrowstyle="<|-", color=colorslist[2], lw=0.5, mutation_scale=5), zorder=-10) #
ax1.text(x=0.05, y=95, s='$\\downarrow$ AUC $\downarrow$ rheobase', fontsize=lfsize)
ax1.text(x=0.85, y=90, s='WT',color=colorslist[9],rotation=17.5, fontsize=lfsize, weight='bold')
ax1.text(x=0.75, y=37.5, s='Mutant',color=colorslist[2],rotation=10, fontsize=lfsize, weight='bold')
# colorslist[9]
# colorslist[2]
# ax2.text(0.95, 0.35, 'LOF/\nGOF?')
plot_diff_sqrt(ax2, b2=0.4, c2=200)
@ -301,8 +332,10 @@ ax2.annotate('', (0.19, 7), (0.41, 7),
arrowprops=dict(arrowstyle="<|-", color=colorslist[2], lw=0.5, mutation_scale=5), zorder=-10) #
ax2.annotate('', (0.75, 70), (0.6, 90),
arrowprops=dict(arrowstyle="<|-", color=colorslist[2], lw=0.5, mutation_scale=5), zorder=-10) #
ax2.text(x=0.05, y=110, s='$\\uparrow$ AUC $\\uparrow$ rheobase', fontsize=lfsize)
#
# ax2.text(x=0.05, y=110, s='$\\uparrow$ AUC $\\uparrow$ rheobase', fontsize=lfsize)
ax2.text(x=0.85, y=90, s='WT',color=colorslist[9],rotation=17.5, fontsize=lfsize, weight='bold')
ax2.text(x=0.4, y=60, s='Mutant',color=colorslist[2],rotation=52, fontsize=lfsize, weight='bold')
@ -316,12 +349,12 @@ ax3.annotate('', (0.225, 7), (0.085, 7),
arrowprops=dict(arrowstyle="<|-", color=colorslist[2], lw=0.5, mutation_scale=5), zorder=-10) #
ax3.annotate('', (0.55, 55), (0.3, 90),
arrowprops=dict(arrowstyle="<|-", color=colorslist[2], lw=0.5, mutation_scale=5), zorder=-10) #
ax3.text(x=0.05, y=110, s='$\\uparrow$ AUC $\\downarrow$ rheobase', fontsize=lfsize)
# ax3.text(x=0.05, y=110, s='$\\uparrow$ AUC $\\downarrow$ rheobase', fontsize=lfsize)
ax3.text(x=0.85, y=90, s='WT',color=colorslist[9],rotation=17.5, fontsize=lfsize, weight='bold')
ax3.text(x=0.09, y=60, s='Mutant',color=colorslist[2],rotation=53, fontsize=lfsize, weight='bold')
# fig.set_size_inches(cm2inch(17, 12))
# fig.savefig('./Figures/summary_fig.jpg', dpi=300, bbox_inches='tight') # , dpi=fig.dpi #pdf #eps
#
fig.savefig('./Figures/summary_fig.jpg', dpi=300, bbox_inches='tight') # , dpi=fig.dpi #pdf #eps
plt.show()

View File

@ -1,7 +1,7 @@
\documentclass[utf8]{FrontiersinHarvard}
%DIF LATEXDIFF DIFFERENCE FILE
%DIF DEL Koch_frontiers.tex Mon Mar 27 10:08:50 2023
%DIF ADD Koch_frontiers_revised.tex Mon Apr 17 23:29:38 2023
%DIF ADD Koch_frontiers_revised.tex Fri Apr 21 20:28:26 2023
\DeclareUnicodeCharacter{03B2}{\(\beta\)}
\DeclareUnicodeCharacter{03B1}{\(\alpha\)}
\DeclareUnicodeCharacter{00C5}{\AA}
@ -236,13 +236,11 @@ The effects of changes in channel properties depend in part on the neuronal mode
Therefore, the transfer of LOF or GOF from the current to the firing level should be used with caution; the neuron type in which the mutant ion channel is expressed may provide valuable insight into the functional consequences of an ion channel mutation. Experimental assessment of the effects of a patient's specific ion channel mutation \textit{in vivo} is not generally feasible at a large scale. Therefore, modelling approaches investigating the effects of patient specific channelopathies provide a viable method bridging between characterization of changes in biophysical properties of ionic currents and the firing consequences of these effects. In both experimental and modelling studies on the effects of ion channel mutations on neuronal firing the specific dependency on neuron type should be considered.
The effects of altered ion channel properties on firing is generally influenced by the other ionic currents present in the neuron \DIFaddbegin \DIFadd{as illustrated in Figure \ref{fig:summary}}\DIFaddend . In channelopathies the effect of a given ion channel mutation on neuronal firing therefore depends on the neuron type in which those changes occur \citep{Hedrich14874, makinson_scn1a_2016, Waxman2007, Rush2006}. Although certain complexities of neurons such as differences in neuron-type sensitivities to current property changes, interactions between ionic currents, cell morphology and subcellular ion channel distribution are neglected here, it is likely that this increased complexity \textit{in vivo} would contribute to the neuron-type dependent effects on neuronal firing. The complexity and nuances of the nervous system, including neuron-type dependent firing effects of channelopathies explored here, likely underlie shortcomings in treatment approaches in patients with channelopathies. Accounting for neuron-type dependent firing effects provides an opportunity to improve the efficacy and precision in personalized medicine approaches. \DIFaddbegin \DIFadd{Although this is not experimentally feasible, improved modelling and simulations methods to predict neuron-type dependent effects may provide an opportunity to inform therapeutic strategies that are more specific and thus have greater efficacy.}\DIFaddend
%provide more specificity and thus greater efficacy
\DIFdelbegin \DIFdel{The }\DIFdelend \DIFaddbegin \DIFadd{Our simulations demonstrate that the }\DIFaddend effects of altered ion channel properties on firing is generally influenced by the other ionic currents present in the neuron \DIFaddbegin \DIFadd{as summarized in Figure \ref{fig:summary}}\DIFaddend . In channelopathies the effect of a given ion channel mutation on neuronal firing therefore depends on the neuron type in which those changes occur \citep{Hedrich14874, makinson_scn1a_2016, Waxman2007, Rush2006}. Although certain complexities of neurons such as differences in neuron-type sensitivities to current property changes, interactions between ionic currents, cell morphology and subcellular ion channel distribution are neglected here, it is likely that this increased complexity \textit{in vivo} would contribute to the neuron-type dependent effects on neuronal firing. The complexity and nuances of the nervous system, including neuron-type dependent firing effects of channelopathies explored here, likely underlie shortcomings in treatment approaches in patients with channelopathies. Accounting for neuron-type dependent firing effects provides an opportunity to improve the efficacy and precision in personalized medicine approaches. \DIFaddbegin \DIFadd{Although this is not experimentally feasible, improved modelling and simulations methods to predict neuron-type dependent effects may provide an opportunity to inform therapeutic strategies that are more specific and thus have greater efficacy.
}\DIFaddend
With this study we suggest that neuron-type specific effects are vital to a full understanding of the effects of channelopathies at the level of neuronal firing. Furthermore, we highlight the use of modelling approaches to enable relatively fast and efficient insight into channelopathies.
%understanding of the neuron-type level firing effects of ion channel mutations gained through
\bibliographystyle{Frontiers-Harvard}
\bibliography{Koch_ref}
@ -257,7 +255,7 @@ With this study we suggest that neuron-type specific effects are vital to a full
%DIFDELCMD < %%%
\DIFdelendFL \DIFaddbeginFL \includegraphics[width=\linewidth]{diversity_in_firing_diagram.jpg}
\DIFaddendFL \linespread{1.}\selectfont
\caption[]{Diversity in Neuronal Model Firing. Spike trains (left), frequency-current (fI) curves (right) for Cb stellate \textbf{(A)}, RS inhibitory \textbf{(B)}, FS \textbf{(C)}, RS pyramidal \textbf{(D)}, RS inhibitory +\Kv \textbf{(E)}, Cb stellate +\Kv \textbf{(F)}, FS +\Kv \textbf{(G)}, RS pyramidal +\Kv \textbf{(H)}, STN +\Kv \textbf{(I)}, Cb stellate \(\Delta\)\Kv \textbf{(J)}, STN \(\Delta\)\Kv \textbf{(K)}, and STN \textbf{(L)} neuron models. Models are sorted qualitatively based on their fI curves. Black markers on the fI curves indicate the current step at which the spike train occurs. The green marker indicates the current at which firing begins in response to an ascending current ramp, whereas the red marker indicates the current at which firing ceases in response to a descending current ramp (see Supplementary Figure S1). \DIFaddbeginFL \DIFaddFL{A schematic illustrating the anatomical locations of the models is included }\textbf{\DIFaddFL{(M)}}\DIFaddFL{.}\DIFaddendFL }
\caption[]{Diversity in Neuronal Model Firing. Spike trains (left), frequency-current (fI) curves (right) for Cb stellate \textbf{(A)}, RS inhibitory \textbf{(B)}, FS \textbf{(C)}, RS pyramidal \textbf{(D)}, RS inhibitory +\Kv \textbf{(E)}, Cb stellate +\Kv \textbf{(F)}, FS +\Kv \textbf{(G)}, RS pyramidal +\Kv \textbf{(H)}, STN +\Kv \textbf{(I)}, Cb stellate \(\Delta\)\Kv \textbf{(J)}, STN \(\Delta\)\Kv \textbf{(K)}, and STN \textbf{(L)} neuron models. Models are sorted qualitatively based on their fI curves. Black markers on the fI curves indicate the current step at which the spike train occurs. The green marker indicates the current at which firing begins in response to an ascending current ramp, whereas the red marker indicates the current at which firing ceases in response to a descending current ramp (see Supplementary Figure S1). \DIFaddbeginFL \DIFaddFL{A schematic illustrating the anatomical locations of the models is included }\textbf{\DIFaddFL{(M)}}\DIFaddFL{, however single compartment models are used for each cell type.}\DIFaddendFL }
%DIF < \textcolor{red}{(see Supplementary Figure \ref{ramp_firing}).}}
\label{fig:diversity_in_firing}
\end{figure}
@ -268,7 +266,7 @@ With this study we suggest that neuron-type specific effects are vital to a full
\includegraphics[width=0.5\linewidth]{firing_characterization_arrows.jpg}
\linespread{1.}\selectfont
\caption[]{Characterization of firing with AUC and rheobase. \textbf{(A)} The area under the curve (AUC) of the repetitive firing frequency-current (fI) curve. \textbf{(B)}
Changes in firing as characterized by \(\Delta\)AUC and \(\Delta\)rheobase occupy four quadrants separated by no changes in AUC and rheobase. Representative schematic fI curves in red with respect to a reference (or wild type) fI curve (blue) depict the general changes associated with each quadrant. \DIFaddbeginFL \DIFaddFL{Square root functions are used as fI curves for illustration purposes.} }
Changes in firing as characterized by \(\Delta\)AUC and \(\Delta\)rheobase occupy four quadrants separated by no changes in AUC and rheobase. Representative schematic fI curves in red with respect to a reference (or wild type) fI curve (blue) depict the general changes associated with each quadrant. \DIFaddbeginFL \DIFaddFL{Square root functions are used as fI curves for illustration purposes.}\DIFaddendFL }
\label{fig:firing_characterization}
\end{figure}

View File

@ -86,7 +86,7 @@ In this study, we therefore investigated how the outcome of ionic current kineti
All modelling and simulation was done in parallel with custom written Python 3.8 (Python Programming Language; RRID:SCR\_008394) software, run on a Cent-OS 7 server with an Intel(R) Xeon (R) E5-2630 v2 CPU.
\subsection{Different Neuron Models}
A group of neuronal models representing the major classes of cortical and thalamic neurons including regular spiking pyramidal (RS pyramidal; model D), regular spiking inhibitory (RS inhibitory; model B), and fast spiking (FS; model C) neurons were used \citep{pospischil_minimal_2008}. Additionally, a \Kv current (\IKv; \citealt{ranjan_kinetic_2019}) was added to each of these models (RS pyramidal +\Kv; model H, RS inhibitory +\Kv; model E, and FS +\Kv; model G respectively). A cerebellar stellate cell model from \citet{alexander_cerebellar_2019} is used (Cb stellate; model A) in this study. This neuron model was also extended by a \Kv current \citep{ranjan_kinetic_2019}, either in addition to the A-type potassium current (Cb stellate +\Kv; model F) or by replacing the A-type potassium current (Cb stellate \(\Delta\)\Kv; model J). A subthalamic nucleus (STN; model L) neuron model as described by \citet{otsuka_conductance-based_2004} was also used. The STN neuron model (model L) was additionally extended by a \Kv current \citep{ranjan_kinetic_2019}, either in addition to the A-type potassium current (STN +\Kv; model I) or by replacing the A-type potassium current (STN \(\Delta\)\Kv; model K). Model letter naming corresponds to panel lettering in Figure \ref{fig:diversity_in_firing}. The anatomical origin of each model is shown in Figure \ref{fig:diversity_in_firing}~M. The properties and maximal conductances of each model are detailed in Table \ref{tab:g} and the gating properties are unaltered from the original Cb stellate (model A) and STN (model L) models \citep{alexander_cerebellar_2019, otsuka_conductance-based_2004}. For enabling the comparison of models with the typically reported electrophysiological data fitting reported and for ease of further gating curve manipulations, a modified Boltzmann function
A group of neuronal models representing the major classes of cortical and thalamic neurons including regular spiking pyramidal (RS pyramidal; model D), regular spiking inhibitory (RS inhibitory; model B), and fast spiking (FS; model C) neurons were used \citep{pospischil_minimal_2008}. Additionally, a \Kv current (\IKv; \citealt{ranjan_kinetic_2019}) was added to each of these models (RS pyramidal +\Kv; model H, RS inhibitory +\Kv; model E, and FS +\Kv; model G respectively). A cerebellar stellate cell model from \citet{alexander_cerebellar_2019} is used (Cb stellate; model A) in this study. This neuron model was also extended by a \Kv current \citep{ranjan_kinetic_2019}, either in addition to the A-type potassium current (Cb stellate +\Kv; model F) or by replacing the A-type potassium current (Cb stellate \(\Delta\)\Kv; model J). A subthalamic nucleus (STN; model L) neuron model as described by \citet{otsuka_conductance-based_2004} was also used. The STN neuron model (model L) was additionally extended by a \Kv current \citep{ranjan_kinetic_2019}, either in addition to the A-type potassium current (STN +\Kv; model I) or by replacing the A-type potassium current (STN \(\Delta\)\Kv; model K). Model letter naming corresponds to panel lettering in Figure \ref{fig:diversity_in_firing}. The anatomical origin of each model is shown in Figure \ref{fig:diversity_in_firing}~M. The properties and maximal conductances of each model are detailed in Table \ref{tab:g} and depicted in Figure \ref{fig:model_g}. The gating properties are unaltered from the original Cb stellate (model A) and STN (model L) models \citep{alexander_cerebellar_2019, otsuka_conductance-based_2004}. For enabling the comparison of models with the typically reported electrophysiological data fitting reported and for ease of further gating curve manipulations, a modified Boltzmann function
\begin{equation}\label{eqn:Boltz}
x_\infty = {\left(\frac{1-a}{1+{\exp\left[{\frac{V-V_{1/2}}{k}}\right]}} +a\right)^j}
@ -192,7 +192,7 @@ The effects of changes in channel properties depend in part on the neuronal mode
Therefore, the transfer of LOF or GOF from the current to the firing level should be used with caution; the neuron type in which the mutant ion channel is expressed may provide valuable insight into the functional consequences of an ion channel mutation. Experimental assessment of the effects of a patient's specific ion channel mutation \textit{in vivo} is not generally feasible at a large scale. Therefore, modelling approaches investigating the effects of patient specific channelopathies provide a viable method bridging between characterization of changes in biophysical properties of ionic currents and the firing consequences of these effects. In both experimental and modelling studies on the effects of ion channel mutations on neuronal firing the specific dependency on neuron type should be considered.
The effects of altered ion channel properties on firing is generally influenced by the other ionic currents present in the neuron as summarized in Figure \ref{fig:summary}. In channelopathies the effect of a given ion channel mutation on neuronal firing therefore depends on the neuron type in which those changes occur \citep{Hedrich14874, makinson_scn1a_2016, Waxman2007, Rush2006}. Although certain complexities of neurons such as differences in neuron-type sensitivities to current property changes, interactions between ionic currents, cell morphology and subcellular ion channel distribution are neglected here, it is likely that this increased complexity \textit{in vivo} would contribute to the neuron-type dependent effects on neuronal firing. The complexity and nuances of the nervous system, including neuron-type dependent firing effects of channelopathies explored here, likely underlie shortcomings in treatment approaches in patients with channelopathies. Accounting for neuron-type dependent firing effects provides an opportunity to improve the efficacy and precision in personalized medicine approaches.
Our simulations demonstrate that the effects of altered ion channel properties on firing is generally influenced by the other ionic currents present in the neuron as illustrated in Figure \ref{fig:summary}. In channelopathies the effect of a given ion channel mutation on neuronal firing therefore depends on the neuron type in which those changes occur \citep{Hedrich14874, makinson_scn1a_2016, Waxman2007, Rush2006}. Although certain complexities of neurons such as differences in neuron-type sensitivities to current property changes, interactions between ionic currents, cell morphology and subcellular ion channel distribution are neglected here, it is likely that this increased complexity \textit{in vivo} would contribute to the neuron-type dependent effects on neuronal firing. The complexity and nuances of the nervous system, including neuron-type dependent firing effects of channelopathies explored here, likely underlie shortcomings in treatment approaches in patients with channelopathies. Accounting for neuron-type dependent firing effects provides an opportunity to improve the efficacy and precision in personalized medicine approaches. Although this is not experimentally feasible, improved modelling and simulations methods to predict neuron-type dependent effects may provide an opportunity to inform therapeutic strategies that are more specific and thus have greater efficacy.
With this study we suggest that neuron-type specific effects are vital to a full understanding of the effects of channelopathies at the level of neuronal firing. Furthermore, we highlight the use of modelling approaches to enable relatively fast and efficient insight into channelopathies.
@ -208,17 +208,26 @@ With this study we suggest that neuron-type specific effects are vital to a full
\centering
\includegraphics[width=\linewidth]{diversity_in_firing_diagram.jpg}
\linespread{1.}\selectfont
\caption[]{Diversity in Neuronal Model Firing. Spike trains (left), frequency-current (fI) curves (right) for Cb stellate \textbf{(A)}, RS inhibitory \textbf{(B)}, FS \textbf{(C)}, RS pyramidal \textbf{(D)}, RS inhibitory +\Kv \textbf{(E)}, Cb stellate +\Kv \textbf{(F)}, FS +\Kv \textbf{(G)}, RS pyramidal +\Kv \textbf{(H)}, STN +\Kv \textbf{(I)}, Cb stellate \(\Delta\)\Kv \textbf{(J)}, STN \(\Delta\)\Kv \textbf{(K)}, and STN \textbf{(L)} neuron models. Models are sorted qualitatively based on their fI curves. Black markers on the fI curves indicate the current step at which the spike train occurs. The green marker indicates the current at which firing begins in response to an ascending current ramp, whereas the red marker indicates the current at which firing ceases in response to a descending current ramp (see Supplementary Figure S1). A schematic illustrating the anatomical locations of the models is included \textbf{(M)}.}
\caption[]{Diversity in Neuronal Model Firing. Spike trains (left), frequency-current (fI) curves (right) for Cb stellate \textbf{(A)}, RS inhibitory \textbf{(B)}, FS \textbf{(C)}, RS pyramidal \textbf{(D)}, RS inhibitory +\Kv \textbf{(E)}, Cb stellate +\Kv \textbf{(F)}, FS +\Kv \textbf{(G)}, RS pyramidal +\Kv \textbf{(H)}, STN +\Kv \textbf{(I)}, Cb stellate \(\Delta\)\Kv \textbf{(J)}, STN \(\Delta\)\Kv \textbf{(K)}, and STN \textbf{(L)} neuron models. Models are sorted qualitatively based on their fI curves. Black markers on the fI curves indicate the current step at which the spike train occurs. The green marker indicates the current at which firing begins in response to an ascending current ramp, whereas the red marker indicates the current at which firing ceases in response to a descending current ramp (see Supplementary Figure S1). A schematic illustrating the anatomical locations of the models is included \textbf{(M)}, however single compartment models are used for each cell type.}
\label{fig:diversity_in_firing}
\end{figure}
\begin{figure}[!ht]
\centering
\includegraphics[width=\linewidth]{model_g.jpg}
\linespread{1.}\selectfont
\caption[]{Diversity in Neuronal Model Current Composition. Distributions of maximal current conductances (\(\mathrm{g}_{\mathrm{max}}\)) for Cb stellate \textbf{(A)}, RS inhibitory \textbf{(B)}, FS \textbf{(C)}, RS pyramidal \textbf{(D)}, RS inhibitory +\Kv \textbf{(E)}, Cb stellate +\Kv \textbf{(F)}, FS +\Kv \textbf{(G)}, RS pyramidal +\Kv \textbf{(H)}, STN +\Kv \textbf{(I)}, Cb stellate \(\Delta\)\Kv \textbf{(J)}, STN \(\Delta\)\Kv \textbf{(K)}, and STN \textbf{(L)} neuron models. Models are sorted as in Figure \ref{fig:diversity_in_firing}.}
\label{fig:model_g}
\end{figure}
\begin{figure}[!ht]
\centering
\includegraphics[width=0.5\linewidth]{firing_characterization_arrows.jpg}
\linespread{1.}\selectfont
\caption[]{Characterization of firing with AUC and rheobase. \textbf{(A)} The area under the curve (AUC) of the repetitive firing frequency-current (fI) curve. \textbf{(B)}
Changes in firing as characterized by \(\Delta\)AUC and \(\Delta\)rheobase occupy four quadrants separated by no changes in AUC and rheobase. Representative schematic fI curves in red with respect to a reference (or wild type) fI curve (blue) depict the general changes associated with each quadrant.}
Changes in firing as characterized by \(\Delta\)AUC and \(\Delta\)rheobase occupy four quadrants separated by no changes in AUC and rheobase. Representative schematic fI curves in red with respect to a reference (or wild type) fI curve (blue) depict the general changes associated with each quadrant. Square root functions are used as fI curves for illustration purposes.}
\label{fig:firing_characterization}
\end{figure}

View File

@ -68,9 +68,11 @@
We thank Reviewer 1 for their comments. Although previous studies (Hedrich et al., 2014; Makinson et al., 2016; Waxman, 2007; Rush et al., 2006) referred to by the reviewer and discussed in our manuscript investigate differences in outcomes of ion channel mutations in different neuronal types, these studies have addressed specific instances in which this is the case. For instance, Waxman, 2007 and Rush et al., 2006 demonstrate the dependence of Nav1.7 mutations on the presence/absence of Nav1.8. However whether the outcome of the mutation is graded with different levels of Nav1.8 or whether this effect is modulated by other channels is not investigated nor known. In this context, our work furthers the current knowledge that certain ion channel mutations can have different effects on firing in specific contexts (i.e. cell types) by generalizing this viewpoint to demonstrate that the effects of any ion channel mutation will depend in the neuron-type and its ion channel composition. This suggests that holistic understanding of the effects of ion channel mutations likely requires a more specific neuron-type dependent level of understanding than is generally used currently. \textcolor{red}{Change anything in manuscript?}
% reduce down to changes in currents, in vivo lots of other changes, but show that it happens already on the level of currents - experiments don't show this
\textit{The authors say that taking into account neuron type-dependent firing effects offers an opportunity to increase efficacy and precision in personalized medicine approaches, but they do not elaborate on how this applies to the clinic.}
Currently personalized medicine approaches, although promising, have limited efficacy. Increased efficacy in these approaches likely will result with more therapeutic specificity, however different avenues exist to increase specificity. Although we do not offer a directly actionable clinical outcome, we propose that understanding of the neuron-type level firing effects of ion channel mutations may provide an opportunity for therapeutic strategies that provide more specificity and thus greater efficacy. Although this is not experimentally feasible, improving modelling and simulations methods may fill this gap. \textcolor{red}{This has altered in the manuscript to be more explicit.}
Currently personalized medicine approaches, although promising, have limited efficacy. Increased efficacy in these approaches likely will result with more therapeutic specificity, however different avenues exist to increase specificity. Although we do not offer a directly actionable clinical outcome, we propose that understanding of the neuron-type level firing effects of ion channel mutations may provide an opportunity for therapeutic strategies that provide more specificity and thus greater efficacy. Although this is not experimentally feasible, improving modelling and simulations methods may fill this gap. This has altered in the manuscript to be more explicit.
\textit{Considering that even a single mutation in the organism will affect many neuron types (cells) and the signaling pathways to which it is associated, how can all other possible effects be eliminated?}
@ -79,7 +81,7 @@ We thank the reviewer for their question. The complexity noted in the reviewers
\textit{Failure to analyze the effects of the obtained data on living organisms casts a shadow over the reliability of the results. The study would be much more valuable if the authors could at least support their results with animal experiments. Otherwise, it will not go beyond being an evaluation study based on already known mutations. This limits the originality of the study.}
Although we agree that data obtained from animal experiments is invaluable in the investigation of channelopathies and in neuroscience and neurology generally, the modelling and simulation in this study serves to provide a theoretical framework to explain why neuron-type level investigation is important in understanding of ion channel mutations. Furthermore, efforts to reduce animal experimentation are ongoing and modelling approaches such as that presented in this study enables the reduction of animal experimentation. Previous experimental studies (Hedrich et al., 2014; Makinson et al., 2016; Waxman, 2007; Rush et al., 2006) have demonstrated neuron-type specific effects of ion channel mutations. Therefore, experimental efforts should be focused on validation and investigation of specific cases rather than accumulation of evidence for the general neuron-type dependence. Although we recognize the importance and value in the discovery of new mutations, further investigation and analysis of known mutations and their effects is also valuable and essential for understanding the effects of ion channel mutations at multiple levels of scale. \textcolor{red}{This has been added to the Modelling limitations section of the discussion.}
Although we agree that data obtained from animal experiments is invaluable in the investigation of channelopathies and in neuroscience and neurology generally, the modelling and simulation in this study serves to provide a theoretical framework (Figures 3 and 4) to explain why neuron-type level investigation is important in understanding of ion channel mutations. Furthermore, efforts to reduce animal experimentation are ongoing and modelling approaches such as that presented in this study enables the reduction of animal experimentation. Previous experimental studies (Hedrich et al., 2014; Makinson et al., 2016; Waxman, 2007; Rush et al., 2006) have demonstrated neuron-type specific effects of ion channel mutations. Therefore, experimental efforts should be focused on validation and investigation of specific cases rather than accumulation of evidence for the general neuron-type dependence. Although we recognize the importance and value in the discovery of new mutations, further investigation and analysis of known mutations and their effects is also valuable and essential for understanding the effects of ion channel mutations at multiple levels of scale. This has been added to the Modelling limitations section of the discussion.
\section{Reviewer 2}
@ -89,15 +91,24 @@ Although we agree that data obtained from animal experiments is invaluable in th
\textit{Authors should include a schematic representing the general biological characteristics of each model tested. Even this schematic could be appended to the model description section}
Figure 1 has been updated to reflect the general biological characteristics of each model.
Figure 1 has been updated to reflect the general anatomical characteristics of each model and Figure 2 has been added to reflect the ion current composition of each model. The manuscript has been updated to reflect these changes.
\begin{figure}[!h]
\centering
\includegraphics[width=\linewidth]{diversity_in_firing_diagram.jpg}
\linespread{1.}\selectfont
\caption[]{Something like M added to Figure 1?}
\caption[]{}
\end{figure}
\begin{figure}[!h]
\centering
\includegraphics[width=\linewidth]{model_g.jpg}
\linespread{1.}\selectfont
\caption[]{\(g_{max}\) distribution figure}
\end{figure}
\FloatBarrier
%We thank Reviewer 2 for their comments.
@ -108,11 +119,11 @@ This model, the RS inhibitory model ceases to fire with large current steps as e
\textit{Bearing in mind that the authors mention that each model may have hysteresis depending on the stimulation ramp that was applied in figure 1, under what conditions was the rheobase determined in figure 2-5? It is also not clear which model they use to build figure 2A.}
Although hysteresis is important both from a dynamical systems perspective and in a physiological context, we exclude further analysis of hysteresis in our simulations past Figure 1 to be as applicable as possible to commonly used protocols in the assessment of ion channel mutations. For Figures 2-5, rheobase is calculated by a 2 step process as outlined in the methods. Briefly described this methods uses a sequence of coarse current step amplitudes to identify the step interval in which firing begins. This interval is then explored at high resolution with a second sequence of current step inputs. Rheobases from step current protocols were used for subsequent analysis in order to maintain relatability to commonly used experimental measures. For Figure 2, square root functions were used for illustration purposes. The manuscript has been updated to explicitly state these clarifications.
Although hysteresis is important both from a dynamical systems perspective and in a physiological context, we exclude further analysis of hysteresis in our simulations past Figure 1 to be as applicable as possible to commonly used protocols in the assessment of ion channel mutations. For Figures 3-6 (formerly 2-5), rheobase is calculated by a 2 step process as outlined in the methods. Briefly described this method uses a sequence of coarse current step amplitudes to identify the step interval in which firing begins. This interval is then explored at high resolution with a second sequence of current step inputs. Rheobases from step current protocols were used for subsequent analysis in order to maintain relatability to commonly used experimental measures. For Figure 2, square root functions were used for illustration purposes. The manuscript has been updated to explicitly state these clarifications.
\textit{A final outline summarizing the main results of the main models and the general limitations of this approach could be included.}
A summary figure has been added as Figure 6.
A summary figure has been added as Figure 6 and the discussion updated to reflect this.
\begin{figure}[!h]
\centering

Binary file not shown.

Before

Width:  |  Height:  |  Size: 453 KiB

After

Width:  |  Height:  |  Size: 452 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

After

Width:  |  Height:  |  Size: 211 KiB