Skip to content

Commit 28c4403

Browse files
authored
Correct formula for mad (and std) in drift quality metrics (#4355)
1 parent 02e0e97 commit 28c4403

1 file changed

Lines changed: 9 additions & 14 deletions

File tree

src/spikeinterface/metrics/quality/misc_metrics.py

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1171,21 +1171,16 @@ def compute_drift_metrics(
11711171
drift_mads[unit_id] = np.nan
11721172
continue
11731173
position_diff = median_position_segments[unit_id] - reference_positions[unit_id]
1174-
if np.any(np.isnan(position_diff)):
1175-
# deal with nans: if more than 50% nans --> set to nan
1176-
if np.sum(np.isnan(position_diff)) > min_fraction_valid_intervals * len(position_diff):
1177-
ptp_drift = np.nan
1178-
std_drift = np.nan
1179-
mad_drift = np.nan
1180-
failed_units.append(unit_id)
1181-
else:
1182-
ptp_drift = np.nanmax(position_diff) - np.nanmin(position_diff)
1183-
std_drift = np.nanstd(np.abs(position_diff))
1184-
mad_drift = np.nanmedian(np.abs(position_diff - np.nanmean(position_diff)))
1174+
# deal with nans: if more than 50% nans (default) --> set to nan
1175+
if np.sum(np.isnan(position_diff)) > min_fraction_valid_intervals * len(position_diff):
1176+
ptp_drift = np.nan
1177+
std_drift = np.nan
1178+
mad_drift = np.nan
1179+
failed_units.append(unit_id)
11851180
else:
1186-
ptp_drift = np.ptp(position_diff)
1187-
std_drift = np.std(position_diff)
1188-
mad_drift = np.median(np.abs(position_diff - np.mean(position_diff)))
1181+
ptp_drift = np.nanmax(position_diff) - np.nanmin(position_diff)
1182+
std_drift = np.nanstd(position_diff)
1183+
mad_drift = np.nanmedian(np.abs(position_diff - np.nanmedian(position_diff)))
11891184
drift_ptps[unit_id] = ptp_drift
11901185
drift_stds[unit_id] = std_drift
11911186
drift_mads[unit_id] = mad_drift

0 commit comments

Comments
 (0)