/** * Simulates a coalescent tree from a set of subtrees. * * @param subtrees an array of tree to be used as subtrees * @param model the demographic model to use * @param rootHeight an optional root height with which to scale the whole tree * @param preserveSubtrees true of subtrees should be preserved * @return a simulated coalescent tree */ public SimpleTree simulateTree( Tree[] subtrees, DemographicModel model, double rootHeight, boolean preserveSubtrees) { SimpleNode[] roots = new SimpleNode[subtrees.length]; SimpleTree tree; for (int i = 0; i < roots.length; i++) { roots[i] = new SimpleNode(subtrees[i], subtrees[i].getRoot()); } // if just one taxonList then finished if (roots.length == 1) { tree = new SimpleTree(roots[0]); } else { tree = new SimpleTree(simulator.simulateCoalescent(roots, model.getDemographicFunction())); } if (!Double.isNaN(rootHeight) && rootHeight > 0.0) { if (preserveSubtrees) { limitNodes(tree, rootHeight - 1e-12); tree.setRootHeight(rootHeight); } else { attemptToScaleTree(tree, rootHeight); } } return tree; }
private void remove() { final SimpleNode[] nodes = myTree.getSelectedNodesIfUniform(); for (final SimpleNode node : nodes) { if (node instanceof FileSetNode) { final OfbizFileSet fileSet = ((FileSetNode) node).mySet; if (fileSet.getFiles().isEmpty()) { myBuffer.remove(fileSet); return; } final int result = Messages.showYesNoDialog( myPanel, String.format("Remove File Set '%s' ?", fileSet.getName()), "Confirm removal", Messages.getQuestionIcon()); if (result == DialogWrapper.OK_EXIT_CODE) { if (fileSet.isAutodetected()) { fileSet.setRemoved(true); myBuffer.add(fileSet); } else { myBuffer.remove(fileSet); } } } else if (node instanceof ConfigFileNode) { final VirtualFilePointer filePointer = ((ConfigFileNode) node).myFilePointer; final OfbizFileSet fileSet = ((FileSetNode) node.getParent()).mySet; fileSet.removeFile(filePointer); } } }
private void selectFileSet(final OfbizFileSet fileSet) { myTree.select( myBuilder, new SimpleNodeVisitor() { public boolean accept(final SimpleNode simpleNode) { if (simpleNode instanceof FileSetNode) { if (((FileSetNode) simpleNode).mySet.equals(fileSet)) { return true; } } return false; } }, false); }
@Nullable private FileSetNode getCurrentFileSetNode() { final SimpleNode selectedNode = myTree.getSelectedNode(); if (selectedNode == null) { return null; } if (selectedNode instanceof FileSetNode) { return (FileSetNode) selectedNode; } else if (selectedNode.getParent() instanceof FileSetNode) { return (FileSetNode) selectedNode.getParent(); } else { final SimpleNode parent = selectedNode.getParent(); if (parent != null && parent.getParent() instanceof FileSetNode) { return (FileSetNode) selectedNode.getParent().getParent(); } } return null; }
@Override public int getTaxonCount() { return stree.getTaxonCount(); }
@Override public boolean hasBranchLengths() { return stree.hasBranchLengths(); }
@Override public Iterator<String> getAttributeNames() { return stree.getAttributeNames(); }
@Override public Iterator<Taxon> iterator() { return stree.iterator(); }
@Override public void setUnits(Type units) { stree.setUnits(units); }
@Override public int getTaxonIndex(String id) { return stree.getTaxonIndex(id); }
@Override public List<Taxon> asList() { return stree.asList(); }
@Override public boolean isRoot(NodeRef node) { return stree.isRoot(node); }
@Override public int getChildCount(NodeRef node) { return stree.getChildCount(node); }
@Override public Iterator getNodeAttributeNames(NodeRef node) { return stree.getNodeAttributeNames(node); }
@Override public boolean isExternal(NodeRef node) { return stree.isExternal(node); }
@Override public Object getNodeAttribute(NodeRef node, String name) { return stree.getNodeAttribute(node, name); }
@Override public double getNodeRate(NodeRef node) { return stree.getNodeRate(node); }
@Override public double getBranchLength(NodeRef node) { return stree.getBranchLength(node); }
@Override public Taxon getTaxon(int taxonIndex) { return stree.getTaxon(taxonIndex); }
@Override public NodeRef getChild(NodeRef node, int j) { return stree.getChild(node, j); }
@Override public String getTaxonId(int taxonIndex) { return stree.getTaxonId(taxonIndex); }
@Override public NodeRef getParent(NodeRef node) { return stree.getParent(node); }
@Override public int getTaxonIndex(Taxon taxon) { return stree.getTaxonIndex(taxon); }
@Override public boolean hasNodeHeights() { return stree.hasNodeHeights(); }
@Override public Object getTaxonAttribute(int taxonIndex, String name) { return stree.getTaxonAttribute(taxonIndex, name); }
@Override public void setAttribute(String name, Object value) { stree.setAttribute(name, value); }
@Override public Type getUnits() { return stree.getUnits(); }
@Override public Object getAttribute(String name) { return stree.getAttribute(name); }
@Override public Tree getCopy() { return stree.getCopy(); }
@Override public double getNodeHeight(NodeRef node) { return stree.getNodeHeight(node); }