def _showProjMatchLibAndImages(self, paramName=None): from numpy import array, dot #map stack position with ref number imgAndClasses = [] mdIn = xmipp.MetaData() mdOut = xmipp.MetaData() mdTmp = xmipp.MetaData() for ref3d in self._refsList: for it in self._iterations: convert_refno_to_stack_position = {} file_name = self.protocol._getFileName('projectLibrarySampling', iter=it, ref=ref3d) file_nameReferences = 'projectionDirections@' + file_name if exists(file_name): #last reference name mdReferences = xmipp.MetaData(file_nameReferences) mdReferencesSize = mdReferences.size() for id in mdReferences: convert_refno_to_stack_position[mdReferences.getValue(xmipp.MDL_NEIGHBOR,id)]=id file_nameImages = "ctfGroup[0-9][0-9][0-9][0-9][0-9][0-9]@" + self.protocol._getFileName('docfileInputAnglesIters', iter=it) mdTmp.read(file_nameImages)#query with ref3D mdIn.importObjects(mdTmp, xmipp.MDValueEQ(xmipp.MDL_REF3D, ref3d)) mdOut.clear() for i in mdIn: id1 = mdOut.addObject() mdOut.setValue(xmipp.MDL_IMAGE, mdIn.getValue(xmipp.MDL_IMAGE,i), id1) psi = -1. * mdIn.getValue(xmipp.MDL_ANGLE_PSI, i) flip = mdIn.getValue(xmipp.MDL_FLIP, i) if(flip): psi = -psi eulerMatrix = xmipp.Euler_angles2matrix(0., 0., psi) x = mdIn.getValue(xmipp.MDL_SHIFT_X, i) y = mdIn.getValue(xmipp.MDL_SHIFT_Y, i) shift = array([x, y, 0]) shiftOut = dot(eulerMatrix, shift) [x,y,z] = shiftOut if flip: x = -x mdOut.setValue(xmipp.MDL_ANGLE_PSI, psi, id1) mdOut.setValue(xmipp.MDL_SHIFT_X, x, id1) mdOut.setValue(xmipp.MDL_SHIFT_Y, y, id1) mdOut.setValue(xmipp.MDL_FLIP, flip, id1) ref2D = mdIn.getValue(xmipp.MDL_REF,i) file_references = self.protocol._getFileName('projectLibraryStk', iter=it, ref=ref3d) file_reference = xmipp.FileName() file_reference.compose(convert_refno_to_stack_position[ref2D], file_references) id2 = mdOut.addObject() mdOut.setValue(xmipp.MDL_IMAGE, file_reference, id2) mdOut.setValue(xmipp.MDL_ANGLE_PSI, 0., id2) if mdOut.size() == 0: print "Empty metadata" else: file_nameReferences = self.protocol._getFileName('projectLibrarySampling', iter=it, ref=ref3d) sfn = createUniqueFileName(file_nameReferences) file_nameReferences = 'projectionDirections@' + sfn mdOut.write(file_nameReferences) imgAndClasses.append(self.createDataView(file_nameReferences)) else: print "File %s does not exist" % file_name return imgAndClasses
def _showProjMatchLibAndImages(self, paramName=None): from numpy import (array, dot) #map stack position with ref number imgAndClasses = [] mdIn = xmippLib.MetaData() mdOut = xmippLib.MetaData() mdTmp = xmippLib.MetaData() for ref3d in self._refsList: for it in self._iterations: convert_refno_to_stack_position = {} file_name = self.protocol._getFileName('projectLibrarySampling', iter=it, ref=ref3d) file_nameReferences = 'projectionDirections@' + file_name if exists(file_name): #last reference name mdReferences = xmippLib.MetaData(file_nameReferences) mdReferencesSize = mdReferences.size() for id in mdReferences: convert_refno_to_stack_position[mdReferences.getValue(xmippLib.MDL_NEIGHBOR,id)]=id file_nameImages = "ctfGroup[0-9][0-9][0-9][0-9][0-9][0-9]@" + self.protocol._getFileName('docfileInputAnglesIters', iter=it) mdTmp.read(file_nameImages)#query with ref3D mdIn.importObjects(mdTmp, xmippLib.MDValueEQ(xmippLib.MDL_REF3D, ref3d)) mdOut.clear() for i in mdIn: id1 = mdOut.addObject() mdOut.setValue(xmippLib.MDL_IMAGE, mdIn.getValue(xmippLib.MDL_IMAGE,i), id1) psi = -1. * mdIn.getValue(xmippLib.MDL_ANGLE_PSI, i) flip = mdIn.getValue(xmippLib.MDL_FLIP, i) if(flip): psi = -psi eulerMatrix = xmippLib.Euler_angles2matrix(0., 0., psi) x = mdIn.getValue(xmippLib.MDL_SHIFT_X, i) y = mdIn.getValue(xmippLib.MDL_SHIFT_Y, i) shift = array([x, y, 0]) shiftOut = dot(eulerMatrix, shift) [x,y,z] = shiftOut if flip: x = -x mdOut.setValue(xmippLib.MDL_ANGLE_PSI, psi, id1) mdOut.setValue(xmippLib.MDL_SHIFT_X, x, id1) mdOut.setValue(xmippLib.MDL_SHIFT_Y, y, id1) mdOut.setValue(xmippLib.MDL_FLIP, flip, id1) ref2D = mdIn.getValue(xmippLib.MDL_REF,i) file_references = self.protocol._getFileName('projectLibraryStk', iter=it, ref=ref3d) file_reference = xmippLib.FileName() file_reference.compose(convert_refno_to_stack_position[ref2D], file_references) id2 = mdOut.addObject() mdOut.setValue(xmippLib.MDL_IMAGE, file_reference, id2) mdOut.setValue(xmippLib.MDL_ANGLE_PSI, 0., id2) if mdOut.size() == 0: print "Empty metadata" else: file_nameReferences = self.protocol._getFileName('projectLibrarySampling', iter=it, ref=ref3d) sfn = createUniqueFileName(file_nameReferences) file_nameReferences = 'projectionDirections@' + sfn mdOut.write(file_nameReferences) imgAndClasses.append(self.createDataView(file_nameReferences)) else: print "File %s does not exist" % file_name return imgAndClasses
def _showProjMatchLibAndClasses(self, paramName=None): #map stack position with ref number list = [] mdIn = emlib.MetaData() mdOut = emlib.MetaData() for ref3d in self._refsList: for it in self._iterations: convert_refno_to_stack_position = {} file_name = self.protocol._getFileName( 'projectLibrarySampling', iter=it, ref=ref3d) file_nameReferences = 'projectionDirections@' + file_name if exists(file_name): mdReferences = emlib.MetaData(file_nameReferences) mdReferencesSize = mdReferences.size() for id in mdReferences: convert_refno_to_stack_position[mdReferences.getValue( emlib.MDL_NEIGHBOR, id)] = id file_nameAverages = self.protocol._getFileName( 'outClassesXmd', iter=it, ref=ref3d) file_references = self.protocol._getFileName( 'projectLibraryStk', iter=it, ref=ref3d) if exists(file_nameAverages): mdIn.read(file_nameAverages) mdOut.clear() for i in mdIn: ref2D = mdIn.getValue(emlib.MDL_REF, i) file_reference = emlib.FileName() file_reference.compose( convert_refno_to_stack_position[ref2D], file_references) id1 = mdOut.addObject() mdOut.setValue(emlib.MDL_IMAGE, mdIn.getValue(emlib.MDL_IMAGE, i), id1) mdOut.setValue(emlib.MDL_IMAGE2, file_reference, id1) if mdOut.size() == 0: print("Empty metadata: ", file_nameReferences) else: file_nameReferences = self.protocol._getFileName( 'projectLibrarySampling', iter=it, ref=ref3d) sfn = createUniqueFileName(file_nameReferences) file_nameReferences = 'projectionDirections@' + sfn mdOut.merge(mdIn) mdOut.write(file_nameReferences) # ToDo: show the metadata in "metadata" form. list.append( self.createDataView(file_nameReferences)) else: print("File %s does not exist" % file_name) return list
def _showProjMatchLibrary(self, paramName=None): #map stack position with ref number list = [] mdIn = xmipp.MetaData() mdOut = xmipp.MetaData() cleanPattern(self.protocol._getTmpPath('references_library*')) for ref3d in self._refsList: for it in self._iterations: convert_refno_to_stack_position = {} file_name = self.protocol._getFileName( 'projectLibrarySampling', iter=it, ref=ref3d) file_nameReferences = 'projectionDirections@' + file_name #last reference name if exists(file_name): mdReferences = xmipp.MetaData(file_nameReferences) mdReferencesSize = mdReferences.size() for id in mdReferences: convert_refno_to_stack_position[mdReferences.getValue( xmipp.MDL_NEIGHBOR, id)] = id file_nameAverages = self.protocol._getFileName( 'outClassesXmd', iter=it, ref=ref3d) if exists(file_nameAverages): #print "OutClassesXmd", OutClassesXmd mdIn.read(file_nameAverages) mdOut.clear() for i in mdIn: #id1=mdOut.addObject() #mdOut.setValue(MDL_IMAGE,mdIn.getValue(MDL_IMAGE,i),id1) ref2D = mdIn.getValue(xmipp.MDL_REF, i) file_references = self.protocol._getFileName( 'projectLibraryStk', iter=it, ref=ref3d) file_reference = xmipp.FileName() file_reference.compose( convert_refno_to_stack_position[ref2D], file_references) id2 = mdOut.addObject() mdOut.setValue(xmipp.MDL_IMAGE, file_reference, id2) if mdOut.size() == 0: print "Empty metadata: ", file_nameReferences else: file_nameReferences = self.protocol._getTmpPath( 'references_library.xmd') sfn = createUniqueFileName(file_nameReferences) file_nameReferences = 'projectionDirections@' + sfn mdOut.write(file_nameReferences) list.append( self.createDataView(file_nameReferences)) else: print "File %s does not exist" % file_name return list
def _showProjMatchLibrary(self, paramName=None): #map stack position with ref number list = [] mdIn = xmipp.MetaData() mdOut = xmipp.MetaData() cleanPattern(self.protocol._getTmpPath('references_library*')) for ref3d in self._refsList: for it in self._iterations: convert_refno_to_stack_position = {} file_name = self.protocol._getFileName('projectLibrarySampling', iter=it, ref=ref3d) file_nameReferences = 'projectionDirections@' + file_name #last reference name if exists(file_name): mdReferences = xmipp.MetaData(file_nameReferences) mdReferencesSize = mdReferences.size() for id in mdReferences: convert_refno_to_stack_position[mdReferences.getValue(xmipp.MDL_NEIGHBOR,id)]=id file_nameAverages = self.protocol._getFileName('outClassesXmd', iter=it, ref=ref3d) if exists(file_nameAverages): #print "OutClassesXmd", OutClassesXmd mdIn.read(file_nameAverages) mdOut.clear() for i in mdIn: #id1=mdOut.addObject() #mdOut.setValue(MDL_IMAGE,mdIn.getValue(MDL_IMAGE,i),id1) ref2D = mdIn.getValue(xmipp.MDL_REF,i) file_references = self.protocol._getFileName('projectLibraryStk', iter=it, ref=ref3d) file_reference = xmipp.FileName() file_reference.compose(convert_refno_to_stack_position[ref2D],file_references) id2=mdOut.addObject() mdOut.setValue(xmipp.MDL_IMAGE, file_reference, id2) if mdOut.size() == 0: print "Empty metadata: ", file_nameReferences else: file_nameReferences = self.protocol._getTmpPath('references_library.xmd') sfn = createUniqueFileName(file_nameReferences) file_nameReferences = 'projectionDirections@' + sfn mdOut.write(file_nameReferences) list.append(self.createDataView(file_nameReferences)) else: print "File %s does not exist" % file_name return list