def create_from_rsat_feature_names(dfile, key_transforms=None):
    """Uses a feature_names.tab file from RSAT to create a Thesaurus,
    represented as a dictionary.
    key_transforms is an optional list of key modifiers that are applied in
    sequence to the key before it is added to the dictionary
    a key_transform is a function from string -> [string], so multiple
    results can be returned from the transformer
    e.g. the feature_names.tab file stores VNG names with a modification
    suffix that can be removed
    """
    result = {}
    for line in dfile.lines:
        key = line[1]
        alternative = line[0]
        if key_transforms:
            for transform in key_transforms:
                for transform_key in transform(key):
                    result[transform_key] = alternative
        else:
            result[key] = alternative
    return result
