<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _dash_f_e_to_dict(self, info_filename, tree_filename):
 """ Raxml provides an option to fit model params to a tree, selected with -f e. The output is different and needs a different parser. """

        with open(info_filename) as fl:
            models, likelihood, partition_params = self._dash_f_e_parser.parseFile(fl).asList()

        with open(tree_filename) as fl:
            tree = fl.read()

        d = {'likelihood': likelihood, 'ml_tree': tree, 'partitions': {}}

        for model, params in zip(models, partition_params):
            subdict = {}
            index, name, _, alpha, rates, freqs = params
            subdict['alpha'] = alpha
            subdict['name'] = name
            subdict['rates'] = rates
            subdict['frequencies'] = freqs
            subdict['model'] = model
            d['partitions'][index] = subdict

        return d