2 from gromacs import Options, TrajectoryAnalysis
5 class GromacsPipeline(TrajectoryAnalysis.TrajectoryAnalysisModule):
9 description="Pipeline of modules created with Python",
13 super(GromacsPipeline, self).__init__(name, description)
15 self.optionsHolder = Options.PyOptionsHolder()
20 for module, options in modules:
21 if not isinstance(module, TrajectoryAnalysis.TrajectoryAnalysisModule):
22 info_name = module + "Info"
23 if not hasattr(TrajectoryAnalysis, info_name):
24 raise ValueError("There is no module named {}".format(name))
26 module = getattr(TrajectoryAnalysis, info_name).create()
28 options_list = [name] + shlex.split(options)
31 for i in range(module.datasetCount()):
32 module.datasetFromIndex(i).requestStorage(-1)
34 self.modules.append(module)
35 self.options.append(options_list)
37 def initOptions(self, options, settings):
38 settings.setHelpText(self.description())
44 return self.options[i]
46 def initAnalysis(self, settings, top):
49 def analyzeFrame(self, frnr, frame, pbc, data):
52 def finishAnalysis(self, nframes):
55 def writeOutput(self):
62 TrajectoryAnalysis.runAsMain(self, argv)
64 def runPipeline(argv=None, *args, **kwargs):
65 pipeline = GromacsPipeline(*args, **kwargs)