code: def epcr_threads(self, formattedprimers, ampliconsize=10000):
          for sample in self.metadata:
              if sample.general.bestassemblyfile != 'NA':
                  threads = Thread(target=self.epcr, args=())
                  threads.setDaemon(True)
                  threads.start()
          logging.info('Running ePCR analyses')
          for sample in self.metadata:
              if sample.general.bestassemblyfile != 'NA':
                  setattr(sample, self.analysistype, GenObject())
                  sample[self.analysistype].primers = formattedprimers
                  sample[self.analysistype].reportdir = os.path.join(sample.general.outputdirectory,
                                                                     self.analysistype)
                  make_path(sample[self.analysistype].reportdir)
                  outfile = os.path.join(sample[self.analysistype].reportdir, sample.name)
                  sample.commands.famap = '{famap} -b {outfile}.famap {fasta}'\
                      .format(famap=os.path.join(self.homepath, 'ePCR', 'famap'),
                              outfile=outfile,
                              fasta=sample.general.bestassemblyfile)
                  sample.commands.fahash = '{fahash} -b {outfile}.hash {outfile}.famap'\
                      .format(fahash=os.path.join(self.homepath, 'ePCR', 'fahash'),
                              outfile=outfile)
                  sample.commands.epcr = \
                      '{rePCR} -S {outfile}.hash -r + -d 1-{ampsize} -n {mismatches} -g 0 -G -q ' \
                      '-o {outfile}.txt {primers}'\
                      .format(rePCR=os.path.join(self.homepath, 'ePCR', 're-PCR'),
                              outfile=outfile,
                              ampsize=ampliconsize,
                              mismatches=self.mismatches,
                              primers=sample[self.analysistype].primers)
                  sample[self.analysistype].resultsfile = '{of}.txt'.format(of=outfile)
                  self.epcrqueue.put((sample, outfile))
          self.epcrqueue.join()