code: def annotatethreads(self):
          
          # Move the files to subfolders and create objects
          self.runmetadata = createobject.ObjectCreation(self)
          # Fix headers
          self.headers()
          printtime('Performing prokka analyses', self.start)
          # Create and start threads
          for i in range(self.cpus):
              # Send the threads to the appropriate destination function
              threads = Thread(target=self.annotate, 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:
              # Create the prokka attribute in the metadata object
              setattr(sample, 'prokka', GenObject())
              sample.prokka.outputdir = os.path.join(sample.general.outputdirectory, 'prokka')
              if not os.path.isdir(sample.prokka.outputdir):
                  os.makedirs(sample.prokka.outputdir)
              # TODO Incorporate MASH/rMLST/user inputted genus, species results in the system call
              # Create the system call
              # prokka 2014-SEQ-0275.fasta --force --genus Escherichia --species coli --usegenus --addgenes
              # --prefix 2014-SEQ-0275 --locustag EC0275 --outputdir /path/to/sequences/2014-SEQ-0275/prokka
              sample.prokka.command = 'prokka {} ' \
                                      '--force ' \
                                      '--genus {} ' \
                                      '--species {} ' \
                                      '--usegenus ' \
                                      '--addgenes ' \
                                      '--prefix {} ' \
                                      '--locustag {} ' \
                                      '--outdir {}' \
                  .format(sample.general.fixedheaders,
                          self.genus, self.species, sample.name, sample.name, sample.prokka.outputdir)
              self.queue.put(sample)
          self.queue.join()
docs: Use prokka to annotate each strain