diff --git a/Figures/AUC_correlation.pdf b/Figures/AUC_correlation.pdf index 1831d9e..d1f941f 100644 Binary files a/Figures/AUC_correlation.pdf and b/Figures/AUC_correlation.pdf differ diff --git a/Figures/AUC_correlation.py b/Figures/AUC_correlation.py index 50333b1..992fc50 100644 --- a/Figures/AUC_correlation.py +++ b/Figures/AUC_correlation.py @@ -305,20 +305,24 @@ def plot_AUC_alt(ax, model='FS', color1='red', color2='dodgerblue', alteration=' 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') + ax.set_xlabel('$k$/$k_{WT}$') 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') + ax.set_xlabel('$g$/$g_{WT}$') 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') + + if alteration=='shift': + ax.set_ylabel('Normalized $\Delta$AUC', labelpad=4) + else: + ax.set_ylabel('Normalized $\Delta$AUC', labelpad=0) x = df['alteration'] y = df[model_name_dict[model]] ax.set_xlim(x.min(), x.max()) @@ -382,23 +386,23 @@ color_dict = {'Cb stellate': '#40A787', # cyan'# # plot setup marker_s_leg = 2 max_width = 20 -pad_x = 0.8 -pad_y= 0.45 -pad_w = 1 +pad_x = 0.85 +pad_y= 0.4 +pad_w = 1.1 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.2, hspace=1.) +gs = fig.add_gridspec(3, 7, wspace=1.2, hspace=1.) # plt.subplots_adjust(hspace=0.8) #, wspace=0.6 -ax0 = fig.add_subplot(gs[0,2:6]) +ax0 = fig.add_subplot(gs[0,2:7]) 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 = fig.add_subplot(gs[1,2:7]) 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 = fig.add_subplot(gs[2,2:7]) ax2_ex = fig.add_subplot(gs[2,1]) ax2_fI = fig.add_subplot(gs[2,0]) @@ -419,10 +423,8 @@ rec = plt.Rectangle((-pad_x, -pad_y), 1 + pad_w, 1 + pad_h, fill=False, lw=line rec = ax2_fI.add_patch(rec) rec.set_clip_on(False) -# label subplots with letters -ax0_fI.text(-0.825, 1.3, string.ascii_uppercase[0], transform=ax0_fI.transAxes, size=10, weight='bold') #-0.09 -ax1_fI.text(-0.825, 1.3, string.ascii_uppercase[1], transform=ax1_fI.transAxes,size=10, weight='bold') -ax2_fI.text(-0.825, 1.3, string.ascii_uppercase[2], transform=ax2_fI.transAxes,size=10, weight='bold') + + # plot boxplots boxplot_with_markers(ax0,max_width, alteration='shift') @@ -430,7 +432,7 @@ boxplot_with_markers(ax1,max_width, alteration='slope') boxplot_with_markers(ax2,max_width, alteration='g') # plot legend -pos = (0.15, -0.9) +pos = (0.225, -0.9) ncol = 5 model_legend(ax2, marker_s_leg, pos, ncol) @@ -439,10 +441,23 @@ plot_AUC_alt(ax0_ex,model='FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', color1='l 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') +# label subplots with letters +ax0_fI.text(-0.875, 1.35, string.ascii_uppercase[0], transform=ax0_fI.transAxes, size=10, weight='bold') +ax0_ex.text(-0.8, 1.35, string.ascii_uppercase[1], transform=ax0_ex.transAxes, size=10, weight='bold') +ax0.text(-0.075, 1.35, string.ascii_uppercase[2], transform=ax0.transAxes, size=10, weight='bold') + +ax1_fI.text(-0.875, 1.35, string.ascii_uppercase[3], transform=ax1_fI.transAxes,size=10, weight='bold') +ax1_ex.text(-0.8, 1.35, string.ascii_uppercase[4], transform=ax1_ex.transAxes, size=10, weight='bold') +ax1.text(-0.075, 1.35, string.ascii_uppercase[5], transform=ax1.transAxes, size=10, weight='bold') + +ax2_fI.text(-0.875, 1.35, string.ascii_uppercase[6], transform=ax2_fI.transAxes,size=10, weight='bold') +ax2_ex.text(-0.8, 1.35, string.ascii_uppercase[7], transform=ax2_ex.transAxes, size=10, weight='bold') +ax2.text(-0.075, 1.35, string.ascii_uppercase[8], transform=ax2.transAxes, size=10, weight='bold') + #save # plt.tight_layout(pad=0) print(fig.dpi) -fig.set_size_inches(cm2inch(20.6,12)) +fig.set_size_inches(cm2inch(20.75,12)) fig.savefig('./Figures/AUC_correlation.pdf', dpi=fig.dpi) #bbox_inches='tight', dpi=fig.dpi plt.show() diff --git a/Figures/diversity_in_firing.pdf b/Figures/diversity_in_firing.pdf index be22d35..154af58 100644 Binary files a/Figures/diversity_in_firing.pdf and b/Figures/diversity_in_firing.pdf differ diff --git a/Figures/firing_characterization-jb.py b/Figures/firing_characterization-jb.py index 5690102..62b5009 100644 --- a/Figures/firing_characterization-jb.py +++ b/Figures/firing_characterization-jb.py @@ -223,6 +223,7 @@ def plot_diff_sqrt(ax, a=1, b=0.2, c=100, d=0, a2=1, b2=0.2, c2=100, d2=0): ax.set_xticks([]) ax.set_yticks([]) + def plot_quadrant(ax): ax.spines['left'].set_position('zero') ax.spines['bottom'].set_position('zero') @@ -250,7 +251,7 @@ def plot_quadrant(ax): scheme_style() - +#%% with legend fig = plt.figure(figsize=cm2inch(7, 12)) gs = gridspec.GridSpec(3,6, top=0.95, bottom=0.1, left=0.15, right = 0.95, hspace=0.8, wspace=0.6) ax1 = fig.add_subplot(gs[0,1:]) @@ -281,24 +282,105 @@ ax3.text(-0.95, 0.35, 'GOF', ha='right') ax3_TL = ax3.inset_axes([0.07, 0.6, 0.3, 0.2]) plot_diff_sqrt(ax3_TL, b2=0.1, c2=200) ax3_TL.set_ylim(inset_ylim) + # top right ax3.text(x=0.22, y=0.7, s='$\\uparrow$ AUC\n$\\uparrow$ rheobase', fontsize=lfsize) ax3.text(0.95, 0.35, 'LOF/\nGOF?') ax3_TR = ax3.inset_axes([0.63, 0.6, 0.3, 0.2]) plot_diff_sqrt(ax3_TR, b2=0.4, c2=200) ax3_TR.set_ylim(inset_ylim) + # bottom left ax3.text(x=-0.9, y=-0.95, s='$\\downarrow$ AUC\n$\downarrow$ rheobase', fontsize=lfsize) ax3.text(-0.95, -0.55, 'GOF/\nLOF?', ha='right') ax3_BL = ax3.inset_axes([0.07, 0.15, 0.3, 0.2]) -plot_diff_sqrt(ax3_BL, b2=0.1, c2=75) +plot_diff_sqrt(ax3_BL, b2=0.07, c2=65) ax3_BL.set_ylim(inset_ylim) + # bottom right ax3.text(x=0.22, y=-0.95, s='$\\downarrow$ AUC\n$\\uparrow$ rheobase', fontsize=lfsize) ax3.text(0.95, -0.55, 'LOF') ax3_BR = ax3.inset_axes([0.63, 0.15, 0.3, 0.2]) -plot_diff_sqrt(ax3_BR, b2=0.4, c2=75) +plot_diff_sqrt(ax3_BR, b2=0.4, c2=60) ax3_BR.set_ylim(inset_ylim) + + + +import matplotlib.lines as mlines +wt = mlines.Line2D([], [], color=colorslist[9], linestyle='-',label='WT') +mut = mlines.Line2D([], [], color=colorslist[2], linestyle='-',label='Altered') +pos = (0.575, 0.05) +ncol = 2 +fig.legend(handles=[wt, mut], loc='center', bbox_to_anchor=pos, ncol=ncol, frameon=False, fontsize=8) + fig.set_size_inches(cm2inch(8.5,12)) fig.savefig('./Figures/firing_characterization.pdf', dpi=fig.dpi) #bbox_inches='tight', dpi=fig.dpi plt.show() + + + +#%% with arrows +fig = plt.figure(figsize=cm2inch(7, 12)) +gs = gridspec.GridSpec(3,6, top=0.95, bottom=0.1, left=0.15, right = 0.95, hspace=0.8, wspace=0.6) +ax1 = fig.add_subplot(gs[0,1:]) +show_spines(ax1, 'lb') +plot_AUC(ax1, width=0.2) +ax3 = fig.add_subplot(gs[1:, :]) + +# add panel letter labels +# ax_list = fig.axes +# i =0 +# for a in ax_list: +# a.text(-0.25, 1.08, string.ascii_uppercase[i], transform=a.transAxes,size=16, weight='bold') +# i += 1 +ax1.text(-0.4, 1.2, string.ascii_uppercase[0], transform=ax1.transAxes, size=16, weight='bold') +ax3.text(-0.15, 1.05, string.ascii_uppercase[1], transform=ax3.transAxes, size=16, weight='bold') + +show_spines(ax3, '') +#ax3.set_ylabel('$\\Delta$ AUC', rotation='vertical') +#ax3.set_xlabel('$\\Delta$ rheobase') +plot_quadrant(ax3) # plot delineation into quadrants + + +inset_ylim = (0, 100) +# top left +lfsize = 8 +ax3.text(x=-0.9, y=0.7, s='$\\uparrow$ AUC\n$\\downarrow$ rheobase', fontsize=lfsize) +ax3.text(-0.95, 0.35, 'GOF', ha='right') +ax3_TL = ax3.inset_axes([0.07, 0.6, 0.3, 0.2]) +plot_diff_sqrt(ax3_TL, b2=0.1, c2=200) +ax3_TL.set_ylim(inset_ylim) +ax3_TL.annotate('', (0.25, 15), (0.1, 27), arrowprops=dict(arrowstyle="<|-", color=colorslist[2],lw=0.5, mutation_scale=5), zorder=-10) # +ax3_TL.annotate('', (0.55, 55), (0.3, 90), arrowprops=dict(arrowstyle="<|-", color=colorslist[2],lw=0.5, mutation_scale=5), zorder=-10) # +# top right +ax3.text(x=0.22, y=0.7, s='$\\uparrow$ AUC\n$\\uparrow$ rheobase', fontsize=lfsize) +ax3.text(0.95, 0.35, 'LOF/\nGOF?') +ax3_TR = ax3.inset_axes([0.63, 0.6, 0.3, 0.2]) +plot_diff_sqrt(ax3_TR, b2=0.4, c2=200) +ax3_TR.set_ylim(inset_ylim) +ax3_TR.annotate('', (0.2, 15), (0.41, 15), arrowprops=dict(arrowstyle="<|-", color=colorslist[2],lw=0.5, mutation_scale=5), zorder=-10) # +ax3_TR.annotate('', (0.8, 70), (0.6, 90), arrowprops=dict(arrowstyle="<|-", color=colorslist[2],lw=0.5, mutation_scale=5), zorder=-10) # + +# bottom left +ax3.text(x=-0.9, y=-0.95, s='$\\downarrow$ AUC\n$\downarrow$ rheobase', fontsize=lfsize) +ax3.text(-0.95, -0.55, 'GOF/\nLOF?', ha='right') +ax3_BL = ax3.inset_axes([0.07, 0.15, 0.3, 0.2]) +plot_diff_sqrt(ax3_BL, b2=0.07, c2=65) +ax3_BL.set_ylim(inset_ylim) +ax3_BL.annotate('', (0.25, 5), (0.07, 5), arrowprops=dict(arrowstyle="<|-", color=colorslist[2],lw=0.5, mutation_scale=5), zorder=-10) # +ax3_BL.annotate('', (0.8, 80), (0.85, 55), arrowprops=dict(arrowstyle="<|-", color=colorslist[2],lw=0.5, mutation_scale=5), zorder=-10) # + +# bottom right +ax3.text(x=0.22, y=-0.95, s='$\\downarrow$ AUC\n$\\uparrow$ rheobase', fontsize=lfsize) +ax3.text(0.95, -0.55, 'LOF') +ax3_BR = ax3.inset_axes([0.63, 0.15, 0.3, 0.2]) +plot_diff_sqrt(ax3_BR, b2=0.4, c2=60) +ax3_BR.set_ylim(inset_ylim) +ax3_BR.annotate('', (0.2, 15), (0.425, 10), arrowprops=dict(arrowstyle="<|-", color=colorslist[2],lw=0.5, mutation_scale=5), zorder=-10) # +ax3_BR.annotate('', (0.65, 75), (0.8, 37.5), arrowprops=dict(arrowstyle="<|-", color=colorslist[2],lw=0.5, mutation_scale=5), zorder=-10) # + + + +fig.set_size_inches(cm2inch(8.5,12)) +fig.savefig('./Figures/firing_characterization_arrows.pdf', dpi=fig.dpi) #bbox_inches='tight', dpi=fig.dpi +plt.show() diff --git a/Figures/firing_characterization.pdf b/Figures/firing_characterization.pdf index 92bce45..241c27b 100644 Binary files a/Figures/firing_characterization.pdf and b/Figures/firing_characterization.pdf differ diff --git a/Figures/plotstyle.py b/Figures/plotstyle.py index 9060e28..e77d46c 100644 --- a/Figures/plotstyle.py +++ b/Figures/plotstyle.py @@ -49,11 +49,11 @@ def sim_style(): plt.rcParams['xtick.direction'] = 'out' plt.rcParams['ytick.direction'] = 'out' plt.rcParams['axes.titlesize'] = 6 - plt.rcParams['axes.labelsize'] = 4 + plt.rcParams['axes.labelsize'] = 8 plt.rcParams['lines.linewidth'] = 1 plt.rcParams['lines.markersize'] = 4 - plt.rcParams['xtick.labelsize'] = 4 - plt.rcParams['ytick.labelsize'] = 4 + plt.rcParams['xtick.labelsize'] = 6 + plt.rcParams['ytick.labelsize'] = 6 plt.rcParams['savefig.bbox'] = 'tight' - plt.rcParams.update({'font.size': 4}) + plt.rcParams.update({'font.size': 6}) plt.rcParams['figure.dpi'] = 300 \ No newline at end of file diff --git a/Figures/ramp_firing.pdf b/Figures/ramp_firing.pdf index 2dc0ea7..80613b3 100644 Binary files a/Figures/ramp_firing.pdf and b/Figures/ramp_firing.pdf differ diff --git a/Figures/rheobase_correlation.pdf b/Figures/rheobase_correlation.pdf index a36faaf..038cd8a 100644 Binary files a/Figures/rheobase_correlation.pdf and b/Figures/rheobase_correlation.pdf differ diff --git a/Figures/rheobase_correlation.py b/Figures/rheobase_correlation.py index f3646e4..99bb848 100644 --- a/Figures/rheobase_correlation.py +++ b/Figures/rheobase_correlation.py @@ -288,14 +288,14 @@ def plot_rheo_alt(ax, model='FS', color1='red', color2='dodgerblue', alteration= 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') + ax.set_xlabel('$k$/$k_{WT}$') elif alteration=='g': df = pd.read_csv('./Figures/Data/rheo_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') + ax.set_xlabel('$g$/$g_{WT}$') 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) @@ -403,10 +403,6 @@ rec = plt.Rectangle((-pad_x, -pad_y), 1 + pad_w, 1 + pad_h, fill=False, lw=line rec = ax2_fI.add_patch(rec) rec.set_clip_on(False) -# label fI subplots with letters -ax0_fI.text(-0.875, 1.35, string.ascii_uppercase[0], transform=ax0_fI.transAxes, size=10, weight='bold') #-0.09 -ax1_fI.text(-0.875, 1.35, string.ascii_uppercase[1], transform=ax1_fI.transAxes,size=10, weight='bold') -ax2_fI.text(-0.875, 1.35, string.ascii_uppercase[2], transform=ax2_fI.transAxes,size=10, weight='bold') # plot boxplots boxplot_with_markers(ax0,max_width, alteration='shift') @@ -423,6 +419,19 @@ plot_rheo_alt(ax0_ex,model='FS +$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', color1=' 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') +# label subplots with letters +ax0_fI.text(-0.875, 1.35, string.ascii_uppercase[0], transform=ax0_fI.transAxes, size=10, weight='bold') +ax0_ex.text(-0.8, 1.35, string.ascii_uppercase[1], transform=ax0_ex.transAxes, size=10, weight='bold') +ax0.text(-0.075, 1.35, string.ascii_uppercase[2], transform=ax0.transAxes, size=10, weight='bold') + +ax1_fI.text(-0.875, 1.35, string.ascii_uppercase[3], transform=ax1_fI.transAxes,size=10, weight='bold') +ax1_ex.text(-0.8, 1.35, string.ascii_uppercase[4], transform=ax1_ex.transAxes, size=10, weight='bold') +ax1.text(-0.075, 1.35, string.ascii_uppercase[5], transform=ax1.transAxes, size=10, weight='bold') + +ax2_fI.text(-0.875, 1.35, string.ascii_uppercase[6], transform=ax2_fI.transAxes,size=10, weight='bold') +ax2_ex.text(-0.8, 1.35, string.ascii_uppercase[7], transform=ax2_ex.transAxes, size=10, weight='bold') +ax2.text(-0.075, 1.35, string.ascii_uppercase[8], transform=ax2.transAxes, size=10, weight='bold') + # save # fig.savefig('./Figures/rheobase_correlation.pdf', bbox_inches='tight') print(fig.dpi) diff --git a/Figures/simulation_model_comparison.pdf b/Figures/simulation_model_comparison.pdf index 3d2aeb3..b3ce0b0 100644 Binary files a/Figures/simulation_model_comparison.pdf and b/Figures/simulation_model_comparison.pdf differ diff --git a/Figures/simulation_model_comparison.py b/Figures/simulation_model_comparison.py index 326cb03..416d238 100644 --- a/Figures/simulation_model_comparison.py +++ b/Figures/simulation_model_comparison.py @@ -4,7 +4,7 @@ import pandas as pd import os import string # from plotstyle import plot_style -from plotstyle import sim_style +from Figures.plotstyle import sim_style import seaborn as sns import scipy.stats as stats import matplotlib.lines as mlines @@ -28,7 +28,8 @@ def Kendall_tau(df): return tau, p def correlation_plot(ax, df='AUC', title='', cbar=False): - cbar_ax = fig.add_axes([0.94, .25, .03, .4]) + # cbar_ax = fig.add_axes([0.94, .25, .03, .4]) + cbar_ax = fig.add_axes([0.685, 0.44, .15, .01]) cbar_ax.spines['left'].set_visible(False) cbar_ax.spines['bottom'].set_visible(False) cbar_ax.spines['right'].set_visible(False) @@ -61,7 +62,7 @@ def correlation_plot(ax, df='AUC', title='', cbar=False): tau = tau.drop(columns='STN $\Delta$$\mathrm{K}_{\mathrm{V}}\mathrm{1.1}$', index='RS pyramidal') # mask to hide upper triangle of matrix - mask = np.zeros_like(tau, dtype=np.bool) + mask = np.zeros_like(tau, dtype=bool) mask[np.triu_indices_from(mask)] = True np.fill_diagonal(mask, False) @@ -88,11 +89,17 @@ def correlation_plot(ax, df='AUC', title='', cbar=False): cbar=False, cmap=cmap, cbar_ax=cbar_ax, cbar_kws={"shrink": .52}) else: res = sns.heatmap(tau, annot=False, mask=mask, center=0, vmax=1, vmin=-1, linewidths=.5, square=True, ax=ax, - cbar=True, cmap=cmap, cbar_ax=cbar_ax, ) - cbar_ax.set_title(r'Kendall $\tau$', y=1.02, loc='left') - ax.set_title(title) + cbar=True, cmap=cmap, cbar_ax=cbar_ax, + cbar_kws={"orientation": "horizontal", + "ticks": [-1,-0.5, 0, 0.5, 1]} ) + cbar_ax.set_title(r'Kendall $\tau$', y=1.02, loc='center', fontsize=6) + cbar_ax.tick_params(length=3) + for tick in cbar_ax.xaxis.get_major_ticks(): + tick.label.set_fontsize(6) + ax.set_title(title, fontsize=8) -def mutation_plot2(ax, model='RS_pramidal'): + +def mutation_plot(ax, model='RS_pramidal'): models = ['RS_pyramidal', 'RS_inhib', 'FS', 'Cb_stellate', 'Cb_stellate_Kv', 'Cb_stellate_Kv_only', 'STN', 'STN_Kv', 'STN_Kv_only'] model_names = ['RS pyramidal', 'RS inhibitory', 'FS', #'RS pyramidal', 'RS inhibitory', 'FS', 'IB', @@ -143,26 +150,33 @@ def mutation_plot2(ax, model='RS_pramidal'): mod = models.index(model) mut_names = AUC.index - ax.plot(rheo.loc[mut_names, model_names[mod]], AUC.loc[mut_names, model_names[mod]], linestyle='', + ax.plot(rheo.loc[mut_names, model_names[mod]]*1000, AUC.loc[mut_names, model_names[mod]], linestyle='', markeredgecolor='grey', markerfacecolor='grey', marker=Marker_dict[model_display_names[mod]], markersize=2) # markeredgecolor=clr_dict[model_names[mod]],markerfacecolor=clr_dict[model_names[mod]], ax.plot(rheo.loc['wt', model_names[mod]], AUC.loc['wt', model_names[mod]], 'sk') mut_col = sns.color_palette("pastel") - ax.plot(rheo.loc['V174F', model_names[mod]], AUC.loc['V174F', model_names[mod]], linestyle='', + ax.plot(rheo.loc['V174F', model_names[mod]]*1000, AUC.loc['V174F', model_names[mod]], linestyle='', markeredgecolor=mut_col[0], markerfacecolor=mut_col[0], marker=Marker_dict[model_display_names[mod]],markersize=4) - ax.plot(rheo.loc['F414C', model_names[mod]], AUC.loc['F414C', model_names[mod]], linestyle='', + ax.plot(rheo.loc['F414C', model_names[mod]]*1000, AUC.loc['F414C', model_names[mod]], linestyle='', markeredgecolor=mut_col[1], markerfacecolor=mut_col[1], marker=Marker_dict[model_display_names[mod]],markersize=4) - ax.plot(rheo.loc['E283K', model_names[mod]], AUC.loc['E283K', model_names[mod]], linestyle='', + ax.plot(rheo.loc['E283K', model_names[mod]]*1000, AUC.loc['E283K', model_names[mod]], linestyle='', markeredgecolor=mut_col[2], markerfacecolor=mut_col[2], marker=Marker_dict[model_display_names[mod]],markersize=4) - ax.plot(rheo.loc['V404I', model_names[mod]], AUC.loc['V404I', model_names[mod]], linestyle='', + ax.plot(rheo.loc['V404I', model_names[mod]]*1000, AUC.loc['V404I', model_names[mod]], linestyle='', markeredgecolor=mut_col[3], markerfacecolor=mut_col[5], marker=Marker_dict[model_display_names[mod]],markersize=4) - ax.set_title(model_display_names[mod])#, color=clr_dict[models[mod]]) , fontsize=14 - ax.set_xlabel('$\Delta$ Rheobase (nA)', fontsize=6) - ax.set_ylabel('$AUC_{contrast}$', fontsize=6) + ax.set_title(model_display_names[mod], pad=14)#, color=clr_dict[models[mod]]) , fontsize=14 + ax.set_xlabel('$\Delta$ Rheobase (pA)')#, fontsize=6) + ax.set_ylabel('Normalized $\Delta$AUC')#, fontsize=6) ax.spines['right'].set_visible(False) ax.spines['top'].set_visible(False) + # ax.ticklabel_format(style='scientific', useMathText=True, useOffset=False) + ax.ticklabel_format(axis="y", style="sci", scilimits=(0, 0),useMathText=True) #,useOffset=False + + xmin, xmax = ax.get_xlim() + ymin, ymax = ax.get_ylim() + ax.hlines(0, xmin, xmax, colors='lightgrey', linestyles='--') + ax.vlines(0, ymin,ymax, colors='lightgrey', linestyles='--') return ax def mutation_legend(ax, marker_s_leg, pos, ncol): @@ -186,9 +200,9 @@ def mutation_legend(ax, marker_s_leg, pos, ncol): sim_style() # plot setup fig = plt.figure() #figsize=cm2inch(17.6,15) -gs0 = fig.add_gridspec(1, 6, wspace=3.5) -gsl = gs0[0:4].subgridspec(3, 3, wspace=0.9, hspace=0.8) -gsr = gs0[4:6].subgridspec(2, 1, wspace=0.6, hspace=1) +gs0 = fig.add_gridspec(1, 6, wspace=-0.2) +gsl = gs0[0:3].subgridspec(3, 3, wspace=0.9, hspace=0.8) +gsr = gs0[4:6].subgridspec(6, 1, wspace=0.6, hspace=1) ax00 = fig.add_subplot(gsl[0,0]) ax01 = fig.add_subplot(gsl[0,1]) @@ -200,42 +214,42 @@ ax20 = fig.add_subplot(gsl[2,0]) ax21 = fig.add_subplot(gsl[2,1]) ax22 = fig.add_subplot(gsl[2,2]) -axr0 = fig.add_subplot(gsr[0,0]) -axr1 = fig.add_subplot(gsr[1,0]) +axr0 = fig.add_subplot(gsr[0:2,0]) +axr1 = fig.add_subplot(gsr[4:,0]) # plot mutations in each model -ax00 = mutation_plot2(ax00, model='RS_pyramidal') -ax01 = mutation_plot2(ax01, model='RS_inhib') -ax02 = mutation_plot2(ax02, model='FS') -ax10 = mutation_plot2(ax10, model='Cb_stellate') -ax11 = mutation_plot2(ax11, model='Cb_stellate_Kv') -ax12 = mutation_plot2(ax12, model='Cb_stellate_Kv_only') -ax20 = mutation_plot2(ax20, model='STN') -ax21 = mutation_plot2(ax21, model='STN_Kv') -ax22 = mutation_plot2(ax22, model='STN_Kv_only') +ax00 = mutation_plot(ax00, model='RS_pyramidal') +ax01 = mutation_plot(ax01, model='RS_inhib') +ax02 = mutation_plot(ax02, model='FS') +ax10 = mutation_plot(ax10, model='Cb_stellate') +ax11 = mutation_plot(ax11, model='Cb_stellate_Kv') +ax12 = mutation_plot(ax12, model='Cb_stellate_Kv_only') +ax20 = mutation_plot(ax20, model='STN') +ax21 = mutation_plot(ax21, model='STN_Kv') +ax22 = mutation_plot(ax22, model='STN_Kv_only') marker_s_leg = 4 -pos = (0.25, -0.45) +pos = (0.425, -0.7) ncol = 5 mutation_legend(ax21, marker_s_leg, pos, ncol) # plot correlation matrices -correlation_plot(axr1,df = 'AUC', title='$AUC_{contrast}$', cbar=False) -correlation_plot(axr0,df = 'rheo', title='$\Delta rheobase$', cbar=True) +correlation_plot(axr1,df = 'AUC', title='Normalized $\Delta$AUC', cbar=False) +correlation_plot(axr0,df = 'rheo', title='$\Delta$ Rheobase', cbar=True) # add subplot labels axs = [ax00, ax01,ax02, ax10, ax11, ax12, ax20, ax21, ax22] j=0 for i in range(0,9): - axs[i].text(-0.48, 1.08, string.ascii_uppercase[i], transform=axs[i].transAxes, size=10, weight='bold') + axs[i].text(-0.48, 1.175, string.ascii_uppercase[i], transform=axs[i].transAxes, size=10, weight='bold') j +=1 -axr0.text(-0.38, 1.2, string.ascii_uppercase[j], transform=axr0.transAxes, size=10, weight='bold') -axr1.text(-0.38, 1.2, string.ascii_uppercase[j+1], transform=axr1.transAxes, size=10, weight='bold') +axr0.text(-0.77, 1.1, string.ascii_uppercase[j], transform=axr0.transAxes, size=10, weight='bold') +axr1.text(-0.77, 1.1, string.ascii_uppercase[j+1], transform=axr1.transAxes, size=10, weight='bold') # save # fig.savefig('./Figures/simulation_model_comparison.pdf') #, bbox_inches='tight' print(fig.dpi) -fig.set_size_inches(cm2inch(17.95,15)) +fig.set_size_inches(cm2inch(22.2,15)) fig.savefig('./Figures/simulation_model_comparison.pdf', dpi=fig.dpi) #bbox_inches='tight', dpi=fig.dpi plt.show() diff --git a/manuscript.tex b/manuscript.tex index 7251915..e03675a 100644 --- a/manuscript.tex +++ b/manuscript.tex @@ -286,8 +286,9 @@ Neuronal firing is heterogenous across the CNS and a set of neuronal models with \begin{figure}[tp] \centering \includegraphics[width=0.5\linewidth]{Figures/firing_characterization.pdf} - \\\notejb{Hab die ? durch LOF/GOF? ersetzt.} - \\\notejb{Add arrows to indicate change, make red fI curve in the bottom left smaller. Alternative: legend below the panel.} + \includegraphics[width=0.5\linewidth]{Figures/firing_characterization_arrows.pdf} + \\\notenk{Re-work legend to be in line with new figure} + \\\notejb{Add arrows to indicate change, make red fI curve in the bottom left smaller. Alternative: legend below the panel.} \notenk{Both done, which one do you like better? I think I like the legend one better, but I'm not sure what the best legend label for the red one I've labelled ``Altered'' is.} \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.} @@ -315,14 +316,13 @@ Qualitative differences can be found, for example, when increasing the conductan \begin{figure}[tp] \centering \includegraphics[width=\linewidth]{Figures/AUC_correlation.pdf} - \\\notejb{y-labels: normalized $\Delta$AUC} +% \\\notejb{y-labels: normalized $\Delta$AUC} \notenk{Done} \\\notejb{tick labels too small!}\notenk{Is this better?}\notejb{Make them as large as possible. You still have a bit of room before they start overlapping.} - \\\notejb{By the way: all figures should be included with their original size, so that the fonts have the same size in all the figures! - Should be ok by now.} - \\\notejb{The colored boxes need to be a bit higher with the topic edge having some distance to the plot title} - \\\notejb{To make referencing in the text simpler we should tag each panel} - \\\notejb{Normalized AUC is called ``$AUC_{contrast}$'' in the methods...} - \\\notejb{second column: x-label are wrong, i.e. $k/k_{WT}$, $g/g_{WT}$} - \\\notejb{Make subplot size exactly like in Figure 4} +% \\\notejb{The colored boxes need to be a bit higher with the topic edge having some distance to the plot title}\notenk{done!} + \\\notejb{To make referencing in the text simpler we should tag each panel} \notenk{done? I think} + \\\notenk{Re-work legend to be in line with new figure} +% \\\notejb{second column: x-label are wrong, i.e. $k/k_{WT}$, $g/g_{WT}$}\notenk{done} +% \\\notejb{Make subplot size exactly like in Figure 4}\notenk{done} \linespread{1.}\selectfont \caption[]{Effects of altered channel kinetics on AUC in various neuron models. The Kendall rank correlation (Kendall \(\tau\)) coefficients between shifts in \(V_{1/2}\) and AUC, slope factor k and AUC as well as current conductances and AUC for each model are shown on the right in (A), (B) and (C) respectively. The relationships between AUC 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:AUC_correlation} @@ -334,6 +334,7 @@ The rheobase is also affected by changes in channel kinetics (\Cref{fig:rheobase \begin{figure}[tp] \centering \includegraphics[width=\linewidth]{Figures/rheobase_correlation.pdf} + \\\notenk{Re-work legend to be in line with new figure} \linespread{1.}\selectfont \caption[]{Effects of altered channel kinetics on rheobase. 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} @@ -345,9 +346,11 @@ Mutations in \Kv are associated with episodic ataxia type~1 (EA1) and have been \begin{figure}[tp] \centering \includegraphics[width=\linewidth]{Figures/simulation_model_comparison.pdf} - \\\notejb{Font sizes...} + \\\notejb{Font sizes...}\notenk{better?} + \\\notenk{What do you think of the light grey dashed lines?} + \\\notenk{Check legend is in line with figure} \linespread{1.}\selectfont - \caption[]{Effects of episodic ataxia type~1 associated \Kv mutations on firing. \notejb{Note that marker shape indicates model type/firing type} Effects of \Kv mutations on AUC (\(AUC_{contrast}\)) and rheobase (\(\Delta\)rheobase) compared to wild type for RS pyramidal +\Kv (A), RS inhibitory +\Kv (B), FS +\Kv (C), Cb stellate (D), Cb stellate +\Kv (E), Cb stellate \(\Delta\)\Kv (F), STN (G), STN +\Kv (H) and STN \(\Delta\)\Kv (I) models. V174F, F414C, E283K, and V404I mutations are highlighted in color for each model. Pairwise Kendall rank correlation coefficients (Kendall \(\tau\)) between the effects of \Kv mutations on rheobase and on AUC are shown in J and K respectively.} + \caption[]{Effects of episodic ataxia type~1 associated \Kv mutations on firing. Effects of \Kv mutations on AUC (\(AUC_{contrast}\)) and rheobase (\(\Delta\)rheobase) compared to wild type for RS pyramidal +\Kv (A), RS inhibitory +\Kv (B), FS +\Kv (C), Cb stellate (D), Cb stellate +\Kv (E), Cb stellate \(\Delta\)\Kv (F), STN (G), STN +\Kv (H) and STN \(\Delta\)\Kv (I) models. V174F, F414C, E283K, and V404I mutations are highlighted in color for each model. Pairwise Kendall rank correlation coefficients (Kendall \(\tau\)) between the effects of \Kv mutations on rheobase and on AUC are shown in J and K respectively. Marker shape is indicative of model/firing type.} \label{fig:simulation_model_comparision} \end{figure}