from sklearn.linear_model import RidgeCV
from sklearn.dummy import DummyRegressor
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
from sklearn.model_selection import cross_val_predict, KFold, cross_validate
from sklearn.metrics import mean_absolute_error

# project imports
from library.spfiltering import ProjIdentitySpace, ProjSPoCSpace, ProjCommonSpace
from library.featuring import Diag, LogDiag, Riemann
from library.pattern import PatternScorer
import config as cfg

# %% load the dataset
fname = data_path() + '/SubjectCMC.ds'

out_path = os.path.join(cfg.path_outputs, 'ds-cmc')
if not os.path.exists(out_path):
    os.makedirs(out_path)

raw = mne.io.read_raw_ctf(fname)
raw.crop(50., 250.).load_data()  # crop for memory purposes

# Filter muscular activity to only keep high frequencies
emg = raw.copy().pick_channels(['EMGlft'])
emg.filter(20., None, fir_design='firwin')

# Filter MEG data to focus on beta band
raw.pick_types(meg=True, ref_meg=False, eeg=False, eog=False)
raw.filter(15., 30., fir_design='firwin')
#
# License: BSD (3-clause)

import matplotlib.pyplot as plt

import mne
from mne import Epochs
from mne.decoding import SPoC
from mne.datasets.fieldtrip_cmc import data_path

from sklearn.pipeline import make_pipeline
from sklearn.linear_model import Ridge
from sklearn.model_selection import KFold, cross_val_predict

# define parameters
fname = data_path() + '/SubjectCMC.ds'
raw = mne.io.read_raw_ctf(fname)
raw.crop(50., 250.).load_data()  # crop for memory purposes

# Filter muscular activity to only keep high frequencies
emg = raw.copy().pick_channels(['EMGlft'])
emg.filter(20., None)

# Filter MEG data to focus on alpha band
raw.pick_types(meg=True, ref_meg=True, eeg=False, eog=False)
raw.filter(15., 30., method='iir')

# Build epochs as sliding windows over the continuous raw file
events = mne.make_fixed_length_events(raw, id=1, duration=.250)

# Epoch length is 1.5 second
"""
# Author: Denis A. Engemann <*****@*****.**>
#         Victoria Peterson <*****@*****.**>
# License: BSD-3-Clause

# %%

import matplotlib.pyplot as plt
import mne
from mne import Epochs
from mne.datasets.fieldtrip_cmc import data_path
from mne.decoding import SSD

# %%
# Define parameters
fname = data_path() / 'SubjectCMC.ds'

# Prepare data
raw = mne.io.read_raw_ctf(fname)
raw.crop(50., 110.).load_data()  # crop for memory purposes
raw.resample(sfreq=250)

raw.pick_types(meg=True, eeg=False, ref_meg=False)

freqs_sig = 9, 12
freqs_noise = 8, 13

ssd = SSD(
    info=raw.info,
    reg='oas',
    sort_by_spectral_ratio=False,  # False for purpose of example.