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): 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
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
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