def run_camstim_debug(img_stack, timing_list, frame_length, runs):

    assert (img_stack.dtype) == 'uint8'
    assert len(img_stack.shape) == 3

    from camstim import SweepStim, MovieStim
    from camstim import Foraging
    from camstim import Window

    # Create display window, warped
    window = Window(fullscr=True, monitor='Gamma1.Luminance50', screen=0)

    tmp_dir = tempfile.mkdtemp()

    timing_list = sorted(timing_list, key=lambda x: x[0])
    movie_path = '%s.npy' % get_hash(img_stack)
    np.save(movie_path, img_stack)
    movie = MovieStim(movie_path=movie_path,
                      window=window,
                      frame_length=frame_length,
                      size=(opc.SCREEN_W, opc.SCREEN_H),
                      start_time=0.0,
                      stop_time=None,
                      flip_v=True,
                      runs=runs)

    movie.set_display_sequence(timing_list)
    stimuli = [movie]

    ss = SweepStim(window, stimuli=stimuli, pre_blank_sec=0, post_blank_sec=0)

    f = Foraging(window=window,
                 auto_update=False,
                 nidaq_tasks={
                     'digital_input': ss.di,
                     'digital_output': ss.do,
                 })  #share di and do with SS
    ss.add_item(f, "foraging")
    ss.run()
import numpy as np
import hashlib

data_path = r'//allen/aibs/technology/nicholasc/openscope'

n_repeats = 1
expected_gray_screen_duration = 60.0
expected_randomized_oddball_duration = 250.0 * n_repeats
expected_habituated_sequence_duration = 100.0 * n_repeats
expected_familiar_movie_duration = 150.0 * n_repeats
expected_total_duration = expected_familiar_movie_duration + expected_habituated_sequence_duration + expected_randomized_oddball_duration + 3 * expected_gray_screen_duration

assert os.path.basename(__file__).split('.')[0][-1] == str(n_repeats)

# Create display window, warped
window = Window(fullscr=True, monitor='Gamma1.Luminance50', screen=0)


def get_block(file_name, timing_list, frame_length, runs, t0):

    base_seq_stim = MovieStim(
        movie_path=file_name,
        window=window,
        frame_length=frame_length,
        size=(1920, 1200),
        start_time=0.0,
        stop_time=None,
        flip_v=True,
        runs=runs,
    )
"""
Dot stimuli
"""
from psychopy import visual
from camstim import Stimulus, SweepStim
from camstim import Foraging
from camstim import Window, Warp
import numpy as np
import os
import cPickle as pickle

# Create display window
window = Window(fullscr=True,
                monitor='Gamma1.Luminance50',#'GammaCorrect30',
                screen=0,
                warp=Warp.Spherical,
#                warp=Warp.Disabled
                )

stimFileDir = r"\\allen\programs\braintv\workgroups\nc-ophys\corbettb\motion stimuli\dot stimfiles"
movie_path_list = [os.path.join(stimFileDir,f) for f in os.listdir(stimFileDir) if os.path.isfile(os.path.join(stimFileDir,f))]

# set display sequences
with open(r"\\allen\programs\braintv\workgroups\nc-ophys\corbettb\motion stimuli\ds_dict_two.pkl", 'rb') as f:
    ds_dict = pickle.load(f)
    

movielist = []
for i, path in enumerate(movie_path_list):
    ds = ds_dict[str(i)]
    movie = Stimulus.from_file(path, window)
Exemplo n.º 4
0
"""
DriftingGratingsGrid.py

Volume Imaging Day 1.

"""
from psychopy import visual
from camstim import Stimulus, SweepStim
from camstim import Foraging
from camstim import Window, Warp

# Create display window
window = Window(
    fullscr=True,
    monitor='Gamma1.Luminance50',
    screen=0,
    warp=Warp.Spherical,
)

# Paths for stimulus files
dg_path = "drifting_gratings_grid_5.stim"
lsn_path = "locally_sparse_noise.stim"
# dg_path = r"C:\Users\Public\Desktop\pythondev\cam2p_scripts\tests\openscope_surround\drifting_gratings_grid_5.stim"

# Create stimuli
dg = Stimulus.from_file(dg_path, window)
lsn = Stimulus.from_file(lsn_path, window)

# set display sequences
dg_ds = [(0, 915), (2735, 3650)]
lsn_ds = [(925, 2725)]
Exemplo n.º 5
0
"""
VIPSSN_habituation_day1.py
"""
#from psychopy import visual
from camstim import Stimulus, SweepStim
from camstim import Foraging
from camstim import Window, Warp
import numpy as np

# Create display window
window = Window(fullscr=True,
                monitor='Gamma1.Luminance50',
                screen=0,
                warp=Warp.Disabled)

local_path = r'C:\\ProgramData\AIBS_MPE\camstim\resources\VIPSSN\\'
stim_path = local_path + 'VIPSSN_habituation_movie.stim'
stim = Stimulus.from_file(stim_path, window)

stim_ds = [(0, 600)]
stim.set_display_sequence(stim_ds)

params = {
    'syncsqr': True,
    #'syncsqrloc': (875,550),
    #'syncsqrsize': (150,150),
    'syncpulse': True,
    'syncpulseport': 1,
    #'syncpulselines': [5, 6],  # frame, start/stop
    'trigger_delay_sec': 5.0
}
# optional param file
param_file = {'target_pos': [0.0, 0.0]}
for arg_str in sys.argv:
    if arg_str.find('coordinates.json') > -1:
        import json
        with open(arg_str, 'r') as f:
            param_file = json.load(f)

posx = param_file['target_pos'][0]  #in degrees
posy = param_file['target_pos'][1]  #in degrees

# Create display window
window = Window(
    fullscr=True,
    monitor='Gamma1.Luminance50',
    screen=1,  #TODO: verify screen number for DeepScope
    warp=Warp.Spherical,
)

# Paths for stimulus files
size_by_contrast_path = "size_by_contrast.stim"
behavior_flashes_path = "visual_behavior_flashes.stim"

size_by_contrast_sequence_path = "size_by_contrast_sequence.npy"
behavior_flashes_sequence_path = "visual_behavior_flash_sequence.npy"

size_by_contrast_sequence = np.load(size_by_contrast_sequence_path).astype(int)
behavior_flashes_sequence = np.load(behavior_flashes_sequence_path).astype(int)

size_by_contrast = Stimulus.from_file(size_by_contrast_path, window)
behavior_flashes = Stimulus.from_file(behavior_flashes_path, window)
Exemplo n.º 7
0
"""
three_session_A.py
"""
from psychopy import visual
from camstim import Stimulus, SweepStim
from camstim import Foraging
from camstim import Window, Warp

# Create display window
window = Window(
    fullscr=True,
    monitor='GammaCorrect30',
    screen=1,
    warp=Warp.Spherical,
)

# Paths for stimulus files
dg_path = r"C:\Users\svc_ncbehavior\Desktop\stimulus\cam2p_scripts\cam_1_0\drifting_gratings.stim"

# Create stimuli
dg = Stimulus.from_file(dg_path, window)

# set display sequences
dg_ds = [(0, 1830)]

dg.set_display_sequence(dg_ds)

# kwargs
params = {
    'syncsqr': True,
    'syncsqrloc': (510, 360),