- MNE version: 1.8.0
- operating system: Ubuntu
Hello MNE community,
I am analyzing data from an Elekta Triux MEG. Recordings are made with continuous HPIs on. The first steps of my preprocessing script involve Maxwell filtering with movement compensation by tSSS. For that, I need to extract the continuous head positions across the recording.
I use the following lines (as described in a MNE tutorial):
chpi_freqs, ch_idx, chpi_codes = mne.chpi.get_chpi_info(info=raw.info)
print(f"cHPI coil frequencies extracted from raw: {chpi_freqs} Hz")
chpi_amplitudes = mne.chpi.compute_chpi_amplitudes(raw)
chpi_locs = mne.chpi.compute_chpi_locs(raw.info, chpi_amplitudes)
head_pos = mne.chpi.compute_head_pos(raw.info, chpi_locs, verbose=True)
This is going well for the vast majority of participants but for few of them, I get the a sequence of errors (like below) for the compute_head_pos function:
RuntimeWarning: t=837.280: 1/4 good HPI fits, cannot determine the transformation (0.83, 0.79, 1.00, 0.69 GOF)!
Indeed, when I look into the variable chpi_locs[‘gofs’], there are moments in the recording when there are brief drops in GOF. When using the compute_chpi_snr function, they correspond to sharp and very brief drops of SNR.
Where do I go from there? This is preventing me to continue the preprocessing as planned. Should I try to exclude the portions of signal when the GOF are very low using annotations? I can’t lower the ‘gof_limit’ argument in compute_head_pos as I can have gofs as low as 0.5…
Thank you very much for your help!