def OnTrackMolecules(self, event): import PYME.Analysis.points.DeClump.deClumpGUI as deClumpGUI #import PYME.Analysis.points.DeClump.deClump as deClump import PYME.Analysis.Tracking.trackUtils as trackUtils from PYME.LMVis.layers.tracks import TrackRenderLayer from PYME.recipes import tracking recipe = self.visFr.pipeline.recipe visFr = self.visFr pipeline = visFr.pipeline tracking_module = tracking.FindClumps(recipe, inputName=pipeline.selectedDataSourceKey, outputName='with_tracks', outputClumps = 'tracks', timeWindow=5, clumpRadiusVariable='1.0', clumpRadiusScale=250., minClumpSize=50) if tracking_module.configure_traits(kind='modal'): recipe.add_module(tracking_module) recipe.execute() self.visFr.pipeline.selectDataSource('with_tracks') #self.visFr.CreateFoldPanel() #TODO: can we capture this some other way? layer = TrackRenderLayer(pipeline, dsname=tracking_module.outputClumps, method='tracks') visFr.add_layer(layer)
def OnFindClumps(self, event=None): import PYME.Analysis.points.DeClump.deClumpGUI as deClumpGUI #import PYME.Analysis.points.DeClump.deClump as deClump import PYME.Analysis.Tracking.trackUtils as trackUtils visFr = self.visFr pipeline = visFr.pipeline #bCurr = wx.BusyCursor() dlg = deClumpGUI.deClumpDialog(None) ret = dlg.ShowModal() if ret == wx.ID_OK: #with progress.ComputationInProgress(visFr, 'finding consecutive appearances'): from PYME.recipes import tracking recipe = self.visFr.pipeline.recipe recipe.add_modules_and_execute([tracking.FindClumps(recipe, inputName=pipeline.selectedDataSourceKey, outputName='with_clumps', timeWindow=dlg.GetClumpTimeWindow(), clumpRadiusVariable=dlg.GetClumpRadiusVariable(), clumpRadiusScale=dlg.GetClumpRadiusMultiplier()),]) self.visFr.pipeline.selectDataSource('with_clumps') #self.visFr.CreateFoldPanel() #TODO: can we capture this some other way? dlg.Destroy()
def OnTrackMolecules(self, event=None): import PYME.Analysis.points.DeClump.deClumpGUI as deClumpGUI #import PYME.Analysis.points.DeClump.deClump as deClump import PYME.Analysis.Tracking.trackUtils as trackUtils from PYME.LMVis.layers.tracks import TrackRenderLayer from PYME.recipes import tracking from PYME.recipes.tablefilters import FilterTable recipe = self.visFr.pipeline.recipe visFr = self.visFr pipeline = visFr.pipeline # type: PYME.LMVis.pipeline.Pipeline if hasattr(self, '_mol_tracking_module') and (self._mol_tracking_module in recipe.modules): # We have already tracked, edit existing tracking module instead wx.MessageBox('This dataset has already been tracked, edit parameters of existing tracking rather than starting again', 'Error', wx.OK|wx.ICON_ERROR, visFr) self._mol_tracking_module.configure_traits(kind='modal') return output_name = 'with_tracks' if output_name in recipe.namespace: # this should take care of, e.g. having tracked with feature based tracking or something in the recipe output_name = pipeline.new_ds_name('with_tracks') wx.MessageBox("Another module has already created a 'with_tracks' output, using the nonstandard name '%s' instead" % output_name, 'Warning', wx.OK|wx.ICON_WARNING, visFr) tracking_module = tracking.FindClumps(recipe, inputName=pipeline.selectedDataSourceKey, outputName=output_name, timeWindow=5, clumpRadiusVariable='1.0', clumpRadiusScale=250., minClumpSize=50) if tracking_module.configure_traits(kind='modal'): self._mol_tracking_module = tracking_module recipe.add_modules_and_execute([tracking_module, # Add dynamic filtering on track length, etc. FilterTable(recipe, inputName=tracking_module.outputName, outputName='filtered_{}'.format(tracking_module.outputName), filters={'clumpSize':[tracking_module.minClumpSize, 1e6]})]) self.visFr.pipeline.selectDataSource('filtered_{}'.format(tracking_module.outputName)) #self.visFr.CreateFoldPanel() #TODO: can we capture this some other way? layer = TrackRenderLayer(pipeline, dsname='filtered_{}'.format(tracking_module.outputName), method='tracks') visFr.add_layer(layer)
def OnTrackMolecules(self, event): import PYME.Analysis.points.DeClump.deClumpGUI as deClumpGUI #import PYME.Analysis.points.DeClump.deClump as deClump import PYME.Analysis.Tracking.trackUtils as trackUtils from PYME.recipes import tracking recipe = self.visFr.pipeline.recipe visFr = self.visFr pipeline = visFr.pipeline tracking_module = tracking.FindClumps(recipe, inputName=pipeline.selectedDataSourceKey, outputName='with_tracks', outputClumps = 'tracks', timeWindow=5, clumpRadiusVariable='1.0', clumpRadiusScale=250., minClumpSize=50) if tracking_module.configure_traits(kind='modal'): recipe.add_module(tracking_module) recipe.execute() self.visFr.pipeline.selectDataSource('with_tracks')