code: def condense_otus(otuF, nuniqueF):
      
      uniqueOTUs = set()
      nuOTUs = {}
  
      # parse non-unique otu matrix
      for line in nuniqueF:
          line = line.split()
          uOTU = line[0]
          for nuOTU in line[1:]:
              nuOTUs[nuOTU] = uOTU
          uniqueOTUs.add(uOTU)
  
      otuFilter = defaultdict(list)
      # parse otu sequence file
      for line in otuF:
          line = line.split()
          otuID, seqIDs = line[0], line[1:]
          if otuID in uniqueOTUs:
              otuFilter[otuID].extend(seqIDs)
          elif otuID in nuOTUs:
              otuFilter[nuOTUs[otuID]].extend(seqIDs)
  
      return otuFilter
docs: Traverse the input otu-sequence file, collect the non-unique OTU IDs and
      file the sequences associated with then under the unique OTU ID as defined
      by the input matrix.
  
      :@type otuF: file
      :@param otuF: The output file from QIIME's pick_otus.py
      :@type nuniqueF: file
      :@param nuniqueF: The matrix of unique OTU IDs associated to the list of
                        non-unique OTU IDs they replaced.
  
      :@rtype: dict
      :@return: The new condensed table of unique OTU IDs and the sequence IDs
                associated with them.