Simulated source - problem of scaling in the projected sensor signal


Dear MNE-Python team,

I would like to simulate a source signal and project it into the sensor space. I therefore follow this example (source simulator) and this one (point spread tutorial).

It is working fine with the sample data from mne-python, but when I am using my own data, the projected sensors data are not within a plausible range of values (see attached on the figure): projected EEG are very low (around 10-6 uV) and MEG very high (mag: ~10+10 fT, grad: ~ 10+8 fT/m). I was using a sinusoidal source signal with an amplitude of 10-9 (as in the example).

Would you have an idea of where the problem comes from? I thought that it can come from my forward model, should there be some requirements to compute it specific to simulation?

  • MNE-Python version: ‘0.21.2’
  • operating system: Windows 10 Pro

Thank you!

the only thing you change is the forward model?


Not only, compared to the example, I changed the forward model, but I also used the info from a resting-state run of my own data. The label parcellation also comes from my own data.

can you share the plot_alignment figure for your subject? just to see how coreg looks like


Sure, here it is! It seems fine to me.
Please also find part of the code I used to compute my forward model:

from config import datapath, preprocpath, subjects, subjects_dir
import os.path as op

subject =subjects[0]

# Read filenames of raw data
filenames = preproc.read_filesName(datapath + subjects[0])

# surface source space
spacing = 'oct6' # oct6: 4098 sources/hemi, 4.9mm spacing
src = mne.setup_source_space(subject, spacing='oct6', add_dist='patch',

# read coregistration file
trans = op.join(preprocpath, subject, 'coregistration', subject+ '-trans.fif')

# BEM model
conductivity = (0.3, 0.006, 0.3)  # for three layers
ico = 5 # The surface ico downsampling to use, e.g. 5=20484, 4=5120, 3=1280. if none no subsampling
model = mne.make_bem_model(subject=subject, ico=ico, conductivity=conductivity,
bem = mne.make_bem_solution(model)

# Forward model
fwd = mne.make_forward_solution(info, trans=trans, src=src, bem=bem,
                                meg=True, eeg=True, mindist=5.0, n_jobs=1,

# save forward model
fname = op.join(preprocpath, subject, 'forwardmodel', subject + '-fwd.fif')
mne.write_forward_solution(fname, fwd, overwrite=True)

I would like to add another piece of (weird) information: when looking at the topographies of the projected simulated signal (a sinusoid in the left occipital pole), they are coherent for MEG channels (activity in left occipital channels), but very weird in the EEG (distributed, with some maximal activity in frontal sensors). I don’t know if this problem is related to the bad scaling problem.

Please find here the corresponding plot for mag and grad:
And here, the plot for EEG channels:
téléchargement (1)

that’s weird

can you show me the plot_bem maybe you have some surfaces which are very close to each other

can you maybe share with me the files or at least the forward file?


Sure, email sent!
And for the BEM, it doesn’t look so bad, right?