6
6
from cogent.util.dict_array import DictArrayTemplate
7
7
from cogent.evolve.simulate import AlignmentEvolver, randomSequence
8
8
from cogent.util import parallel, table
10
__author__ = "Gavin Huttley"
9
from cogent.recalculation.definition import ParameterController
11
from cogent.util.warning import discontinued, deprecated
13
__author__ = "Peter Maxwell"
11
14
__copyright__ = "Copyright 2007-2009, The Cogent Project"
12
15
__credits__ = ["Gavin Huttley", "Andrew Butterfield", "Peter Maxwell",
13
16
"Matthew Wakefield", "Rob Knight", "Brett Easton"]
14
17
__license__ = "GPL"
16
19
__maintainer__ = "Gavin Huttley"
17
20
__email__ = "gavin.huttley@anu.edu.au"
18
21
__status__ = "Production"
23
26
# the parameter, psub, mprob and likelihood values after the optimisation is
26
class LikelihoodFunction(object):
29
class LikelihoodFunction(ParameterController):
27
30
def setpar(self, param_name, value, edge=None, **scope):
31
deprecated('method', 'setpar','setParamRule', '1.6')
29
32
return self.setParamRule(param_name, edge=edge, value=value, is_const=True, **scope)
31
34
def testfunction(self):
35
deprecated('method', 'testfunction','getLogLikelihood', '1.6')
33
36
return self.getLogLikelihood()
35
def getParamValue(self, *args, **kw):
36
return self.real_par_controller.getParamValue(*args, **kw)
38
def getParamInterval(self, *args, **kw):
39
return self.real_par_controller.getParamInterval(*args, **kw)
41
def getParamValueDict(self, *args, **kw):
42
return self.real_par_controller.getParamValueDict(*args, **kw)
44
def getParamNames(self, *args, **kw):
45
return self.real_par_controller.getParamNames(*args, **kw)
47
def getUsedDimensions(self, param_name, **kw):
48
return self.real_par_controller.getUsedDimensions(param_name, **kw)
50
38
def getLogLikelihood(self):
51
return self.real_par_controller.getFinalResult()
53
def getNumFreeParams(self):
54
"""returns the number of free parameters."""
55
return self.real_par_controller.getNumFreeParams()
39
return self.getFinalResult()
57
41
def getPsubForEdge(self, name):
58
42
array = self.getParamValue('psubs', edge=name)
59
43
return DictArrayTemplate(self._motifs, self._motifs).wrap(array)
61
45
def getFullLengthLikelihoods(self, locus=None):
62
# XXX These will not really be full length if MPI is
64
46
if self.bin_names and len(self.bin_names) > 1:
65
47
root_lh = self.getParamValue('bindex', locus=locus)
66
48
root_lhs = [self.getParamValue('lh', locus=locus, bin=bin) for