def test_dataobjects(): "Test handing MNE-objects as data-objects" shift = np.array([0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, -0.1]) epochs = datasets.get_mne_epochs() ds = Dataset(('a', Factor('ab', repeat=8)), ('epochs', epochs)) ds['ets'] = shift_mne_epoch_trigger(epochs, shift, min(shift), max(shift)) # ds operations sds = ds.sub("a == 'a'") ads = ds.aggregate('a') # asndvar ndvar = asndvar(ds['epochs']) ndvar = asndvar(ds['ets']) # connectivity ds = datasets.get_mne_sample(sub=[0], sns=True) sensor = ds['meg'].sensor c = sensor.connectivity() assert_array_equal(c[:, 0] < c[:, 1], True) eq_(c.max(), len(sensor) - 1)
def test_source_estimate(): "Test SourceSpace dimension" mne.set_log_level('warning') ds = datasets.get_mne_sample(src='ico') dsa = ds.aggregate('side') # test auto-conversion asndvar('epochs', ds=ds) asndvar('epochs', ds=dsa) asndvar(dsa['epochs'][0]) # source space clustering res = testnd.ttest_ind('src', 'side', ds=ds, samples=0, pmin=0.05, tstart=0.05, mintime=0.02, minsource=10) assert res.clusters.n_cases == 52 # test disconnecting parc src = ds['src'] source = src.source parc = source.parc orig_conn = set(map(tuple, source.connectivity())) disc_conn = set(map(tuple, source.connectivity(True))) assert len(disc_conn) < len(orig_conn) for pair in orig_conn: s, d = pair if pair in disc_conn: assert parc[s] == parc[d] else: assert parc[s] != parc[d] # threshold-based test with parc srcl = src.sub(source='lh') res = testnd.ttest_ind(srcl, 'side', ds=ds, samples=10, pmin=0.05, tstart=0.05, mintime=0.02, minsource=10, parc='source') assert res._cdist.dist.shape[1] == len(srcl.source.parc.cells) label = 'superiortemporal-lh' c_all = res.find_clusters(maps=True) c_label = res.find_clusters(maps=True, source=label) assert_array_equal(c_label['location'], label) for case in c_label.itercases(): id_ = case['id'] idx = c_all['id'].index(id_)[0] assert case['v'] == c_all[idx, 'v'] assert case['tstart'] == c_all[idx, 'tstart'] assert case['tstop'] == c_all[idx, 'tstop'] assert case['p'] <= c_all[idx, 'p'] assert_dataobj_equal(case['cluster'], c_all[idx, 'cluster'].sub(source=label)) # threshold-free test with parc res = testnd.ttest_ind(srcl, 'side', ds=ds, samples=10, tstart=0.05, parc='source') cl = res.find_clusters(0.05) assert cl.eval("p.min()") == res.p.min() mp = res.masked_parameter_map() assert mp.min() == res.t.min() assert mp.max() == res.t.max(res.p <= 0.05) assert mp.max() == pytest.approx(-4.95817732) # indexing source space s_sub = src.sub(source='fusiform-lh') idx = source.index_for_label('fusiform-lh') s_idx = src[idx] assert_dataobj_equal(s_sub, s_idx) # concatenate src_reconc = concatenate((src.sub(source='lh'), src.sub(source='rh')), 'source') assert_dataobj_equal(src_reconc, src)
def test_source_estimate(): "Test SourceSpace dimension" mne.set_log_level('warning') ds = datasets.get_mne_sample(src='ico') dsa = ds.aggregate('side') # test auto-conversion asndvar('epochs', ds=ds) asndvar('epochs', ds=dsa) asndvar(dsa['epochs'][0]) # source space clustering res = testnd.ttest_ind('src', 'side', ds=ds, samples=0, pmin=0.05, tstart=0.05, mintime=0.02, minsource=10) assert_equal(res.clusters.n_cases, 52) # test disconnecting parc src = ds['src'] source = src.source parc = source.parc orig_conn = set(map(tuple, source.connectivity())) disc_conn = set(map(tuple, source.connectivity(True))) assert_true(len(disc_conn) < len(orig_conn)) for pair in orig_conn: s, d = pair if pair in disc_conn: assert_equal(parc[s], parc[d]) else: assert_not_equal(parc[s], parc[d]) # threshold-based test with parc srcl = src.sub(source='lh') res = testnd.ttest_ind(srcl, 'side', ds=ds, samples=10, pmin=0.05, tstart=0.05, mintime=0.02, minsource=10, parc='source') assert_equal(res._cdist.dist.shape[1], len(srcl.source.parc.cells)) label = 'superiortemporal-lh' c_all = res._clusters(maps=True) c_label = res._clusters(maps=True, source=label) assert_array_equal(c_label['location'], label) for case in c_label.itercases(): id_ = case['id'] idx = c_all['id'].index(id_)[0] assert_equal(case['v'], c_all[idx, 'v']) assert_equal(case['tstart'], c_all[idx, 'tstart']) assert_equal(case['tstop'], c_all[idx, 'tstop']) assert_less_equal(case['p'], c_all[idx, 'p']) assert_dataobj_equal(case['cluster'], c_all[idx, 'cluster'].sub(source=label)) # threshold-free test with parc res = testnd.ttest_ind(srcl, 'side', ds=ds, samples=10, tstart=0.05, parc='source') cl = res._clusters(0.05) assert_equal(cl.eval("p.min()"), res.p.min()) mp = res.masked_parameter_map() assert_in(mp.min(), (0, res.t.min())) assert_in(mp.max(), (0, res.t.max())) # indexing source space s_sub = src.sub(source='fusiform-lh') idx = source.index_for_label('fusiform-lh') s_idx = src[idx] assert_dataobj_equal(s_sub, s_idx)