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()
示例#2
0
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.")
示例#4
0
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)
示例#5
0
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)
示例#6
0
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()