code: def mirtrace_contamination_check(self):
          
  
          # A library of 24 colors. Should be enough for this plot
          color_lib = ['rgb(166,206,227)', 'rgb(31,120,180)', 'rgb(178,223,138)', 'rgb(51,160,44)', 'rgb(251,154,153)', 'rgb(227,26,28)', 'rgb(253,191,111)', 'rgb(255,127,0)', 'rgb(202,178,214)', 'rgb(106,61,154)', 'rgb(255,255,153)', 'rgb(177,89,40)', 'rgb(141,211,199)', 'rgb(255,255,179)', 'rgb(190,186,218)', 'rgb(251,128,114)', 'rgb(128,177,211)', 'rgb(253,180,98)', 'rgb(179,222,105)', 'rgb(252,205,229)', 'rgb(217,217,217)', 'rgb(188,128,189)', 'rgb(204,235,197)', 'rgb(255,237,111)']
  
          idx = 0
  
          # Specify the order of the different possible categories
          keys = OrderedDict()
          for clade in self.contamination_data[list(self.contamination_data.keys())[0]]:
              keys[clade] = { 'color': color_lib[idx], 'name': clade }
              if idx < 23:
                  idx += 1
              else:
                  idx = 0
  
          # Config for the plot
          config = {
              'cpswitch_c_active': False,
              'id': 'mirtrace_contamination_check_plot',
              'title': 'miRTrace: Contamination Check',
              'ylab': '# miRNA detected',
              'cpswitch_counts_label': 'Number of detected miRNA'
          }
  
          return bargraph.plot(self.contamination_data, keys, config)
docs: Generate the miRTrace Contamination Check