
.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "auto_examples/plot_custom_dataset_example.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        Click :ref:`here <sphx_glr_download_auto_examples_plot_custom_dataset_example.py>`
        to download the full example code

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_auto_examples_plot_custom_dataset_example.py:

Custom Dataset Example
=========================

.. GENERATED FROM PYTHON SOURCE LINES 5-7

This example shows how to convert data from X and y to a braindecode
compatible data format.

.. GENERATED FROM PYTHON SOURCE LINES 7-16

.. code-block:: default


    # Authors: Lukas Gemein <l.gemein@gmail.com>
    #
    # License: BSD (3-clause)

    import mne

    from braindecode.datautil import create_from_X_y








.. GENERATED FROM PYTHON SOURCE LINES 17-18

To set up the example, we first fetch some data using mne:

.. GENERATED FROM PYTHON SOURCE LINES 18-33

.. code-block:: default


    # 5, 6, 7, 10, 13, 14 are codes for executed and imagined hands/feet
    subject_id = 22
    event_codes = [5, 6, 9, 10, 13, 14]
    # event_codes = [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

    # This will download the files if you don't have them yet,
    # and then return the paths to the files.
    physionet_paths = mne.datasets.eegbci.load_data(
        subject_id, event_codes, update_path=False)

    # Load each of the files
    parts = [mne.io.read_raw_edf(path, preload=True, stim_channel='auto')
             for path in physionet_paths]





.. rst-class:: sphx-glr-script-out

 Out:

 .. code-block:: none

    Using default location ~/mne_data for EEGBCI...
    Using default location ~/mne_data for EEGBCI...
    Using default location ~/mne_data for EEGBCI...
    Using default location ~/mne_data for EEGBCI...
    Using default location ~/mne_data for EEGBCI...
    Using default location ~/mne_data for EEGBCI...
    Extracting EDF parameters from /home/robintibor/mne_data/MNE-eegbci-data/files/eegmmidb/1.0.0/S022/S022R05.edf...
    EDF file detected
    Setting channel info structure...
    Creating raw.info structure...
    Reading 0 ... 19999  =      0.000 ...   124.994 secs...
    Extracting EDF parameters from /home/robintibor/mne_data/MNE-eegbci-data/files/eegmmidb/1.0.0/S022/S022R06.edf...
    EDF file detected
    Setting channel info structure...
    Creating raw.info structure...
    Reading 0 ... 19999  =      0.000 ...   124.994 secs...
    Extracting EDF parameters from /home/robintibor/mne_data/MNE-eegbci-data/files/eegmmidb/1.0.0/S022/S022R09.edf...
    EDF file detected
    Setting channel info structure...
    Creating raw.info structure...
    Reading 0 ... 19999  =      0.000 ...   124.994 secs...
    Extracting EDF parameters from /home/robintibor/mne_data/MNE-eegbci-data/files/eegmmidb/1.0.0/S022/S022R10.edf...
    EDF file detected
    Setting channel info structure...
    Creating raw.info structure...
    Reading 0 ... 19999  =      0.000 ...   124.994 secs...
    Extracting EDF parameters from /home/robintibor/mne_data/MNE-eegbci-data/files/eegmmidb/1.0.0/S022/S022R13.edf...
    EDF file detected
    Setting channel info structure...
    Creating raw.info structure...
    Reading 0 ... 19999  =      0.000 ...   124.994 secs...
    Extracting EDF parameters from /home/robintibor/mne_data/MNE-eegbci-data/files/eegmmidb/1.0.0/S022/S022R14.edf...
    EDF file detected
    Setting channel info structure...
    Creating raw.info structure...
    Reading 0 ... 19999  =      0.000 ...   124.994 secs...




.. GENERATED FROM PYTHON SOURCE LINES 34-37

We take the required data, targets and additional information sampling
frequency and channel names from the loaded data. Note that this data and
information can originate from any source.

.. GENERATED FROM PYTHON SOURCE LINES 37-42

.. code-block:: default

    X = [raw.get_data() for raw in parts]
    y = event_codes
    sfreq = parts[0].info["sfreq"]
    ch_names = parts[0].info["ch_names"]








.. GENERATED FROM PYTHON SOURCE LINES 43-44

Convert to data format compatible with skorch and braindecode:

.. GENERATED FROM PYTHON SOURCE LINES 44-49

.. code-block:: default

    windows_dataset = create_from_X_y(
        X, y, drop_last_window=False, sfreq=sfreq, ch_names=ch_names,
        window_stride_samples=500,
        window_size_samples=500,
    )




.. rst-class:: sphx-glr-script-out

 Out:

 .. code-block:: none

    Creating RawArray with float64 data, n_channels=64, n_times=20000
        Range : 0 ... 19999 =      0.000 ...   124.994 secs
    Ready.
    Creating RawArray with float64 data, n_channels=64, n_times=20000
        Range : 0 ... 19999 =      0.000 ...   124.994 secs
    Ready.
    Creating RawArray with float64 data, n_channels=64, n_times=20000
        Range : 0 ... 19999 =      0.000 ...   124.994 secs
    Ready.
    Creating RawArray with float64 data, n_channels=64, n_times=20000
        Range : 0 ... 19999 =      0.000 ...   124.994 secs
    Ready.
    Creating RawArray with float64 data, n_channels=64, n_times=20000
        Range : 0 ... 19999 =      0.000 ...   124.994 secs
    Ready.
    Creating RawArray with float64 data, n_channels=64, n_times=20000
        Range : 0 ... 19999 =      0.000 ...   124.994 secs
    Ready.
    Adding metadata with 4 columns
    Replacing existing metadata with 4 columns
    40 matching events found
    No baseline correction applied
    0 projection items activated
    Loading data for 40 events and 500 original time points ...
    0 bad epochs dropped
    Adding metadata with 4 columns
    Replacing existing metadata with 4 columns
    40 matching events found
    No baseline correction applied
    0 projection items activated
    Loading data for 40 events and 500 original time points ...
    0 bad epochs dropped
    Adding metadata with 4 columns
    Replacing existing metadata with 4 columns
    40 matching events found
    No baseline correction applied
    0 projection items activated
    Loading data for 40 events and 500 original time points ...
    0 bad epochs dropped
    Adding metadata with 4 columns
    Replacing existing metadata with 4 columns
    40 matching events found
    No baseline correction applied
    0 projection items activated
    Loading data for 40 events and 500 original time points ...
    0 bad epochs dropped
    Adding metadata with 4 columns
    Replacing existing metadata with 4 columns
    40 matching events found
    No baseline correction applied
    0 projection items activated
    Loading data for 40 events and 500 original time points ...
    0 bad epochs dropped
    Adding metadata with 4 columns
    Replacing existing metadata with 4 columns
    40 matching events found
    No baseline correction applied
    0 projection items activated
    Loading data for 40 events and 500 original time points ...
    0 bad epochs dropped





.. rst-class:: sphx-glr-timing

   **Total running time of the script:** ( 0 minutes  0.199 seconds)


.. _sphx_glr_download_auto_examples_plot_custom_dataset_example.py:


.. only :: html

 .. container:: sphx-glr-footer
    :class: sphx-glr-footer-example



  .. container:: sphx-glr-download sphx-glr-download-python

     :download:`Download Python source code: plot_custom_dataset_example.py <plot_custom_dataset_example.py>`



  .. container:: sphx-glr-download sphx-glr-download-jupyter

     :download:`Download Jupyter notebook: plot_custom_dataset_example.ipynb <plot_custom_dataset_example.ipynb>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
