def test_barplot(): "Test plot.uv.barplot" plot.configure_backend(False, False) ds = datasets.get_uv() plot.uv.Barplot('fltvar', 'A%B', match='rm', ds=ds) plot.uv.Barplot('fltvar', 'A%B', match='rm', test=0, ds=ds) plt.close('all')
def test_corr(): "Test testnd.corr()" plot.configure_backend(False, False) ds = datasets.get_uts(True) # add correlation Y = ds['Y'] utsnd = ds['utsnd'] utsnd.x.shape utsnd.x[:, 3:5, 50:65] += Y.x[:, None, None] res = testnd.corr('utsnd', 'Y', 'rm', ds=ds) repr(res) p = plot.Array(res) p.close() res = testnd.corr('utsnd', 'Y', 'rm', ds=ds, samples=10, pmin=0.05) p = plot.Array(res) p.close() # persistence string = pickle.dumps(res, protocol=pickle.HIGHEST_PROTOCOL) res_ = pickle.loads(string) assert_equal(repr(res_), repr(res)) assert_dataobj_equal(res.p_uncorrected, res_.p_uncorrected) assert_dataobj_equal(res.p, res_.p) # NaN r = _testnd._corr(np.arange(10), np.zeros(10)) assert_equal(r, 0)
def test_timeplot(): "Test plot.uv.timeplot" plot.configure_backend(False, False) ds = datasets.get_rand() ds['seq'] = Var(np.arange(2).repeat(30)) plot.uv.Timeplot('Y', 'B', 'seq', match='rm', ds=ds) plt.close('all')
def test_clusters(): "test plot.uts cluster plotting functions" plot.configure_backend(False, False) ds = datasets.get_rand() A = ds['A'] B = ds['B'] Y = ds['uts'] # fixed effects model res = testnd.anova(Y, A * B) p = plot.UTSClusters(res, title="Fixed Effects Model") p.close() # random effects model: subject = Factor(range(15), tile=4, random=True, name='subject') res = testnd.anova(Y, A * B * subject, samples=2) p = plot.UTSClusters(res, title="Random Effects Model") p.close() # plot UTSStat p = plot.UTSStat(Y, A % B, match=subject) p.set_clusters(res.clusters) p.close() p = plot.UTSStat(Y, A, Xax=B, match=subject) p.close()
def test_histogram(): "Test plot.uv.histogram" plot.configure_backend(False, False) ds = datasets.get_rand() plot.uv.Histogram('Y', 'A%B', ds=ds) plot.uv.Histogram('Y', 'A%B', match='rm', ds=ds) plt.close('all')
def test_timeplot(): "Test plot.uv.timeplot" plot.configure_backend(False, False) ds = datasets.get_rand() ds['seq'] = Var(np.arange(2).repeat(30)) plot.uv.Timeplot('Y', 'B', 'seq', match='rm', ds=ds) plt.close('all')
def test_barplot(): "Test plot.uv.barplot" plot.configure_backend(False, False) ds = datasets.get_uv() plot.uv.Barplot('fltvar', 'A%B', match='rm', ds=ds) plot.uv.Barplot('fltvar', 'A%B', match='rm', test=0, ds=ds) plt.close('all')
def test_corr(): "Test testnd.corr()" plot.configure_backend(False, False) ds = datasets.get_rand(True) # add correlation Y = ds['Y'] utsnd = ds['utsnd'] utsnd.x.shape utsnd.x[:, 3:5, 50:65] += Y.x[:, None, None] res = testnd.corr('utsnd', 'Y', 'rm', ds=ds) repr(res) p = plot.Array(res) p.close() res = testnd.corr('utsnd', 'Y', 'rm', ds=ds, samples=10, pmin=0.05) p = plot.Array(res) p.close() # persistence string = pickle.dumps(res, protocol=pickle.HIGHEST_PROTOCOL) res_ = pickle.loads(string) assert_equal(repr(res_), repr(res)) assert_dataobj_equal(res.p_uncorrected, res_.p_uncorrected) assert_dataobj_equal(res.p, res_.p) # NaN r = _testnd._corr(np.arange(10), np.zeros(10)) assert_equal(r, 0)
def test_histogram(): "Test plot.uv.histogram" plot.configure_backend(False, False) ds = datasets.get_rand() plot.uv.Histogram('Y', 'A%B', ds=ds) plot.uv.Histogram('Y', 'A%B', match='rm', ds=ds) plt.close('all')
def test_clusters(): "test plot.uts cluster plotting functions" plot.configure_backend(False, False) ds = datasets.get_rand() A = ds['A'] B = ds['B'] Y = ds['uts'] # fixed effects model res = testnd.anova(Y, A * B) p = plot.UTSClusters(res, title="Fixed Effects Model") p.close() # random effects model: subject = Factor(range(15), tile=4, random=True, name='subject') res = testnd.anova(Y, A * B * subject, samples=2) p = plot.UTSClusters(res, title="Random Effects Model") p.close() # plot UTSStat p = plot.UTSStat(Y, A % B, match=subject) p.set_clusters(res.clusters) p.close() p = plot.UTSStat(Y, A, Xax=B, match=subject) p.close()
def test_2(): "Test fmtxt/table.py" exa_dir = os.path.join(examples_dir, 'fmtxt') exa_file = os.path.join(exa_dir, 'table.py') # find required files with open(exa_file) as fid: text = fid.read() filenames = re.findall("# requires: (\w+.\w+)", text) text = text.replace("n_samples = 1000", "n_samples = 2") # copy all files to temporary dir tempdir = mkdtemp() dst = os.path.join(tempdir, 'table.py') with open(dst, 'w') as fid: fid.write(text) for filename in filenames: src = os.path.join(exa_dir, filename) shutil.copy(src, tempdir) # execute example logging.info("executing from %s" % tempdir) os.chdir(tempdir) plot.configure_backend(False, False) execfile('table.py', {}) plt.close('all') # delete temporary files shutil.rmtree(tempdir)
def test_2(): "Test fmtxt/table.py" exa_dir = os.path.join(examples_dir, 'fmtxt') exa_file = os.path.join(exa_dir, 'table.py') # find required files with open(exa_file) as fid: text = fid.read() filenames = re.findall("# requires: (\w+.\w+)", text) text = text.replace("n_samples = 1000", "n_samples = 2") # copy all files to temporary dir tempdir = mkdtemp() dst = os.path.join(tempdir, 'table.py') with open(dst, 'w') as fid: fid.write(text) for filename in filenames: src = os.path.join(exa_dir, filename) shutil.copy(src, tempdir) # execute example logging.info("executing from %s" % tempdir) os.chdir(tempdir) plot.configure_backend(False, False) execfile('table.py', {}) plt.close('all') # delete temporary files shutil.rmtree(tempdir)
def test_plot_array(): "Test plot.Array" plot.configure_backend(False, False) ds = datasets.get_rand(utsnd=True) p = plot.Array('utsnd', 'A%B', ds=ds) p.close() p = plot.Array('utsnd', ds=ds) p.close()
def test_uts(): "test plot.UTS plotting function" plot.configure_backend(False, False) ds = datasets.get_rand() p = plot.UTS('uts', ds=ds) p.close() p = plot.UTS('uts', 'A%B', ds=ds) p.close()
def test_uts(): "test plot.UTS plotting function" plot.configure_backend(False, False) ds = datasets.get_rand() p = plot.UTS('uts', ds=ds) p.close() p = plot.UTS('uts', 'A%B', ds=ds) p.close()
def test_plot_array(): "Test plot.Array" plot.configure_backend(False, False) ds = datasets.get_rand(utsnd=True) p = plot.Array('utsnd', 'A%B', ds=ds) p.close() p = plot.Array('utsnd', ds=ds) p.close()
def test_plot_array(): "Test plot.TopoArray" plot.configure_backend(False, False) ds = datasets.get_rand(utsnd=True) p = plot.TopoArray('utsnd', ds=ds) p.close() p = plot.TopoArray('utsnd', ds=ds, vmax=0.2, w=2) p.close() p = plot.TopoArray('utsnd', 'A%B', ds=ds, axw=4) p.close()
def test_plot_array(): "Test plot.TopoArray" plot.configure_backend(False, False) ds = datasets.get_rand(utsnd=True) p = plot.TopoArray('utsnd', ds=ds) p.close() p = plot.TopoArray('utsnd', ds=ds, vmax=0.2, w=2) p.close() p = plot.TopoArray('utsnd', 'A%B', ds=ds, axw=4) p.close()
def test_boxplot(): "Test plot.uv.boxplot" plot.configure_backend(False, False) ds = datasets.get_uv() plot.uv.Boxplot('fltvar', 'A%B', match='rm', ds=ds) plt.close('all') # many pairwise significances ds['fltvar'][ds.eval("A%B==('a1','b1')")] += 1 ds['fltvar'][ds.eval("A%B==('a2','b2')")] -= 1 ds['C'] = Factor('qw', rep=10, tile=4) plot.uv.Boxplot('fltvar', 'A%B%C', ds=ds)
def test_plot_topomap(): "Test plot.Topomap" plot.configure_backend(False, False) ds = datasets.get_rand(utsnd=True) topo = ds.eval('utsnd.summary(time=(0.075, 0.125))') p = plot.Topomap(topo, ds=ds) p.close() p = plot.Topomap(topo, ds=ds, vmax=0.2, w=2) p.close() p = plot.Topomap(topo, 'A%B', ds=ds, axw=2) p.close()
def test_plot_topomap(): "Test plot.Topomap" plot.configure_backend(False, False) ds = datasets.get_rand(utsnd=True) topo = ds.eval('utsnd.summary(time=(0.075, 0.125))') p = plot.Topomap(topo, ds=ds) p.close() p = plot.Topomap(topo, ds=ds, vmax=0.2, w=2) p.close() p = plot.Topomap(topo, 'A%B', ds=ds, axw=2) p.close()
def test_boxplot(): "Test plot.uv.boxplot" plot.configure_backend(False, False) ds = datasets.get_uv() plot.uv.Boxplot('fltvar', 'A%B', match='rm', ds=ds) plt.close('all') # many pairwise significances ds['fltvar'][ds.eval("A%B==('a1','b1')")] += 1 ds['fltvar'][ds.eval("A%B==('a2','b2')")] -= 1 ds['C'] = Factor('qw', rep=10, tile=4) plot.uv.Boxplot('fltvar', 'A%B%C', ds=ds)
def test_scatterplot(): "Test plot.uv.corrplot and lot.uv.regplot" plot.configure_backend(False, False) ds = datasets.get_rand() ds['cov'] = ds['Y'] + np.random.normal(0, 1, (60, )) plot.uv.Correlation('Y', 'cov', ds=ds) plot.uv.Correlation('Y', 'cov', 'A%B', ds=ds) plot.uv.Regression('Y', 'cov', ds=ds) plot.uv.Regression('Y', 'cov', 'A%B', ds=ds) plt.close('all')
def test_scatterplot(): "Test plot.uv.corrplot and lot.uv.regplot" plot.configure_backend(False, False) ds = datasets.get_rand() ds['cov'] = ds['Y'] + np.random.normal(0, 1, (60,)) plot.uv.Correlation('Y', 'cov', ds=ds) plot.uv.Correlation('Y', 'cov', 'A%B', ds=ds) plot.uv.Regression('Y', 'cov', ds=ds) plot.uv.Regression('Y', 'cov', 'A%B', ds=ds) plt.close('all')
def test_plot_butterfly(): "Test plot.TopoButterfly" plot.configure_backend(False, False) ds = datasets.get_rand(utsnd=True) p = plot.TopoButterfly('utsnd', ds=ds) p.close() p = plot.TopoButterfly('utsnd', ds=ds, vmax=0.2, w=2) p.close() p = plot.TopoButterfly('utsnd', 'A%B', ds=ds, axw=2) p.close() p = plot.TopoButterfly('utsnd', mark=[1, 2], ds=ds) p.close() p = plot.TopoButterfly('utsnd', mark=['1', '2'], ds=ds) p.close()
def test_plot_butterfly(): "Test plot.TopoButterfly" plot.configure_backend(False, False) ds = datasets.get_rand(utsnd=True) p = plot.TopoButterfly('utsnd', ds=ds) p.close() p = plot.TopoButterfly('utsnd', ds=ds, vmax=0.2, w=2) p.close() p = plot.TopoButterfly('utsnd', 'A%B', ds=ds, axw=2) p.close() p = plot.TopoButterfly('utsnd', mark=[1, 2], ds=ds) p.close() p = plot.TopoButterfly('utsnd', mark=['1', '2'], ds=ds) p.close()
def test_multi(): "Test plot.SensorMaps" plot.configure_backend(False, False) ds = datasets.get_rand(utsnd=True) Y = ds['utsnd'] p = plot.SensorMaps(Y) roi = [1, 2] p.set_selection(roi) roi2 = p.get_selection() test_range = np.arange(3) assert_array_equal(test_range[roi2], test_range[roi], "ROI changed after " "set/get") p.close()
def test_map2d(): "Test plot.SensorMap2d" plot.configure_backend(False, False) ds = datasets.get_rand(utsnd=True) Y = ds['utsnd'] p = plot.SensorMap2d(Y) # plot attributes p.set_label_color('g') p.set_label_text('idx') # connectivity p.show_connectivity() p.show_connectivity(None) # mark sensors p.mark_sensors([1, 2]) p.mark_sensors([0]) p.remove_markers() p.close()
def test_stat(): "test plot.UTSStat plotting function" plot.configure_backend(False, False) ds = datasets.get_rand() p = plot.UTSStat('uts', ds=ds) p.close() p = plot.UTSStat('uts', 'A%B', ds=ds) p.close() p = plot.UTSStat('uts', 'A', Xax='B', ds=ds) p.close() p = plot.UTSStat('uts', 'A%B', 'rm', sub="rm.isin(('R00', 'R01'))", ds=ds) p.close() # clusters sds = ds.sub("B == 'b0'") res = testnd.ttest_rel('uts', 'A', 'a1', 'a0', match='rm', ds=sds, samples=0, pmin=0.05, mintime=0.02) p = plot.UTSStat('uts', 'A', clusters=res.clusters, ds=ds) p.close() res = testnd.ttest_rel('uts', 'A', 'a1', 'a0', match='rm', ds=sds, samples=100, pmin=0.05, mintime=0.02) p = plot.UTSStat('uts', 'A', clusters=res.clusters, ds=ds) p.close()
def test_stat(): "test plot.UTSStat plotting function" plot.configure_backend(False, False) ds = datasets.get_rand() p = plot.UTSStat('uts', ds=ds) p.close() p = plot.UTSStat('uts', 'A%B', ds=ds) p.close() p = plot.UTSStat('uts', 'A', Xax='B', ds=ds) p.close() p = plot.UTSStat('uts', 'A%B', 'rm', sub="rm.isin(('R00', 'R01'))", ds=ds) p.close() # clusters sds = ds.sub("B == 'b0'") res = testnd.ttest_rel('uts', 'A', 'a1', 'a0', match='rm', ds=sds, samples=0, pmin=0.05, mintime=0.02) p = plot.UTSStat('uts', 'A', clusters=res.clusters, ds=ds) p.close() res = testnd.ttest_rel('uts', 'A', 'a1', 'a0', match='rm', ds=sds, samples=100, pmin=0.05, mintime=0.02) p = plot.UTSStat('uts', 'A', clusters=res.clusters, ds=ds) p.close()
def test_anova(): "Test testnd.anova()" plot.configure_backend(False, False) ds = datasets.get_rand(True) testnd.anova('utsnd', 'A*B', ds=ds) for samples in (0, 2): logger.info("TEST: samples=%r" % samples) testnd.anova('utsnd', 'A*B', ds=ds, samples=samples) testnd.anova('utsnd', 'A*B', ds=ds, samples=samples, pmin=0.05) testnd.anova('utsnd', 'A*B', ds=ds, samples=samples, tfce=True) res = testnd.anova('utsnd', 'A*B*rm', ds=ds, samples=0, pmin=0.05) repr(res) p = plot.Array(res) p.close() res = testnd.anova('utsnd', 'A*B*rm', ds=ds, samples=2, pmin=0.05) repr(res) p = plot.Array(res) p.close() # persistence string = pickle.dumps(res, protocol=pickle.HIGHEST_PROTOCOL) res_ = pickle.loads(string) assert_equal(repr(res_), repr(res)) # threshold-free res = testnd.anova('utsnd', 'A*B*rm', ds=ds, samples=10) repr(res) assert_in('A clusters', res.clusters.info) assert_in('B clusters', res.clusters.info) assert_in('A x B clusters', res.clusters.info) # no clusters res = testnd.anova('uts', 'B', sub="A=='a1'", ds=ds, samples=5, pmin=0.05, mintime=0.02) repr(res) assert_in('v', res.clusters) assert_in('p', res.clusters) # all effects with clusters res = testnd.anova('uts', 'A*B*rm', ds=ds, samples=5, pmin=0.05, tstart=0.1, mintime=0.02) assert_equal(set(res.clusters['effect'].cells), set(res.effects)) # some effects with clusters, some without res = testnd.anova('uts', 'A*B*rm', ds=ds, samples=5, pmin=0.05, tstart=0.37, mintime=0.02) string = pickle.dumps(res, pickle.HIGHEST_PROTOCOL) res_ = pickle.loads(string) assert_dataobj_equal(res.clusters, res_.clusters) # test multi-effect results (with persistence) # UTS res = testnd.anova('uts', 'A*B*rm', ds=ds, samples=5) repr(res) string = pickle.dumps(res, pickle.HIGHEST_PROTOCOL) res = pickle.loads(string) tfce_clusters = res._clusters(pmin=0.05) peaks = res.find_peaks() assert_equal(tfce_clusters.eval("p.min()"), peaks.eval("p.min()")) unmasked = res.f[0] masked = res.masked_parameter_map(effect=0, pmin=0.05) assert_array_equal(masked.x <= unmasked.x, True)
def test_anova(): "Test testnd.anova()" plot.configure_backend(False, False) ds = datasets.get_uts(True) testnd.anova('utsnd', 'A*B', ds=ds) for samples in (0, 2): logger.info("TEST: samples=%r" % samples) testnd.anova('utsnd', 'A*B', ds=ds, samples=samples) testnd.anova('utsnd', 'A*B', ds=ds, samples=samples, pmin=0.05) testnd.anova('utsnd', 'A*B', ds=ds, samples=samples, tfce=True) res = testnd.anova('utsnd', 'A*B*rm', ds=ds, samples=0, pmin=0.05) repr(res) p = plot.Array(res) p.close() res = testnd.anova('utsnd', 'A*B*rm', ds=ds, samples=2, pmin=0.05) repr(res) p = plot.Array(res) p.close() # persistence string = pickle.dumps(res, protocol=pickle.HIGHEST_PROTOCOL) res_ = pickle.loads(string) assert_equal(repr(res_), repr(res)) # threshold-free res = testnd.anova('utsnd', 'A*B*rm', ds=ds, samples=10) repr(res) assert_in('A clusters', res.clusters.info) assert_in('B clusters', res.clusters.info) assert_in('A x B clusters', res.clusters.info) # no clusters res = testnd.anova('uts', 'B', sub="A=='a1'", ds=ds, samples=5, pmin=0.05, mintime=0.02) repr(res) assert_in('v', res.clusters) assert_in('p', res.clusters) # all effects with clusters res = testnd.anova('uts', 'A*B*rm', ds=ds, samples=5, pmin=0.05, tstart=0.1, mintime=0.02) assert_equal(set(res.clusters['effect'].cells), set(res.effects)) # some effects with clusters, some without res = testnd.anova('uts', 'A*B*rm', ds=ds, samples=5, pmin=0.05, tstart=0.37, mintime=0.02) string = pickle.dumps(res, pickle.HIGHEST_PROTOCOL) res_ = pickle.loads(string) assert_dataobj_equal(res.clusters, res_.clusters) # test multi-effect results (with persistence) # UTS res = testnd.anova('uts', 'A*B*rm', ds=ds, samples=5) repr(res) string = pickle.dumps(res, pickle.HIGHEST_PROTOCOL) res = pickle.loads(string) tfce_clusters = res.find_clusters(pmin=0.05) peaks = res.find_peaks() assert_equal(tfce_clusters.eval("p.min()"), peaks.eval("p.min()")) unmasked = res.f[0] masked = res.masked_parameter_map(effect=0, pmin=0.05) assert_array_equal(masked.x <= unmasked.x, True)