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


Java MutableTree.setNodeAttribute方法代码示例

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


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

示例1: 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;
	}
 
开发者ID:armanbilge,项目名称:BECKY,代码行数:21,代码来源:PreAnnotator.java

示例2: annotateModeAttribute

import dr.evolution.tree.MutableTree; //导入方法依赖的package包/类
private void annotateModeAttribute(MutableTree tree, NodeRef node, String label, HashMap<Object, Integer> values) {
    Object mode = null;
    int maxCount = 0;
    int totalCount = 0;
    int countInMode = 1;

    for (Object key : values.keySet()) {
        int thisCount = values.get(key);
        if (thisCount == maxCount) {
            // I hope this is the intention
            mode = mode.toString().concat("+" + key);
            countInMode++;
        } else if (thisCount > maxCount) {
            mode = key;
            maxCount = thisCount;
            countInMode = 1;
        }
        totalCount += thisCount;
    }
    double freq = (double) maxCount / (double) totalCount * countInMode;
    tree.setNodeAttribute(node, label, mode);
    tree.setNodeAttribute(node, label + ".prob", freq);
}
 
开发者ID:whdc,项目名称:ieo-beast,代码行数:24,代码来源:TreeAnnotator.java

示例3: annotateFrequencyAttribute

import dr.evolution.tree.MutableTree; //导入方法依赖的package包/类
private void annotateFrequencyAttribute(MutableTree tree, NodeRef node, String label, HashMap<Object, Integer> values) {
    double totalCount = 0;
    Set keySet = values.keySet();
    int length = keySet.size();
    String[] name = new String[length];
    Double[] freq = new Double[length];
    int index = 0;
    for (Object key : values.keySet()) {
        name[index] = key.toString();
        freq[index] = new Double(values.get(key));
        totalCount += freq[index];
        index++;
    }
    for (int i = 0; i < length; i++)
        freq[i] /= totalCount;

    tree.setNodeAttribute(node, label + ".set", name);
    tree.setNodeAttribute(node, label + ".set.prob", freq);
}
 
开发者ID:whdc,项目名称:ieo-beast,代码行数:20,代码来源:TreeAnnotator.java

示例4: annotateHPDAttribute

import dr.evolution.tree.MutableTree; //导入方法依赖的package包/类
private void annotateHPDAttribute(MutableTree tree, NodeRef node, String label, double hpd, double[] values) {
    int[] indices = new int[values.length];
    HeapSort.sort(values, indices);

    double minRange = Double.MAX_VALUE;
    int hpdIndex = 0;

    int diff = (int) Math.round(hpd * (double) values.length);
    for (int i = 0; i <= (values.length - diff); i++) {
        double minValue = values[indices[i]];
        double maxValue = values[indices[i + diff - 1]];
        double range = Math.abs(maxValue - minValue);
        if (range < minRange) {
            minRange = range;
            hpdIndex = i;
        }
    }
    double lower = values[indices[hpdIndex]];
    double upper = values[indices[hpdIndex + diff - 1]];
    tree.setNodeAttribute(node, label, new Object[]{lower, upper});
}
 
开发者ID:whdc,项目名称:ieo-beast,代码行数:22,代码来源:TreeAnnotator.java

示例5: simulate

import dr.evolution.tree.MutableTree; //导入方法依赖的package包/类
private void simulate(MutableTree tree, NodeRef node, double value) {
		
	tree.setNodeAttribute(node, traitName, new Double(value));
	int childCount = tree.getChildCount(node);
	double height = tree.getNodeHeight(node);
	for (int i = 0; i < childCount; i++) {
		NodeRef child = tree.getChild(node, i);
		
		simulate(tree, child, diffusionModel.simulateForward(value, height - tree.getNodeHeight(child)));
	}	
}
 
开发者ID:beast-dev,项目名称:beast-mcmc,代码行数:12,代码来源:SimulateTrait.java

示例6: PreAnnotator

import dr.evolution.tree.MutableTree; //导入方法依赖的package包/类
/**
 * @throws IOException 
 * @throws ImportException 
 * 
 */
