# initialize LocallySparseNoise object
lsn = stim.LocallySparseNoise(monitor=mon, indicator=ind, pregap_dur=pregap_dur,
                              postgap_dur=postgap_dur, coordinate=coordinate,
                              background=background, subregion=lsn_subregion,
                              grid_space=lsn_grid_space, sign=lsn_sign,
                              probe_size=lsn_probe_size, probe_orientation=lsn_probe_orientation,
                              probe_frame_num=lsn_probe_frame_num, iteration=lsn_iteration,
                              is_include_edge=lsn_is_include_edge, min_distance=lsn_min_distance)

# initialize DisplaySequence object
ds = DisplaySequence(log_dir=ds_log_dir, backupdir=ds_backupdir,
                     identifier=ds_identifier, display_iter=ds_display_iter,
                     mouse_id=ds_mouse_id, user_id=ds_user_id,
                     psychopy_mon=ds_psychopy_mon, is_by_index=ds_is_by_index,
                     is_interpolate=ds_is_interpolate, is_triggered=ds_is_triggered,
                     trigger_event=ds_trigger_event, trigger_NI_dev=ds_trigger_NI_dev,
                     trigger_NI_port=ds_trigger_NI_port, trigger_NI_line=ds_trigger_NI_line,
                     is_sync_pulse=ds_is_sync_pulse, sync_pulse_NI_dev=ds_sync_pulse_NI_dev,
                     sync_pulse_NI_port=ds_sync_pulse_NI_port,
                     sync_pulse_NI_line=ds_sync_pulse_NI_line,
                     display_screen=ds_display_screen,
                     initial_background_color=ds_initial_background_color)

# display
# =============================== display =========================================
ds.set_stim(lsn)
ds.trigger_display()
plt.show()
# =================================================================================
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.DisplayStimulus import DisplaySequence
from retinotopic_mapping.MonitorSetup import Monitor, Indicator

mon = Monitor(resolution=(1200, 1920), dis=15., mon_width_cm=52., mon_height_cm=32.)
ind = Indicator(mon)
uc = stim.UniformContrast(mon, ind, duration=10., color=-1.)
ss = stim.StimulusSeparator(mon, ind)
cs = stim.CombinedStimuli(mon, ind)
cs.set_stimuli([ss, uc, ss])
ds = DisplaySequence(log_dir='C:/data')
ds.set_stim(cs)
ds.trigger_display()
Ejemplo n.º 3
0
# -*- coding: utf-8 -*-
"""
the minimum script to run 10 seconds of black screen
"""

import matplotlib.pyplot as plt
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence

# Initialize Monitor object
mon = Monitor(resolution=(1200, 1920), dis=15., mon_width_cm=52., mon_height_cm=32.)

# Initialize Inicator object
ind = Indicator(mon)

# Initialize DisplaySequence object
ds = DisplaySequence(log_dir='C:/data')

# Initialize UniformContrast object
uc = stim.UniformContrast(monitor=mon, indicator=ind, duration=10., color=-1.)

# set uniform contrast stimulus into the DisplaySequence object
ds.set_stim(uc)

# start display
ds.trigger_display()

# plot distribution of frame duration
plt.show()
    C2T_cm=stimulus_parameters['gaze_center_to_monitor_top_edge_cm'],
    C2A_cm=stimulus_parameters['gaze_center_to_monitor_anterior_edge_cm'],
    visual_field='right',
    downsample_rate=8)  # 20

indicator = Indicator(mon)
'''
KS_stim_all_dir = stim.KSstimAllDir(mon, indicator, sweep_width=stimulus_parameters['sweep_width'], square_size=25,
                                   flicker_frame=6, iteration=1,
                                   step_width=stimulus_parameters['step_width'], pregap_dur=2.,
                                   postgap_dur=3.)  # stepWidth=0.15, # stepWidth*refreshRate=speed, i.e. 0.15 deg *60 = 9 deg/s
'''
ds = DisplaySequence(
    log_dir=r'C:\data',
    display_screen=0,
    backupdir=None,
    display_iter=stimulus_parameters['repeat_stimulus'],
    is_triggered=False,
    is_sync_pulse=False,
    is_by_index=False)  #, interrupt=camera.camera_error_trigger)
