[Mne_analysis] Computer forward solution using epoch.info rather than raw.info {Disarmed}
Eric Larson
larson.eric.d at gmail.com
Tue Jul 21 14:04:44 EDT 2020
This message contained a link to a web site whose IP address has recently been associated with malicious activity. Due to that activity, the site is not accessible from within the Partners Healthcare network. The link has been modified in the message below. If you feel this is an error, please contact the IS Service Desk and open a ticket with the network security - phs assignment group.
IS Service Desk
BWH 617-732-5927 BWFH 617-983-7454 BWH-RICS 617-525-0848
DFCI 617-632-3399 LCC 857-307-4150 MCL 781-416-8940
MGH 617-726-5085 NHP 617-643-2020 NSMC 978-354-2014
NWH 617-243-6001 PCPO 781-433-3757 PHH 617-726-0790
PHS 857-282-4357 SRN 617-952-5555 CDHC 413-582-5005
*********************************
External Email - Use Caution
>
> I’m currently running source recon MEG data using individual MRIs. I found
> that when running make_inverse_operator(raw.info, fwd, noise_cov) I was
> getting an error saying ‘no channels match the selection’. I checked in
> raw.info and no channels were marked as bad, so I tried again using
> epoch.info (also no bad channels) instead of raw.info and got the same
> error.
>
raw.ch_names, fwd['ch_names'], and/or noise_cov['names'] must not match.
This suggests that something is going wrong in your pipeline as these
should all be consistent.
> I have diagnosed this further up the pipeline – I was making the forward
> solution with:
>
> make_forward_solution(raw.info, trans, src, bem, meg=True, eeg=False)
>
> Thinking that this would pick only the MEG channels.
>
Indeed it should. You can check with fwd['sol']['row_names'].
However, my noise covariance is calculated from epochs, not the raw data,
> and I think that creating a forward solution using raw.info and the
> covariance using epoch.info resulted in a clash of channels, even though
> both of them have 270 MEG channels.
>
It shouldn't. Creating epochs should not change the channel names. I would
try making your script as short as possible to reproduce these steps and
see if they fail. Something like:\
raw = mne.io.read_raw_something(...)
events = mne.make_fixed_length_events(raw)
epochs = mne.Epochs(raw, events)
assert raw.ch_names == epochs.ch_names
cov = mne.compute_covariance(epochs)
assert cov['names'] == epochs.ch_names
fwd = make_forward_solution(raw.info, ...)
inv = make_inverse_operator(epochs.info, fwd, noise_cov)
If the filled-out version of this fails on your data, there is probably
some bug in MNE with these functions. If it works, then you can gradually
add lines to it (or remove lines from your other script(s)) to figure out
what step breaks things. It could be some bug in MNE or some bug in your
script.
Eric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20200721/2556423e/attachment.html
More information about the Mne_analysis
mailing list