class_docstr: The containing dialog and controller for the embedding
  and the image viewer that together make up an analysis
  (i.e. a user selection at an hSNE scale). It also
  iterates over the embedding once the analysis is created
  and this is dynamically displayed in the embedding gui.
docstr: Develop the embedding by performing the tsne iterations
  and displaying the intermediate plots
docstr_tok: ["Develop","the","embedding","by","performing","the","tsne","iterations","and","displaying","the","intermediate","plots"]
code: def iterate_tsne(self):
      """Develop the embedding by performing the tsne iterations
      and displaying the intermediate plots"""
      send_stop_event = False
      if self.analysis is None:
          return
      if not self._stop_iter:
          self.timer_count = self.timer_count + 1
          for j in range(self.iters_per_frame):
              self.analysis.do_iteration()
              self._iter_count = (
                  self.timer_count * self.iters_per_frame + j
              )
              self.status.showMessage(f"Iteration: {self._iter_count}")
  
          if self.timer_count == self.num_frames - 1:
              self._stop_iter = True
              send_stop_event = True
              self.timer_count = 0
              self.status.showMessage("Iteration: Completed")
  
          # Update point positions
          self.embedding_viewer.update_plot(self.analysis.embedding)
      else:
          if self.timer_count % 10 == 0:
              self.embedding_viewer.force_refresh()
  
      if send_stop_event:
          self.embedding_viewer.force_refresh()
          time.sleep(0.1)
          self.analysis_stopped(
              self.analysis,
              self.embedding_viewer.get_figure_as_buffer(),
          )
  
imports: import time
  import numpy
  from PyQt5 import QtWidgets
  from EmbeddingGui import EmbeddingViewer
  from ModelGui import DemoType
  from CompositeImageViewer import CompositeImageViewer
  from HyperspectralImageViewer import HyperspectralImageViewer
  from MetaDataViewer import MetaDataViewer
label_desc: Use image node_id 5 for calling the AnalysisController obj's underlying member method code with example usage: obj.iterate_tsne() without return types