def parse(self): """ DOCME """ super(RTFFile, self).parse() self._parse_mass() self._parse_decl() self._parse_defa() self._parse_auto() iterator = ( line for line in self.body if not line.startswith('!') ) iterator = paragraphs(logicalLines(iterator), self._sections) self.resi = {} self.pres = {} self._wtf = [] for taco in iterator: if taco[0][:4] == 'resi': tmp = taco[0].split()[1] self.resi[tmp] = TopRes(taco) elif taco[0][:4] == 'pres': tmp = taco[0].split()[1] self.pres[tmp] = TopRes(taco) else: self._wtf.append(taco) self.chemResiDict = dict(( (k, v.chemDict) for k, v in self.resi.iteritems() )) self.chemPresDict = dict(( (k, v.chemDict) for k, v in self.pres.iteritems() )) self.chargeResiDict = dict(( (k, v.chargeDict) for k, v in self.resi.iteritems() )) self.chargePresDict = dict(( (k, v.chargeDict) for k, v in self.pres.iteritems() ))
def parse(self): super(PRMFile, self).parse() iterator = ( line for line in self.body if not line.startswith('!') ) iterator = paragraphs(logicalLines(iterator), self._sections) for taco in iterator: try: if taco[0][:4] in self._sections: self.cmd[taco[0][:4]] = taco[0] self.prm[taco[0][:4]] = taco[1:] else: self.comments.append(taco) except IndexError: pass # discard empties tmp = [] for key, value in self.prm.iteritems(): if not value: tmp.append(key) for key in tmp: try: del self.cmd[key] except KeyError: pass try: del self.prm[key] except KeyError: pass # rename sections def rename(old, new): if old in self.cmd.keys(): self.cmd[new] = self.cmd[old] del self.cmd[old] self.prm[new] = self.prm[old] del self.prm[old] rename('thet', 'angl') rename('phi', 'dihe') rename('imph', 'impr') rename('nonb', 'nbon') # parse sections self._parse('atom', MassPRM) self._parse('bond', BondPRM) self._parse('angl', AnglePRM) self._parse('dihe', DihedralPRM) self._parse('impr', ImproperPRM) self._parse('nbon', NonBondPRM) self._parse('nbfi', NBFixPRM) # self._parse('hbon', HBondPRM) TODO -- implement HBondPRM objects in lib.toppar self._parse_cmap()