本文整理匯總了Java中dr.evolution.tree.MutableTree.isExternal方法的典型用法代碼示例。如果您正苦於以下問題:Java MutableTree.isExternal方法的具體用法?Java MutableTree.isExternal怎麽用?Java MutableTree.isExternal使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類dr.evolution.tree.MutableTree
的用法示例。
在下文中一共展示了MutableTree.isExternal方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: adjustInternalHeights
import dr.evolution.tree.MutableTree; //導入方法依賴的package包/類
private static void adjustInternalHeights(MutableTree tree, NodeRef node) {
if (!tree.isExternal(node)) {
// pre-order recursion
for (int i = 0; i < tree.getChildCount(node); i++) {
adjustInternalHeights(tree, tree.getChild(node, i));
}
}
NodeRef parent = tree.getParent(node);
if (parent != null) {
if (tree.getNodeHeight(parent) < tree.getNodeHeight(node)) {
tree.setNodeHeight(parent, tree.getNodeHeight(node));
}
}
}
示例2: addNewClades
import dr.evolution.tree.MutableTree; //導入方法依賴的package包/類
private BitSet addNewClades(final MutableTree tree, final NodeRef node) {
final BitSet bitSet = new BitSet(tree.getTaxonCount());
if (tree.isExternal(node)) {
bitSet.set(hostTaxonList.getTaxonIndex(tree.getNodeTaxon(node).getId()));
} else {
for (int i = 0; i < tree.getChildCount(node); ++i) {
bitSet.or(addNewClades(tree, tree.getChild(node, i)));
}
}
if (!clades.containsKey(bitSet))
clades.put(bitSet, clades.size());
final int id = clades.get(bitSet);
ids[(Integer) tree.getNodeAttribute(node, NODE_REF)] = id;
tree.setNodeAttribute(node, NODE_REF, id);
return bitSet;
}
示例3: annotateTree
import dr.evolution.tree.MutableTree; //導入方法依賴的package包/類
public void annotateTree(MutableTree tree, NodeRef node, BitSet bits, HeightsSummary heightsOption) {
BitSet bits2 = new BitSet();
if (tree.isExternal(node)) {
int index = taxonList.getTaxonIndex(tree.getNodeTaxon(node).getId());
bits2.set(index);
annotateNode(tree, node, bits2, true, heightsOption);
} else {
for (int i = 0; i < tree.getChildCount(node); i++) {
NodeRef node1 = tree.getChild(node, i);
annotateTree(tree, node1, bits2, heightsOption);
}
annotateNode(tree, node, bits2, false, heightsOption);
}
if (bits != null) {
bits.or(bits2);
}
}
示例4: annotateRates
import dr.evolution.tree.MutableTree; //導入方法依賴的package包/類
private static void annotateRates(
MutableTree targetTree, NodeRef node, Tree timeTree, Tree mutationTree) {
Set<String> leafSet = Tree.Utils.getDescendantLeaves(targetTree, node);
if (Tree.Utils.isMonophyletic(timeTree, leafSet)) {
NodeRef timeNode = Tree.Utils.getCommonAncestorNode(timeTree, leafSet);
NodeRef mutationNode = Tree.Utils.getCommonAncestorNode(mutationTree, leafSet);
double height = timeTree.getNodeHeight(timeNode);
if (!targetTree.isRoot(node)) {
double time = timeTree.getNodeHeight(timeTree.getParent(timeNode)) - height;
double mutations = mutationTree.getNodeHeight(mutationTree.getParent(mutationNode)) - mutationTree.getNodeHeight(mutationNode);
//double rate = mutations/time;
Number totalMutations = (Number)targetTree.getNodeAttribute(node, "totalMutations");
Number totalTime = (Number)targetTree.getNodeAttribute(node, "totalTime");
if (totalMutations == null) {
targetTree.setNodeAttribute(node, "totalMutations", mutations);
targetTree.setNodeAttribute(node, "totalTime", time);
targetTree.setNodeAttribute(node, "count", 1);
} else {
Integer count = (Integer)targetTree.getNodeAttribute(node, "count");
targetTree.setNodeAttribute(node, "totalMutations", totalMutations.doubleValue() + mutations);
targetTree.setNodeAttribute(node, "totalTime", totalTime.doubleValue() + time);
targetTree.setNodeAttribute(node, "count", count + 1);
}
}
if (!targetTree.isExternal(node)) {
java.util.List<Double> list = (java.util.List<Double>)targetTree.getNodeAttribute(node, "heightList");
if (list == null) {
list = new ArrayList<Double>() ;
targetTree.setNodeAttribute(node, "heightList", list);
}
list.add(height);
}
}
for (int i = 0; i < targetTree.getChildCount(node); i++) {
annotateRates(targetTree, targetTree.getChild(node, i), timeTree, mutationTree);
}
}