<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def condense_otus(otuF, nuniqueF):
 """ 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. """

    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