diff --git a/djimaging/autorois/cellpose_wrapper.py b/djimaging/autorois/cellpose_wrapper.py index b2b773d..a5bc790 100644 --- a/djimaging/autorois/cellpose_wrapper.py +++ b/djimaging/autorois/cellpose_wrapper.py @@ -55,6 +55,8 @@ def create_mask_from_data(self, ch0_stack, ch1_stack=None, use_ch0=True, do_3D=F if isinstance(masks, list): if len(masks) == 0: + raise ValueError("Empty masks") + elif len(masks) == 1: roi_mask = masks[0] else: roi_mask = np.max(masks, axis=0) diff --git a/djimaging/autorois/corr_roi_mask_utils.py b/djimaging/autorois/corr_roi_mask_utils.py index c13d432..fb3e04b 100644 --- a/djimaging/autorois/corr_roi_mask_utils.py +++ b/djimaging/autorois/corr_roi_mask_utils.py @@ -126,7 +126,7 @@ def corr_map_rois(stack, cut_x, cut_z, n_pix_max_x=5, n_pix_max_z=5, n_pix_max=2 ignore_map[corr_map < line_threshold] = True ignore_map[:cut_x[0], :] = True ignore_map[nx - cut_x[1]:, :] = True - ignore_map[:, cut_z[0]] = True + ignore_map[:, :cut_z[0]] = True ignore_map[:, nz - cut_z[1]:] = True p_threshold = grow_threshold if grow_threshold is not None else line_threshold diff --git a/djimaging/tables/core/experiment.py b/djimaging/tables/core/experiment.py index 5296063..3405212 100644 --- a/djimaging/tables/core/experiment.py +++ b/djimaging/tables/core/experiment.py @@ -152,7 +152,7 @@ def add_experiment(self, key, header_path, pre_data_dir, raw_data_dir, only_new, info_entry["prep"] = "wholemount" eye = header_dict.get("eye", "unknown") - if 'eye' == '': + if eye == '': eye = 'unknown' if ( diff --git a/djimaging/tables/receptivefield/rf_offset.py b/djimaging/tables/receptivefield/rf_offset.py index aaf5564..8cb3493 100644 --- a/djimaging/tables/receptivefield/rf_offset.py +++ b/djimaging/tables/receptivefield/rf_offset.py @@ -73,7 +73,7 @@ def fetch_and_compute(self, key): """Compute offset w.r.t. stimulus center in microns""" stim_dict = (self.stimulus_tab & key).fetch1('stim_dict') - if ('pix_scale_x_um' not in stim_dict) or ('pix_scale_x_um' not in stim_dict): + if ('pix_scale_x_um' not in stim_dict) or ('pix_scale_y_um' not in stim_dict): raise ValueError("Pixel size not found in stimulus dict") pix_scale_x_um, pix_scale_y_um = stim_dict['pix_scale_x_um'], stim_dict['pix_scale_y_um'] diff --git a/djimaging/utils/receptive_fields/spatial_rf_utils.py b/djimaging/utils/receptive_fields/spatial_rf_utils.py index 4db0609..4804e0f 100644 --- a/djimaging/utils/receptive_fields/spatial_rf_utils.py +++ b/djimaging/utils/receptive_fields/spatial_rf_utils.py @@ -40,7 +40,7 @@ def fit_rf_model(srf, kind='gaussian', polarity=None, center=None): qi = -1. for polarity_i in polarities: - if kind == 'gauss': + if kind == 'gauss' or kind == 'gaussian': model_i = srf_gauss_model(srf, polarity=polarity_i, center=center) elif kind == 'dog': model_i = srf_dog_model(srf, polarity=polarity_i, center=center) @@ -58,7 +58,7 @@ def fit_rf_model(srf, kind='gaussian', polarity=None, center=None): if qi_i > qi: model, model_fit, model_params, qi = model_i, model_i_fit, model_i_params, qi_i - if kind == 'gauss': + if kind == 'gauss' or kind == 'gaussian': return model_fit, model_params, qi elif kind == 'dog': model_c_fit = model[0](xx, yy) diff --git a/djimaging/utils/receptive_fields/temporal_rf_utils.py b/djimaging/utils/receptive_fields/temporal_rf_utils.py index 7726d60..9817911 100644 --- a/djimaging/utils/receptive_fields/temporal_rf_utils.py +++ b/djimaging/utils/receptive_fields/temporal_rf_utils.py @@ -138,7 +138,7 @@ def compute_polarity_and_peak_idxs(trf, nstd=1., npeaks_max=None, rf_time=None, trf = trf.copy() std_trf = np.std(trf) - if (rf_time is not None) or (np.isfinite(max_dt_future)): + if (rf_time is not None) and (np.isfinite(max_dt_future)): trf[rf_time > max_dt_future] = 0. pos_peak_idxs, _ = find_peaks(trf, prominence=nstd * std_trf / 2., height=nstd * std_trf) diff --git a/djimaging/utils/scanm/traces_and_triggers_utils.py b/djimaging/utils/scanm/traces_and_triggers_utils.py index 0d443da..5d5d7f4 100644 --- a/djimaging/utils/scanm/traces_and_triggers_utils.py +++ b/djimaging/utils/scanm/traces_and_triggers_utils.py @@ -51,6 +51,11 @@ def compute_frame_times(n_frames: int, pix_dt: int, npix_x: int, npix_2nd: int, """Compute timepoints of frames and relative delay of individual pixels. npix_2nd can be npix_y (xy-scan) or npix_z (xz-scan) """ + if npix_x_offset_left < 0: + raise ValueError(f"npix_x_offset_left has to be positive or 0, but was {npix_x_offset_left}") + if npix_x_offset_right < 0: + raise ValueError(f"npix_x_offset_right has to be positive or 0, but was {npix_x_offset_right}") + frame_dt = pix_dt * npix_x * npix_2nd frame_dt_offset = (np.arange(npix_x * npix_2nd) * pix_dt).reshape(npix_2nd, npix_x).T @@ -58,7 +63,8 @@ def compute_frame_times(n_frames: int, pix_dt: int, npix_x: int, npix_2nd: int, if precision == 'line': frame_dt_offset = np.tile(frame_dt_offset[0, :], (npix_x, 1)) - frame_dt_offset = frame_dt_offset[npix_x_offset_left:-npix_x_offset_right] + npix_x_offset_right_idx = npix_x_offset_left if npix_x_offset_left > 0 else None + frame_dt_offset = frame_dt_offset[npix_x_offset_left:-npix_x_offset_right_idx] frame_times = np.arange(n_frames) * frame_dt diff --git a/djimaging/utils/scanm/wparams_utils.py b/djimaging/utils/scanm/wparams_utils.py index b35479b..c3e1bbf 100644 --- a/djimaging/utils/scanm/wparams_utils.py +++ b/djimaging/utils/scanm/wparams_utils.py @@ -71,4 +71,4 @@ def check_dims_ch_stack_wparams(ch_stack, wparams): nzpix = wparams.get("user_dzpix", 0) if not (ch_stack.shape[:2] in [(nxpix, nypix), (nxpix, nzpix)]): - ValueError(f'Stack shape error: {ch_stack.shape} not in [{(nxpix, nypix)}, {(nxpix, nzpix)}]') + raise ValueError(f'Stack shape error: {ch_stack.shape} not in [{(nxpix, nypix)}, {(nxpix, nzpix)}]')