Test Maxwell filter shielding factor using empty room.
(tmp_path)
| 1159 | @pytest.mark.slowtest |
| 1160 | @testing.requires_testing_data |
| 1161 | def test_shielding_factor(tmp_path): |
| 1162 | """Test Maxwell filter shielding factor using empty room.""" |
| 1163 | raw_erm = read_crop(erm_fname).load_data().pick("meg") |
| 1164 | erm_power = raw_erm[pick_types(raw_erm.info, meg="mag")][0] |
| 1165 | erm_power = np.sqrt(np.sum(erm_power * erm_power)) |
| 1166 | erm_power_grad = raw_erm[pick_types(raw_erm.info, meg="grad")][0] |
| 1167 | erm_power_grad = np.sqrt(np.sum(erm_power * erm_power)) |
| 1168 | |
| 1169 | # Vanilla SSS (second value would be for meg=True instead of meg='mag') |
| 1170 | _assert_shielding(read_crop(sss_erm_std_fname), erm_power, 10) # 1.5) |
| 1171 | raw_sss = maxwell_filter(raw_erm, coord_frame="meg", regularize=None) |
| 1172 | _assert_shielding(raw_sss, erm_power, 12, 13) # 1.5) |
| 1173 | _assert_shielding(raw_sss, erm_power_grad, 0.45, 0.55, "grad") # 1.5) |
| 1174 | |
| 1175 | # No external basis |
| 1176 | raw_sss_0 = maxwell_filter(raw_erm, coord_frame="meg", regularize=None, ext_order=0) |
| 1177 | _assert_shielding(raw_sss_0, erm_power, 1.0, 1.1) |
| 1178 | del raw_sss_0 |
| 1179 | |
| 1180 | # Regularization |
| 1181 | _assert_shielding(read_crop(sss_erm_std_fname), erm_power, 10) # 1.5) |
| 1182 | raw_sss = maxwell_filter(raw_erm, coord_frame="meg") |
| 1183 | _assert_shielding(raw_sss, erm_power, 14.5, 15.5) |
| 1184 | |
| 1185 | # |
| 1186 | # Extended (eSSS) |
| 1187 | # |
| 1188 | |
| 1189 | # Show that using empty-room projectors increase shielding factor |
| 1190 | proj = mne.compute_proj_raw( |
| 1191 | raw_erm, meg="combined", verbose="error", n_mag=15, n_grad=15 |
| 1192 | ) |
| 1193 | raw_sss = maxwell_filter( |
| 1194 | raw_erm, coord_frame="meg", regularize=None, extended_proj=proj[:3] |
| 1195 | ) |
| 1196 | _assert_shielding(raw_sss, erm_power, 38, 39) |
| 1197 | raw_sss = maxwell_filter( |
| 1198 | raw_erm, coord_frame="meg", regularize=None, extended_proj=proj |
| 1199 | ) |
| 1200 | _assert_shielding(raw_sss, erm_power, 49, 51) |
| 1201 | # Now with reg |
| 1202 | raw_sss = maxwell_filter(raw_erm, coord_frame="meg", extended_proj=proj[:3]) |
| 1203 | _assert_shielding(raw_sss, erm_power, 42, 44) |
| 1204 | raw_sss = maxwell_filter(raw_erm, coord_frame="meg", extended_proj=proj) |
| 1205 | _assert_shielding(raw_sss, erm_power, 59, 61) |
| 1206 | |
| 1207 | # |
| 1208 | # Different mag_scale values |
| 1209 | # |
| 1210 | raw_sss = maxwell_filter( |
| 1211 | raw_erm, coord_frame="meg", regularize=None, mag_scale="auto" |
| 1212 | ) |
| 1213 | _assert_shielding(raw_sss, erm_power, 12, 13) |
| 1214 | _assert_shielding(raw_sss, erm_power_grad, 0.48, 0.58, "grad") |
| 1215 | raw_sss = maxwell_filter( |
| 1216 | raw_erm, coord_frame="meg", regularize=None, mag_scale=1.0 |
| 1217 | ) # not a good choice |
| 1218 | _assert_shielding(raw_sss, erm_power, 7.3, 8.0) |
nothing calls this directly
no test coverage detected