def hicup_filtering_chart(self):
        """ Generate the HiCUP filtering plot """

        # Specify the order of the different possible categories
        keys = OrderedDict()
        keys['Valid_Pairs'] =            { 'color': '#2f7ed8', 'name': 'Valid Pairs' }
        keys['Same_Fragment_Internal'] = { 'color': '#0d233a', 'name': 'Same Fragment - Internal' }
        keys['Same_Circularised'] =      { 'color': '#910000', 'name': 'Same Fragment - Circularised' }
        keys['Same_Dangling_Ends'] =     { 'color': '#8bbc21', 'name': 'Same Fragment - Dangling Ends' }
        keys['Re_Ligation'] =            { 'color': '#1aadce', 'name': 'Re-ligation' }
        keys['Contiguous_Sequence'] =    { 'color': '#f28f43', 'name': 'Contiguous Sequence' }
        keys['Wrong_Size'] =             { 'color': '#492970', 'name': 'Wrong Size' }

        # Config for the plot
        config = {
            'id': 'hicup_filtering_plot',
            'title': 'HiCUP: Filtering Statistics',
            'ylab': '# Read Pairs',
            'cpswitch_counts_label': 'Number of Read Pairs',
            'cpswitch_c_active': False
        }

        return bargraph.plot(self.hicup_data, keys, config)
Generate the HiCUP filtering plot