pythonscikit-learnmne-python

python-mne autoreject error: _setup_dots() missing 1 required positional argument: 'ch_type'


I'm analyzing MEG data using python mne. To automatically detect bad epochs I want to use the autoreject package which is based on scikit-learn (http://autoreject.github.io/).

I have created my epochs and adapted the code from the example given on the autoreject page, so it looks like this:

n_interpolates = np.array([1, 4, 32])
consensus_percs = np.linspace(0, 1.0, 11)
picks = mne.pick_types(raw.info, meg='mag', stim=False, include=[], exclude=[])
ar = AutoReject(n_interpolates, consensus_percs, picks=picks,
            thresh_method='random_search', random_state=42)
epochs_clean = ar.fit_transform(epochs)

However, if I run the last line to apply autoreject to my epochs, I get the following error message:

_setup_dots() missing 1 required positional argument: 'ch_type'

The full traceback is here:

> epochs_clean = ar.fit_transform(epochs) 105 coil definitions read Traceback (most recent call last):

  File "<ipython-input-57-ae1b953bbd77>", line 1, in <module>
    epochs_clean = ar.fit_transform(epochs)

  File "/home/xxx/.local/lib/python3.8/site-packages/autoreject/autoreject.py", line 1110, in fit_transform
    return self.fit(epochs).transform(epochs, return_log=return_log)

  File "/home/xxx/.local/lib/python3.8/site-packages/autoreject/autoreject.py", line 960, in fit
    self.dots = _compute_dots(this_info)

  File "/home/xxx/.local/lib/python3.8/site-packages/autoreject/utils.py", line 426, in _compute_dots
    int_rad, noise, lut_fun, n_fact = _setup_dots(mode, coils, 'meg')

TypeError: _setup_dots() missing 1 required positional argument: 'ch_type'

Solution

  • I found the issue, here it is in case anyone else is struggling with this:

    Apparently, the version of autoreject which gets installed through $ pip install -U autoreject has some errors (some of the functions in the util.py file require more variables than are provided by the functions in autoreject.py).

    Anyway, an updated version which works well can be installed as follows:

    $ pip install https://api.github.com/repos/autoreject/autoreject/zipball/master