def resolve_mutation_tracker(mutation_tracker):
    """
    From a dictionary with comma separated keys (e.g. {'a.b.c.d': 'e'}), creates a new dictionary with nested
    dictionaries, each of which containing a key taken from comma separated keys. (e.g. {'a': {'b' {'c': {'d': 'e'}}}})

    :param mutation_tracker: the dictionary with comma separated keys
    :return: a new dictionary containing nested dictionaries with old comma separated keys
    """
    body = {}
    for key in mutation_tracker:
        update_dictionary = body
        splitted = key.split('.')
        for attr in splitted:
            if attr == splitted[-1]:
                update_dictionary[attr] = mutation_tracker[key]
            else:
                if attr not in update_dictionary:
                    update_dictionary[attr] = {}
                update_dictionary = update_dictionary[attr]
    return body
