コード例 #1
0
ファイル: viewer_projmatch.py プロジェクト: I2PC/scipion
 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
コード例 #2
0
 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
コード例 #3
0
    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
コード例 #4
0
    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
コード例 #5
0
ファイル: viewer_projmatch.py プロジェクト: I2PC/scipion
    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