def parseSupcombOutputFile(self): logFile = self.readProcessLogFile() logLines = logFile.splitlines() xsRot = self.returnRotation(logLines[-3:]) xsTrns = self.returnTranslation(logLines[-6:-3]) xsNSD = XSDataDouble(float(logLines[-8].split()[-1])) pdb = os.path.join(self.getWorkingDirectory(), self.__strOutputFileName) try: res = parse_atsas.parsePDB(pdb, pdb) except Exception as error: self.ERROR("in parsePDB: %s" % error) model = XSDataSaxsModel(name=XSDataString(self.name), logFile=XSDataFile(XSDataString(os.path.join(self.getWorkingDirectory(), self.getScriptLogFileName())))) if "Rfactor" in res: model.rfactor = XSDataDouble(res["Rfactor"]) if "volume" in res: model.volume = XSDataDouble(res["volume"]) if "Rg" in res: model.rg = XSDataDouble(res["Rg"]) if "Dmax" in res : model.dmax = XSDataDouble(res["Dmax"]) xsDataResult = XSDataResultSupcomb(NSD=xsNSD, rot=xsRot, trns=xsTrns, model=model) xsDataResult.outputFilename = model.pdbFile = XSDataFile(XSDataString(pdb)) xsDataResult.status = XSDataStatus(message=self.getXSDataMessage(), executiveSummary=XSDataString(os.linesep.join(self.getListExecutiveSummaryLines()))) return xsDataResult
def parseSupcombOutputFile(self): logFile = self.readProcessLogFile() logLines = logFile.splitlines() line = -1 for l, ln in enumerate( logLines): if "Transformation matrix" in ln: line = l if line>=0: xsRot = self.returnRotation(logLines[line+1:line+4], 1) xsTrns = self.returnTranslation(logLines[line+1:line+4]) xsNSD = None else: xsRot = self.returnRotation(logLines[-3:]) xsTrns = self.returnTranslation(logLines[-6:-3]) xsNSD = XSDataDouble(float(logLines[-8].split()[-1])) pdb = os.path.join(self.getWorkingDirectory(), self.__strOutputFileName) try: res = parse_atsas.parsePDB(pdb, pdb) except Exception as error: self.ERROR("in parsePDB: %s" % error) if "NSD" in res: xsNSD = XSDataDouble(res["NSD"]) model = XSDataSaxsModel(name=XSDataString(self.name), logFile=XSDataFile(XSDataString(os.path.join(self.getWorkingDirectory(), self.getScriptLogFileName())))) if "Rfactor" in res: model.rfactor = XSDataDouble(res["Rfactor"]) if "volume" in res: model.volume = XSDataDouble(res["volume"]) if "Rg" in res: model.rg = XSDataDouble(res["Rg"]) if "Dmax" in res : model.dmax = XSDataDouble(res["Dmax"]) xsDataResult = XSDataResultSupcomb(NSD=xsNSD, rot=xsRot, trns=xsTrns, model=model) xsDataResult.outputFilename = model.pdbFile = XSDataFile(XSDataString(pdb)) xsDataResult.status = XSDataStatus(message=self.getXSDataMessage(), executiveSummary=XSDataString(os.linesep.join(self.getListExecutiveSummaryLines()))) return xsDataResult
def parseSupcombOutputFile(self): logFile = self.readProcessLogFile() logLines = logFile.splitlines() xsRot = self.returnRotation(logLines[-3:]) xsTrns = self.returnTranslation(logLines[-6:-3]) xsNSD = XSDataDouble(float(logLines[-8].split()[-1])) xsDataResult = XSDataResultSupcomb() xsDataResult.setNSD(xsNSD) xsDataResult.setRot(xsRot) xsDataResult.setTrns(xsTrns) EDPDBFilter.filterPDBFile(os.path.join(self.getWorkingDirectory(), self.__strOutputFileNameRaw), \ os.path.join(self.getWorkingDirectory(), self.__strOutputFileName)) pathOutputFile = XSDataString(os.path.join(self.getWorkingDirectory(), self.__strOutputFileName)) xsDataResult.setOutputFilename(XSDataFile(pathOutputFile)) return xsDataResult