Skip to content

Commit

Permalink
Merge branch 'dev' into refactor_two_sided
Browse files Browse the repository at this point in the history
  • Loading branch information
JorisVincent committed Sep 15, 2023
2 parents c2beace + 4ff38d5 commit db94838
Show file tree
Hide file tree
Showing 26 changed files with 318 additions and 222 deletions.
2 changes: 1 addition & 1 deletion docs/reference/demos/stimuli/bullseyes.md
Expand Up @@ -139,7 +139,7 @@ w_int_back = iw.FloatSlider(value=0., min=0, max=1, description="intensity backg
w_ori = iw.Dropdown(value="center", options=['mean', 'corner', 'center'], description="origin")
w_rot = iw.FloatSlider(value=0, min=0, max=360, description="rotation [deg]")
w_mask = iw.Dropdown(value=None, options=[None, 'target_mask', 'frame_mask'], description="add mask")
w_mask = iw.Dropdown(value=None, options=[None, 'target_mask', 'ring_mask'], description="add mask")
w_tint = iw.FloatSlider(value=0.5, min=0, max=1, description="target int")
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/demos/stimuli/pinwheels.md
Expand Up @@ -53,7 +53,7 @@ w_tcent = iw.FloatSlider(value=2.5, min=0, max=5, description="target center")
w_tint = iw.FloatSlider(value=0.5, min=0, max=1, description="target int")
w_ori = iw.Dropdown(value="mean", options=['mean', 'corner', 'center'], description="origin")
w_mask = iw.Dropdown(value=None, options=[None, 'target_mask', 'wedge_mask'], description="add mask")
w_mask = iw.Dropdown(value=None, options=[None, 'target_mask', 'segment_mask', 'circle_mask'], description="add mask")
# Layout
b_im_size = iw.HBox([w_height, w_width, w_ppd])
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/demos/stimuli/rings.md
Expand Up @@ -142,7 +142,7 @@ w_int3 = iw.FloatSlider(value=0.8, min=0, max=1, description="int-ring3")
w_int_back = iw.FloatSlider(value=0., min=0, max=1, description="intensity background")
w_ori = iw.Dropdown(value="center", options=['mean', 'corner', 'center'], description="origin")
w_mask = iw.Dropdown(value=None, options=[None, 'target_mask', 'frame_mask'], description="add mask")
w_mask = iw.Dropdown(value=None, options=[None, 'target_mask', 'ring_mask'], description="add mask")
w_tidx = iw.IntSlider(value=1, min=1, max=4, description="target idx")
w_tint = iw.FloatSlider(value=0.5, min=0, max=1, description="target int")
Expand Down
27 changes: 14 additions & 13 deletions stimupy/components/angulars.py
Expand Up @@ -39,7 +39,7 @@ def mask_angle(
Returns
-------
dict[str, Any]
dict with boolean mask (key: bool_mask) for pixels falling in given angle,
dict with boolean mask (key: "segment_mask") for pixels falling in given angle,
and additional params
"""
stim = mask_regions(
Expand All @@ -51,8 +51,7 @@ def mask_angle(
ppd=ppd,
origin=origin,
)
stim["wedge_mask"] = stim["mask"]
del stim["mask"]
stim["segment_mask"] = stim.pop("mask")
return stim


Expand Down Expand Up @@ -131,16 +130,19 @@ def wedge(
origin=origin,
)

# Remove everything but wedge, and add additional args
stim["img"] = np.where(mask["wedge_mask"], stim["img"], intensity_background)
stim["wedge_mask"] = stim["ring_mask"] * mask["wedge_mask"]
# Combine masks
stim["wedge_mask"] = stim.pop("ring_mask") * mask["segment_mask"]
stim["wedge_mask"] = np.where(stim["wedge_mask"] != 0, 1, 0).astype(int)

# Draw image
stim["img"] = np.where(stim["wedge_mask"], intensity_wedge, intensity_background)

# Repackage
stim["angle"] = angle
stim["radius"] = radius
stim["inner_radius"] = inner_radius
stim["intensity_wedge"] = intensity_wedge
stim["intensity_background"] = intensity_background
del stim["ring_mask"]
return stim


Expand Down Expand Up @@ -175,7 +177,7 @@ def mask_segments(
-------
dict[str, Any]
dict with the stimulus (key: "img"),
mask with integer index for each segment (key: "wedge_mask"),
mask with integer index for each segment (key: "segment_mask"),
and additional keys containing stimulus parameters
"""
stim = mask_regions(
Expand All @@ -187,8 +189,7 @@ def mask_segments(
ppd=ppd,
origin=origin,
)
stim["wedge_mask"] = stim["mask"]
del stim["mask"]
stim["segment_mask"] = stim.pop("mask")
return stim


Expand All @@ -199,7 +200,7 @@ def segments(
angles=None,
rotation=0.0,
intensity_background=0.5,
intensity_segments=(0, 1),
intensity_segments=(0.0, 1.0),
origin="mean",
):
"""Generate mask with integer indices for sequential angular segments
Expand Down Expand Up @@ -230,7 +231,7 @@ def segments(
-------
dict[str, Any]
dict with the stimulus (key: "img"),
mask with integer index for each segment (key: "wedge_mask"),
mask with integer index for each segment (key: "segment_mask"),
and additional keys containing stimulus parameters
"""
if angles is None:
Expand All @@ -251,7 +252,7 @@ def segments(

# Draw image
stim["img"] = draw_regions(
stim["wedge_mask"],
stim["segment_mask"],
intensities=intensity_segments,
intensity_background=intensity_background,
)
Expand Down
6 changes: 3 additions & 3 deletions stimupy/components/frames.py
Expand Up @@ -49,8 +49,8 @@ def mask_frames(
ppd=ppd,
origin=origin,
)
stim["frame_mask"] = stim["mask"]
del stim["mask"]
stim["frame_mask"] = stim.pop("mask")

return stim


Expand All @@ -60,7 +60,7 @@ def frames(
shape=None,
radii=None,
rotation=0.0,
intensity_frames=(1.0, 0.0),
intensity_frames=(0.0, 1.0),
intensity_background=0.5,
origin="mean",
):
Expand Down
14 changes: 7 additions & 7 deletions stimupy/components/lines.py
Expand Up @@ -23,8 +23,8 @@ def line(
line_length=None,
line_width=0,
rotation=0.0,
intensity_line=1,
intensity_background=0,
intensity_line=1.0,
intensity_background=0.0,
origin="corner",
):
"""Draw a line
Expand Down Expand Up @@ -138,7 +138,7 @@ def dipole(
line_width=0,
line_gap=None,
rotation=0.0,
intensity_lines=(0, 1),
intensity_lines=(0.0, 1.0),
):
"""Draw a two centered parallel lines
Expand Down Expand Up @@ -237,8 +237,8 @@ def ellipse(
shape=None,
radius=None,
line_width=0,
intensity_line=1,
intensity_background=0,
intensity_line=1.0,
intensity_background=0.0,
):
"""Draw an ellipse
Expand Down Expand Up @@ -309,8 +309,8 @@ def circle(
shape=None,
radius=None,
line_width=0,
intensity_line=1,
intensity_background=0,
intensity_line=1.0,
intensity_background=0.0,
):
"""Draw a circle given the input parameters
Expand Down
2 changes: 1 addition & 1 deletion stimupy/components/radials.py
Expand Up @@ -76,7 +76,7 @@ def rings(
ppd=None,
shape=None,
radii=None,
intensity_rings=(0, 1),
intensity_rings=(0.0, 1.0),
intensity_background=0.5,
origin="mean",
):
Expand Down
30 changes: 15 additions & 15 deletions stimupy/papers/RHS2007.py
Expand Up @@ -137,7 +137,7 @@ def WE_thick(ppd=PPD, pad=True):
params = {
"ppd": ppd,
"frequency": 4.0 / width,
"intensity_bars": (v1, v3),
"intensity_bars": (v3, v1),
"intensity_target": v2,
"target_indices": (3, 6),
"target_heights": 4.0,
Expand Down Expand Up @@ -198,7 +198,7 @@ def WE_thin_wide(ppd=PPD, pad=True):
params = {
"ppd": ppd,
"frequency": 8.0 / width,
"intensity_bars": (v3, v1),
"intensity_bars": (v1, v3),
"intensity_target": v2,
"target_indices": (4, 13),
"target_heights": 2.0,
Expand Down Expand Up @@ -250,7 +250,7 @@ def WE_dual(ppd=PPD, pad=True):
params = {
"ppd": ppd,
"frequency": 4.0 / width,
"intensity_bars": (v1, v3),
"intensity_bars": (v3, v1),
"intensity_target": v2,
"target_indices": (3, 6),
"target_heights": 2.0,
Expand Down Expand Up @@ -320,7 +320,7 @@ def WE_anderson(ppd=PPD, pad=True):
params = {
"ppd": ppd,
"frequency": 8.0 / width,
"intensity_bars": (v1, v3),
"intensity_bars": (v3, v1),
"intensity_target": v2,
"target_indices_top": (6,),
"target_indices_bottom": (11,),
Expand Down Expand Up @@ -389,7 +389,7 @@ def WE_howe(ppd=PPD, pad=True):
params = {
"ppd": ppd,
"frequency": 8.0 / width,
"intensity_bars": (v1, v3),
"intensity_bars": (v3, v1),
"intensity_target": v2,
"target_indices_top": (6,),
"target_indices_bottom": (11,),
Expand Down Expand Up @@ -495,7 +495,7 @@ def WE_radial_thick_small(ppd=PPD, pad=True):
"target_indices": (1, 8),
"target_width": 4.0,
"target_center": 4.5,
"intensity_segments": (v3, v1),
"intensity_segments": (v1, v3),
"intensity_background": v2,
"intensity_target": v2,
}
Expand Down Expand Up @@ -550,7 +550,7 @@ def WE_radial_thick(ppd=PPD, pad=True):
"target_indices": (1, 10),
"target_width": 4.0,
"target_center": 6.0,
"intensity_segments": (v3, v1),
"intensity_segments": (v1, v3),
"intensity_background": v2,
"intensity_target": v2,
}
Expand Down Expand Up @@ -605,7 +605,7 @@ def WE_radial_thin_small(ppd=PPD, pad=True):
"target_indices": (1, 14),
"target_width": 2.0,
"target_center": 4.0,
"intensity_segments": (v3, v1),
"intensity_segments": (v1, v3),
"intensity_background": v2,
"intensity_target": v2,
}
Expand Down Expand Up @@ -660,7 +660,7 @@ def WE_radial_thin(ppd=PPD, pad=True):
"target_indices": (1, 22),
"target_width": 2.0,
"target_center": 6.0,
"intensity_segments": (v3, v1),
"intensity_segments": (v1, v3),
"intensity_background": v2,
"intensity_target": v2,
}
Expand Down Expand Up @@ -720,13 +720,13 @@ def WE_circular1(ppd=PPD, pad=True):

stim1 = stimupy.whites.radial(
visual_size=(height, width),
intensity_rings=(v3, v1),
intensity_rings=(v1, v3),
**params,
)

stim2 = stimupy.whites.radial(
visual_size=(height, width),
intensity_rings=(v1, v3),
intensity_rings=(v3, v1),
**params,
)
stim = stack_dicts(stim1, stim2)
Expand Down Expand Up @@ -781,13 +781,13 @@ def WE_circular05(ppd=PPD, pad=True):

stim1 = stimupy.whites.radial(
visual_size=(height, width),
intensity_rings=(v3, v1),
intensity_rings=(v1, v3),
**params,
)

stim2 = stimupy.whites.radial(
visual_size=(height, width),
intensity_rings=(v1, v3),
intensity_rings=(v3, v1),
**params,
)
stim = stack_dicts(stim1, stim2)
Expand Down Expand Up @@ -842,13 +842,13 @@ def WE_circular025(ppd=PPD, pad=True):

stim1 = stimupy.whites.radial(
visual_size=(height, width),
intensity_rings=(v3, v1),
intensity_rings=(v1, v3),
**params,
)

stim2 = stimupy.whites.radial(
visual_size=(height, width),
intensity_rings=(v1, v3),
intensity_rings=(v3, v1),
**params,
)
stim = stack_dicts(stim1, stim2)
Expand Down
12 changes: 6 additions & 6 deletions stimupy/papers/domijan2015.py
Expand Up @@ -368,12 +368,12 @@ def grating(visual_size=VSIZES["grating"], ppd=PPD, shape=SHAPES["grating"]):

stim1 = stimupy.waves.square_linear(
**params,
intensity_bars=(v3, v1),
intensity_bars=(v1, v3),
intensity_target=v2,
)
stim2 = stimupy.waves.square_linear(
**params,
intensity_bars=(v1, v3),
intensity_bars=(v3, v1),
intensity_target=v2,
)

Expand Down Expand Up @@ -643,7 +643,7 @@ def white(visual_size=VSIZES["white"], ppd=PPD, pad=PAD, shape=SHAPES["white"]):

stim = stimupy.whites.white(
**params,
intensity_bars=(v1, v3),
intensity_bars=(v3, v1),
intensity_target=v2,
)

Expand Down Expand Up @@ -1090,7 +1090,7 @@ def white_yazdanbakhsh(

stim = stimupy.whites.yazdanbakhsh(
**params,
intensity_bars=(v1, v3),
intensity_bars=(v3, v1),
intensity_target=v2,
)

Expand Down Expand Up @@ -1176,7 +1176,7 @@ def white_anderson(

stim = stimupy.whites.anderson(
**params,
intensity_bars=(v3, v1),
intensity_bars=(v1, v3),
intensity_target=v2,
intensity_stripes=(v1, v3),
)
Expand Down Expand Up @@ -1258,7 +1258,7 @@ def white_howe(visual_size=VSIZES["white_howe"], ppd=PPD, shape=SHAPES["white_ho

stim = stimupy.whites.howe(
**params,
intensity_bars=(v3, v1),
intensity_bars=(v1, v3),
intensity_target=v2,
intensity_stripes=(v1, v3),
)
Expand Down

0 comments on commit db94838

Please sign in to comment.