Made fig_invariance_cross_species_thresh__appendix.pdf.

This commit is contained in:
j-hartling
2026-04-30 19:34:37 +02:00
parent ca23d42f5d
commit 9c5811d97c
20 changed files with 820 additions and 103 deletions

View File

@@ -5,11 +5,12 @@ from itertools import product
from thunderhopper.filetools import search_files
from thunderhopper.modeltools import load_data
from thunderhopper.filtertools import find_kern_specs
from misc_functions import get_saturation
from misc_functions import get_saturation, reduce_kernel_set, exclude_zero_scale,\
divide_by_zero, x_dist, y_dist
from color_functions import load_colors
from plot_functions import hide_axis, reorder_by_sd, ylimits, super_xlabel,\
ylabel, title_subplot, plot_line, time_bar,\
assign_colors, letter_subplot, letter_subplots
from plot_functions import hide_axis, reorder_by_sd, ylimits, super_xlabel, ylabel, title_subplot,\
plot_line, strip_zeros, time_bar, assign_colors,\
letter_subplot, letter_subplots, hide_ticks
from IPython import embed
def plot_snippets(axes, time, snippets, ymin=None, ymax=None, **kwargs):
@@ -17,25 +18,16 @@ def plot_snippets(axes, time, snippets, ymin=None, ymax=None, **kwargs):
handles = []
for i, ax in enumerate(axes):
handles.append(plot_line(ax, time, snippets[:, ..., i],
ymin=ymin, ymax=ymax, **kwargs))
ymin=ymin, ymax=ymax, **kwargs))
return handles
def plot_curves(ax, scales, measures, fill_kwargs={}, **kwargs):
def plot_curves(ax, scales, measures, **kwargs):
if measures.ndim == 1:
ax.plot(scales, measures, **kwargs)[0]
return measures
median_measure = np.median(measures, axis=1)
spread_measure = [np.percentile(measures, 25, axis=1),
np.percentile(measures, 75, axis=1)]
ax.plot(scales, median_measure, **kwargs)[0]
ax.fill_between(scales, *spread_measure, **fill_kwargs)
return median_measure
def reduce_kernel_set(data, inds, keyword, stages=['conv', 'feat']):
for stage in stages:
key = f'{keyword}_{stage}'
data[key] = data[key][:, inds, ...]
return data
handles = ax.plot(scales, measures, **kwargs)
return handles, measures
median_measure = np.nanmedian(measures, axis=1)
line_handle = ax.plot(scales, median_measure, **kwargs)[0]
return line_handle, median_measure
def crop_noise_snippets(snippets, nin, nout, stages=['filt', 'env', 'log', 'inv', 'conv', 'feat']):
half_offset = int((nin - nout) / 2)
@@ -64,19 +56,12 @@ save_path = '../figures/fig_invariance_field.pdf'
offset_distance = 10 # centimeter
# SUBSET SETTINGS:
types = np.array([1, -1, 2, -2, 3, -3, 4, -4, 5, -5, 6, -6, 7, -7, 8, -8, 9, -9, 10, -10])
sigmas = np.array([0.001, 0.002, 0.004, 0.008, 0.016, 0.032])
types = np.array([1, -1, 2, -2, 3, -3, 4, -4])
# types = [1, -1, 2, -2, 3, -3, 4, -4, 5, -5, 6, -6, 7, -7, 8, -8, 9, -9, 10, -10]
sigmas = np.array([0.001, 0.002, 0.004, 0.008, 0.016])
# sigmas = [0.001, 0.002, 0.004, 0.008, 0.016, 0.032]
kernels = np.array([
[1, 0.002],
[-1, 0.002],
[2, 0.004],
[-2, 0.004],
[3, 0.032],
[-3, 0.032]
])
kernels = None
reduce_kernels = any(var is not None for var in [kernels, types, sigmas])
# GRAPH SETTINGS:
fig_kwargs = dict(