当前位置: 首页>>代码示例>>Java>>正文


Java Node.getChildren方法代码示例

本文整理汇总了Java中beast.evolution.tree.Node.getChildren方法的典型用法代码示例。如果您正苦于以下问题:Java Node.getChildren方法的具体用法?Java Node.getChildren怎么用?Java Node.getChildren使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在beast.evolution.tree.Node的用法示例。


在下文中一共展示了Node.getChildren方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: mutateOverTree

import beast.evolution.tree.Node; //导入方法依赖的package包/类
public Tree mutateOverTree(Tree base) throws Exception {
	ArrayList<Node> currParents = new ArrayList<Node>();
	ArrayList<Node> newParents = new ArrayList<Node>();
	currParents.add(base.getRoot());
	while (currParents.size() > 0) {
		for (Node parent : currParents) {
			List<Node> children = parent.getChildren();
			for (Node child : children) {
				double T = Math.abs(child.getHeight() - parent.getHeight());
				Sequence parentLang = getSequence(parent);
				Sequence newLang = mutateLang(parentLang, T);
				child.setMetaData("lang", newLang);
				newParents.add(child);
				addEmptyTrait(base, child);
			}
		}
		currParents = new ArrayList<Node>(newParents);
		newParents = new ArrayList<Node>();
	}
	return base;
}
 
开发者ID:lutrasdebtra,项目名称:Beast-Borrowing-Plugin,代码行数:22,代码来源:ExplicitBinaryStochasticDollo.java

示例2: mutateOverTree

import beast.evolution.tree.Node; //导入方法依赖的package包/类
public Tree mutateOverTree(Tree base) throws Exception {
	ArrayList<Node> currParents = new ArrayList<Node>();
	ArrayList<Node> newParents = new ArrayList<Node>();
	currParents.add(base.getRoot());
	while (currParents.size() > 0) {
		for (Node parent : currParents) {
			List<Node> children = parent.getChildren();
			for (Node child : children) {
				double T = Math.abs(child.getHeight() - parent.getHeight());
				Sequence parentLang = getSequence(parent);
				Sequence newLang = mutateLang(parentLang, T);
				child.setMetaData("lang", newLang);
				newParents.add(child);
			}
		}
		currParents = new ArrayList<Node>(newParents);
		newParents = new ArrayList<Node>();
	}
	return base;
}
 
开发者ID:lutrasdebtra,项目名称:Beast-Borrowing-Plugin,代码行数:21,代码来源:ExplicitBinaryGTR.java

示例3: setTipValues

import beast.evolution.tree.Node; //导入方法依赖的package包/类
void setTipValues(Node node) {
    if (node.isLeaf()) {
        node.setMetaData("p", p);
        node.setMetaData("p_min", p);
        node.setMetaData("p_max", p);
        p += getCanonicalNodeSpacing(node.getTree());
    } else {
        double pmin = Double.MAX_VALUE;
        double pmax = Double.MIN_VALUE;
        for (Node childNode : node.getChildren()) {
            setTipValues(childNode);

            double cpmin = (Double) childNode.getMetaData("p_min");
            double cpmax = (Double) childNode.getMetaData("p_max");

            if (cpmin < pmin) pmin = cpmin;
            if (cpmax > pmax) pmax = cpmax;
        }
        node.setMetaData("p_min", pmin);
        node.setMetaData("p_max", pmax);
    }
}
 
开发者ID:CompEvol,项目名称:beastshell,代码行数:23,代码来源:TreeComponent.java

示例4: binarizeMultifurcation

import beast.evolution.tree.Node; //导入方法依赖的package包/类
/**
 * Use zero-length edges to replace multifurcations with a sequence of bifurcations.
 *
 * @param node node representing multifurcation
 */
private void binarizeMultifurcation(Node node) {
     if (node.getChildCount()>2) {
        List<Node> children = new ArrayList<>(node.getChildren());
        Node prevDummy = node;
        for (int i=1; i<children.size()-1; i++) {
            Node child = children.get(i);

            Node dummyNode = newNode();
            dummyNode.setNr(-1);
            dummyNode.setHeight(0);
            prevDummy.addChild(dummyNode);

            node.removeChild(child);
            dummyNode.addChild(child);

            prevDummy = dummyNode;
        }
        node.removeChild(children.get(children.size()-1));
        prevDummy.addChild(children.get(children.size()-1));
    }
}
 
