code: def slamdunkOverallRatesPlot (self):
          
  
          pconfig = {
              'id': 'overallratesplot',
              'title': 'Slamdunk: Overall conversion rates in reads',
              'cpswitch': False,
              'cpswitch_c_active': False,
              'ylab': 'Number of reads',
              'stacking': 'normal',
              'tt_decimals': 2,
              'tt_suffix': '%',
              'tt_percentages': False,
              'hide_zero_cats': False,
              'data_labels': [
                  "Plus Strand +",
                  "Minus Strand -",
              ]
          }
  
          cats = [OrderedDict(), OrderedDict()]
          keys = [
              ['T>C', 'A>T', 'A>G', 'A>C', 'T>A', 'T>G', 'G>A', 'G>T', 'G>C', 'C>A', 'C>T', 'C>G'],
              ['A>G','A>T','A>C','T>A','T>G','T>C','G>A','G>T','G>C','C>A','C>T','C>G']
          ]
          for i, k in enumerate(keys):
              for j, v in enumerate(k):
                  cats[i][v] = { 'color': self.plot_cols[j] }
  
          self.add_section (
              name = 'Conversion rates per read',
              anchor = 'slamdunk_overall_rates',
              description = """This plot shows the individual conversion rates over all reads.
                          It shows these conversion rates strand-specific: This means for a properly labeled
                          sample you would see a T&gt;C excess on the plus-strand and an A&gt;G excess on the minus strand
                          (see the <a href="http://t-neumann.github.io/slamdunk/docs.html#rates" target="_blank">slamdunk docs</a>).""",
              plot = bargraph.plot([self.rates_data_plus,self.rates_data_minus], cats, pconfig)
          )
docs: Generate the overall rates plot