2 from gromacs import Options, TrajectoryAnalysis
5 class GromacsPipeline(TrajectoryAnalysis.TrajectoryAnalysisModule):
9 description="Pipeline of modules created with Python",
12 super(GromacsPipeline, self).__init__(name, description)
14 self.optionsHolder = Options.PyOptionsHolder()
19 for module, options in modules:
20 if not isinstance(module, TrajectoryAnalysis.TrajectoryAnalysisModule):
21 info_name = module + "Info"
22 if not hasattr(TrajectoryAnalysis, info_name):
23 raise ValueError("There is no module named {}".format(name))
25 module = getattr(TrajectoryAnalysis, info_name).create()
27 options_list = [name] + shlex.split(options)
29 self.modules.append(module)
30 self.options.append(options_list)
32 def initOptions(self, options, settings):
33 options.setDescription(self.description())
39 return self.options[i]
41 def initAnalysis(self, settings, top):
44 def analyzeFrame(self, frnr, frame, pbc, data):
47 def finishAnalysis(self, nframes):
50 def writeOutput(self):
57 TrajectoryAnalysis.runAsMain(self, argv)
59 def runPipeline(name="PythonPipeline", description="Pipeline of modules created with Python", modules=[], argv=None):
60 pipeline = GromacsPipeline(name, description, modules)