def uniformData(tree, promoters, positional):
    """ Uniformize the format of the data in order
    to allow polymorphic inputs. 
    Input:
        - tree: list of step labels
        - promoters: single list for all steps or dict (no change)
        - positional: boolean for all steps or list (no change)
    Returns:
        - promoters: dictionary of promoters allowed at each step
        - positional: list of steps that allow shuffling
    """
    if type(positional) is bool:
        if positional:
            positional = tree
        else:
            positional = []
    if type(promoters) is not dict:
        promoters = {step:promoters for step in tree}        
    return promoters, positional