Added pickling as a quick and dirty way of loading and saving data in einars workflow.
This commit is contained in:
		| @@ -8,6 +8,7 @@ import dataset | ||||
| #import gostat | ||||
| import rpy | ||||
| from scipy import array,randn | ||||
| import cPickle | ||||
|  | ||||
| class EinarsWorkflow (Workflow): | ||||
|  | ||||
| @@ -19,6 +20,7 @@ class EinarsWorkflow (Workflow): | ||||
|         load.add_function(Function('load', 'Load Microarrays')) | ||||
|         load.add_function(CelFileImportFunction()) | ||||
|         load.add_function(TestDataFunction()) | ||||
|         load.add_function(DatasetLoadFunction()) | ||||
|         self.add_stage(load) | ||||
|  | ||||
|         preproc = Stage('preprocess', 'Preprocessing') | ||||
| @@ -33,6 +35,10 @@ class EinarsWorkflow (Workflow): | ||||
|         regression = Stage('regression', 'Regression') | ||||
|         regression.add_function(Function('pls', 'PLS')) | ||||
|         self.add_stage(regression) | ||||
|  | ||||
|         save = Stage('save', 'Save Data') | ||||
|         save.add_function(DatasetSaveFunction()) | ||||
|         self.add_stage(save) | ||||
|          | ||||
|         logger.log('debug', '\tEinar\'s workflow is now active') | ||||
|  | ||||
| @@ -102,6 +108,64 @@ class TestDataFunction(Function): | ||||
|         return [X, plots.SinePlot(None)] | ||||
|  | ||||
|  | ||||
| class DatasetLoadFunction(Function): | ||||
|     """Loader for previously pickled Datasets.""" | ||||
|     def __init__(self): | ||||
|         Function.__init__(self, 'load_data', 'Load Pickled Dataset') | ||||
|  | ||||
|     def run(self, data): | ||||
|         chooser = gtk.FileChooserDialog(title="Select cel files...", parent=None, | ||||
|                                         action=gtk.FILE_CHOOSER_ACTION_OPEN, | ||||
|                                         buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, | ||||
|                                                  gtk.STOCK_OPEN, gtk.RESPONSE_OK)) | ||||
|         pkl_filter = gtk.FileFilter() | ||||
|         pkl_filter.set_name("Python pickled data files (*.pkl)") | ||||
|         pkl_filter.add_pattern("*.[pP][kK][lL]") | ||||
|         all_filter = gtk.FileFilter() | ||||
|         all_filter.set_name("All Files (*.*)") | ||||
|         all_filter.add_pattern("*") | ||||
|         chooser.add_filter(pkl_filter) | ||||
|         chooser.add_filter(all_filter) | ||||
|  | ||||
|         try: | ||||
|             if chooser.run() == gtk.RESPONSE_OK: | ||||
|                 return [cPickle.load(open(chooser.get_filename()))] | ||||
|         finally: | ||||
|             chooser.destroy() | ||||
|  | ||||
|  | ||||
| class DatasetSaveFunction(Function): | ||||
|     """QND way to save data to file for later import to this program.""" | ||||
|     def __init__(self): | ||||
|         Function.__init__(self, 'save_data', 'Save Pickled Dataset') | ||||
|  | ||||
|     def run(self, data): | ||||
|         if not data: | ||||
|             logger.log("notice", "No data to save.") | ||||
|             return | ||||
|  | ||||
|         chooser = gtk.FileChooserDialog(title="Save pickled data...", parent=None, | ||||
|                                         action=gtk.FILE_CHOOSER_ACTION_SAVE, | ||||
|                                         buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, | ||||
|                                                  gtk.STOCK_SAVE, gtk.RESPONSE_OK)) | ||||
|         pkl_filter = gtk.FileFilter() | ||||
|         pkl_filter.set_name("Python pickled data files (*.pkl)") | ||||
|         pkl_filter.add_pattern("*.[pP][kK][lL]") | ||||
|         all_filter = gtk.FileFilter() | ||||
|         all_filter.set_name("All Files (*.*)") | ||||
|         all_filter.add_pattern("*") | ||||
|         chooser.add_filter(pkl_filter) | ||||
|         chooser.add_filter(all_filter) | ||||
|         chooser.set_current_name(data.get_name() + ".pkl") | ||||
|  | ||||
|         try: | ||||
|             if chooser.run() == gtk.RESPONSE_OK: | ||||
|                 cPickle.dump(data, open(chooser.get_filename(), "w")) | ||||
|                 logger.log("notice", "Saved data to %r." % chooser.get_filename()) | ||||
|         finally: | ||||
|             chooser.destroy() | ||||
|                  | ||||
|  | ||||
| class CelFileImportFunction(Function): | ||||
|     """Loads AffyMetrix .CEL-files into matrix.""" | ||||
|     def __init__(self): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user