This function takes a series of sequences and creates a big BWT by merging the smaller ones 
    Mostly a test function, no real purpose to the tool as of now
    @param seqArray - a list of '$'-terminated strings to be placed into the array
    @param mergedFN - the final destination filename for the merged BWT
    @param numProcs - the number of processors the merge is allowed to create

def mergeNewSeqs(seqArray, mergedDir, numProcs, areUniform, logger):
    '''
    This function takes a series of sequences and creates a big BWT by merging the smaller ones 
    Mostly a test function, no real purpose to the tool as of now
    @param seqArray - a list of '$'-terminated strings to be placed into the array
    @param mergedFN - the final destination filename for the merged BWT
    @param numProcs - the number of processors the merge is allowed to create
    '''
    #first wipe away any traces of old information for the case of overwriting a BWT at mergedFN
    MSBWTGen.clearAuxiliaryData(mergedDir)
    
    #create two smaller ones
    midPoint = len(seqArray)/3
    mergedDir1 = mergedDir+'0'
    mergedDir2 = mergedDir+'1'
    mergedDir3 = mergedDir+'2'
    
    try:
        shutil.rmtree(mergedDir1)
    except:
        pass
    try:
        shutil.rmtree(mergedDir2)
    except:
        pass
    try:
        shutil.rmtree(mergedDir3)
    except:
        pass
    os.makedirs(mergedDir1)
    os.makedirs(mergedDir2)
    os.makedirs(mergedDir3)
    
    createMSBWTFromSeqs(seqArray[0:midPoint], mergedDir1, numProcs, areUniform, logger)
    createMSBWTFromSeqs(seqArray[midPoint:2*midPoint], mergedDir2, numProcs, areUniform, logger)
    createMSBWTFromSeqs(seqArray[2*midPoint:], mergedDir3, numProcs, areUniform, logger)
    
    #now do the actual merging
    MSBWTGen.mergeNewMSBWT(mergedDir, [mergedDir1, mergedDir2, mergedDir3], numProcs, logger)