From 7fabe295059ab4f3ab0a3ebef38ac41bc77956fb Mon Sep 17 00:00:00 2001 From: Kyu Hyun Lee Date: Mon, 30 Oct 2023 15:13:36 -0700 Subject: [PATCH] Minor update --- src/spyglass/common/common_interval.py | 16 +++++++++++++--- src/spyglass/spikesorting/v1/artifact.py | 4 +--- src/spyglass/spikesorting/v1/recording.py | 5 ++++- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/spyglass/common/common_interval.py b/src/spyglass/common/common_interval.py index 6b431bdc6..e0658182f 100644 --- a/src/spyglass/common/common_interval.py +++ b/src/spyglass/common/common_interval.py @@ -508,8 +508,16 @@ def interval_set_difference_inds(intervals1, intervals2): return result -def interval_list_complement(intervals1, intervals2): - "Finds intervals in intervals1 that are not in intervals2" +def interval_list_complement(intervals1, intervals2, min_length=0.0): + """ + Finds intervals in intervals1 that are not in intervals2 + + Parameters + ---------- + min_length : float, optional + Minimum interval length in seconds. Defaults to 0.0. + """ + result = [] for start1, end1 in intervals1: @@ -536,4 +544,6 @@ def interval_list_complement(intervals1, intervals2): result.extend(subtracted) - return np.asarray(result) + return intervals_by_length( + np.asarray(result), min_length=min_length, max_length=1e100 + ) diff --git a/src/spyglass/spikesorting/v1/artifact.py b/src/spyglass/spikesorting/v1/artifact.py index 7bd58cf17..3625cae7e 100644 --- a/src/spyglass/spikesorting/v1/artifact.py +++ b/src/spyglass/spikesorting/v1/artifact.py @@ -261,7 +261,6 @@ def _get_artifact_times( artifact_frames = executor.run() artifact_frames = np.concatenate(artifact_frames) - print(f"artifact_frames: {artifact_frames}") # turn ms to remove total into s to remove from either side of each detected artifact half_removal_window_s = removal_window_ms / 2 / 1000 @@ -276,7 +275,6 @@ def _get_artifact_times( # convert indices to intervals artifact_intervals = interval_from_inds(artifact_frames) - print(f"artifact_intervals: {artifact_intervals}") # convert to seconds and pad with window artifact_intervals_s = np.zeros( @@ -303,7 +301,7 @@ def _get_artifact_times( # find non-artifact intervals in timestamps artifact_removed_valid_times = interval_list_complement( - sort_interval_valid_times, artifact_intervals_s + sort_interval_valid_times, artifact_intervals_s, min_length=1 ) artifact_removed_valid_times = reduce( _union_concat, artifact_removed_valid_times diff --git a/src/spyglass/spikesorting/v1/recording.py b/src/spyglass/spikesorting/v1/recording.py index 48604f611..6d62b0152 100644 --- a/src/spyglass/spikesorting/v1/recording.py +++ b/src/spyglass/spikesorting/v1/recording.py @@ -269,7 +269,10 @@ def make(self, key): "valid_times": sort_interval_valid_times, } ) - AnalysisNwbfile().add((SpikeSortingRecordingSelection & key).fetch1("nwb_file_name"), key["analysis_file_name"]) + AnalysisNwbfile().add( + (SpikeSortingRecordingSelection & key).fetch1("nwb_file_name"), + key["analysis_file_name"], + ) self.insert1(key) @classmethod