Search in sources :

Example 21 with Node

use of jebl.evolution.graphs.Node in project beast-mcmc by beast-dev.

the class TempestPanel method treeSelectionChanged.

private void treeSelectionChanged() {
    Set<Node> selectedTips = treePanel.getTreeViewer().getSelectedTips();
    frame.getCopyAction().setEnabled(selectedTips != null && selectedTips.size() > 0);
    selectedPoints = new HashSet<Integer>();
    for (Node node : selectedTips) {
        selectedPoints.add(pointMap.get(node));
    }
    if (rootToTipPlot != null) {
        rootToTipPlot.setSelectedPoints(selectedPoints);
    }
    if (residualPlot != null) {
        residualPlot.setSelectedPoints(selectedPoints);
    }
    if (SHOW_NODE_DENSITY && nodeDensityPlot != null) {
        nodeDensityPlot.setSelectedPoints(selectedPoints);
    }
    selectMRCA();
}
Also used : Node(jebl.evolution.graphs.Node)

Example 22 with Node

use of jebl.evolution.graphs.Node in project beast-mcmc by beast-dev.

the class TreeGeoJSONGenerator method traverseTree.

private GeoPoint traverseTree(RootedTree tree, Node node) {
    GeoPoint point = new GeoPoint();
    point.time = tree.getHeight(node);
    point.location = (String) node.getAttribute("location");
    point.host = (String) node.getAttribute("host");
    point.longitude = locationMap.get(point.location).getLongitude();
    point.latitude = locationMap.get(point.location).getLatitude();
    if (tree.isExternal(node)) {
        point.label = tree.getTaxon(node).getName();
        point.probability = 1;
    } else {
        point.label = "";
        point.probability = (Double) node.getAttribute("posterior");
        for (Node child : tree.getChildren(node)) {
            GeoPoint point1 = traverseTree(tree, child);
            GeoLine line = new GeoLine();
            line.label = "";
            line.time0 = point.time;
            line.time1 = point1.time;
            line.location0 = point.location;
            line.location1 = point1.location;
            line.host0 = point.host;
            line.host1 = point1.host;
            line.longitude0 = point.longitude;
            line.longitude1 = point1.longitude;
            line.latitude0 = point.latitude;
            line.latitude1 = point1.latitude;
            lines.add(line);
        }
    }
    points.add(point);
    return point;
}
Also used : Node(jebl.evolution.graphs.Node)

Example 23 with Node

use of jebl.evolution.graphs.Node in project beast-mcmc by beast-dev.

the class LineageCountThroughTime method getLTT.

public static Variate[] getLTT(String treeFile, double minTime, double maxTime, int binCount, // number of trees to skip
int skip) throws IOException, ImportException {
    double delta = (maxTime - minTime) / (binCount - 1);
    BufferedReader reader = new BufferedReader(new FileReader(treeFile));
    String line = reader.readLine();
    TreeImporter importer;
    if (line.toUpperCase().startsWith("#NEXUS")) {
        importer = new NexusImporter(reader);
    } else {
        importer = new NewickImporter(reader, false);
    }
    int state = 0;
    while (importer.hasTree() && state < skip) {
        importer.importNextTree();
        state += 1;
    }
    // the age of the end of this group
    List<double[]> branchingTimes = new ArrayList<double[]>();
    state = 0;
    while (importer.hasTree()) {
        RootedTree tree = (RootedTree) importer.importNextTree();
        double[] bt = new double[tree.getInternalNodes().size()];
        int i = 0;
        for (Node node : tree.getInternalNodes()) {
            bt[i] = tree.getHeight(node);
            i++;
        }
        Arrays.sort(bt);
        branchingTimes.add(bt);
        state += 1;
    }
    Variate[] bins = new Variate[binCount];
    double height = 0;
    double n = branchingTimes.get(0).length;
    for (int k = 0; k < binCount; k++) {
        bins[k] = new Variate.D();
        if (height >= 0.0 && height <= maxTime) {
            for (state = 0; state < branchingTimes.size(); state++) {
                int index = 0;
                while (index < branchingTimes.get(state).length && branchingTimes.get(state)[index] < height) {
                    index += 1;
                }
                double lineageCount = 1;
                if (index < branchingTimes.get(state).length) {
                    lineageCount = n - index + 1;
                }
                bins[k].add(lineageCount);
            }
        }
        height += delta;
    }
    Variate xData = new Variate.D();
    Variate yDataMean = new Variate.D();
    Variate yDataMedian = new Variate.D();
    Variate yDataUpper = new Variate.D();
    Variate yDataLower = new Variate.D();
    double t = minTime;
    for (Variate bin : bins) {
        xData.add(t);
        if (bin.getCount() > 0) {
            yDataMean.add(bin.getMean());
            yDataMedian.add(bin.getQuantile(0.5));
            yDataLower.add(bin.getQuantile(0.025));
            yDataUpper.add(bin.getQuantile(0.975));
        } else {
            yDataMean.add(Double.NaN);
            yDataMedian.add(Double.NaN);
            yDataLower.add(Double.NaN);
            yDataUpper.add(Double.NaN);
        }
        t += delta;
    }
    return new Variate[] { xData, yDataMean };
}
Also used : NexusImporter(jebl.evolution.io.NexusImporter) Variate(dr.stats.Variate) Node(jebl.evolution.graphs.Node) ArrayList(java.util.ArrayList) RootedTree(jebl.evolution.trees.RootedTree) NewickImporter(jebl.evolution.io.NewickImporter) BufferedReader(java.io.BufferedReader) TreeImporter(jebl.evolution.io.TreeImporter) FileReader(java.io.FileReader)

Aggregations

Node (jebl.evolution.graphs.Node)23 Variate (dr.stats.Variate)3 RootedTree (jebl.evolution.trees.RootedTree)3 Regression (dr.stats.Regression)2 NumberFormatter (dr.util.NumberFormatter)2 Taxon (jebl.evolution.taxa.Taxon)2 Location (dr.app.phylogeography.tools.kml.Location)1 BufferedReader (java.io.BufferedReader)1 FileReader (java.io.FileReader)1 ArrayList (java.util.ArrayList)1 BitSet (java.util.BitSet)1 NewickImporter (jebl.evolution.io.NewickImporter)1 NexusImporter (jebl.evolution.io.NexusImporter)1 TreeImporter (jebl.evolution.io.TreeImporter)1 Element (org.jdom.Element)1