class_docstr: This is the QT Gui that can be used to manipulate
  the meta data in the Embedding Gui
  
  Assumes layout of the meta-data csv has an id followed
  by pairs of label + color columns
  
  id label0 color0 label1 color1 --- labelN colorN
  .  ...    ...    ...    ...    --- ...    ...
  .  ...    ...    ...    ...    --- ...    ...
docstr: A new meta data class has been selected. Load
  and activate the pair of meta columns label + color
docstr_tok: ["A","new","meta","data","class","has","been","selected",".","Load","and","activate","the","pair","of","meta","columns","label","+","color"]
code: def on_class(self, index):
      """A new meta data class has been selected. Load
      and activate the pair of meta columns label + color"""
      if self.meta_path is None:
          return
      cols = self.meta_pairs[index]
      # load the columns corresponsing to the selected class
      dframe = pd.read_csv(self.meta_path, usecols=cols)
      self.label_series = dframe.iloc[:, 0]
      self.color_series = dframe.iloc[:, 1]
      self.unique_dframe = dframe.drop_duplicates()
      self.labels = list(self.label_series.unique())
      self.labels.sort()
      self.__fill_table()
      # Callback the currently loaded  colors
      self.on_color_change(self.color_series.to_numpy())
  
file_path: nptsne/demos/ExtendedHSNEDemo/MetaDataViewer.py
imports: import pandas
  from PyQt5.QtWidgets import QWidget, QFormLayout, QVBoxLayout, QComboBox, QLabel, QTableWidget, QTableWidgetItem, QAbstractItemView, QHeaderView
  from PyQt5.QtCore import pyqtSlot
  from PyQt5.QtGui import QColor
label_desc: Use image node_id 4 for calling the MetaDataViewer obj's underlying member method code with example usage: obj.on_class(index) without return types