"""Custom task with user-defined variables."""
from autoclean.core.task import Task
config = {
# Standard EEG processing settings
"resample_step": {"enabled": True, "value": 250},
"filtering": {"enabled": True, "value": {"l_freq": 1, "h_freq": 100}},
"montage": {"enabled": True, "value": "GSN-HydroCel-129"},
# Custom experiment variables
"stimulus_duration": 500,
"trial_count": 120,
"response_window": 1000,
"baseline_period": [-200, 0],
"experiment_conditions": ["condition_A", "condition_B"],
"custom_analysis": {
"method": "custom_algorithm",
"threshold": 2.5,
"window_size": 50,
},
}
class MyExperiment(Task):
def run(self):
self.import_raw()
duration = self.settings.get("stimulus_duration", 250)
conditions = self.settings.get("experiment_conditions", [])
analysis = self.settings.get("custom_analysis", {})
print(f"Processing {len(conditions)} conditions")
print(f"Stimulus duration: {duration}ms")
print(f"Analysis method: {analysis.get('method', 'standard')}")
self._apply_custom_processing(duration, conditions, analysis)
# Continue with standard pipeline
self.resample_data()
self.filter_data()
self.run_ica()
self.create_regular_epochs()
def _apply_custom_processing(self, duration, conditions, analysis):
threshold = analysis.get("threshold", 1.0)
method = analysis.get("method", "standard")
print(f"Applying {method} with threshold {threshold}")
# ... your custom processing code ...