Parse the ePCR results, and run BLAST on the parsed results

def epcrparsethreads(self):
        """
        Parse the ePCR results, and run BLAST on the parsed results
        """
        from Bio import SeqIO
        # Create the threads for the BLAST analysis
        for sample in self.metadata:
            if sample.general.bestassemblyfile != 'NA':
                threads = Thread(target=self.epcrparse, args=())
                threads.setDaemon(True)
                threads.start()
        for sample in self.metadata:
            if sample.general.bestassemblyfile != 'NA':
                if sample[self.analysistype].primers != 'NA':
                    # Initialise a dictionary to store the SeqIO records of each assembly
                    record = dict()
                    # Initialise dictionaries to store results in the object
                    sample[self.analysistype].blastresults = dict()
                    sample[self.analysistype].rawblastresults = dict()
                    # Load the records from the assembly into the dictionary
                    for rec in SeqIO.parse(sample.general.bestassemblyfile, 'fasta'):
                        record[rec.id] = str(rec.seq)
                    # Iterate through the ePCR results
                    for line in sample[self.analysistype].epcrresults:
                        # The data of interest is in the lines that do not start with a #
                        # TLH 2016-SEQ-0359_4_length_321195_cov_28.6354_ID_3773 + 227879 228086 0	0 208/1000-1000
                        if not line.startswith('#'):
                            # Add the variables to the queue
                            self.epcrparsequeue.put((sample, record, line))
        self.epcrparsequeue.join()