updated everything but figure 1
This commit is contained in:
parent
539fdf553b
commit
4ba8dfff7b
Binary file not shown.
Binary file not shown.
BIN
ampullary.pdf
BIN
ampullary.pdf
Binary file not shown.
BIN
ampullary.png
BIN
ampullary.png
Binary file not shown.
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 95 KiB |
@ -53,4 +53,4 @@ if __name__ == '__main__':
|
||||
ampullary_punit(cells_plot2=cells_plot2, RAM=False)
|
||||
else:
|
||||
cells_plot2 = p_units_to_show(type_here='amp')
|
||||
ampullary_punit(eod_metrice = False, tags_individual = True, isi_delta = 5, titles=['Low-CV ampullary cell,'],cells_plot2=cells_plot2, RAM=False, scale_val = False, add_texts = [0.25,1.3])
|
||||
ampullary_punit(eod_metrice = False, color_same = False, fr_name = '$f_{base}$', tags_individual = True, isi_delta = 5, titles=['Low-CV ampullary cell,'],cells_plot2=cells_plot2, RAM=False, scale_val = False, add_texts = [0.25,1.3])
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 142 KiB |
@ -9,4 +9,4 @@ if __name__ == '__main__':
|
||||
|
||||
|
||||
cells_plot2 = p_units_to_show(type_here = 'contrasts')
|
||||
ampullary_punit(eod_metrice = False, cells_plot2=[cells_plot2[0]], isi_delta = 5, titles=['Low-CV P-unit,'],tags_individual = True, xlim_p = [0,1.15])
|
||||
ampullary_punit(eod_metrice = False, color_same = False, fr_name = '$f_{base}$', cells_plot2=[cells_plot2[0]], isi_delta = 5, titles=['Low-CV P-unit,'],tags_individual = True, xlim_p = [0,1.15])
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 142 KiB |
@ -7,4 +7,4 @@ from IPython import embed
|
||||
if __name__ == '__main__':
|
||||
|
||||
cells_plot2 = p_units_to_show(type_here='contrasts')
|
||||
ampullary_punit(eod_metrice = False, tags_individual = True, isi_delta = 5, cells_plot2=[cells_plot2[1]], titles=['High-CV P-unit,', 'Ampullary cell,'],)
|
||||
ampullary_punit(eod_metrice = False, color_same = False, fr_name = '$f_{base}$', tags_individual = True, isi_delta = 5, cells_plot2=[cells_plot2[1]], titles=['High-CV P-unit,', 'Ampullary cell,'],)
|
BIN
motivation.pdf
BIN
motivation.pdf
Binary file not shown.
@ -18,7 +18,7 @@ from utils_suseptibility import *
|
||||
|
||||
|
||||
|
||||
def motivation_all_small(ylim=[-1.25, 1.25], c1=10, dfs=['m1', 'm2'], mult_type='_multsorted2_', top=0.94, devs=['2'],
|
||||
def motivation_all_small(dev_desired = '1',ylim=[-1.25, 1.25], c1=10, dfs=['m1', 'm2'], mult_type='_multsorted2_', top=0.94, devs=['2'],
|
||||
figsize=None, redo=False, save=True, end='0', cut_matrix='malefemale', chose_score='mean_nrs',
|
||||
a_fr=1, restrict='modulation', adapt='adaptoffsetallall2', step=str(30),
|
||||
detections=['AllTrialsIndex'], variant='no', sorted_on='LocalReconst0.2Norm'):
|
||||
@ -102,13 +102,16 @@ def motivation_all_small(ylim=[-1.25, 1.25], c1=10, dfs=['m1', 'm2'], mult_type=
|
||||
# hier muss das halt stimmen mit der auswahl
|
||||
# hier wollen wir eigntlich kein autodefine
|
||||
# sondern wir wollen so ein diagonal ding haben
|
||||
divergnce, fr, pivot_chosen, max_val, max_x, max_y, mult, DF1_desired, DF2_desired, min_y, min_x, min_val, diff_cut = chose_mat_max_value(
|
||||
DF1_desired, DF2_desired, '', mult_type, eodftype, indices, cell, contrast_small,
|
||||
contrast_big, contrast1, dfs, start, devname_orig, contrast, autodefine=autodefine,
|
||||
cut_matrix='cut', chose_score=chose_score) # chose_score = 'auci02_012-auci_base_01'
|
||||
DF1_desired = DF1_desired # [::-1]
|
||||
DF2_desired = DF2_desired # [::-1]
|
||||
# embed()
|
||||
|
||||
extra_f_calculatoin = False
|
||||
if extra_f_calculatoin:
|
||||
divergnce, fr, pivot_chosen, max_val, max_x, max_y, mult, DF1_desired, DF2_desired, min_y, min_x, min_val, diff_cut = chose_mat_max_value(
|
||||
DF1_desired, DF2_desired, '', mult_type, eodftype, indices, cell, contrast_small,
|
||||
contrast_big, contrast1, dfs, start, devname_orig, contrast, autodefine=autodefine,
|
||||
cut_matrix='cut', chose_score=chose_score) # chose_score = 'auci02_012-auci_base_01'
|
||||
DF1_desired = [1.2]#DF1_desired # [::-1]
|
||||
DF2_desired = [0.95]#DF2_desired # [::-1]
|
||||
#embed()
|
||||
|
||||
#######################################
|
||||
# ROC part
|
||||
@ -168,7 +171,7 @@ def motivation_all_small(ylim=[-1.25, 1.25], c1=10, dfs=['m1', 'm2'], mult_type=
|
||||
# load plotting arrays
|
||||
arrays, arrays_original, spikes_pure = save_arrays_susept(
|
||||
data_dir, cell, c, b, chirps, devs, extract, group_mean, mean_type, plot_group=0,
|
||||
rocextra=False, sorted_on=sorted_on)
|
||||
rocextra=False, sorted_on=sorted_on, dev_desired = dev_desired)
|
||||
####################################################
|
||||
|
||||
####################################################
|
||||
@ -189,9 +192,6 @@ def motivation_all_small(ylim=[-1.25, 1.25], c1=10, dfs=['m1', 'm2'], mult_type=
|
||||
bottom=0.15,
|
||||
right=0.935) # height_ratios=[1, 2], height_ratios = [1,6]bottom=0.25, top=0.8,
|
||||
hr = [1, 0.35, 1.2, 0, 3, ] # 1
|
||||
# embed()#0.75, 0.55, 0.75,
|
||||
# hr = [1, 0.8, 1, 1, 1, 1.4]
|
||||
|
||||
##########################################################################
|
||||
# several coherence plot
|
||||
|
||||
@ -211,11 +211,6 @@ def motivation_all_small(ylim=[-1.25, 1.25], c1=10, dfs=['m1', 'm2'], mult_type=
|
||||
height_ratios=hr)
|
||||
|
||||
xlim = [0, 100]
|
||||
|
||||
# plt.savefig(r'C:\Users\alexi\OneDrive - bwedu\Präsentations\latex\experimental_protocol.pdf')
|
||||
# embed()
|
||||
fr_end = divergence_title_add_on(group_mean, fr[gg], autodefine)
|
||||
|
||||
###########################################
|
||||
stimulus_length = 0.3
|
||||
deltat = 1 / 40000
|
||||
@ -301,7 +296,16 @@ def motivation_all_small(ylim=[-1.25, 1.25], c1=10, dfs=['m1', 'm2'], mult_type=
|
||||
# spike response
|
||||
array_chosen = 1
|
||||
if d == 0: #
|
||||
# embed()
|
||||
|
||||
#embed()
|
||||
|
||||
frs = []
|
||||
for i in range(len(spikes_pure['base_0'])):
|
||||
#duration = spikes_pure['base_0'][i][-1] / 1000
|
||||
duration = 0.5
|
||||
fr = len(spikes_pure['base_0'][i])/duration
|
||||
frs.append(fr)
|
||||
fr = np.mean(frs)
|
||||
fr_isi, ax_ps, ax_as = plot_arrays_ROC_psd_single3(
|
||||
[arrays[0], arrays[2], arrays[1], arrays[3]],
|
||||
[arrays_original[0], arrays_original[2], arrays_original[1],
|
||||
@ -317,22 +321,6 @@ def motivation_all_small(ylim=[-1.25, 1.25], c1=10, dfs=['m1', 'm2'], mult_type=
|
||||
|
||||
##########################################################################
|
||||
|
||||
# save_visualization()
|
||||
# if 'same' in mean_type:
|
||||
# mean_type_name = mean_type
|
||||
# else:
|
||||
# mean_type_name = ''
|
||||
|
||||
# plt.show()
|
||||
suptitle = cell + ' c1: ' + str(group_mean[0][0]) + '$\%$ m1: ' + str(
|
||||
group_mean[0][2][0]) + ' DF1: ' + str(
|
||||
group_mean[1]['DF1, DF2'].iloc[0][0]) + ' c2: ' + str(
|
||||
group_mean[0][1]) + '$\%$ m2: ' + str(
|
||||
group_mean[0][2][1]) + ' DF2: ' + str(
|
||||
group_mean[1]['DF1, DF2'].iloc[0][1]) + ' Trials nr ' + str(
|
||||
len(group_mean[1])) + fr_end
|
||||
# plt.suptitle(suptitle)
|
||||
# embed()
|
||||
individual_tag = 'DF1' + str(DF1_desired[gg]) + 'DF2' + str(
|
||||
DF2_desired[gg]) + cell + '_c1_' + str(c1) + '_c2_' + str(c2) + mean_type
|
||||
|
||||
@ -352,12 +340,11 @@ def motivation_all_small(ylim=[-1.25, 1.25], c1=10, dfs=['m1', 'm2'], mult_type=
|
||||
if save:
|
||||
save_visualization(individual_tag=individual_tag, show=show, pdf=True)
|
||||
# fig = plt.gcf()
|
||||
# fig.savefig()
|
||||
# fig.savefig
|
||||
# plt.show()
|
||||
return suptitle
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
motivation_all_small(c1=10, mult_type='_multsorted2_', devs=['05'], redo=True, save=True, end='all',
|
||||
motivation_all_small(dev_desired = '1', c1=10, mult_type='_multsorted2_', devs=['05'], redo=True, save=True, end='all',
|
||||
cut_matrix='malefemale', chose_score='mean_nrs', restrict='modulation_no_classes', step='50',
|
||||
detections=['MeanTrialsIndexPhaseSort'], sorted_on='LocalReconst0.2NormAm')
|
||||
detections=['MeanTrialsIndexPhaseSort'], sorted_on='LocalReconst0.2NormAm')#
|
||||
|
@ -821,7 +821,7 @@ From each simulation run, the first second was discarded and the analysis was ba
|
||||
% The second-order susceptibility in the model was calculated with \eqnref{eq:susceptibility}, resulting in matrices as in \figrefb{model_and_data} and \figrefb{model_full}. For this, the model neuron was presented the input $x(t)$ for 2\,s, with the first second being dismissed as the transient. The second-order susceptibility calculation was performed on the last second, resulting in a frequency resolution of 1\,Hz.
|
||||
|
||||
\subsection{Model noise split into a noise and a stimulus component}\label{intrinsicsplit_methods}
|
||||
According to the Novikov-Furutsu Theorem \citealp{Novikov1965, Furutsu1963} the total noise of a LIF model ($\xi$) can be split up into several independent noise processes with the same correlation function. Here we split the internal noise into two parts: (i) One part is treated as a driving input signal ($\xi_{signal} = \sqrt{\rho \, 2D \,c_{signal}} \cdot \xi(t) $) and used to calculate the cross-spectra in \eqnref{eq:crosshigh} and (ii) the remaining noise ($\xi_{noise} = \sqrt{2D \, c_{noise}}\,\xi(t)$) that is treated as pure noise. In this way the effective signal-to-noise ratio can be increased while maintaining the total noise in the system. $\rho$ a scaling factor that compensates (see below) for the signal transformations the amplitude modulation stimulus undergoes in the model, i.e. the threshold and the dendritic lowpass. In our case the model has a carrier (the fish's self-generated EOD) and we thus want to drive the model with an amplitude modulation stimulus
|
||||
According to the Novikov-Furutsu Theorem \citealp{Novikov1965, Furutsu1963} the total noise of a LIF model ($\xi$) can be split up into several independent noise processes with the same correlation function. Here we split the internal noise into two parts: (i) One part is treated as a driving input signal $\xi_{signal} = \sqrt{\rho \, 2D \,c_{signal}} \cdot \xi(t) $ and used to calculate the cross-spectra in \eqnref{eq:crosshigh} and (ii) the remaining noise $\xi_{noise} = \sqrt{2D \, c_{noise}} \cdot \xi(t)$ that is treated as pure noise. In this way the effective signal-to-noise ratio can be increased while maintaining the total noise in the system. $\rho$ a scaling factor that compensates (see below) for the signal transformations the amplitude modulation stimulus undergoes in the model, i.e. the threshold and the dendritic lowpass. In our case the model has a carrier (the fish's self-generated EOD) and we thus want to drive the model with an amplitude modulation stimulus
|
||||
|
||||
%(1-c_{signal})\cdot\xi$c_{noise} = 1-c_{signal}$
|
||||
%c_{signal} \cdot \xi
|
||||
@ -849,7 +849,7 @@ According to the Novikov-Furutsu Theorem \citealp{Novikov1965, Furutsu1963} the
|
||||
|
||||
|
||||
|
||||
A big portion of the total noise was assigned to the signal component ($c_{signal} = 0.9$) and the remaining part to the noise component ($c_{noise} = 0.1$, \subfigrefb{flowchart}\,\panel[iii]{C}). For the application of the Novikov-Furutsu Theorem \citealp{Novikov1965, Furutsu1963} it is critical that both components add up to the initial 100\,$\%$ of the total noise. This is easily achieved in a model without a carrier if the condition $c_{signal}+c_{noise}=1$ is satisfied. The situation here is more complicated. To compensate for the transformations the signal undergoes before it enters the LIF core, $\xi_{signal}(t)$ was scaled up by the factor $\rho$ (\eqnref{eq:ram_split}, red in \subfigrefb{flowchart}\,\panel[i]{D}). $\rho$ was found by bisecting the space of possible $\rho$ scaling factors by minimizing the error between the baseline CV (only carrier) and the CV during stimulation with noise split.
|
||||
A big portion of the total noise was assigned to the signal component ($c_{signal} = 0.9$) and the remaining part to the noise component ($c_{noise} = 0.1$, \subfigrefb{flowchart}\,\panel[iii]{C}). For the application of the Novikov-Furutsu Theorem \citealp{Novikov1965, Furutsu1963} it is critical that both components add up to the initial 100\,$\%$ of the total noise. This is easily achieved in a model without a carrier if the condition $c_{signal}+c_{noise}=1$ is satisfied. The situation here is more complicated. To compensate for the transformations the signal undergoes before it enters the LIF core, $\xi_{signal}(t)$ was scaled up by the factor $\rho$ (\eqnref{eq:ram_split}, red in \subfigrefb{flowchart}\,\panel[iii]{A}). $\rho$ was found by bisecting the space of possible $\rho$ scaling factors by minimizing the error between the baseline CV (only carrier) and the CV during stimulation with noise split.
|
||||
|
||||
|
||||
% See section \ref{lifmethods} for model and parameter description.
|
||||
|
@ -477,7 +477,7 @@ Irrespective of the CV, neither cell shows the complete proposed structure of no
|
||||
|
||||
% \subsection{Full nonlinear structure visible only in P-unit models}
|
||||
\subsection{Internal noise hides parts of the nonlinearity structure}
|
||||
Traces of the proposed structure of second-order susceptibility are found in both ampullary and p-type electrosensory afferents. The nonlinerarity seems to depend on the CV, i.e. the level of intrinsic noise in the cells and in the next step we address whether the level of intrinsic masks the expected structures. One option to reduce the impact of this intrinsic noise is to average it out over many repetitions of the same stimulus. In the electrophysiological experiments we only have a limited recording duration and hence the number of stimulus repetitions is limited. To overcome these limitations we compared between an electrophysiologically recorded low-CV P-unit and its P-unit LIF model counterpart fitted to reproduce the P-unit behavior faithfully (see \figref{flowchart})\citealp{Barayeu2023}. In the recording depicted in \subfigrefb{model_and_data}{A} the cell was stimulated with a weak RAM stimulus with the contrast of 1\,$\%$ (red, \subfigrefb{model_and_data}\,\panel[i]{B}). The across trial average ($\n{}=11$) shows the diagonal band in second-order susceptibility at \fsumb{} (yellow diagonal in pink edges) and an additional nonlinear band appeared at \fsumehalf{} (\subfigrefb{model_and_data}{A}). The matched model reproduces the same diagonal at \fsumb{} (\subfigrefb{model_and_data}\,\panel[ii]{B}) but not the diagonal at \fsumehalf. By increasing the number of trials in the simulation, the signal-to-noise ratio and thus the estimation of the nonlinearity structures can be improved. Still, even with 1 million repetitions, no changes are observable in the nonlinearity structures (\subfigrefb{model_and_data}\,\panel[iii]{B}). The increased trial count, however goes along with generally smaller second-order susceptibility values (\subfigrefb{model_and_data}\,\panel[iii]{B}).\notejg{a problem, that we use a new noise for each trial?}\notesr{Using a new noise for each trial, is the way this method is defined. When using the same noise for one million repetiotions we will not see the triangular shape at any time. I tried this and Benjamin confirmed that this would be not possible.}
|
||||
Traces of the proposed structure of second-order susceptibility are found in both ampullary and p-type electrosensory afferents. The nonlinerarity seems to depend on the CV, i.e. the level of intrinsic noise in the cells and in the next step we address whether the level of intrinsic masks the expected structures. One option to reduce the impact of this intrinsic noise is to average it out over many repetitions of the same stimulus. In the electrophysiological experiments we only have a limited recording duration and hence the number of stimulus repetitions is limited. To overcome these limitations we compared between an electrophysiologically recorded low-CV P-unit and its P-unit LIF model counterpart fitted to reproduce the P-unit behavior faithfully (see \figref{flowchart})\citealp{Barayeu2023}. In the recording depicted in \subfigrefb{model_and_data}{A} the cell was stimulated with a weak RAM stimulus with the contrast of 1\,$\%$ (red, \subfigrefb{model_and_data}\,\panel[i]{B}). The across trial average ($\n{}=11$) shows the diagonal band in second-order susceptibility at \fsumb{} (yellow diagonal in pink edges) and an additional nonlinear band appeared at \fsumehalf{} (\subfigrefb{model_and_data}{A}). The matched model reproduces the same diagonal at \fsumb{} (\subfigrefb{model_and_data}\,\panel[ii]{B}) but not the diagonal at \fsumehalf. By increasing the number of trials in the simulation, the signal-to-noise ratio and thus the estimation of the nonlinearity structures can be improved. Still, even with 1 million repetitions, no changes are observable in the nonlinearity structures (\subfigrefb{model_and_data}\,\panel[iii]{B}). The increased trial count, however goes along with generally smaller second-order susceptibility values (\subfigrefb{model_and_data}\,\panel[iii]{B}).
|
||||
|
||||
%Note that this line doesn't appear in the susceptibility matrix of the model (\subfigrefb{model_and_data}{C})Each cell has an intrinsic noise level (\subfigrefb{model_and_data}{A}, bottom).
|
||||
%The signal component (purple) compensates for this total noise reduction, is not a weak signal anymore and
|
||||
@ -487,7 +487,7 @@ Based on the Novikov-Furutsu Theorem \citealp{Novikov1965, Furutsu1963} the intr
|
||||
|
||||
% Based on this a weak RAM signal as the input to the P-unit model (red in \subfigrefb{model_and_data}\,\panel[i]{A}) can be approximated by a model where no RAM stimulus is present (red) but instead the total noise of the model is split up into a reduced intrinsic noise component (gray) and a signal component (purple), maintaining the CV and \fbase{} as during baseline (\subfigrefb{model_and_data}\,\panel[i]{B}, see methods section \ref{intrinsicsplit_methods} for more details). This signal component (purple) can be used for the calculation of the second-order susceptibility. With the reduced noise component the signal-to-noise ratio increases and the number of stimulus realizations can be reduced. This noise split cannot be applied in experimentally measured cells. If this noise split is applied in the model with $\n{}=11$ stimulus realizations the nonlinearity at \fsumb{} is still present (\subfigrefb{model_and_data}\,\panel[iii]{B}). If instead, the RAM stimulus is drawn 1 million times the diagonal nonlinearity band is complemented by vertical and horizontal lines appearing at \foneb{} and \ftwob{} (\subfigrefb{model_and_data}\,\panel[iv]{B}). These nonlinear structures correspond to the ones observed in previous works \citealp{Voronenko2017}. If now a weak RAM stimulus is added (\subfigrefb{model_and_data}\,\panel[i]{C}, red), simultaneously the noise is split up into a noise and signal component (gray and purple) and the calculation is performed on the sum of the signal component and the RAM (red plus purple) only the diagonal band is present with $\n{}=11$ (\subfigrefb{model_and_data}\,\panel[iii]{C}) but also with 1\,million stimulus realizations (\subfigrefb{model_and_data}\,\panel[iv]{C}).
|
||||
|
||||
In a high-CV P-unit we could not find such nonlinear structures, neither in the electrophysiologically recorded data nor in the respective model (not shown), corresponding to the theoretical predictions \citealp{Voronenko2017}.\notejg{How can we understand this? If we take a larger chunk of the intrinsic noise should it not help? Is there more than just noise that changes the structure?}\notejg{No this would not help. Splitting up the noise doesn't change the total noise. Nonlinear effects are expected only until a certain amount of noise. Once this noise is surpassed a better signal-to-noise ratio will not help to see that nonlinear effects that are not there. In the low CV cells the noise split changes the signal-to-noise ratio, not the total noise.}
|
||||
In a high-CV P-unit we could not find such nonlinear structures, neither in the electrophysiologically recorded data nor in the respective model (not shown), corresponding to the theoretical predictions \citealp{Voronenko2017}.
|
||||
|
||||
\begin{figure*}[hb!]
|
||||
\includegraphics[width=\columnwidth]{model_and_data}
|
||||
@ -518,7 +518,7 @@ The smaller \fdiff{} power spectral peak observed during pure sine-wave stimulat
|
||||
%\eqnref{response_modulation}
|
||||
|
||||
\subsection{Low CVs and weak stimuli are associated with strong nonlinearity}
|
||||
The nonlinear effects shown for single cell examples above are supported by the analysis of the pool of 222 P-units and 45 ampullary afferents recorded in 71 specimen. To compare across cells we expressed the second-order susceptibility as the nonlinearity index \nli{}, see \eqnref{eq:nli_equation}. The \nli{} characterizes the peakedness of the projections onto the diagonal of the \suscept{} matrices (e.g. \subfigref{cells_suscept}{G} at \fbase{}). It assumes high values when the \fbase{} peak in the projected diagonal is pronounced relative to the median of the diagonal and is small when there is no distinct peak. The P-unit population has higher \nli{} values up to three that depend weakly on the CV of the ISI distribution under baseline condition. Cells with lower baseline CVs have the tendency to exhibit a stronger nonlinearity than those that have high CVs (Pearson's $r=-0.16$, $p<0.01$). The two example P-units shown before (\figrefb{cells_suscept} and \figrefb{cells_suscept_high_CV}) are highlighted with dark circles in \subfigrefb{data_overview_mod}{A, C}. The stimulus strength plays an important role. Several of the recorded neurons contribute with two dots to the data as their responses to the same RAM stimulus but with different contrasts were recorded. Higher stimulus contrasts lead to a stronger drive and thus stronger response modulations (see color code bar in \subfigref{data_overview_mod}{A}, see methods). Since P-units are heterogeneous in their susceptibility to the stimulus\citealp{Grewe2017}, their responses to the same stimulus intensity vary a lot. When replotting the \nli{} against the response modulation (\subfigrefb{data_overview_mod}{C}) a negative correlation is observed showing that cells that are strongly driven by the stimulus show less nonlinearity while those that are only weakly driven show higher nonlinearities. Whether or not a cell responds nonlinearly thus depends on both, the baseline CV (i.e. the internal noise) and the response strength.
|
||||
The nonlinear effects shown for single cell examples above are supported by the analysis of the pool of 222 P-units and 45 ampullary afferents recorded in 71 specimen. To compare across cells we expressed the second-order susceptibility as the nonlinearity index \nli{}, see \eqnref{eq:nli_equation}. The \nli{} characterizes the peakedness of the projections onto the diagonal of the \suscept{} matrices (e.g. \subfigref{cells_suscept}{G} at \fbase{}). It assumes high values when the \fbase{} peak in the projected diagonal is pronounced relative to the median of the diagonal and is small when there is no distinct peak. The P-unit population \nli{} values depend weakly on the CV of the ISI distribution under baseline condition. Cells with lower baseline CVs have the tendency to exhibit a stronger nonlinearity than those that have high CVs (Pearson's $r=-0.16$, $p<0.01$). The two example P-units shown before (\figrefb{cells_suscept} and \figrefb{cells_suscept_high_CV}) are highlighted with dark circles in \subfigrefb{data_overview_mod}{A, C}. The stimulus strength plays an important role. Several of the recorded neurons contribute with two dots to the data as their responses to the same RAM stimulus but with different contrasts were recorded. Higher stimulus contrasts lead to a stronger drive and thus stronger response modulations (see color code bar in \subfigref{data_overview_mod}{A}, see methods). Since P-units are heterogeneous in their susceptibility to the stimulus\citealp{Grewe2017}, their responses to the same stimulus intensity vary a lot. When replotting the \nli{} against the response modulation (\subfigrefb{data_overview_mod}{C}) a negative correlation is observed showing that cells that are strongly driven by the stimulus show less nonlinearity while those that are only weakly driven show higher nonlinearities. Whether or not a cell responds nonlinearly thus depends on both, the baseline CV (i.e. the internal noise) and the response strength.
|
||||
%(Pearson's $r=-0.35$, $p<0.001$)
|
||||
%In a P-unit population where each cell is represented not by several contrasts but by the lowest recorded contrast, \nli{} significantly correlates with the CV during baseline ($r=-0.17$, $p=0.01$), the response modulation ($r=-0.35$, $p<0.001$) and \fbase{} ($r=-0.32$, $p<0.001$).%, $\n{}=221$*, $\n{}=221$******, $\n{}=221$
|
||||
|
||||
@ -548,6 +548,8 @@ In this chapter, the nonlinearity of P-units and ampullary cells was retrieved b
|
||||
Here it was demonstrated that the second-order susceptibility for the two RAM noise input frequencies \fone{} and \ftwo{} can approximate a three-fish setting, where the driving force for the P-unit are two beats with frequencies \bone{} and \btwo{}. This was confirmed by a low-CV P-unit, where nonlinearities in the P-unit response occurred at the sum and difference of the beat frequencies for pure sine-wave stimulation (\figrefb{motivation}). In this P-unit the nonlinearity appeared in a three-wave setting with \bone{} being close to \fbase{}, corresponding to a frequency combination on the vertical line at \foneb{} in the second-order susceptibility (\subfigrefb{model_full}{B}). This implies that even if only the diagonal structure can be accessed with noise stimulation in the second-order susceptibility in an experiment (\subfigrefb{model_full}{A}), it can be taken as an indicator that the whole nonlinear structure should be present during pure sine-wave stimulation in the same cell. With this RAM stimulation was demonstrated to be an effective method to scan the three-fish or two-beat plane and estimate the whole theoretically predicted nonlinear structure in experimentally recorded cells.
|
||||
|
||||
|
||||
%\notejg{a problem, that we use a new noise for each trial?}\notesr{Using a new noise for each trial, is the way this method is defined. When using the same noise for one million repetiotions we will not see the triangular shape at any time. I tried this and Benjamin confirmed that this would be not possible.}
|
||||
|
||||
%the power spectrum of the firing rate
|
||||
%The existence of the extended nonlinearity structure (\figrefb{model_full}) was
|
||||
%\bsum{} and \bdiff{}
|
||||
@ -727,13 +729,11 @@ The second-order susceptibility was calculated by dividing the higher-order cros
|
||||
The absolute value of a second-order susceptibility matrix is visualized in \figrefb{model_full}. There the upper right and the lower left quadrants characterize the nonlinearity in the response $r(t)$ at the sum frequency of the two input frequencies. The lower right and upper left quadrants characterize the nonlinearity in the response $r(t)$ at the difference of the input frequencies.
|
||||
|
||||
\paragraph{Nonlinearity index}\label{projected_method}
|
||||
\notejg{use of $f_{Base}$ or $f_{base}$ or $f_0$ should be consistent throughout the manuscript.}
|
||||
We expect to see nonlinear susceptibility when $\omega_1 + \omega_2 = \fbase{}$. To characterize this we calculated the nonlinearity index (NLI) as
|
||||
\begin{equation}
|
||||
\label{eq:nli_equation}
|
||||
NLI(\fbase{}) = \frac{\max_{\fbase{}-5\,\rm{Hz} \leq f \leq \fbase{}+5\,\rm{Hz}} D(f)}{\mathrm{med}(D(f))}
|
||||
\end{equation}
|
||||
\notejg{sollte es $D(\omega)$ sein?}
|
||||
For this index, the second-order susceptibility matrix was projected onto the diagonal $D(f)$, by taking the mean of the anti-diagonals. The peakedness at the frequency $\fbase{}$ in $D(f)$ was quantified by finding the maximum of $D(f)$ in the range $\fbase{} \pm 5$\,Hz (\subfigrefb{cells_suscept}{G}) and dividing it by the median of $D(f)$.
|
||||
|
||||
If the same frozen noise was recorded several times in a cell, each noise repetition resulted in a separate second-order susceptibility matrix. The mean of the corresponding \nli{} values was used for the population statistics in \figref{data_overview_mod}.
|
||||
@ -806,9 +806,9 @@ The model's ODEs were integrated by the Euler forward method with a time-step of
|
||||
The eight free parameters of the P-unit model $\beta$, $\tau_m$, $\mu$, $D$, $\tau_A$, $\Delta_A$, $\tau_d$, and $t_{ref}$, were fitted to both the baseline activity (baseline firing rate, CV of ISIs, serial correlation of ISIs at lag one, and vector strength of spike coupling to EOD) and the responses to step-like increases and decreases in EOD amplitude (onset-state and steady-state responses, effective adaptation time constant). For each simulation, the start parameters $A$, $V_{d}$ and $V_{m}$ were drawn from a random starting value distribution, estimated from a 100\,s baseline simulation after an initial 100\,s of simulation that was discarded as a transient.
|
||||
|
||||
\subsection{Stimuli for the model}
|
||||
The model neurons were driven with similar stimuli as the real neurons in the original experiments. To mimic the interaction with one or two foreign animals the receiving fish's EOD (eq.\,\ref{eq:eod}) was normalized to an amplitude of one and the respective EODs of a second or third fish were added.
|
||||
The model neurons were driven with similar stimuli as the real neurons in the original experiments. To mimic the interaction with one or two foreign animals the receiving fish's EOD (\eqnref{eq:eod}) was normalized to an amplitude of one and the respective EODs of a second or third fish were added.%\eqnref{ eq.\,\ref{eq:eod}
|
||||
|
||||
The random amplitude modulation (RAM) input to the model was created by drawing random amplitude and phases from Gaussian distributions for each frequency component in the range $0-300$ Hz. An inverse Fourier transform was applied to get the final amplitude RAM time-course. The input to the model was then
|
||||
The random amplitude modulation (RAM) input to the model was created by drawing random amplitude and phases from Gaussian distributions for each frequency component in the range 0--300 Hz. An inverse Fourier transform was applied to get the final amplitude RAM time-course. The input to the model was then
|
||||
\begin{equation}
|
||||
\label{eq:ram_equation}
|
||||
x(t) = (1+ RAM(t)) \cdot \cos(2\pi f_{EOD} t)
|
||||
@ -821,34 +821,37 @@ From each simulation run, the first second was discarded and the analysis was ba
|
||||
% The second-order susceptibility in the model was calculated with \eqnref{eq:susceptibility}, resulting in matrices as in \figrefb{model_and_data} and \figrefb{model_full}. For this, the model neuron was presented the input $x(t)$ for 2\,s, with the first second being dismissed as the transient. The second-order susceptibility calculation was performed on the last second, resulting in a frequency resolution of 1\,Hz.
|
||||
|
||||
\subsection{Model noise split into a noise and a stimulus component}\label{intrinsicsplit_methods}
|
||||
According to the Novikov-Furutsu Theorem \citealp{Novikov1965, Furutsu1963} the total noise of a LIF ($\xi$) model can be split up into several independent noise processes with the same correlation function. Here we split the internal noise into two parts: (i) One part is treated as a driving input signal ($\xi_{signal} = c_{signal} \cdot \xi$) and used to calculate the cross-spectra \eqnref{eq:crosshigh} and (ii) the remaining noise ($\xi_{noise} = (1-c_{signal})\cdot\xi$) that is treated as pure noise. In this way the effective signal-to-noise ratio can be increased while maintaining the total noise in the system. In our case the model has a carrier (the fish's self-generated EOD) and we thus want to drive the model with an amplitude modulation stimulus.
|
||||
According to the Novikov-Furutsu Theorem \citealp{Novikov1965, Furutsu1963} the total noise of a LIF model ($\xi$) can be split up into several independent noise processes with the same correlation function. Here we split the internal noise into two parts: (i) One part is treated as a driving input signal $\xi_{signal} = \sqrt{\rho \, 2D \,c_{signal}} \cdot \xi(t) $ and used to calculate the cross-spectra in \eqnref{eq:crosshigh} and (ii) the remaining noise $\xi_{noise} = \sqrt{2D \, c_{noise}} \cdot \xi(t)$ that is treated as pure noise. In this way the effective signal-to-noise ratio can be increased while maintaining the total noise in the system. $\rho$ a scaling factor that compensates (see below) for the signal transformations the amplitude modulation stimulus undergoes in the model, i.e. the threshold and the dendritic lowpass. In our case the model has a carrier (the fish's self-generated EOD) and we thus want to drive the model with an amplitude modulation stimulus
|
||||
|
||||
%(1-c_{signal})\cdot\xi$c_{noise} = 1-c_{signal}$
|
||||
%c_{signal} \cdot \xi
|
||||
\begin{equation}
|
||||
\label{eq:ram_split}
|
||||
x(t) = (1+ \sqrt{\rho \, 2D \,c_{signal}} \cdot \xi(t)) \cdot \cos(2\pi f_{EOD} t)
|
||||
x(t) = (1+ \xi_{signal}) \cdot \cos(2\pi f_{EOD} t)
|
||||
\end{equation}
|
||||
with $\rho$ a scaling factor that compensates (see below) for the signal transformations the amplitude modulation stimulus undergoes in the model, i.e. the threshold and the dendritic lowpass.
|
||||
|
||||
\begin{equation}
|
||||
\label{eq:Noise_split_intrinsic_dendrite}
|
||||
\tau_{d} \frac{d V_{d}}{d t} = -V_{d}+ \lfloor x(t) \rfloor_{0}
|
||||
\end{equation}
|
||||
|
||||
|
||||
\begin{equation}
|
||||
\label{eq:Noise_split_intrinsic}
|
||||
\tau_{m} \frac{d V_{m}}{d t} = - V_{m} + \mu + \alpha V_{d} - A + \xi_{noise}
|
||||
\end{equation}
|
||||
% das stimmt so, das c kommt unter die Wurzel!
|
||||
|
||||
%\begin{equation}
|
||||
% \label{Noise_split_intrinsic}
|
||||
% V_{m_{i+1}} = V_{m_i} + \left(-V_{m_i} + \mu + \alpha V_{d_i} - A_i + \sqrt{\frac{2D c_{noise}}{\Delta t}}\mathcal{N}(0,\,1)_i\right) \frac{\Delta t}{\tau_m}
|
||||
%\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
\label{eq:Noise_split_intrinsic}
|
||||
\tau_{m} \frac{d V_{m}}{d t} = - V_{m} + \mu + \alpha V_{d} - A + \sqrt{2D \, c_{noise}}\,\xi(t)
|
||||
\end{equation}
|
||||
% das stimmt so, das c kommt unter die Wurzel!
|
||||
|
||||
A big portion of the total noise was assigned to the signal component ($c_{signal} = 0.9$) and the remaining part to the noise component ($c_{noise} = 0.1$, \subfigrefb{flowchart}\,\panel[iii]{D}). For the application of the Novikov-Furutsu Theorem \citealp{Novikov1965, Furutsu1963} it is critical that both components add up to the initial 100\,$\%$ of the total noise. This is easily achieved in a model without a carrier if the condition $c_{signal}+c_{noise}=1$ is satisfied. The situation here is more complicated. To compensate for the transformations the signal undergoes before it enters the LIF core, $\xi_{signal}(t)$ was scaled up by the factor $\rho$ (\eqnref{eq:ram_split}, red in \subfigrefb{flowchart}\,\panel[i]{D}). $\rho$ was found by bisecting the space of possible $\rho$ scaling factors by minimizing the error between the baseline CV (only carrier) and the CV during stimulation with noise split.
|
||||
|
||||
A big portion of the total noise was assigned to the signal component ($c_{signal} = 0.9$) and the remaining part to the noise component ($c_{noise} = 0.1$, \subfigrefb{flowchart}\,\panel[iii]{C}). For the application of the Novikov-Furutsu Theorem \citealp{Novikov1965, Furutsu1963} it is critical that both components add up to the initial 100\,$\%$ of the total noise. This is easily achieved in a model without a carrier if the condition $c_{signal}+c_{noise}=1$ is satisfied. The situation here is more complicated. To compensate for the transformations the signal undergoes before it enters the LIF core, $\xi_{signal}(t)$ was scaled up by the factor $\rho$ (\eqnref{eq:ram_split}, red in \subfigrefb{flowchart}\,\panel[iii]{A}). $\rho$ was found by bisecting the space of possible $\rho$ scaling factors by minimizing the error between the baseline CV (only carrier) and the CV during stimulation with noise split.
|
||||
|
||||
|
||||
\notejg{Etwas kurz, die Tabelle. Oder benutzen wir hier tatsaechlich nur die zwei Modelle?}
|
||||
% See section \ref{lifmethods} for model and parameter description.
|
||||
\begin{table*}[hp!]
|
||||
\caption{\label{modelparams} Model parameters of LIF models, fitted to 2 electrophysiologically recorded P-units (\citealp{Ott2020}).}
|
||||
@ -900,7 +903,7 @@ A big portion of the total noise was assigned to the signal component ($c_{signa
|
||||
\begin{figure*}[hp]%hp!
|
||||
\includegraphics{cells_suscept_high_CV}
|
||||
\caption{\label{cells_suscept_high_CV} Response of experimentally measured P-units to RAM stimuli. Light purple -- low RAM contrast. Dark purple -- high RAM contrast. Noisy high-CV P-Unit. \figitem{A} Interspike intervals (ISI) distribution during baseline. \figitem{B} Baseline power spectrum of the firing rate. \figitem{C} Top: EOD carrier (gray) with RAM (red). Middle: Spike trains in response to a low RAM contrast. Bottom: Spike trains in response to a high RAM contrast. \figitem{D} First-order susceptibility (see \eqnref{linearencoding_methods}). \figitem{E} Absolute value of the second-order susceptibility, \eqnref{eq:susceptibility}, for the low RAM contrast.
|
||||
Pink lines -- edges of the structure when \fone, \ftwo{} or \fsum{} are equal to \fbase{}. Orange line -- part of the structure when \fsum{} is equal to half \feod. \figitem{F} Absolute value of the second-order susceptibility for the higher RAM contrast. \figitem{G} Projected diagonals, calculated as the mean of the anti-diagonals of the matrices in \panel{E--F}. Gray dots: \fbase{}. Gray area: $\fbase{} \pm 5$\,Hz. Dashed lines: Medians of the projected diagonals.
|
||||
Pink lines -- edges of the structure when \fone, \ftwo{} or \fsum{} are equal to \fbase{}. \figitem{F} Absolute value of the second-order susceptibility for the higher RAM contrast. \figitem{G} Projected diagonals, calculated as the mean of the anti-diagonals of the matrices in \panel{E--F}. Gray dots: \fbase{}. Dashed lines: Medians of the projected diagonals.
|
||||
}
|
||||
\end{figure*}
|
||||
|
||||
|
@ -4257,7 +4257,7 @@ def plt_psds_in_one_squares_next(aa, add, amp, amps_defined, axds, axes, axis, a
|
||||
power_type=False, peaks_extra=False, zorder=1, alpha=1, extra_input=False, fr=None,
|
||||
title_square='', fr_diag = None, nr = 1, line_length=1 / 4, text_scalebar=False, xpos_xlabel=-0.2,
|
||||
add_nonlin_title=None,amp_give = True, color='grey', log_transfer=False, axo2=None, axd2=None,
|
||||
axi=None,eod_metrice = True, iterate_var=[0, 1], normval = 1):
|
||||
axi=None,eod_metrice = True, color_same = True, iterate_var=[0, 1], normval = 1):
|
||||
# if aa == 0:
|
||||
if not fr_diag:
|
||||
fr_diag = fr
|
||||
@ -4293,7 +4293,7 @@ def plt_psds_in_one_squares_next(aa, add, amp, amps_defined, axds, axes, axis, a
|
||||
# das ist jetzt die default version
|
||||
# plot the diagonal
|
||||
|
||||
xmax, xmin, diagonals_prj_l = plt_diagonal(alpha, axd2, color, 'db', eod_fr, fr_diag, mat, peaks_extra, xlim, zorder, normval = normval)
|
||||
xmax, xmin, diagonals_prj_l = plt_diagonal(alpha, axd2, color, 'db', eod_fr, fr_diag, mat, peaks_extra, xlim, zorder, color_same = color_same,normval = normval)
|
||||
|
||||
# print('transfer function now')
|
||||
|
||||
@ -5042,7 +5042,7 @@ def plt_cellbody_eigen(grid1, frame, amps_desired, save_names, cells_plot, cell_
|
||||
def plt_cellbody_singlecell(grid1, frame, amps_desired, save_names, cells_plot, cell_type_type, plus=1, ax3=[], xlim=[],
|
||||
burst_corr='_burst_corr_individual', RAM=True,isi_delta = None,
|
||||
titles=['Low CV P-unit', 'High CV P-unit', 'Ampullary cell'],
|
||||
peaks_extra=[False, False, False], eod_metrice = True, tags_individual = False, xlim_p = [0,1.1], add_texts = [0.25,0], scale_val = False):
|
||||
peaks_extra=[False, False, False], color_same = True, fr_name = '$f_{Base}$', eod_metrice = True, tags_individual = False, xlim_p = [0,1.1], add_texts = [0.25,0], scale_val = False):
|
||||
colors = colors_overview()
|
||||
# axos = []
|
||||
axis = []
|
||||
@ -5140,7 +5140,7 @@ def plt_cellbody_singlecell(grid1, frame, amps_desired, save_names, cells_plot,
|
||||
eod_fr, file_name, grid_lower, ims, load_name, save_names, stack_file, wss, xlim,
|
||||
power_type=power_type,fr = fr, peaks_extra=peaks_extra[c], zorder=zorders[aa], alpha=alpha,
|
||||
extra_input=extra_input, xpos_xlabel=xpos_xlabel, add_nonlin_title=add_nonlin_title,
|
||||
color=colors[cell_type], axo2=axo2, axd2=axd2, axi=axi, iterate_var=amps_defined, normval = normval, eod_metrice = eod_metrice)
|
||||
color=colors[cell_type], color_same = color_same, axo2=axo2, axd2=axd2, axi=axi, iterate_var=amps_defined, normval = normval, eod_metrice = eod_metrice)
|
||||
diag_vals.append(np.median(diagonals_prj_l))
|
||||
mats.append(mat)
|
||||
else:
|
||||
@ -5270,7 +5270,7 @@ def plt_cellbody_singlecell(grid1, frame, amps_desired, save_names, cells_plot,
|
||||
ax_p = plt.subplot(grid_p[1])
|
||||
|
||||
ax_isi = base_cells_susept(ax_isi, ax_p, c, cell, cell_type, cells_plot, colors, eod_fr, frame,
|
||||
isi, right, spikes_base, stack,xlim_p,add_texts =add_texts, titles = titles, peaks = True)
|
||||
isi, right, spikes_base, stack,xlim_p,add_texts =add_texts, titles = titles, peaks = True, fr_name = fr_name)
|
||||
|
||||
if isi_delta:
|
||||
ax_isi.set_xticks_delta(isi_delta)
|
||||
@ -6034,7 +6034,7 @@ def plt_psds_all(axd, axo, aa, c, cells_plot, mat, stack_final, stack_osf,
|
||||
return axd, axo, axo
|
||||
|
||||
|
||||
def plt_diagonal(alpha, axd, color, db, eod_fr, fr, mat, peaks_extra, xlim, zorder, normval = 1):
|
||||
def plt_diagonal(alpha, axd, color, db, eod_fr, fr, mat, peaks_extra, xlim, zorder, normval = 1, color_same = True):
|
||||
diag, diagonals_prj_l = get_mat_diagonals(np.array(mat))
|
||||
axis_d = axis_projection(mat, axis='')
|
||||
if normval != 1:
|
||||
@ -6044,10 +6044,17 @@ def plt_diagonal(alpha, axd, color, db, eod_fr, fr, mat, peaks_extra, xlim, zord
|
||||
axd.plot(axis_d / normval, diagonals_prj_l, color=color, alpha=alpha-0.05, zorder=zorder)
|
||||
if peaks_extra:
|
||||
#try:
|
||||
axd.axhline(np.median(diagonals_prj_l), linewidth=0.75, linestyle='--', color=color,
|
||||
alpha=alpha, zorder = zorder +1)#0.45
|
||||
plt_peaks_several(['fr'], [fr / normval], [diagonals_prj_l], 0, axd, diagonals_prj_l, ['grey'], axis_d / normval,
|
||||
ms=5, zorder = zorder+1)
|
||||
if not color_same:
|
||||
color = 'black'
|
||||
color_dot = 'black'
|
||||
alpha_dot = [alpha]
|
||||
else:
|
||||
color_dot = 'grey'
|
||||
alpha_dot = [1]
|
||||
axd.axhline(np.median(diagonals_prj_l), linewidth=0.9, linestyle='--', color=color,
|
||||
alpha=alpha, zorder = zorder +1)#0.45#0.75
|
||||
plt_peaks_several(['fr'], [fr / normval], [diagonals_prj_l], 0, axd, diagonals_prj_l, [color_dot], axis_d / normval,
|
||||
ms=5, zorder = zorder+1, alphas = alpha_dot)
|
||||
#except:
|
||||
# print('something')
|
||||
# embed()
|
||||
@ -7047,7 +7054,7 @@ def cells_eigen(amp_desired=[0.5, 1, 5], xlim=[0, 1.1], cell_class=' Ampullary',
|
||||
save_visualization(pdf=True)
|
||||
|
||||
|
||||
def ampullary_punit(eod_metrice = True, amp_desired = [5,20], isi_delta = None, xlim_p = [0, 1.1], tags_individual = False, xlim=[],add_texts = [0.25,0], cells_plot2=[], RAM=True,scale_val = False,
|
||||
def ampullary_punit(eod_metrice = True,color_same = True, fr_name = '$f_{Base}$', amp_desired = [5,20], isi_delta = None, xlim_p = [0, 1.1], tags_individual = False, xlim=[],add_texts = [0.25,0], cells_plot2=[], RAM=True,scale_val = False,
|
||||
titles=['Low-CV P-unit,', 'High-CV P-unit', 'Ampullary cell,'], peaks_extra=[True, True, True]):#[0, 1.1]
|
||||
plot_style()
|
||||
|
||||
@ -7088,7 +7095,7 @@ def ampullary_punit(eod_metrice = True, amp_desired = [5,20], isi_delta = None,
|
||||
grid1 = big_grid_susept_pics(cells_plot2, bottom=0.065)
|
||||
|
||||
plt_cellbody_singlecell(grid1, frame, amps_desired, save_names, cells_plot2, cell_type_type, xlim=xlim, plus=1,
|
||||
burst_corr='_burst_corr_individual', eod_metrice = eod_metrice, isi_delta = isi_delta, tags_individual = tags_individual, RAM=RAM,add_texts = add_texts, titles=titles, xlim_p = xlim_p, peaks_extra=peaks_extra,scale_val = scale_val, )
|
||||
burst_corr='_burst_corr_individual',color_same = color_same, fr_name = fr_name, eod_metrice = eod_metrice, isi_delta = isi_delta, tags_individual = tags_individual, RAM=RAM,add_texts = add_texts, titles=titles, xlim_p = xlim_p, peaks_extra=peaks_extra,scale_val = scale_val, )
|
||||
|
||||
# plt.show()
|
||||
save_visualization(pdf=True, individual_tag = cells_plot2[0])
|
||||
@ -10342,7 +10349,7 @@ def plt_traces_ROC(array_chosen, arrays, ax00, colors, datapoints, group_mean, j
|
||||
|
||||
|
||||
def save_arrays_susept(data_dir, cell, c, b, chirps, devs, extract, group_mean, mean_type, plot_group, rocextra,
|
||||
sorted_on='LocalReconst0.2Norm'):
|
||||
sorted_on='LocalReconst0.2Norm', dev_desired = '1'):
|
||||
# sorted_on = 'LocalReconst' # 'EodLocSynch'
|
||||
|
||||
version_comp, subfolder, mod_name_slash, mod_name, subfolder_path = find_code_vs_not()
|
||||
@ -10365,7 +10372,7 @@ def save_arrays_susept(data_dir, cell, c, b, chirps, devs, extract, group_mean,
|
||||
printing = True
|
||||
t3 = time.time()
|
||||
|
||||
dev_desired = '1'
|
||||
|
||||
spikes_pure, fish_number_base, chirp, fish_cuts, time_array, fish_number, smoothened2, smoothed05, eod_mt, eod_interp, effective_duration, cut, devname, frame = cut_spikes_and_eod_three(
|
||||
group_mean, b, extract, chirps=chirps, emb=False,
|
||||
mean_type=mean_type, sorted_on=sorted_on,
|
||||
|
Loading…
Reference in New Issue
Block a user