public PreAnnotator(final String hostTreesFile, final String symbiontTreesFile, final String hostTreesOutputFile, final String symbiontTreesOutputFile) throws IOException, ImportException {
	
	final FileReader hostFileReader = new FileReader(hostTreesFile);
	final FileReader symbiontFileReader = new FileReader(symbiontTreesFile);
	
	final TreeImporter hostTreeImporter = new NexusImporter(hostFileReader);
	final TreeImporter symbiontTreeImporter = new NexusImporter(symbiontFileReader);
	
	final PrintStream hostTreesStream = new PrintStream(new FileOutputStream(hostTreesOutputFile));
	final PrintStream symbiontTreesStream = new PrintStream(new FileOutputStream(symbiontTreesOutputFile));
	
	final NexusExporter hostNexusExporter = new NexusExporter(hostTreesStream);
	final NexusExporter symbiontNexusExporter = new NexusExporter(symbiontTreesStream);
	
	Map<String,Integer> hostNexusHeader = null;
	Map<String,Integer> symbiontNexusHeader = null;
	
	int totalTrees = 10000;
       final int stepSize = totalTrees / 60;
       
       PrintStream progressStream = System.out;
       progressStream.println("Reading trees (bar assumes 10,000 trees)...");
       progressStream.println("0              25             50             75            100");
       progressStream.println("|--------------|--------------|--------------|--------------|");
	totalTrees = 0;
	while (hostTreeImporter.hasTree() && symbiontTreeImporter.hasTree()) {
		MutableTree hostTree = (MutableTree) hostTreeImporter.importNextTree();
		MutableTree symbiontTree = (MutableTree) symbiontTreeImporter.importNextTree();
		if (hostTaxonList == null) hostTaxonList = hostTree;
		ids = new int[hostTree.getNodeCount()];
		addNewClades(hostTree, hostTree.getRoot());
		
		for (int i = 0; i < symbiontTree.getNodeCount(); ++i) {
			NodeRef n = symbiontTree.getNode(i);
			symbiontTree.setNodeAttribute(n, HOST_NODE_REF, ids[(Integer) symbiontTree.getNodeAttribute(n, HOST_NODE_REF)]);
		}
		if (hostNexusHeader == null) {
			hostNexusHeader = hostNexusExporter.writeNexusHeader(hostTree);
			hostTreesStream.println("\t\t;");
			symbiontNexusHeader = symbiontNexusExporter.writeNexusHeader(symbiontTree);
			symbiontTreesStream.println("\t\t;");
		}
		hostNexusExporter.writeNexusTree(hostTree, hostTree.getId(), true, hostNexusHeader);
		symbiontNexusExporter.writeNexusTree(symbiontTree, symbiontTree.getId(), true, symbiontNexusHeader);
		if (totalTrees++ % stepSize == 0) {
               progressStream.print("*");
               progressStream.flush();
           }
	}
	progressStream.println();
	progressStream.println("Read " + totalTrees + " trees.");
	hostTreesStream.println("End;");
	symbiontTreesStream.println("End;");
	progressStream.println("Done.");
	
	hostFileReader.close();
	symbiontFileReader.close();
	hostTreesStream.close();
	symbiontTreesStream.close();
	
}
 
开发者ID:armanbilge,项目名称:BECKY,代码行数:67,代码来源:PreAnnotator.java

示例7: annotateMeanAttribute

import dr.evolution.tree.MutableTree; //导入方法依赖的package包/类
private void annotateMeanAttribute(MutableTree tree, NodeRef node, String label, double[] values) {
    double mean = DiscreteStatistics.mean(values);
    tree.setNodeAttribute(node, label, mean);
}
 
开发者ID:whdc,项目名称:ieo-beast,代码行数:5,代码来源:TreeAnnotator.java

示例8: annotateMedianAttribute

import dr.evolution.tree.MutableTree; //导入方法依赖的package包/类
private void annotateMedianAttribute(MutableTree tree, NodeRef node, String label, double[] values) {
    double median = DiscreteStatistics.median(values);
    tree.setNodeAttribute(node, label, median);

}
 
开发者ID:whdc,项目名称:ieo-beast,代码行数:6,代码来源:TreeAnnotator.java

示例9: annotateRangeAttribute

import dr.evolution.tree.MutableTree; //导入方法依赖的package包/类
private void annotateRangeAttribute(MutableTree tree, NodeRef node, String label, double[] values) {
    double min = DiscreteStatistics.min(values);
    double max = DiscreteStatistics.max(values);
    tree.setNodeAttribute(node, label, new Object[]{min, max});
}
 
开发者ID:whdc,项目名称:ieo-beast,代码行数:6,代码来源:TreeAnnotator.java

示例10: 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);
    }
}
 
开发者ID:whdc,项目名称:ieo-beast,代码行数:44,代码来源:BranchRatePlotter.java


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