def _showFSC(self, paramName=None): threshold = self.resolutionThreshold.get() nrefs = len(self._refsList) gridsize = self._getGridSize(nrefs) xmipp.activateMathExtensions() for ref3d in self._refsList: xplotter = XmippPlotter(*gridsize, windowTitle='Resolution FSC') legends = [] show = False plot_title = 'Ref3D_%s' % ref3d a = xplotter.createSubPlot(plot_title, 'frequency(1/A)', 'FSC', yformat=False) legends = [] for it in self._iterations: file_name = self.protocol._getFileName('resolutionXmdFile', iter=it, ref=ref3d) if exists(file_name): show = True legends.append('iter %d' % it) self._plotFSC(a, file_name) xplotter.showLegend(legends) if show: if threshold < self.maxFrc: a.plot([self.minInv, self.maxInv], [threshold, threshold], color='black', linestyle='--') a.grid(True) else: raise Exception("Set a valid iteration to show its FSC") return [xplotter]
def _showFSC(self, paramName=None): threshold = self.resolutionThreshold.get() nrefs = len(self._refsList) gridsize = self._getGridSize(nrefs) xmipp.activateMathExtensions() for ref3d in self._refsList: xplotter = XmippPlotter(*gridsize, windowTitle='Resolution FSC') legends = [] show = False plot_title = 'Ref3D_%s' % ref3d a = xplotter.createSubPlot(plot_title, 'frequency(1/A)', 'FSC', yformat=False) legends = [] for it in self._iterations: file_name = self.protocol._getFileName('resolutionXmdFile', iter=it, ref=ref3d) if exists(file_name): show = True legends.append('iter %d' % it) self._plotFSC(a, file_name) xplotter.showLegend(legends) if show: if threshold < self.maxFrc: a.plot([self.minInv, self.maxInv],[threshold, threshold], color='black', linestyle='--') a.grid(True) else: raise Exception("Set a valid iteration to show its FSC") return [xplotter]
def calculateDeviationsStep(self, it): """ Calculate both angles and shifts devitations for all iterations """ SL = xmipp.SymList() mdIter = xmipp.MetaData() #for it in self.allIters(): mdIter.clear() SL.readSymmetryFile(self._symmetry[it]) md1 = xmipp.MetaData(self.docFileInputAngles[it]) md2 = xmipp.MetaData(self.docFileInputAngles[it-1]) #ignore disabled, md1.removeDisabled() md2.removeDisabled() #first metadata file may not have shiftx and shifty if not md2.containsLabel(xmipp.MDL_SHIFT_X): md2.addLabel(xmipp.MDL_SHIFT_X) md2.addLabel(xmipp.MDL_SHIFT_Y) md2.fillConstant(xmipp.MDL_SHIFT_X,0.) md2.fillConstant(xmipp.MDL_SHIFT_Y,0.) oldLabels=[xmipp.MDL_ANGLE_ROT, xmipp.MDL_ANGLE_TILT, xmipp.MDL_ANGLE_PSI, xmipp.MDL_SHIFT_X, xmipp.MDL_SHIFT_Y] newLabels=[xmipp.MDL_ANGLE_ROT2, xmipp.MDL_ANGLE_TILT2, xmipp.MDL_ANGLE_PSI2, xmipp.MDL_SHIFT_X2, xmipp.MDL_SHIFT_Y2] md2.renameColumn(oldLabels,newLabels) md2.addLabel(xmipp.MDL_SHIFT_X_DIFF) md2.addLabel(xmipp.MDL_SHIFT_Y_DIFF) md2.addLabel(xmipp.MDL_SHIFT_DIFF) mdIter.join1(md1, md2, xmipp.MDL_IMAGE, xmipp.INNER_JOIN) SL.computeDistance(mdIter,False,False,False) xmipp.activateMathExtensions() #operate in sqlite shiftXLabel = xmipp.label2Str(xmipp.MDL_SHIFT_X) shiftX2Label = xmipp.label2Str(xmipp.MDL_SHIFT_X2) shiftXDiff = xmipp.label2Str(xmipp.MDL_SHIFT_X_DIFF) shiftYLabel = xmipp.label2Str(xmipp.MDL_SHIFT_Y) shiftY2Label = xmipp.label2Str(xmipp.MDL_SHIFT_Y2) shiftYDiff = xmipp.label2Str(xmipp.MDL_SHIFT_Y_DIFF) shiftDiff = xmipp.label2Str(xmipp.MDL_SHIFT_DIFF) #timeStr = str(dtBegin) operateString = shiftXDiff+"="+shiftXLabel+"-"+shiftX2Label operateString += "," + shiftYDiff+"="+shiftYLabel+"-"+shiftY2Label mdIter.operate(operateString) operateString = shiftDiff+"=sqrt(" \ +shiftXDiff+"*"+shiftXDiff+"+" \ +shiftYDiff+"*"+shiftYDiff+");" mdIter.operate(operateString) iterFile = self._mdDevitationsFn(it) mdIter.write(iterFile,xmipp.MD_APPEND) self._setLastIter(it)