From: Maxim Koltsov Date: Thu, 16 Jul 2015 14:12:59 +0000 (+0300) Subject: Allow access to data produced by modules in pipeline X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?p=alexxy%2Fgromacs.git;a=commitdiff_plain;h=61e606da2dacdf5e210a65242918dd8c01309db2 Allow access to data produced by modules in pipeline --- diff --git a/src/python/pipeline_test.py b/src/python/pipeline_test.py index 1aaedd57bf..de96f2df8f 100644 --- a/src/python/pipeline_test.py +++ b/src/python/pipeline_test.py @@ -34,5 +34,7 @@ modules = [ (TrajectoryAnalysis.SasaInfo.create(), "-surface DNA"), ] -runPipeline(name="Pipeline", modules=modules) - +pipeline = runPipeline(name="Pipeline", modules=modules, keep_datasets=True) +dataset = pipeline.modules[0].datasetFromIndex(1) +for i in range(dataset.frameCount()): + print('frame =', i, ', columnCount =', dataset.columnCount(), ', y =', dataset.getDataFrame(i).y(0)) diff --git a/src/python/runner/pipeline.py b/src/python/runner/pipeline.py index f0dbb79662..a722970b4c 100644 --- a/src/python/runner/pipeline.py +++ b/src/python/runner/pipeline.py @@ -7,7 +7,8 @@ class GromacsPipeline(TrajectoryAnalysis.TrajectoryAnalysisModule): def __init__(self, name="PythonPipeline", description="Pipeline of modules created with Python", - modules=[] + modules=[], + keep_datasets=False, ): super(GromacsPipeline, self).__init__(name, description) @@ -26,6 +27,10 @@ class GromacsPipeline(TrajectoryAnalysis.TrajectoryAnalysisModule): options_list = [name] + shlex.split(options) + if keep_datasets: + for i in range(module.datasetCount()): + module.datasetFromIndex(i).requestStorage(-1) + self.modules.append(module) self.options.append(options_list) @@ -56,6 +61,8 @@ class GromacsPipeline(TrajectoryAnalysis.TrajectoryAnalysisModule): TrajectoryAnalysis.runAsMain(self, argv) -def runPipeline(name="PythonPipeline", description="Pipeline of modules created with Python", modules=[], argv=None): - pipeline = GromacsPipeline(name, description, modules) +def runPipeline(argv=None, *args, **kwargs): + pipeline = GromacsPipeline(*args, **kwargs) pipeline.run(argv) + + return pipeline