Coverage for /home/deng/Projects/metatree_drawer/treeprofiler_algo/pastml/pastml/models/EFTModel.py: 54%
13 statements
« prev ^ index » next coverage.py v7.2.7, created at 2024-03-21 09:19 +0100
« prev ^ index » next coverage.py v7.2.7, created at 2024-03-21 09:19 +0100
1from pastml.models import Model
2from pastml.models.F81Model import F81Model
4EFT = 'EFT'
7class EFTModel(F81Model):
9 def __init__(self, states, forest_stats, observed_frequencies, sf=None,
10 tau=0, optimise_tau=False, parameter_file=None, reoptimise=False, **kwargs):
11 F81Model.__init__(self, states=states, forest_stats=forest_stats, sf=sf, tau=tau,
12 optimise_tau=optimise_tau, frequencies=observed_frequencies,
13 reoptimise=reoptimise, parameter_file=parameter_file, **kwargs)
14 self._optimise_frequencies = False
15 self._frequency_smoothing = False
16 self.name = EFT
18 def _print_parameters(self):
19 """
20 Constructs a string representing parameter values (to be used to logging).
22 :return: str representing parameter values
23 """
24 return '{}' \
25 '\tfrequencies:\tobserved in the tree\t(fixed)\n'.format(Model._print_parameters(self))
27 def parse_parameters(self, params, reoptimise=False):
28 """
29 Update this model's values from the input parameters.
30 EFT model can only have the basic parameters (scaling factor and smoothing factor, see pastml.models.Model),
31 as its frequencies are set to observed values.
33 :param params: dict {key->value}
34 :param reoptimise: whether these model parameters should be treated as starting values (True)
35 or as fixed values (False)
36 :return: dict with parameter values (same as input)
37 """
38 # This model sets frequencies from the observed values
39 # and hence should only read the basic parameters (scaling and smoothing factors) from the input file
40 return Model.parse_parameters(self, params, reoptimise)