the issue is the following:
we need to be able to concatenate raws or epochs with different sets of bads.
currently mne.concatenate_raws and mne.concatenate_epochs enforce (for good reasons)
that the list of bads are the same for all instances.
The question is how to simplify the life of users to it's easy to have such "concatenable" instances.
Currently some users interpolate all bads for all instances using interpolate_bads methods.
It works but I think it is not ideal. For me you need the big picture of all instances to make
the best decision. For example I think it's NOT a good idea to systematically interpolate a channel that
is bad for all runs, however interpolation certainly makes sense if one channel is bad for let's say 50%
of the runs.
Suggestion:
insts = mne.preprocessing.interpolate_bads([inst1, inst2, ...], good_fraction=0.5)
would just interpolate if a channel is good for at least 50% of the runs and otherwise the
channel would be marked as bad for all instances.
then all interpolate_bads method would use this new public function with [self] as parameter.
we'll need to be careful about inplace computation options.
thoughts?
the issue is the following:
we need to be able to concatenate raws or epochs with different sets of bads.
currently mne.concatenate_raws and mne.concatenate_epochs enforce (for good reasons)
that the list of bads are the same for all instances.
The question is how to simplify the life of users to it's easy to have such "concatenable" instances.
Currently some users interpolate all bads for all instances using interpolate_bads methods.
It works but I think it is not ideal. For me you need the big picture of all instances to make
the best decision. For example I think it's NOT a good idea to systematically interpolate a channel that
is bad for all runs, however interpolation certainly makes sense if one channel is bad for let's say 50%
of the runs.
Suggestion:
insts = mne.preprocessing.interpolate_bads([inst1, inst2, ...], good_fraction=0.5)would just interpolate if a channel is good for at least 50% of the runs and otherwise the
channel would be marked as bad for all instances.
then all interpolate_bads method would use this new public function with
[self]as parameter.we'll need to be careful about inplace computation options.
thoughts?