docs: def cdhit_from_seqs(seqs, moltype, params=None):
      """Returns the CD-HIT results given seqs
  
      seqs    : dict like collection of sequences
      moltype : cogent.core.moltype object
      params  : cd-hit parameters
  
      NOTE: This method will call CD_HIT if moltype is PROTIEN,
          CD_HIT_EST if moltype is RNA/DNA, and raise if any other
          moltype is passed.
      """
      # keys are not remapped. Tested against seq_ids of 100char length
      seqs = SequenceCollection(seqs, MolType=moltype)
  
      # setup params and make sure the output argument is set
      if params is None:
          params = {}
      if '-o' not in params:
          _, params['-o'] = mkstemp()
  
      # call the correct version of cd-hit base on moltype
      working_dir = mkdtemp()
      if moltype is PROTEIN:
          app = CD_HIT(WorkingDir=working_dir, params=params)
      elif moltype is RNA:
          app = CD_HIT_EST(WorkingDir=working_dir, params=params)
      elif moltype is DNA:
          app = CD_HIT_EST(WorkingDir=working_dir, params=params)
      else:
          raise ValueError, "Moltype must be either PROTEIN, RNA, or DNA"
  
      # grab result
      res = app(seqs.toFasta())
      new_seqs = dict(parse_fasta(res['FASTA']))
  
      # perform cleanup
      res.cleanUp()
      shutil.rmtree(working_dir)
      remove(params['-o'] + '.bak.clstr')
  
      return SequenceCollection(new_seqs, MolType=moltype)