Exemple #1
0
 def run(self):
     #---+----|----+----|----+----|----+----|----+----|----+----|----+----|
     """
     Computes the log-likelihood based on the current tree and current
     model.
     
     """
     
     ds = self.opts.data_source
     mat = ds and ds.getMatrix() or None
     self.phycassert(self.opts.data_source is not None, "specify data_source before calling like()")
     self._loadData(mat)
     
     self.starting_tree =  self.getStartingTree()
     if self.opts.preorder_edgelens is not None:
         self.starting_tree.replaceEdgeLens(self.opts.preorder_edgelens)
         print '@@@@@@@@@@ self.starting_tree.makeNewick() =',self.starting_tree.makeNewick()
     core = LikelihoodCore(self)
     core.setupCore()
     core.prepareForLikelihood()
     if self.opts.store_site_likes:
         core.likelihood.storeSiteLikelihoods(True)
         self.opts.pattern_counts = None
         self.opts.char_to_pattern = None
         self.opts.site_likes = None
         self.opts.site_uf = None
     else:
         core.likelihood.storeSiteLikelihoods(False)
     lnL = core.calcLnLikelihood()
     if self.opts.store_site_likes:
         self.opts.pattern_counts = core.likelihood.getPatternCounts()
         self.opts.char_to_pattern = core.likelihood.getCharIndexToPatternIndex()
         self.opts.site_likes = core.likelihood.getSiteLikelihoods()
         self.opts.site_uf = core.likelihood.getSiteUF()
     return lnL