Source code for simbad.parsers.molrep_parser

"""Returns scores from a molrep log file"""

__author__ = "Adam Simpkin"
__date__ = "03 May 2017"
__version__ = "0.1"

import simbad.parsers


[docs]class MolrepParser(simbad.parsers._Parser): """Class to mine information from a molrep log file""" def __init__(self, logfile): super(MolrepParser, self).__init__(logfile) self.contrast = None self.score = None self.tfscore = None self.time = None self.wrfac = None self.version = None self.parse()
[docs] def parse(self): with open(self.fname) as f: line = f.readline() while line: if line.startswith(" ### CCP4") and "version" in line: self.version = line.strip().split()[5] if "TF/sig" in line and "=" in line: try: self.tfscore = float(line.strip().split()[-1]) except ValueError: continue if "Final CC" in line and "=" in line: try: self.score = float(line.strip().split()[-1]) except ValueError: continue if "Contrast" in line and "=" in line: try: self.contrast = float(line.strip().split()[-1]) except ValueError: continue if "Nmon RF TF theta phi chi tx ty tz TF/sg wRfac Score" in line: line = f.readline() try: self.wrfac = float(line[65:72]) except ValueError: continue if line.startswith("Times: User:"): fields = line.strip().split() time = fields[6] m, s = time.split(":") self.time = int(m) * 60 + int(s) line = f.readline()