mne-tools / mne-tools/mne-python
Noisy point-spread functions
@olafhauk is already working on this.
Since Aug 19, 2022.
- Dominant language
- Python
- Stars
- 3.5k
- Forks
- 1.6k
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 100
Description
Describe the new feature or enhancement
Currently mne.minimum_norm.point_spread_function() computes PSFs without added noise, i.e. based on the closed-form expression of the resolution matrix. This produces idealised results that may overestimate spatial resolution for medium-to-high noise levels. Samuelsson et al., Neuroimage 2021, suggested to use "empirical resolution matrices", i.e. to use the original PSFs plus an estimate of the noise projected into source space. This could still be implemented in mne-python.
Describe your proposed implementation
The option to use the empirical resolution matrix to compute PSFs could be added to mne.minimum_norm.point_spread_function(). It would need an additional argument to provide a noise covariance matrix and an SNR.
Describe possible alternatives
It could be a new function "mne.minimum_norm.point_spread_function_empirical()". This would make sense if the function was to be extended to nonlinear source estimation methods.
Additional comments
I would start accounting for noise based on a noise covariance matrix. Later a feature to use epochs or resting state data could be added. This would probably only be relevant for nonlinear source estimation methods.
Implementing an equivalent for "noisy CTFs" is trickier and will require some thinking.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.