docs: def hmmsearch(self, output_path, input_path, unpack, seq_type, threads, cutoff, orfm):
          '''
          hmmsearch - Search raw reads for hits using search_hmm list
  
          Parameters
          ----------
          output_path : str
              path to output domtblout table
          input_path : str
              path to input sequences to search
          unpack : UnpackRawReads
              UnpackRawReads object, returns string command that will output
              sequences to stdout when called on command line
              (use: unpack.command_line())
          seq_type : str
              variable containing a string, either 'nucleotide' or 'aminoacid'.
              Tells the pipeline whether or not to call ORFs on the sequence.
              If sequence is 'nucleotide', ORFs are called. If not, no ORFs.
          threads : Integer
              Number of threads to use. Passed to HMMsearch command.
          cutoff : str
              cutoff for HMMsearch to use, either an evalue or --cut_tc, meaning
              use the TC score cutoff specified within the HMM. Passed to 
              HMMsearch command.
          orfm : OrfM
              Object that builds the command chunk for calling ORFs on sequences
              coming through as stdin. Outputs to stdout. Calls command_line
              to construct final command line string.
  
          Returns
          -------
          output_table_list : array of HMMSearchResult
              Includes the name of the output domtblout table given by hmmer
  
          Raises
          ------
          hmmsearcher.NoInputSequencesException
              Raised if there are no sequences fed into the HMM.
          '''
  
          # Define the base hmmsearch command.
          logging.debug("Using %i HMMs to search" % (len(self.search_hmm)))
          output_table_list = []
          if len(self.search_hmm) > 1:
              for hmm in self.search_hmm:
                  out = os.path.join(os.path.split(output_path)[0], os.path.basename(hmm).split('.')[0] + '_' + os.path.split(output_path)[1])
                  output_table_list.append(out)
          elif len(self.search_hmm) == 1:
              output_table_list.append(output_path)
          else:
              raise Exception("Programming error: expected 1 or more HMMs")
  
          # Choose an input to this base command based off the file format found.
          if seq_type == 'nucleotide':  # If the input is nucleotide sequence
              input_cmd = orfm.command_line(input_path)
          elif seq_type == 'aminoacid':  # If the input is amino acid sequence
              input_cmd = unpack.command_line()
          else:
              raise Exception('Programming Error: error guessing input sequence type')
          
          # Run the HMMsearches
          if cutoff == "--cut_tc":
              searcher = HmmSearcher(threads, cutoff) 
          else:
              searcher = HmmSearcher(threads, '--domE %s' % cutoff)
          searcher.hmmsearch(input_cmd, self.search_hmm, output_table_list)
  
          hmmtables = [HMMSearchResult.import_from_hmmsearch_table(x) for x in output_table_list]
          return hmmtables