开发者ID:CompEvol,项目名称:beast2,代码行数:27,代码来源:TreeParser.java

示例5: removeSingleChildNodes

import beast.evolution.tree.Node; //导入方法依赖的package包/类
/**
 * Extract the sampled tree by discarding all the nodes that have -1 number simultaneously suppress single
 * child nodes (nodes with only one child numbered by non-negative number)
 * @param node
 */
public void removeSingleChildNodes(Node node) {
    if (!node.isLeaf()) {
        Node left = node.getLeft();
        Node right = node.getRight();

        removeSingleChildNodes(left);
        removeSingleChildNodes(right);
        for (Node child:node.getChildren()) {
            if (child.getNr() == -1) {
                node.removeChild(child);
            }
        }
        if (node.getChildCount() == 1 && node.getParent() != null) {
            Node parent = node.getParent();
            Node newChild =  node.getLeft();
            parent.removeChild(node);
            parent.addChild(newChild);
            newChild.setParent(parent);
            //node.setParent(null);
        }
    }
}
 
开发者ID:CompEvol,项目名称:sampled-ancestors,代码行数:28,代码来源:SABDSkylineTreeSimulatorArbitraryRateChanges.java

示例6: getAliveNodes

import beast.evolution.tree.Node; //导入方法依赖的package包/类
public ArrayList<Node> getAliveNodes(Tree base, Double t) {
	ArrayList<Node> aliveNodes = new ArrayList<Node>();

	Node root = base.getRoot();
	for (Node child : root.getChildren()) {
		if (child.getHeight() <= t) {
			aliveNodes.add(child);
		} else {
			aliveNodes.addAll(aliveNodes(child, t));
		}
	}

	return aliveNodes;
}
 
开发者ID:lutrasdebtra,项目名称:Beast-Borrowing-Plugin,代码行数:15,代码来源:LanguageSubsitutionModel.java

示例7: aliveNodes

import beast.evolution.tree.Node; //导入方法依赖的package包/类
protected ArrayList<Node> aliveNodes(Node curr, Double t) {
	ArrayList<Node> aN = new ArrayList<Node>();
	for (Node child : curr.getChildren()) {
		if (child.getHeight() <= t) {
			aN.add(child);
		} else {
			aN.addAll(aliveNodes(child, t));
		}
	}
	return aN;
}
 
开发者ID:lutrasdebtra,项目名称:Beast-Borrowing-Plugin,代码行数:12,代码来源:LanguageSubsitutionModel.java

示例8: calcMinHeight

import beast.evolution.tree.Node; //导入方法依赖的package包/类
private double calcMinHeight(Node node) {
	if (node.isLeaf()) {
		return node.getHeight();
	}
	
	double minHeight = 0.0;
	for (Node child: node.getChildren()) {
		minHeight = Math.max(minHeight, calcMinHeight(child));
	}
	
	return minHeight;
}
 
开发者ID:genomescale,项目名称:starbeast2,代码行数:13,代码来源:NodeReheight2.java

示例9: scaleAndTranslatePositions

import beast.evolution.tree.Node; //导入方法依赖的package包/类
private void scaleAndTranslatePositions(Node node, double scale, double tx, double ty) {
    Point2D p = (Point2D) node.getMetaData("p");

    node.setMetaData("p", new Point2D.Double(p.getX() * scale + tx, p.getY() * scale + ty));

    for (Node child : node.getChildren()) {
        scaleAndTranslatePositions(child, scale, tx, ty);
    }
}
 
开发者ID:CompEvol,项目名称:beastshell,代码行数:10,代码来源:UnrootedTreeDrawing.java

示例10: positionInternalNodes

import beast.evolution.tree.Node; //导入方法依赖的package包/类
void positionInternalNodes(Node node) {
    if (!node.isLeaf()) {
        if (positioningRule.getTraversalOrder() == NodePositioningRule.TraversalOrder.PRE_ORDER) {
            positioningRule.setPosition(node, "p");
        }
        for (Node child : node.getChildren()) {
            positionInternalNodes(child);
        }
        if (positioningRule.getTraversalOrder() == NodePositioningRule.TraversalOrder.POST_ORDER) {
            positioningRule.setPosition(node, "p");
        }

    }
}
 
