2006-04-17 22:29:29 +02:00
|
|
|
import gtk
|
2006-10-17 16:42:27 +02:00
|
|
|
from fluents import dataset, logger, plots, workflow
|
2007-09-03 19:51:22 +02:00
|
|
|
|
2007-09-03 18:16:39 +02:00
|
|
|
from scipy import array, randn, log, ones, newaxis
|
2006-04-22 18:27:33 +02:00
|
|
|
import cPickle
|
2006-08-01 15:22:39 +02:00
|
|
|
import networkx
|
2006-04-17 22:29:29 +02:00
|
|
|
|
2007-09-03 19:51:22 +02:00
|
|
|
|
2006-07-21 16:30:09 +02:00
|
|
|
class TestWorkflow (workflow.Workflow):
|
2006-04-17 22:29:29 +02:00
|
|
|
|
2006-07-21 16:30:09 +02:00
|
|
|
name = 'Test Workflow'
|
|
|
|
ident = 'test'
|
2007-09-03 15:22:11 +02:00
|
|
|
description = 'This workflow currently serves as a general testing workflow.'
|
2006-04-27 14:41:51 +02:00
|
|
|
|
2007-09-03 17:46:45 +02:00
|
|
|
def __init__(self):
|
|
|
|
workflow.Workflow.__init__(self)
|
2006-04-17 22:29:29 +02:00
|
|
|
|
2007-09-03 19:51:22 +02:00
|
|
|
test_stage = workflow.Stage('test', 'Test Data')
|
|
|
|
test_stage.tasks.append(TestDataTask)
|
|
|
|
test_stage.tasks.append(TestPlot)
|
|
|
|
self.stages.append(test_stage)
|
2006-04-17 22:29:29 +02:00
|
|
|
|
|
|
|
|
2007-09-03 15:22:11 +02:00
|
|
|
class TestDataTask(workflow.Task):
|
2007-09-03 17:46:45 +02:00
|
|
|
name = "Test data"
|
|
|
|
def __init__(self, input):
|
|
|
|
workflow.Task.__init__(self, input)
|
2006-04-20 16:29:13 +02:00
|
|
|
|
2006-05-03 13:52:54 +02:00
|
|
|
def run(self):
|
2006-04-20 16:29:13 +02:00
|
|
|
logger.log('notice', 'Injecting foo test data')
|
2006-10-17 15:59:31 +02:00
|
|
|
x = randn(500,15)
|
2006-04-24 11:53:07 +02:00
|
|
|
X = dataset.Dataset(x)
|
2007-09-03 18:16:39 +02:00
|
|
|
dname = X.get_dim_name()[0]
|
|
|
|
p = plots.ScatterPlot(X, X, dname, dname, '0_1', '0_2',name='scatter')
|
2006-08-01 15:22:39 +02:00
|
|
|
graph = networkx.XGraph()
|
|
|
|
for x in 'ABCDEF':
|
|
|
|
for y in 'ADE':
|
|
|
|
graph.add_edge(x, y, 3)
|
|
|
|
ds = dataset.GraphDataset(array(networkx.adj_matrix(graph)))
|
|
|
|
ds_plot = plots.NetworkPlot(ds)
|
2006-09-08 20:25:03 +02:00
|
|
|
|
|
|
|
cds = dataset.CategoryDataset(ones([3, 3]))
|
2007-09-03 18:16:39 +02:00
|
|
|
dname2 = cds.get_dim_name()[0]
|
|
|
|
ds_scatter = plots.ScatterMarkerPlot(cds, cds, dname2, dname2, '0_1', '0_2')
|
|
|
|
lp = plots.LineViewPlot(X ,major_axis=0)
|
2007-01-31 14:03:27 +01:00
|
|
|
vp = plots.VennPlot()
|
2007-09-03 15:22:11 +02:00
|
|
|
self.datasets = [p]
|
2007-09-03 18:16:39 +02:00
|
|
|
return [X, ds, p, ds_plot, ds_scatter, cds, lp, vp]
|
2006-04-22 02:17:22 +02:00
|
|
|
|
2007-09-03 17:50:16 +02:00
|
|
|
|
|
|
|
class TestPlot(workflow.Task):
|
|
|
|
name = "Test plot data"
|
|
|
|
|
|
|
|
def __init__(self, input):
|
|
|
|
workflow.Task.__init__(self, input)
|
|
|
|
|
|
|
|
def run(self):
|
2007-09-03 19:51:22 +02:00
|
|
|
#logger.log('notice', 'Injecting % dataset') %self.input[0].get_name()
|
|
|
|
X = self.input[0]
|
|
|
|
ii = X.get_dim_name()[0]
|
|
|
|
ids = X.get_identifiers(ii, indices=[0,1])
|
|
|
|
p = plots.ScatterPlot(X, X, ii, ii, ids[0], ids[1],name='scatter')
|
2007-09-03 17:50:16 +02:00
|
|
|
|
|
|
|
return [p]
|