# ds.set_stim(KS_stim_all_dir)
fc = stim.FlashingCircle(monitor=mon,
                         indicator=indicator,
                         coordinate='degree',
                         center=(0., 60.),
                         radius=10.,
                         is_smooth_edge=False,
                         smooth_width_ratio=0.2,
                         smooth_func=stim.blur_cos,
                         color=1.,
                         flash_frame_num=60,
                         pregap_dur=2.,
from retinotopic_mapping.DisplayStimulus import DisplaySequence

# Initialize Monitor object
mon = Monitor(resolution=(768, 1360),
              dis=15.,
              mon_width_cm=52.,
              mon_height_cm=32.)
mon.plot_map()
# Hiding indicator on a "throwaway" monitor
mon_temp = Monitor(resolution=(8, 8),
                   dis=15.,
                   mon_width_cm=10.,
                   mon_height_cm=10.)
ind = Indicator(mon_temp)
ds = DisplaySequence(log_dir='C:/data',
                     is_by_index=False,
                     is_save_sequence=True)
fc = stim.FlashingCircle(monitor=mon,
                         indicator=ind,
                         coordinate='degree',
                         center=(0., 60.),
                         radius=10.,
                         is_smooth_edge=False,
                         smooth_width_ratio=0.2,
                         smooth_func=stim.blur_cos,
                         color=1.,
                         flash_frame_num=60,
                         pregap_dur=2.,
                         postgap_dur=3.,
                         background=-1.,
                         midgap_dur=1.,
Ejemplo n.º 6
0
                  mon_width_cm=2,
                  mon_height_cm=1.5,
                  refresh_rate=60.0)

    # mon.plot_map()
    # plt.show()

    # creating a monitor object to display the indicator on (since we don' use it)
    mon_bin = Monitor(resolution=(0, 0),
                      dis=15.,
                      mon_width_cm=52.,
                      mon_height_cm=32.)
    ind = Indicator(mon_bin, width_cm=3, height_cm=3, is_sync=True, freq=1)

    sparse_noise = stim.SparseNoise(mon,
                                    ind,
                                    grid_space=(0.5, 0.5),
                                    probe_size=(0.5, 0.5),
                                    probe_frame_num=6,
                                    coordinate='linear',
                                    midgap_dur=0.5,
                                    iteration=5)

    ds = DisplaySequence(log_dir="data",
                         is_by_index=True,
                         display_screen=1,
                         is_sync_pulse_LJ=False)

    ds.set_stim(sparse_noise)
    ds.trigger_display(fullscr=False)
Ejemplo n.º 7
0
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence

# This script is meant to be used to test the synchronization between the stim. pc and the microscope, by flashing gray images at the sensor

mon = Monitor(resolution=(1024, 1280), dis=20., mon_width_cm=33.28, mon_height_cm=26.624, refresh_rate=60.0)

# creating a monitor object to display the indicator on (since we don' use it)
mon_bin = Monitor(resolution=(0,0), dis=15., mon_width_cm=52., mon_height_cm=32.)
ind = Indicator(mon_bin)

uc = stim.UniformContrast(mon, ind, duration=1, color=0)
repeated_stim = stim.CombinedStimuli(mon, ind, background=-1, pregap_dur=1, postgap_dur=0)
repeated_stim.set_stimuli([uc]*10) # set the number of iterations here

ds = DisplaySequence(log_dir="C:/data", is_by_index=True, display_screen=1, is_sync_pulse_LJ=True)

ds.set_stim(repeated_stim)
ds.trigger_display(fullscr=False)

# initialize LocallySparseNoise object
lsn = stim.LocallySparseNoise(monitor=mon, indicator=ind, pregap_dur=pregap_dur,
                              postgap_dur=postgap_dur, coordinate=coordinate,
                              background=background, subregion=lsn_subregion,
                              grid_space=lsn_grid_space, sign=lsn_sign,
                              probe_size=lsn_probe_size, probe_orientation=lsn_probe_orientation,
                              probe_frame_num=lsn_probe_frame_num, iteration=lsn_iteration,
                              is_include_edge=lsn_is_include_edge, min_distance=lsn_min_distance)

# initialize DisplaySequence object
ds = DisplaySequence(log_dir=ds_log_dir, backupdir=ds_backupdir,
                     identifier=ds_identifier, display_iter=ds_display_iter,
                     mouse_id=ds_mouse_id, user_id=ds_user_id,
                     psychopy_mon=ds_psychopy_mon, is_by_index=ds_is_by_index,
                     is_interpolate=ds_is_interpolate, is_triggered=ds_is_triggered,
                     trigger_event=ds_trigger_event, trigger_NI_dev=ds_trigger_NI_dev,
                     trigger_NI_port=ds_trigger_NI_port, trigger_NI_line=ds_trigger_NI_line,
                     is_sync_pulse=ds_is_sync_pulse, sync_pulse_NI_dev=ds_sync_pulse_NI_dev,
                     sync_pulse_NI_port=ds_sync_pulse_NI_port,
                     sync_pulse_NI_line=ds_sync_pulse_NI_line,
                     display_screen=ds_display_screen,
                     initial_background_color=ds_initial_background_color)

# display
# =============================== display =========================================
ds.set_stim(lsn)
ds.trigger_display()
plt.show()
# =================================================================================
import matplotlib.pyplot as plt
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence

mon = Monitor(resolution=(768, 1360),
              dis=15.,
              mon_width_cm=52.,
              mon_height_cm=32.)

ind = Indicator(mon)

# ks = stim.KSstim(mon, ind)
ds = DisplaySequence(log_dir="data", is_by_index=False)

# ds.set_stim(ks)
fc = stim.FlashingCircle(monitor=mon,
                         indicator=ind,
                         coordinate='degree',
                         center=(0., 60.),
                         radius=10.,
                         is_smooth_edge=False,
                         smooth_width_ratio=0.2,
                         smooth_func=stim.blur_cos,
                         flash_frame_num=60,
                         pregap_dur=2.,
                         postgap_dur=3.,
                         midgap_dur=1.,
                         iteration=1)
ds.set_stim(fc)
ds.trigger_display(fullscr=True)
Ejemplo n.º 10
0
                                      indicator=ind,
                                      coordinate='degree',
                                      center=(20., 30.),
                                      radius=30.,
                                      color=-1.,
                                      flash_frame_num=30,
                                      pregap_dur=2.,
                                      postgap_dur=3.,
                                      background=0.,
                                      is_smooth_edge=True,
                                      smooth_width_ratio=0.2,
                                      smooth_func=stim.blur_cos)
