from braindecode.datasets import MOABBDataset from braindecode.preprocessing.windowers import create_windows_from_events ############################################################################### # First, we create a dataset based on BCIC IV 2a fetched with MOABB, ds = MOABBDataset(dataset_name="BNCI2014001", subject_ids=[1]) ############################################################################### # ds has a pandas DataFrame with additional description of its internal datasets display(ds.description) ############################################################################### # We can split the dataset based on the info in the description, for example # based on different runs. The returned dictionary will have string keys # corresponding to unique entries in the description DataFrame column splits = ds.split("run") display(splits) display(splits["run_4"].description) ############################################################################### # We can also split the dataset based on a list of integers corresponding to # rows in the description. In this case, the returned dictionary will have # '0' as the only key splits = ds.split([0, 1, 5]) display(splits) display(splits["0"].description) ############################################################################### # If we want multiple splits based on indices, we can also specify a list of # list of integers. In this case, the dictionary will have string keys # representing the id of the dataset split in the order of the given list of
############################################################################## # We can apply preprocessing transforms that are defined in mne and work # in-place, such as resampling, bandpass filtering, or electrode selection. transforms = [ MNEPreproc("pick_types", eeg=True, meg=False, stim=True), MNEPreproc("resample", sfreq=100), ] print(ds.datasets[0].raw.info["sfreq"]) preprocess(ds, transforms) print(ds.datasets[0].raw.info["sfreq"]) ############################################################################### # We can easily split ds based on a criteria applied to the description # DataFrame: subsets = ds.split("session") print({subset_name: len(subset) for subset_name, subset in subsets.items()}) ############################################################################### # Next, we use a windower to extract events from the dataset based on events: windows_ds = create_windows_from_events(ds, trial_start_offset_samples=0, trial_stop_offset_samples=100, window_size_samples=400, window_stride_samples=100, drop_last_window=False) ############################################################################### # We can iterate through the windows_ds which yields a window x, # a target y, and window_ind (which itself contains `i_window_in_trial`, # `i_start_in_trial`, and `i_stop_in_trial`, which are required for combining
############################################################################## # We can apply preprocessing transforms that are defined in mne and work # in-place, such as resampling, bandpass filtering, or electrode selection. preprocessors = [ Preprocessor('pick_types', eeg=True, meg=False, stim=True), Preprocessor('resample', sfreq=100) ] print(dataset.datasets[0].raw.info["sfreq"]) preprocess(dataset, preprocessors) print(dataset.datasets[0].raw.info["sfreq"]) ############################################################################### # We can easily split ds based on a criteria applied to the description # DataFrame: subsets = dataset.split("session") print({subset_name: len(subset) for subset_name, subset in subsets.items()}) ############################################################################### # Next, we use a windower to extract events from the dataset based on events: windows_dataset = create_windows_from_events(dataset, trial_start_offset_samples=0, trial_stop_offset_samples=100, window_size_samples=400, window_stride_samples=100, drop_last_window=False) ############################################################################### # We can iterate through the windows_ds which yields a window x, # a target y, and window_ind (which itself contains ``i_window_in_trial``, # ``i_start_in_trial``, and ``i_stop_in_trial``, which are required for
from braindecode.datasets import MOABBDataset from braindecode.preprocessing import create_windows_from_events ############################################################################### # First, we create a dataset based on BCIC IV 2a fetched with MOABB, dataset = MOABBDataset(dataset_name="BNCI2014001", subject_ids=[1]) ############################################################################### # ds has a pandas DataFrame with additional description of its internal datasets dataset.description ############################################################################### # We can split the dataset based on the info in the description, for example # based on different runs. The returned dictionary will have string keys # corresponding to unique entries in the description DataFrame column splits = dataset.split("run") print(splits) splits["run_4"].description ############################################################################### # We can also split the dataset based on a list of integers corresponding to # rows in the description. In this case, the returned dictionary will have # '0' as the only key splits = dataset.split([0, 1, 5]) print(splits) splits["0"].description ############################################################################### # If we want multiple splits based on indices, we can also specify a list of # list of integers. In this case, the dictionary will have string keys # representing the id of the dataset split in the order of the given list of