2 from gromacs import Options, TrajectoryAnalysis
4 class M(TrajectoryAnalysis.TrajectoryAnalysisModule):
6 super(M, self).__init__("a", "a")
8 def initOptions(self, options, settings):
9 print('python: initOptions')
11 self.optionsHolder = Options.PyOptionsHolder()
13 options.setDescription('A stupid test module')
14 options.addOption(self.optionsHolder.doubleOption('py').description('option added from python just to check').required())
15 options.addOption(self.optionsHolder.selectionOption('sel').description('selection option from python').required())
16 options.addOption(self.optionsHolder.booleanOption('fail').description('fail :)'))
17 settings.setFlag(TrajectoryAnalysis.TrajectoryAnalysisSettings.efRequireTop)
18 print('python: inited')
20 def initAnalysis(self, settings, top):
21 print('python: initAnalysis')
22 print('There are {} atoms'.format(top.topology().atoms.nr))
23 print('Topology name: {}'.format(top.topology().name))
25 def analyzeFrame(self, frnr, frame, pbc, data):
26 sel = self.optionsHolder['sel']
27 print('selected atoms {}, {}'.format(sel.atomCount(), sel.coordinates()[0]))
28 print('ids: {}'.format(sel.mappedIds()[:5]))
30 print('python: Analyzing frame {}, {} atoms'.format(frnr, frame.natoms))
31 print(frame.box[0], frame.box[1], frame.box[2])
32 print(frame.x[0], frame.v[0], frame.f[0])
34 def finishAnalysis(self, nframes):
35 print('python: Analyzed {} frames'.format(nframes))
37 def writeOutput(self):
38 print('python: writeOutput')
39 print('py = {}'.format(self.optionsHolder['py']))
40 print('sel = {}'.format(self.optionsHolder['sel']))
42 TrajectoryAnalysis.runAsMain(M(), sys.argv)