MCPcopy
hub / github.com/mne-tools/mne-python / test_sparse_morph

Function test_sparse_morph

mne/tests/test_morph.py:81–136  ·  view source on GitHub ↗

Test sparse morphing.

()

Source from the content-addressed store, hash-verified

79
80@testing.requires_testing_data
81def test_sparse_morph():
82 """Test sparse morphing."""
83 rng = np.random.RandomState(0)
84 vertices_fs = [
85 np.sort(rng.permutation(np.arange(10242))[:4]),
86 np.sort(rng.permutation(np.arange(10242))[:6]),
87 ]
88 data = rng.randn(10, 1)
89 stc_fs = SourceEstimate(data, vertices_fs, 1, 1, "fsaverage")
90 spheres_fs = [
91 mne.read_surface(subjects_dir / "fsaverage" / "surf" / f"{hemi}.sphere.reg")[0]
92 for hemi in ("lh", "rh")
93 ]
94 spheres_sample = [
95 mne.read_surface(subjects_dir / "sample" / "surf" / f"{hemi}.sphere.reg")[0]
96 for hemi in ("lh", "rh")
97 ]
98 morph_fs_sample = compute_source_morph(
99 stc_fs,
100 "fsaverage",
101 "sample",
102 sparse=True,
103 spacing=None,
104 subjects_dir=subjects_dir,
105 )
106 stc_sample = morph_fs_sample.apply(stc_fs)
107 offset = 0
108 orders = list()
109 for v1, s1, v2, s2 in zip(
110 stc_fs.vertices, spheres_fs, stc_sample.vertices, spheres_sample
111 ):
112 dists = cdist(s1[v1], s2[v2])
113 order = np.argmin(dists, axis=-1)
114 assert_array_less(dists[np.arange(len(order)), order], 1.5) # mm
115 orders.append(order + offset)
116 offset += len(order)
117 assert_allclose(stc_fs.data, stc_sample.data[np.concatenate(orders)])
118 # Return
119 morph_sample_fs = compute_source_morph(
120 stc_sample,
121 "sample",
122 "fsaverage",
123 sparse=True,
124 spacing=None,
125 subjects_dir=subjects_dir,
126 )
127 stc_fs_return = morph_sample_fs.apply(stc_sample)
128 offset = 0
129 orders = list()
130 for v1, s, v2 in zip(stc_fs.vertices, spheres_fs, stc_fs_return.vertices):
131 dists = cdist(s[v1], s[v2])
132 order = np.argmin(dists, axis=-1)
133 assert_array_less(dists[np.arange(len(order)), order], 1.5) # mm
134 orders.append(order + offset)
135 offset += len(order)
136 assert_allclose(stc_fs.data, stc_fs_return.data[np.concatenate(orders)])
137
138

Callers

nothing calls this directly

Calls 4

SourceEstimateClass · 0.90
compute_source_morphFunction · 0.90
applyMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected