code: def makedbthreads(self):
          
          # Find all the target folders in the analysis and add them to the targetfolders set
          for sample in self.metadata:
              if sample[self.analysistype].combinedtargets != 'NA':
                  self.targetfolders.add(sample[self.analysistype].targetpath)
          # Create and start threads for each fasta file in the list
          for i in range(len(self.targetfolders)):
              # Send the threads to makeblastdb
              threads = Thread(target=self.makeblastdb, args=())
              # Set the daemon to true - something to do with thread management
              threads.setDaemon(True)
              # Start the threading
              threads.start()
          # Make blast databases for MLST files (if necessary)
          for targetdir in self.targetfolders:
              # List comprehension to remove any previously created database files from list
              self.targetfiles = glob(os.path.join(targetdir, '*.fasta'))
              try:
                  _ = self.targetfiles[0]
              except IndexError:
                  self.targetfiles = glob(os.path.join(targetdir, '*.fasta'))
              for targetfile in self.targetfiles:
                  # Read the sequences from the target file to a dictionary
                  self.records[targetfile] = SeqIO.to_dict(SeqIO.parse(targetfile, 'fasta'))
                  # Add the fasta file to the queue
                  self.dqueue.put(targetfile)
          self.dqueue.join()
docs: Setup and create threads for class