# -*- 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()
ds_display_screen = 0 ds_initial_background_color = 0. # ================================================================================= # Initialize Monitor object mon = Monitor(resolution=mon_resolution, dis=mon_dis_cm, mon_width_cm=mon_width_cm, mon_height_cm=mon_height_cm, C2T_cm=mon_C2T_cm, C2A_cm=mon_C2A_cm, center_coordinates=mon_center_coordinates, downsample_rate=mon_downsample_rate) # plot warpped monitor coordinates mon.plot_map() plt.show() # initialize Indicator object ind = Indicator(mon, width_cm=ind_width_cm, height_cm=ind_height_cm, position=ind_position, is_sync=ind_is_sync, freq=ind_freq) # 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,
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=(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.,
camera = XimeaCamera( config=camcfg ) # expected_recording_length=stimulus_parameters['repeat_stimulus'] * 90) camera.start() mon = Monitor( resolution=(1024, 1280), dis=20.0, mon_width_cm=stimulus_parameters['monitor_width_cm'], mon_height_cm=stimulus_parameters['monitor_height_cm'], 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)
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)
if __name__ == '__main__': mon = Monitor(resolution=(600, 800), dis=20., 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)
downsample_rate = 5 # Initialize the monitor and ind objects mon = Monitor(resolution=resolution, dis=dis, mon_width_cm=mon_width_cm, mon_height_cm=mon_height_cm, C2T_cm=C2T_cm, C2A_cm=C2A_cm, mon_tilt=mon_tilt, downsample_rate=downsample_rate) # mon.plot_map() # plt.show() ind = Indicator(mon, width_cm=3., height_cm=3., position='northeast', is_sync=True, freq=1.) """ Now for the fun stuff! Each block of code below shows an example of the stimulus routines that are currently implemented in the codebase. Uncomment each block and run the script to view the stimulus presentations. This is where you might need to start debugging! """ #========================== Uniform Contrast Stimulus ========================= # uniform_contrast = stim.UniformContrast(monitor=mon, indicator=ind, duration=10., # color=-1., background=0., pregap_dur=2., # postgap_dur=3., coordinate='degree') # ds = DisplaySequence(log_dir=r'C:\data', # backupdir=None, # display_iter=2, # is_triggered=False,