Interpolate the missing channels in sensor level grand_average

Hi MNE members,

Current implementation of **mne.grand_average API equalizes channels across subjects before performing a grand average. Is there any way to construct/interpolate the missing channels based on the neighboring channels on grand average data similarly to a single subject?


hi Dip,

interpolation is a linear operation you can do it before or after grand average.

Either you interpolate channels for all files before the grand_average or you do it


Hi @agramfort,

The problem that I am facing is something similar:

sub1 has grad channels (physical) : 1, 2, …50, 51, 52, 53
sub2 has grad channels : 1,2, … 50, 51, 53 (ch 52 is missing, it’s not registered as bad that can be interpolated)
sub3 has grad channels: 1, 2, …51, 52, 53 (50 is missing)

… and so on!
now, if you do grand average, the output becomes: 1, 2, …51, 53 (50 and 52 are not there due to channel equalization across subjects). How can I interpolate or retreat back the missing channels in the grand average unless the missing channels across subjects can be labeled/marked as bad in the grand average? At the moment, MNE doesn’t offer this option. I hope I am clearer with the explanation.


Can the missing channel locations be known somehow? I.e., if they’re grad channels in a SQUID system then the location is fixed, and you could add an all-zero channel to the montage of subject 2, getting its location from the montage of subject 1. Be mindful of coordinate system transforms if you take this approach (e.g., look at montage.dig[0]['coord_frame'] of both subjects)

@dasdiptyajit the mne.grand_average() function accepts a combination of the interpolate_bads and drop_bads parameters. I think what you’re looking for is

grand_average(…, drop_bads=False, interpolate_bads=True)

This will interpolate bad channels of each instance / participant before submitting the data to the grand average calculation.


The solution that I am looking for is something similar what @drammock has proposed. The channels were physically turned off due to high noise. So, they aren’t marked as bads that can be interpolated.

I will give it a go and try to post the intermediate results.


1 Like