def build_locally_sparse_noise(lsna, configs, output_dir, on): prefix = "locally_sparse_noise_" + ("on" if on else "off") csids = lsna.data_set.get_cell_specimen_ids() for file_name, csid, i in build_cell_plots(csids, prefix, 1.754, [configs['large'], configs['small']], output_dir): lsna.open_pincushion_plot(on, cell_specimen_id=csid, cell_index=i) oplots.finalize_no_axes()
def test_pref_dir_drifting_gratings(new_file, drifting_gratings, shape=[500, 500]): with oplots.figure_in_px(shape[1], shape[0], new_file) as fig: drifting_gratings().plot_preferred_direction() oplots.finalize_no_axes() assert_images_match(new_file, os.path.join(TEST_DATA_DIR, new_file), shape)
def build_eye_tracking_plots(data_set, configs, output_dir): try: pupil_times, xy_deg = data_set.get_pupil_location() xy_deg = xy_deg[np.isfinite(xy_deg).any(axis=1)] if len(xy_deg) == 0: logging.debug("Eye tracking had no finite data, should have been " "failed") return elif len(xy_deg) < 3: c = np.ones(len(xy_deg)) # not enough points for KDE, should probably be failed else: c = gaussian_kde(xy_deg.T)(xy_deg.T) for fn in build_plots("eye_tracking_gaze_axes", 1.0, [configs['large'], configs['svg']], output_dir): oplots.plot_pupil_location(xy_deg, c=c, include_labels=True) oplots.finalize_with_axes() for fn in build_plots("eye_tracking_gaze", 1.0, [configs['small']], output_dir): oplots.plot_pupil_location(xy_deg, c=c, include_labels=False) oplots.finalize_no_axes() except NoEyeTrackingException: logging.debug("No eye tracking found.")
def test_star_plot(new_file, drifting_gratings, cell_specimen_id, shape=[500, 500]): with oplots.figure_in_px(shape[1], shape[0], new_file) as fig: drifting_gratings().open_star_plot(cell_specimen_id) oplots.finalize_no_axes() assert_images_match(new_file, os.path.join(TEST_DATA_DIR, new_file), shape)
def test_track_plot(new_file, natural_movie, cell_specimen_id, shape=[500, 500]): with oplots.figure_in_px(shape[1], shape[0], new_file) as fig: natural_movie().open_track_plot(cell_specimen_id) oplots.finalize_no_axes() assert_images_match(new_file, os.path.join(TEST_DATA_DIR, new_file), shape)
def test_pincushion_plot(new_file, locally_sparse_noise, on, cell_specimen_id, shape=[500, 877]): with oplots.figure_in_px(shape[1], shape[0], new_file) as fig: locally_sparse_noise().open_pincushion_plot(on, cell_specimen_id) oplots.finalize_no_axes() assert_images_match(new_file, os.path.join(TEST_DATA_DIR, new_file), shape)
def build_natural_scenes(nsa, configs, output_dir): for fn in build_plots("natural_scenes_axes_time_to_peak", 1.0, [configs['large'], configs['svg']], output_dir): nsa.plot_time_to_peak() oplots.finalize_with_axes() for fn in build_plots("natural_scenes_time_to_peak", 1.0, [configs['small']], output_dir): nsa.plot_time_to_peak() oplots.finalize_no_labels() csids = nsa.data_set.get_cell_specimen_ids() for file_name, csid, i in build_cell_plots(csids, "natural_scenes", 1.0, configs.values(), output_dir): nsa.open_corona_plot(csid, cell_index=i) oplots.finalize_no_axes()
def build_speed_tuning(analysis, configs, output_dir): csids = analysis.data_set.get_cell_specimen_ids() for fn in build_plots("running_speed", 1.0, [configs['large'], configs['svg']], output_dir): analysis.plot_running_speed_histogram() oplots.finalize_with_axes() for fn in build_plots("running_speed", 1.0, [configs['small']], output_dir): analysis.plot_running_speed_histogram() oplots.finalize_no_labels() for fn, csid, i in build_cell_plots(csids, "speed_tuning", 1.0, [configs['large'], configs['svg']], output_dir): analysis.plot_speed_tuning(csid, cell_index=i) oplots.finalize_with_axes() for fn, csid, i in build_cell_plots(csids, "speed_tuning", 1.0, [configs['small']], output_dir): analysis.plot_speed_tuning(csid, cell_index=i) oplots.finalize_no_axes()
def build_static_gratings(sga, configs, output_dir): for fn in build_plots("static_gratings_axes_time_to_peak", 1.0, [configs['large'], configs['svg']], output_dir): sga.plot_time_to_peak() oplots.finalize_with_axes() for fn in build_plots("static_gratings_time_to_peak", 1.0, [configs['small']], output_dir): sga.plot_time_to_peak() oplots.finalize_no_labels() for fn in build_plots("static_gratings_axes_pref_ori", 1.5, [configs['large'], configs['svg']], output_dir): sga.plot_preferred_orientation(include_labels=True) oplots.finalize_no_axes() for fn in build_plots("static_gratings_pref_ori", 1.5, [configs['small']], output_dir): sga.plot_preferred_orientation(include_labels=False) oplots.finalize_no_axes() for fn in build_plots("static_gratings_axes_osi", 1.0, [configs['large'], configs['svg']], output_dir): sga.plot_orientation_selectivity() oplots.finalize_with_axes() for fn in build_plots("static_gratings_osi", 1.0, [configs['small']], output_dir): sga.plot_orientation_selectivity() oplots.finalize_no_labels() for fn in build_plots("static_gratings_axes_pref_sf", 1.0, [configs['large'], configs['svg']], output_dir): sga.plot_preferred_spatial_frequency() oplots.finalize_with_axes() for fn in build_plots("static_gratings_pref_sf", 1.0, [configs['small']], output_dir): sga.plot_preferred_spatial_frequency() oplots.finalize_no_labels() csids = sga.data_set.get_cell_specimen_ids() for file_name, csid, i in build_cell_plots(csids, "static_gratings_all", 2.0, configs.values(), output_dir): sga.open_fan_plot(csid, include_labels=False, cell_index=i) oplots.finalize_no_axes()
def build_drifting_gratings(dga, configs, output_dir): for fn in build_plots("drifting_gratings_axes_pref_dir", 1.0, [configs['large'], configs['svg']], output_dir): dga.plot_preferred_direction(include_labels=True) oplots.finalize_no_axes() for fn in build_plots("drifting_gratings_pref_dir", 1.0, [configs['small']], output_dir): dga.plot_preferred_direction(include_labels=False) oplots.finalize_no_axes() for fn in build_plots("drifting_gratings_axes_pref_tf", 1.0, [configs['large'], configs['svg']], output_dir): dga.plot_preferred_temporal_frequency() oplots.finalize_with_axes() for fn in build_plots("drifting_gratings_pref_tf", 1.0, [configs['small']], output_dir): dga.plot_preferred_temporal_frequency() oplots.finalize_no_labels() for fn in build_plots("drifting_gratings_axes_dsi", 1.0, [configs['large'], configs['svg']], output_dir): dga.plot_direction_selectivity() oplots.finalize_with_axes() for fn in build_plots("drifting_gratings_dsi", 1.0, [configs['small']], output_dir): dga.plot_direction_selectivity() oplots.finalize_no_labels() for fn in build_plots("drifting_gratings_axes_osi", 1.0, [configs['large'], configs['svg']], output_dir): dga.plot_orientation_selectivity() oplots.finalize_with_axes() for fn in build_plots("drifting_gratings_osi", 1.0, [configs['small']], output_dir): dga.plot_orientation_selectivity() oplots.finalize_no_labels() csids = dga.data_set.get_cell_specimen_ids() for fn, csid, i in build_cell_plots(csids, "drifting_gratings", 1.0, configs.values(), output_dir): dga.open_star_plot(csid, include_labels=False, cell_index=i) oplots.finalize_no_axes()
def test_pincushion_plot(new_file, locally_sparse_noise, on, cell_specimen_id, shape=[500,877]): with oplots.figure_in_px(shape[1], shape[0], new_file) as fig: locally_sparse_noise().open_pincushion_plot(on, cell_specimen_id) oplots.finalize_no_axes() assert_images_match(new_file, os.path.join(TEST_DATA_DIR, new_file), shape)
def test_star_plot(new_file, drifting_gratings, cell_specimen_id, shape=[500,500]): with oplots.figure_in_px(shape[1], shape[0], new_file) as fig: drifting_gratings().open_star_plot(cell_specimen_id) oplots.finalize_no_axes() assert_images_match(new_file, os.path.join(TEST_DATA_DIR, new_file), shape)
def test_track_plot(new_file, natural_movie, cell_specimen_id, shape=[500,500]): with oplots.figure_in_px(shape[1], shape[0], new_file) as fig: natural_movie().open_track_plot(cell_specimen_id) oplots.finalize_no_axes() assert_images_match(new_file, os.path.join(TEST_DATA_DIR, new_file), shape)
def test_pref_dir_drifting_gratings(new_file, drifting_gratings, shape=[500,500]): with oplots.figure_in_px(shape[1], shape[0], new_file) as fig: drifting_gratings().plot_preferred_direction() oplots.finalize_no_axes() assert_images_match(new_file, os.path.join(TEST_DATA_DIR, new_file), shape)
def test_pref_ori_static_gratings(new_file, static_gratings, shape=[250,500]): with oplots.figure_in_px(shape[1], shape[0], new_file) as fig: static_gratings().plot_preferred_orientation() oplots.finalize_no_axes() assert_images_match(new_file, os.path.join(TEST_DATA_DIR, new_file), shape)
def build_receptive_field(lsna, configs, output_dir): lsn_movie, lsn_mask = lsna.data_set.get_locally_sparse_noise_stimulus_template(lsna.stimulus, mask_off_screen=False) if lsna.cell_index_receptive_field_analysis_data is None: logging.warning("receptive field analysis not performed, so no receptive field plots will be made") return clim = np.nanpercentile(lsna.receptive_field, [1.0,99.0], axis=None) for fn in build_plots("population_receptive_field", 1.754, [configs["large"]], output_dir, transparent=True): lsna.plot_population_receptive_field(mask=lsn_mask, scalebar=True) oplots.finalize_no_axes() for fn in build_plots("population_receptive_field", 1.754, [configs["small"]], output_dir, transparent=True): lsna.plot_population_receptive_field(mask=lsn_mask, scalebar=False) oplots.finalize_no_axes() csids = lsna.data_set.get_cell_specimen_ids() for file_name, csid, i in build_cell_plots(csids, "receptive_field_on", 1.754, [configs["large"]], output_dir, transparent=True): lsna.plot_cell_receptive_field(True, cell_specimen_id=csid, clim=clim, mask=lsn_mask, cell_index=i, scalebar=True) oplots.finalize_no_axes() for file_name, csid, i in build_cell_plots(csids, "receptive_field_on", 1.754, [configs["small"]], output_dir, transparent=True): lsna.plot_cell_receptive_field(True, cell_specimen_id=csid, clim=clim, mask=lsn_mask, cell_index=i, scalebar=False) oplots.finalize_no_axes() for file_name, csid, i in build_cell_plots(csids, "receptive_field_off", 1.754, [configs["large"]], output_dir, transparent=True): lsna.plot_cell_receptive_field(False, cell_specimen_id=csid, clim=clim, mask=lsn_mask, cell_index=i, scalebar=True) oplots.finalize_no_axes() for file_name, csid, i in build_cell_plots(csids, "receptive_field_off", 1.754, [configs["small"]], output_dir, transparent=True): lsna.plot_cell_receptive_field(False, cell_specimen_id=csid, clim=clim, mask=lsn_mask, cell_index=i, scalebar=False) oplots.finalize_no_axes()
def build_natural_movie(nma, configs, output_dir, name): csids = nma.data_set.get_cell_specimen_ids() for file_name, csid, i in build_cell_plots(csids, name, 1.0, configs.values(), output_dir): nma.open_track_plot(csid, cell_index=i) oplots.finalize_no_axes()