Skip to content

Commit a8e2fe8

Browse files
wmvanvlietlarsoner
andauthored
Make _ForwardModeler fill out the complete forward object (#13416)
Co-authored-by: Eric Larson <[email protected]>
1 parent 9ee6e52 commit a8e2fe8

File tree

3 files changed

+23
-3
lines changed

3 files changed

+23
-3
lines changed

mne/conftest.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,8 @@ def pytest_configure(config: pytest.Config):
197197
# sklearn
198198
ignore:Python binding for RankQuantileOptions.*:RuntimeWarning
199199
ignore:.*The `disp` and `iprint` options of the L-BFGS-B solver.*:DeprecationWarning
200+
# matplotlib<->nilearn
201+
ignore:[\S\s]*You are using the 'agg' matplotlib backend[\S\s]*:UserWarning
200202
""" # noqa: E501
201203
for warning_line in warning_lines.split("\n"):
202204
warning_line = warning_line.strip()

mne/forward/_make_forward.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -961,7 +961,7 @@ def __init__(
961961
self.mindist = mindist
962962
self.n_jobs = n_jobs
963963
src = SourceSpaces([])
964-
self.sensors, _, _, _, self.bem = _prepare_for_forward(
964+
self.sensors, _, _, self.update_kwargs, self.bem = _prepare_for_forward(
965965
src,
966966
self.mri_head_t,
967967
info,
@@ -988,8 +988,13 @@ def __init__(
988988
def compute(self, src):
989989
src = _ensure_src(src).copy()
990990
src._transform_to("head", self.mri_head_t)
991-
kwargs = dict(limit=self.mindist, mri_head_t=self.mri_head_t, src=src)
992-
_filter_source_spaces(self.check_inside, n_jobs=self.n_jobs, **kwargs)
991+
_filter_source_spaces(
992+
self.check_inside,
993+
n_jobs=self.n_jobs,
994+
limit=self.mindist,
995+
mri_head_t=self.mri_head_t,
996+
src=src,
997+
)
993998
rr = np.concatenate([s["rr"][s["vertno"]] for s in src])
994999
if len(rr) < 1:
9951000
raise RuntimeError(
@@ -1012,4 +1017,15 @@ def compute(self, src):
10121017
}
10131018
fwd = _merge_fwds(fwds, verbose=False)
10141019
del fwds
1020+
1021+
fwd.update(**self.update_kwargs)
1022+
# Delete some keys to clean up the source space:
1023+
for key in ["working_dir", "command_line"]:
1024+
if key in src.info:
1025+
del src.info[key]
1026+
# our `update_kwargs` set these, but they need to be updated for this src
1027+
fwd["src"] = src
1028+
fwd["nsource"] = sum(s["nuse"] for s in src)
1029+
fwd["source_rr"] = np.vstack([s["rr"][s["inuse"] == 1] for s in src])
1030+
fwd["source_nn"] = np.tile(np.eye(3), (fwd["nsource"], 1))
10151031
return fwd

mne/forward/tests/test_make_forward.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -926,6 +926,8 @@ def test_make_forward_iterative():
926926
fwd = make_forward_solution(raw.info, trans, src, bem, mindist=0, verbose=True)
927927
# check against iterative version
928928
fm = _ForwardModeler(raw.info, trans, bem)
929+
fwd_iterative = fm.compute(src)
930+
_compare_forwards(fwd, fwd_iterative, fwd["nchan"], 3 * fwd["nsource"])
929931
midpt = fwd["nsource"] // 2
930932
assert fwd["coord_frame"] == FIFF.FIFFV_COORD_HEAD
931933
fwd_data = list()

0 commit comments

Comments
 (0)