ds = DisplaySequence(log_dir=r'C:\data',
                     backupdir=None,
                     is_triggered=False,
                     is_sync_pulse=False,
                     is_by_index=False,
                     display_iter=2,
                     display_screen=0,
                     is_interpolate=False)
ds.set_stim(flashing_circle)
ds.trigger_display()
#==============================================================================

#======================== Sparse Noise Stimulus ===============================
# sparse_noise = stim.SparseNoise(mon, ind, subregion=(-20.,20.,10.,150.), grid_space=(4., 4.),
#                                 background=0., sign='ON-OFF', pregap_dur=0., postgap_dur=0.,
#                                 coordinate='degree', probe_size=(4., 4.), probe_orientation=0.,
#                                 probe_frame_num=6, iteration=2, is_include_edge = True)
# ds = DisplaySequence(log_dir=r'C:\data', backupdir=None, is_triggered=False,
#                      is_sync_pulse=False, display_iter=2, display_screen=1,
#                      is_by_index=True)
import matplotlib.pyplot as plt
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence

mon = Monitor(resolution=(768, 1360),
              dis=15.,
              mon_width_cm=52.,
              mon_height_cm=32.)

ind = Indicator(mon)

ks = stim.KSstimAllDir(mon, ind)
ds = DisplaySequence(log_dir="data", is_by_index=False, is_sync_pulse_LJ=False)

ds.set_stim(ks)
ds.trigger_display()
plt.show()
Ejemplo n.º 12
0
    ind = Indicator(mon_bin)

    ks = stim.DriftingGratingCircle(
        mon,
        ind,
        radius_list=[50],
        dire_list=[0, 45, 90, 135, 180, 225, 270, 315],
        pregap_dur=3,
        postgap_dur=2,
        is_smooth_edge=False,
        block_dur=5,
        midgap_dur=5,
        center=(0., 60.),
        sf_list=[0.05],
        tf_list=[0.8],
        con_list=[1],
        iteration=5,
        is_blank_block=False,
        sqr=False)
    ds = DisplaySequence(log_dir="/data",
                         is_by_index=True,
                         display_screen=0,
                         is_sync_pulse_LJ=False)

    ds.set_stim(ks)
    ds.trigger_display(fullscr=True)

    # frame_start = ds.frame_ts_start
    # print(frame_start[:100])
    # frame_end = ds.frame_ts_end
Ejemplo n.º 13
0
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence
import matplotlib
import matplotlib.pyplot as plt

matplotlib.use('TkAgg')

if __name__ == '__main__':
    mon = Monitor(resolution=(600, 800), downsample_rate=2, dis=20., mon_width_cm=39, mon_height_cm=29,
                  refresh_rate=60.0)

    mon.plot_map()
    plt.show()

    # creating a monitor object to display the indicator on (since we don' use it)
    mon_bin = Monitor(resolution=(0, 0), dis=15., mon_width_cm=52., mon_height_cm=32.)
    ind = Indicator(mon_bin, width_cm=3, height_cm=3, is_sync=True, freq=1)

    flashing_circle = stim.FlashingCircle(mon, ind, coordinate='linear', center=(2.5, 2.5), radius=2.5, color=1,
                                          midgap_dur=2, iteration=5)

    ds = DisplaySequence(log_dir="C:/data", is_by_index=True, display_screen=1, is_sync_pulse_LJ=False)

    ds.set_stim(flashing_circle)
    ds.trigger_display(fullscr=True)
Ejemplo n.º 14
0
"""
the minimum script to run 10 seconds of black screen
"""

import matplotlib.pyplot as plt
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence

# Initialize Monitor object
mon = Monitor(resolution=(1200, 1920),
              dis=15.,
              mon_width_cm=52.,
              mon_height_cm=32.)
ind = Indicator(mon)
ds = DisplaySequence(log_dir='C:/data', is_by_index=True)
dgc = stim.DriftingGratingCircle(monitor=mon,
                                 indicator=ind,
                                 background=0.,
                                 coordinate='degree',
                                 center=(10., 90.),
                                 sf_list=(0.02, ),
                                 tf_list=(4.0, 2.0),
                                 dire_list=(45., ),
                                 con_list=(0.8, ),
                                 radius_list=(20., ),
                                 block_dur=2.,
                                 midgap_dur=1.,
                                 iteration=3,
                                 pregap_dur=2.,
                                 postgap_dur=3.,