开发者ID:CompEvol,项目名称:beastshell,代码行数:15,代码来源:TreeComponent.java

示例11: processMetaData

import beast.evolution.tree.Node; //导入方法依赖的package包/类
private void processMetaData(Node node) {
	for (Node child : node.getChildren()) {
		processMetaData(child);
	}
	Set<String> metaDataNames = node.getMetaDataNames(); 
	if (metaDataNames != null && !metaDataNames.isEmpty()) {
		String metadata = "";
		for (String name : metaDataNames) {
			Object value = node.getMetaData(name);
			metadata += name + "=";
			if (value instanceof Object[]) {
				Object [] values = (Object[]) value;
				metadata += "{";
				for (int i = 0; i < values.length; i++) {
					metadata += values[i].toString();
					if (i < values.length - 1) {
						metadata += ",";
					}
				}
				metadata += "}";
			} else {
				 metadata += value.toString();
			}
			metadata += ",";
		}
		metadata = metadata.substring(0, metadata.length() - 1);
		node.metaDataString = metadata;
	}		
}
 
开发者ID:CompEvol,项目名称:beast2,代码行数:30,代码来源:TreeAnnotator.java

示例12: convertLengthToHeight

import beast.evolution.tree.Node; //导入方法依赖的package包/类
/**
 * Recursive method used to convert lengths to heights.  Applied to the root,
 * results in heights from 0 to -total_height_of_tree.
 *
 * @param node node of a clade to convert
 * @param height Parent height.
 * @return total height of clade
 */
private double convertLengthToHeight(final Node node, final double height) {
    final double length = node.getHeight();
    node.setHeight((height - length) * scaleInput.get());
    if (node.isLeaf()) {
        return node.getHeight();
    } else {
        double minChildHeight = Double.POSITIVE_INFINITY;
        for (Node child : node.getChildren())
            minChildHeight = Math.min(minChildHeight, convertLengthToHeight(child, height - length));

        return minChildHeight;
    }
}
 
开发者ID:CompEvol,项目名称:beast2,代码行数:22,代码来源:TreeParser.java

示例13: offset

import beast.evolution.tree.Node; //导入方法依赖的package包/类
/**
 * Method used by convertLengthToHeight(node) to remove negative offset from
 * node heights that is produced by convertLengthToHeight(node, height).
 *
 * @param node node of clade to offset
 * @param delta offset
 */
private void offset(final Node node, final double delta) {
    node.setHeight(node.getHeight() + delta);
    if (node.isLeaf()) {
        if (node.getHeight() < thresholdInput.get()) {
            node.setHeight(0);
        }
    }
    for (Node child : node.getChildren())
        offset(child, delta);
}
 
开发者ID:CompEvol,项目名称:beast2,代码行数:18,代码来源:TreeParser.java

示例14: numberUnnumberedNodes

import beast.evolution.tree.Node; //导入方法依赖的package包/类
/**
 * Number any nodes in a clade which were not explicitly numbered by
 * the parsed string.
 *
 * @param node clade parent
 */
private void numberUnnumberedNodes(Node node) {
    if (node.isLeaf())
        return;

    for (Node child : node.getChildren()) {
        numberUnnumberedNodes(child);
    }

    if (node.getNr()<0)
        node.setNr(numberedNodeCount);

    numberedNodeCount += 1;
}
 
开发者ID:CompEvol,项目名称:beast2,代码行数:20,代码来源:TreeParser.java

示例15: listSampledNodeIDsUnder

import beast.evolution.tree.Node; //导入方法依赖的package包/类
private ArrayList<String> listSampledNodeIDsUnder(Node node) {
    ArrayList<String> tmp = new ArrayList<String>();
    if (!node.isLeaf()) {
        for (Node child : node.getChildren()) {
            tmp.addAll(listSampledNodeIDsUnder(child));
        }
    } else tmp.add(node.getID());
    Collections.sort(tmp);
    return tmp;
}
 
开发者ID:CompEvol,项目名称:sampled-ancestors,代码行数:11,代码来源:SATreeTraceAnalysis.java


注:本文中的beast.evolution.tree.Node.getChildren方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。