Source code for src.main_listener

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Main listener
"""

from abc import ABC, abstractmethod

__author__ = "Lemahieu Antoine"
__copyright__ = "Copyright 2022"
__credits__ = ["Lemahieu Antoine"]
__license__ = "GNU General Public License v3.0"
__maintainer__ = "Lemahieu Antoine"
__email__ = "Antoine.Lemahieu@ulb.be"
__status__ = "Dev"


[docs]class mainListener(ABC): """ The main listener is the link between the main view and the main controller, but also between most of the controllers. When the controller wants to send the information back to the main controller (who created it) it passes through the main listener, that will send the information to the main controller. It is here to "listen" and send the information to the correct place. """ """ File Menu """ # Open FIF
[docs] @abstractmethod def open_fif_file_clicked(self, path_to_file): pass
[docs] @abstractmethod def open_fif_file_computation_finished(self): pass
[docs] @abstractmethod def open_fif_file_computation_error(self): pass
[docs] @abstractmethod def open_fif_file_finished(self): pass
# Open CNT
[docs] @abstractmethod def open_cnt_file_clicked(self, path_to_file): pass
[docs] @abstractmethod def open_cnt_file_computation_finished(self): pass
[docs] @abstractmethod def open_cnt_file_computation_error(self): pass
[docs] @abstractmethod def open_cnt_file_finished(self): pass
# Open SET
[docs] @abstractmethod def open_set_file_clicked(self, path_to_file): pass
[docs] @abstractmethod def open_set_file_computation_finished(self): pass
[docs] @abstractmethod def open_set_file_computation_error(self): pass
[docs] @abstractmethod def open_set_file_finished(self): pass
# Load Data Info
[docs] @abstractmethod def load_data_info_information(self, montage, channels_selected, tmin, tmax, dataset_name): pass
[docs] @abstractmethod def load_data_info_computation_finished(self): pass
# Events
[docs] @abstractmethod def read_events_file_clicked(self, path_to_file): pass
[docs] @abstractmethod def find_events_from_channel_clicked(self): pass
[docs] @abstractmethod def find_events_from_channel_information(self, stim_channel): pass
[docs] @abstractmethod def find_events_from_channel_computation_finished(self): pass
[docs] @abstractmethod def find_events_from_channel_computation_error(self): pass
# Export CSV
[docs] @abstractmethod def export_data_to_csv_file_clicked(self, path_to_file): pass
[docs] @abstractmethod def export_data_csv_computation_finished(self): pass
[docs] @abstractmethod def export_data_csv_computation_error(self): pass
# Export SET
[docs] @abstractmethod def export_data_to_set_file_clicked(self, path_to_file): pass
[docs] @abstractmethod def export_data_set_computation_finished(self): pass
[docs] @abstractmethod def export_data_set_computation_error(self): pass
# Export events
[docs] @abstractmethod def export_events_to_file_clicked(self): pass
[docs] @abstractmethod def export_events_txt_computation_finished(self): pass
[docs] @abstractmethod def export_events_txt_computation_error(self): pass
# Save
[docs] @abstractmethod def save_file_clicked(self): pass
[docs] @abstractmethod def save_file_as_clicked(self): pass
# Clear dataset
[docs] @abstractmethod def clear_dataset_clicked(self): pass
# Study
[docs] @abstractmethod def create_study_clicked(self): pass
[docs] @abstractmethod def create_study_information(self, study_name, task_name, dataset_names, dataset_indexes, subjects, sessions, runs, conditions, groups): pass
[docs] @abstractmethod def clear_study_clicked(self): pass
""" Edit Menu """ # Dataset info
[docs] @abstractmethod def dataset_info_clicked(self): pass
[docs] @abstractmethod def dataset_info_information(self, channels_selected): pass
# Event values
[docs] @abstractmethod def event_values_clicked(self): pass
[docs] @abstractmethod def event_values_finished(self, event_values, event_ids): pass
# Channel location
[docs] @abstractmethod def channel_location_clicked(self): pass
[docs] @abstractmethod def channel_location_finished(self, channel_locations, channel_names): pass
[docs] @abstractmethod def select_data_clicked(self): pass
[docs] @abstractmethod def select_data_events_clicked(self): pass
""" Tools Menu """ # Filter
[docs] @abstractmethod def filter_clicked(self): pass
[docs] @abstractmethod def filter_information(self, low_frequency, high_frequency, channels_selected, filter_method): pass
[docs] @abstractmethod def filter_computation_finished(self): pass
[docs] @abstractmethod def filter_computation_error(self): pass
[docs] @abstractmethod def filter_finished(self): pass
# Resampling
[docs] @abstractmethod def resampling_clicked(self): pass
[docs] @abstractmethod def resampling_information(self, frequency): pass
[docs] @abstractmethod def resampling_computation_finished(self): pass
[docs] @abstractmethod def resampling_computation_error(self): pass
[docs] @abstractmethod def resampling_finished(self): pass
# Re-referencing
[docs] @abstractmethod def re_referencing_clicked(self): pass
[docs] @abstractmethod def re_referencing_information(self, references, save_data, load_data, n_jobs): pass
[docs] @abstractmethod def re_referencing_computation_finished(self): pass
[docs] @abstractmethod def re_referencing_computation_error(self): pass
[docs] @abstractmethod def re_referencing_finished(self): pass
# Inspect data
[docs] @abstractmethod def inspect_reject_data_clicked(self): pass
# ICA decomposition
[docs] @abstractmethod def ica_decomposition_clicked(self): pass
[docs] @abstractmethod def ica_decomposition_information(self, ica_method): pass
[docs] @abstractmethod def ica_data_decomposition_computation_finished(self): pass
[docs] @abstractmethod def ica_data_decomposition_computation_error(self): pass
[docs] @abstractmethod def ica_decomposition_finished(self): pass
# Extract epochs
[docs] @abstractmethod def extract_epochs_clicked(self): pass
[docs] @abstractmethod def extract_epochs_information(self, tmin, tmax, trials_selected): pass
[docs] @abstractmethod def extract_epochs_computation_finished(self): pass
[docs] @abstractmethod def extract_epochs_computation_error(self): pass
[docs] @abstractmethod def extract_epochs_finished(self): pass
# SNR
[docs] @abstractmethod def snr_clicked(self): pass
[docs] @abstractmethod def snr_information(self, snr_methods, source_method, read, write, picks, trials_selected): pass
[docs] @abstractmethod def snr_computation_finished(self): pass
[docs] @abstractmethod def snr_computation_error(self): pass
[docs] @abstractmethod def snr_finished(self): pass
# Source Estimation
[docs] @abstractmethod def source_estimation_clicked(self): pass
[docs] @abstractmethod def source_estimation_information(self, source_estimation_method, save_data, load_data, epochs_method, trial_number, tmin, tmax, n_jobs, export_path): pass
[docs] @abstractmethod def source_estimation_computation_finished(self): pass
[docs] @abstractmethod def source_estimation_finished(self): pass
""" Plot Menu """ # Channel locations
[docs] @abstractmethod def plot_channel_locations_clicked(self): pass
[docs] @abstractmethod def plot_data_clicked(self): pass
# Topographies
[docs] @abstractmethod def plot_topographies_clicked(self): pass
[docs] @abstractmethod def plot_topographies_information(self, time_points, mode): pass
# Spectra maps
[docs] @abstractmethod def plot_spectra_maps_clicked(self): pass
[docs] @abstractmethod def plot_spectra_maps_information(self, minimum_frequency, maximum_frequency, minimum_time, maximum_time, topo_time_points): pass
[docs] @abstractmethod def plot_spectra_maps_computation_finished(self): pass
[docs] @abstractmethod def plot_spectra_maps_computation_error(self): pass
[docs] @abstractmethod def plot_spectra_maps_finished(self): pass
# ERP image
[docs] @abstractmethod def plot_ERP_image_clicked(self): pass
[docs] @abstractmethod def plot_ERP_image_information(self, channels_selected): pass
# ERPs
[docs] @abstractmethod def plot_ERPs_clicked(self): pass
[docs] @abstractmethod def plot_ERPs_information(self, channel_selected): pass
# Time frequency
[docs] @abstractmethod def plot_time_frequency_clicked(self): pass
[docs] @abstractmethod def plot_time_frequency_information(self, method_tfr, channel_selected, min_frequency, max_frequency, n_cycles): pass
[docs] @abstractmethod def plot_time_frequency_computation_finished(self): pass
[docs] @abstractmethod def plot_time_frequency_computation_error(self): pass
[docs] @abstractmethod def plot_time_frequency_finished(self): pass
""" Connectivity Menu """ # Envelope correlation
[docs] @abstractmethod def envelope_correlation_clicked(self): pass
[docs] @abstractmethod def envelope_correlation_information(self, psi, fmin, fmax, connectivity_method, n_jobs, export_path): pass
[docs] @abstractmethod def envelope_correlation_computation_finished(self): pass
[docs] @abstractmethod def envelope_correlation_computation_error(self): pass
[docs] @abstractmethod def envelope_correlation_finished(self): pass
# Source space connectivity
[docs] @abstractmethod def source_space_connectivity_clicked(self): pass
[docs] @abstractmethod def source_space_connectivity_information(self, connectivity_method, spectrum_estimation_method, source_estimation_method, save_data, load_data, n_jobs, export_path, psi, fmin, fmax): pass
[docs] @abstractmethod def source_space_connectivity_computation_finished(self): pass
[docs] @abstractmethod def source_space_connectivity_finished(self): pass
# Sensor space connectivity
[docs] @abstractmethod def sensor_space_connectivity_clicked(self): pass
[docs] @abstractmethod def sensor_space_connectivity_information(self, export_path): pass
[docs] @abstractmethod def sensor_space_connectivity_computation_finished(self): pass
[docs] @abstractmethod def sensor_space_connectivity_computation_error(self): pass
[docs] @abstractmethod def sensor_space_connectivity_finished(self): pass
# Spectro temporal connectivity
[docs] @abstractmethod def spectro_temporal_connectivity_clicked(self): pass
[docs] @abstractmethod def spectro_temporal_connectivity_information(self): pass
""" Classification Menu """
[docs] @abstractmethod def classify_clicked(self): pass
[docs] @abstractmethod def classify_information(self, pipeline_selected, feature_selection, number_of_channels_to_select, hyper_tuning, cross_val_number, trials_selected): pass
[docs] @abstractmethod def classify_computation_finished(self): pass
[docs] @abstractmethod def classify_computation_error(self): pass
[docs] @abstractmethod def classify_finished(self): pass
""" Statistics Menu """ # SNR
[docs] @abstractmethod def statistics_snr_clicked(self): pass
[docs] @abstractmethod def statistics_snr_information(self, snr_methods, source_method, read, write, picks, stats_first_variable, stats_second_variable): pass
# ERP
[docs] @abstractmethod def statistics_erp_clicked(self): pass
[docs] @abstractmethod def statistics_erp_information(self, channels_selected, stats_first_variable, stats_second_variable): pass
# PSD
[docs] @abstractmethod def statistics_psd_clicked(self): pass
[docs] @abstractmethod def statistics_psd_information(self, minimum_frequency, maximum_frequency, minimum_time, maximum_time, topo_time_points, channel_selected, stats_first_variable, stats_second_variable): pass
# ERSP ITC
[docs] @abstractmethod def statistics_ersp_itc_clicked(self): pass
[docs] @abstractmethod def statistics_ersp_itc_information(self, method_tfr, channel_selected, min_frequency, max_frequency, n_cycles, stats_first_variable, stats_second_variable): pass
# Connectivity
[docs] @abstractmethod def statistics_connectivity_clicked(self): pass
[docs] @abstractmethod def statistics_connectivity_information(self, psi, fmin, fmax, connectivity_method, n_jobs, export_path, stats_first_variable, stats_second_variable): pass
""" Study Menu """
[docs] @abstractmethod def edit_study_clicked(self): pass
[docs] @abstractmethod def plot_study_clicked(self): pass
""" Dataset Menu """
[docs] @abstractmethod def change_dataset(self, index_selected): pass
[docs] @abstractmethod def study_selected(self): pass
""" Others """
[docs] @abstractmethod def download_fsaverage_mne_data_information(self): pass
[docs] @abstractmethod def download_fsaverage_mne_data_computation_finished(self): pass