@Override public List<Integer> getLeaves() { int externalNodeCount = tree.getExternalNodeCount(); List<Integer> leaves = new ArrayList<Integer>(externalNodeCount); for (int i = 0; i < externalNodeCount; ++i) leaves.add(tree.getExternalNode(i).getNumber()); return leaves; }
public double[] getSummaryStatistic(Tree tree) { double externalLength = 0.0; double internalLength = 0.0; int externalNodeCount = tree.getExternalNodeCount(); for (int i = 0; i < externalNodeCount; i++) { NodeRef node = tree.getExternalNode(i); externalLength += tree.getBranchLength(node); } int internalNodeCount = tree.getInternalNodeCount(); for (int i = 0; i < internalNodeCount; i++) { NodeRef node = tree.getInternalNode(i); if (!tree.isRoot(node)) { internalLength += tree.getBranchLength(node); } } return new double[] {internalLength + externalLength}; }