Source code for mne_bids.datasets
"""Helper functions to fetch data to work with."""
# Authors: Mainak Jas <mainak.jas@telecom-paristech.fr>
#          Alexandre Gramfort <alexandre.gramfort@telecom-paristech.fr>
#          Teon Brooks <teon.brooks@gmail.com>
#          Stefan Appelhoff <stefan.appelhoff@mailbox.org>
#
# License: BSD (3-clause)
import os
import os.path as op
import shutil
import tarfile
from six.moves import urllib
from mne.utils import _fetch_file
[docs]def fetch_faces_data(data_path=None, repo='ds000117', subject_ids=[1]):
    """Dataset fetcher for OpenfMRI dataset ds000117.
    Parameters
    ----------
    data_path : str | None
        Path to the folder where data is stored. Defaults to
        '~/mne_data/mne_bids_examples'
    repo : str
        The folder name. Defaults to 'ds000117'.
    subject_ids : list of int
        The subjects to fetch. Defaults to [1], downloading subject 1.
    Returns
    -------
    data_path : str
        Path to the folder where data is stored.
    """
    if not data_path:
        home = os.path.expanduser('~')
        data_path = os.path.join(home, 'mne_data', 'mne_bids_examples')
        if not os.path.exists(data_path):
            os.makedirs(data_path)
    for subject_id in subject_ids:
        src_url = ('http://openfmri.s3.amazonaws.com/tarballs/'
                   'ds117_R0.1.1_sub%03d_raw.tgz' % subject_id)
        tar_fname = op.join(data_path, repo + '.tgz')
        target_dir = op.join(data_path, repo)
        if not op.exists(target_dir):
            if not op.exists(tar_fname):
                _fetch_file(url=src_url, file_name=tar_fname,
                            print_destination=True, resume=True, timeout=10.)
            tf = tarfile.open(tar_fname)
            print('Extracting files. This may take a while ...')
            tf.extractall(path=data_path)
            shutil.move(op.join(data_path, 'ds117'), target_dir)
            os.remove(tar_fname)
    return data_path 
[docs]def fetch_brainvision_testing_data(data_path=None):
    """Download the MNE-Python testing data for the BrainVision format.
    Parameters
    ----------
    data_path : str | None
        Path to the folder where data is stored. Defaults to
        '~/mne_data/mne_bids_examples'
    Returns
    -------
    data_path : str
        Path to the folder where data is stored.
    """
    if not data_path:
        home = os.path.expanduser('~')
        data_path = os.path.join(home, 'mne_data', 'mne_bids_examples')
        if not os.path.exists(data_path):
            os.makedirs(data_path)
    base_url = 'https://github.com/mne-tools/mne-python/'
    base_url += 'raw/master/mne/io/brainvision/tests/data/test'
    file_endings = ['.vhdr', '.vmrk', '.eeg', ]
    for f_ending in file_endings:
        url = base_url + f_ending
        response = urllib.request.urlopen(url)
        fname = os.path.join(data_path, 'test' + f_ending)
        with open(fname, 'wb') as fout:
            fout.write(response.read())
    return data_path