def store_sample_set(self, md5_list):
        """ Store a sample set (which is just a list of md5s).

            Note: All md5s must already be in the data store.

            Args:
                md5_list: a list of the md5s in this set (all must exist in data store)

            Returns:
                The md5 of the set (the actual md5 of the set)
        """

        # Sanity check
        if not md5_list:
            print 'Warning: Trying to store an empty sample_set'
            return None

        # Remove any duplicates
        md5_list = list(set(md5_list))

        for md5 in md5_list:
            if not self.has_sample(md5):
                raise RuntimeError('%s: Not found! All items in sample_set must be in the datastore' % (md5))
        set_md5 = hashlib.md5(str(md5_list)).hexdigest()
        self._store_work_results({'md5_list':md5_list}, 'sample_set', set_md5)
        return set_md5