@schema
class LFPArtifactDetectionParameters(SpyglassMixin, dj.Manual):
definition = """
# Parameters for detecting LFP artifact times within a LFP group.
artifact_params_name: varchar(200)
---
artifact_params: blob # dictionary of parameters
"""
def insert_default(self):
"""Insert the default artifact parameters."""
diff_params = [
"default_difference",
{
"artifact_detection_algorithm": "difference",
"artifact_detection_algorithm_params": {
"amplitude_thresh_1st": 500, # must be None or >= 0
"proportion_above_thresh_1st": 0.1,
"amplitude_thresh_2nd": 1000, # must be None or >= 0
"proportion_above_thresh_2nd": 0.05,
"removal_window_ms": 10.0, # in milliseconds
"local_window_ms": 40.0, # in milliseconds
},
},
]
diff_ref_params = [
"default_difference_ref",
{
"artifact_detection_algorithm": "difference",
"artifact_detection_algorithm_params": {
"amplitude_thresh_1st": 500, # must be None or >= 0
"proportion_above_thresh_1st": 0.1,
"amplitude_thresh_2nd": 1000, # must be None or >= 0
"proportion_above_thresh_2nd": 0.05,
"removal_window_ms": 10.0, # in milliseconds
"local_window_ms": 40.0, # in milliseconds
},
"referencing": {
"ref_on": 1,
"reference_list": [0, 0, 0, 0, 0],
"electrode_list": [0, 0],
},
},
]
no_params = [
"none",
{
"artifact_detection_algorithm": "difference",
"artifact_detection_algorithm_params": {
"amplitude_thresh_1st": None, # must be None or >= 0
"proportion_above_thresh_1st": None,
"amplitude_thresh_2nd": None, # must be None or >= 0
"proportion_above_thresh_2nd": None,
"removal_window_ms": None, # in milliseconds
"local_window_ms": None, # in milliseconds
},
},
]
mad_params = [
"default_mad",
{
"artifact_detection_algorithm": "mad",
"artifact_detection_algorithm_params": {
# akin to z-score std dev if the distribution is normal
"mad_thresh": 6.0,
"proportion_above_thresh": 0.1,
"removal_window_ms": 10.0, # in milliseconds
},
},
]
self.insert(
[diff_params, diff_ref_params, no_params, mad_params],
skip_duplicates=True,
)