def allelematchthreads(self):
        """
        Determine allele of each gene
        """
        # Create and start threads
        for i in range(self.cpus):
            # Send the threads to the appropriate destination function
            threads = Thread(target=self.allelematch, args=())
            # Set the daemon to true - something to do with thread management
            threads.setDaemon(True)
            # Start the threading
            threads.start()
        for sample in self.metadata.samples:
            sample[self.analysistype].allelematches = dict()
            self.allelequeue.put(sample)
        self.allelequeue.join()