Esempio n. 1
0
    def _displayAngDist(self, *args):
        #print "_displayAngDist...."
        iterations = self._getIterations()
        nparts = self.protocol.inputParticles.get().getSize()
        views = []
        
        if self.displayAngDist == ANGDIST_2DPLOT:
	    #print " self.displayAngDist == ANGDIST_2DPLO "
            for it in iterations:
                anglesSqlite = self._getFinalPath('angular_dist_%03d.sqlite' % it)
                title = 'Angular distribution iter %03d' % it
                plotter = EmPlotter(x=1, y=1, windowTitle=title)
                self.createAngDistributionSqlite(anglesSqlite, nparts, 
                                                 itemDataIterator=self._iterAngles(it))
                plotter.plotAngularDistributionFromMd(anglesSqlite, title)
                views.append(plotter)
        else:
            it = iterations[-1]
            print "Using last iteration: ", it
            anglesSqlite = self._getFinalPath('angular_dist_%03d.sqlite' % it)
            self.createAngDistributionSqlite(anglesSqlite, nparts, 
                                                 itemDataIterator=self._iterAngles(it))
            volumes = self.getVolumeNames(it)
            views.append(em.ChimeraClientView(volumes[0], 
                                              showProjection=True, 
                                              angularDistFile=anglesSqlite, 
                                              spheresDistance=2))#self.spheresScale.get()))
            
        return views
Esempio n. 2
0
 def _createAngDist2D(self, it):
     nrefs = len(self._refsList)
     nparts = self.protocol.inputParticles.get().getSize()
     gridsize = self._getGridSize(nrefs)
     
     if self.protocol.IS_REFINE:
         data_angularDist = self.protocol._getFileName("output_par", iter=it)
         if exists(data_angularDist):
             plotter = EmPlotter(x=gridsize[0], y=gridsize[1],
                                 mainTitle="Iteration %d" % it, windowTitle="Angular distribution")
             title = 'iter %d' % it
             sqliteFn = self.protocol._getFileName('projections', iter=it)
             self.createAngDistributionSqlite(sqliteFn, nparts, itemDataIterator=self._iterAngles(it, data_angularDist))
             plotter.plotAngularDistributionFromMd(sqliteFn, title)
             return plotter
         else:
             return
     else:
         for ref3d in self._refsList:
             data_angularDist = self.protocol._getFileName("output_par_class", iter=it, ref=ref3d)
             if exists(data_angularDist):
                 plotter = EmPlotter(x=gridsize[0], y=gridsize[1],
                                     mainTitle="Iteration %d" % it, windowTitle="Angular distribution")
                 title = 'class %d' % ref3d
                 sqliteFn = self.protocol._getFileName('projectionsClass', iter=it, ref=ref3d)
                 self.createAngDistributionSqlite(sqliteFn, nparts, itemDataIterator=self._iterAngles(it, data_angularDist))
                 plotter.plotAngularDistributionFromMd(sqliteFn, title)
         return plotter
Esempio n. 3
0
    def _displayAngDist(self, *args):
        #print "_displayAngDist...."
        iterations = self._getIterations()
        nparts = self.protocol.inputParticles.get().getSize()
        views = []

        if self.displayAngDist == ANGDIST_2DPLOT:
            #print " self.displayAngDist == ANGDIST_2DPLO "
            for it in iterations:
                anglesSqlite = self._getFinalPath('angular_dist_%03d.sqlite' %
                                                  it)
                title = 'Angular distribution iter %03d' % it
                plotter = EmPlotter(x=1, y=1, windowTitle=title)
                self.createAngDistributionSqlite(
                    anglesSqlite,
                    nparts,
                    itemDataIterator=self._iterAngles(it))
                plotter.plotAngularDistributionFromMd(anglesSqlite, title)
                views.append(plotter)
        else:
            it = iterations[-1]
            print "Using last iteration: ", it
            anglesSqlite = self._getFinalPath('angular_dist_%03d.sqlite' % it)
            self.createAngDistributionSqlite(
                anglesSqlite, nparts, itemDataIterator=self._iterAngles(it))
            volumes = self.getVolumeNames(it)
            views.append(
                em.ChimeraClientView(
                    volumes[0],
                    showProjection=True,
                    angularDistFile=anglesSqlite,
                    spheresDistance=2))  #self.spheresScale.get()))

        return views
 def _createAngDist2D(self, it):
     fnDir = self.protocol._getExtraPath("Iter%03d"%it)
     fnAngles = join(fnDir,"angles.xmd")
     view=None
     if exists(fnAngles):
         fnAnglesSqLite = join(fnDir,"angles.sqlite")
         from pyworkflow.em.metadata.utils import getSize
         from pyworkflow.em.plotter import EmPlotter
         self.createAngDistributionSqlite(fnAnglesSqLite, getSize(fnAngles), itemDataIterator=self._iterAngles(fnAngles))
         view = EmPlotter(x=1, y=1, mainTitle="Iteration %d" % it, windowTitle="Angular distribution")
         view.plotAngularDistributionFromMd(fnAnglesSqLite, 'iter %d' % it)
     return view
 def _createAngDist2D(self, it):
     fnDir = self.protocol._getExtraPath("Iter%03d"%it)
     fnAngles = join(fnDir,"angles.xmd")
     view=None
     if exists(fnAngles):
         fnAnglesSqLite = join(fnDir,"angles.sqlite")
         from pyworkflow.em.plotter import EmPlotter
         if not exists(fnAnglesSqLite):
             from pyworkflow.em.metadata.utils import getSize
             self.createAngDistributionSqlite(fnAnglesSqLite, getSize(fnAngles), itemDataIterator=self._iterAngles(fnAngles))
         view = EmPlotter(x=1, y=1, mainTitle="Iteration %d" % it, windowTitle="Angular distribution")
         view.plotAngularDistributionFromMd(fnAnglesSqLite, 'iter %d' % it)
     return view
Esempio n. 6
0
    def _createAngDist2D(self, it):
        nrefs = len(self._refsList)
        nparts = self.protocol.inputParticles.get().getSize()
        gridsize = self._getGridSize(nrefs)

        if self.protocol.IS_REFINE:
            data_angularDist = self.protocol._getFileName("output_par",
                                                          iter=it)
            if exists(data_angularDist):
                plotter = EmPlotter(x=gridsize[0],
                                    y=gridsize[1],
                                    mainTitle="Iteration %d" % it,
                                    windowTitle="Angular distribution")
                title = 'iter %d' % it
                sqliteFn = self.protocol._getFileName('projections', iter=it)
                self.createAngDistributionSqlite(
                    sqliteFn,
                    nparts,
                    itemDataIterator=self._iterAngles(it, data_angularDist))
                plotter.plotAngularDistributionFromMd(sqliteFn, title)
                return plotter
            else:
                return
        else:
            for ref3d in self._refsList:
                data_angularDist = self.protocol._getFileName(
                    "output_par_class", iter=it, ref=ref3d)
                if exists(data_angularDist):
                    plotter = EmPlotter(x=gridsize[0],
                                        y=gridsize[1],
                                        mainTitle="Iteration %d" % it,
                                        windowTitle="Angular distribution")
                    title = 'class %d' % ref3d
                    sqliteFn = self.protocol._getFileName('projectionsClass',
                                                          iter=it,
                                                          ref=ref3d)
                    self.createAngDistributionSqlite(
                        sqliteFn,
                        nparts,
                        itemDataIterator=self._iterAngles(
                            it, data_angularDist))
                    plotter.plotAngularDistributionFromMd(sqliteFn, title)
            return plotter