public double calculateTreeLogLikelihood(Tree tree,Set<Taxon> exclude){
  final int taxonCount=tree.getExternalNodeCount() - exclude.size();
  double[] lnL={logTreeProbability(taxonCount)};
  calculateNodeLogLikelihood(tree,tree.getRoot(),exclude,lnL);
  return lnL[0];
}

public double calculateTreeLogLikelihood ( Tree tree , Set < Taxon > exclude ) { final int taxonCount = tree . getExternalNodeCount ( ) - exclude . size ( ) ; double [ ] lnL = { logTreeProbability ( taxonCount ) } ; calculateNodeLogLikelihood ( tree , tree . getRoot ( ) , exclude , lnL ) ; return lnL [ 0 ] ; }
alternative likelihood calculation that uses recursion over the tree and allows a list of taxa to exclude
