use of dr.evolution.tree.FlexibleTree in project beast-mcmc by beast-dev.
the class NewickImporter method importNextTree.
/**
* import the next tree.
* return the tree or null if no more trees are available
*/
public Tree importNextTree() throws IOException, ImportException {
FlexibleTree tree = null;
try {
skipUntil("(");
unreadCharacter('(');
FlexibleNode root = readInternalNode(lastTree);
tree = new FlexibleTree(root, false, true);
} catch (EOFException e) {
//
}
lastTree = tree;
return tree;
}
use of dr.evolution.tree.FlexibleTree in project beast-mcmc by beast-dev.
the class NewickImporter method importTree.
/**
* importTree.
*/
public Tree importTree(TaxonList taxonList) throws IOException, ImportException {
setCommentDelimiters('[', ']', '\0', '\0', '&');
try {
skipUntil("(");
unreadCharacter('(');
final FlexibleNode root = readInternalNode(taxonList);
if (getLastMetaComment() != null) {
root.setAttribute(COMMENT, getLastMetaComment());
}
return new FlexibleTree(root, false, true);
} catch (EOFException e) {
throw new ImportException("incomplete tree");
}
}
use of dr.evolution.tree.FlexibleTree in project beast-mcmc by beast-dev.
the class PathogenFrame method readFromFile.
protected boolean readFromFile(File file) throws IOException {
Reader reader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(reader);
String line = bufferedReader.readLine();
while (line != null && line.length() == 0) {
line = bufferedReader.readLine();
}
boolean isNexus = (line != null && line.toUpperCase().contains("#NEXUS"));
reader = new FileReader(file);
Tree tree = null;
try {
if (isNexus) {
NexusImporter importer = new NexusImporter(reader);
tree = importer.importTree(taxa);
} else {
NewickImporter importer = new NewickImporter(reader);
tree = importer.importTree(taxa);
}
} catch (Importer.ImportException ime) {
JOptionPane.showMessageDialog(this, "Error parsing imported file: " + ime, "Error reading file", JOptionPane.ERROR_MESSAGE);
ime.printStackTrace();
return false;
} catch (IOException ioex) {
JOptionPane.showMessageDialog(this, "File I/O Error: " + ioex, "File I/O Error", JOptionPane.ERROR_MESSAGE);
ioex.printStackTrace();
return false;
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, "Fatal exception: " + ex, "Error reading file", JOptionPane.ERROR_MESSAGE);
ex.printStackTrace();
return false;
}
if (tree == null) {
JOptionPane.showMessageDialog(this, "The file is not in a suitable format or contains no trees.", "Error reading file", JOptionPane.ERROR_MESSAGE);
return false;
}
FlexibleTree binaryTree = new FlexibleTree(tree, true);
binaryTree.resolveTree();
trees.add(binaryTree);
if (taxa == null) {
taxa = binaryTree;
}
getExportTreeAction().setEnabled(true);
getExportDataAction().setEnabled(true);
return true;
}
use of dr.evolution.tree.FlexibleTree in project beast-mcmc by beast-dev.
the class PathogenFrame method writeTimeTreeFile.
protected void writeTimeTreeFile(PrintStream ps) throws IOException {
FlexibleTree tree = new FlexibleTree(pathogenPanel.getTreeAsViewed());
Regression r = pathogenPanel.getTemporalRooting().getRootToTipRegression(pathogenPanel.getTreeAsViewed());
for (int i = 0; i < tree.getInternalNodeCount(); i++) {
NodeRef node = tree.getInternalNode(i);
double height = tree.getNodeHeight(node);
tree.setNodeHeight(node, height / r.getGradient());
}
TreeUtils.setHeightsFromDates(tree);
NexusExporter nexusExporter = new NexusExporter(new PrintStream(ps));
nexusExporter.exportTree(tree);
}
use of dr.evolution.tree.FlexibleTree in project beast-mcmc by beast-dev.
the class MapperFrame method readFromFile.
protected boolean readFromFile(File file) throws IOException {
Reader reader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(reader);
String line = bufferedReader.readLine();
while (line != null && line.length() == 0) {
line = bufferedReader.readLine();
}
boolean isNexus = (line != null && line.toUpperCase().contains("#NEXUS"));
reader = new FileReader(file);
Tree tree = null;
try {
// if (isNexus) {
// NexusImporter importer = new NexusImporter(reader);
// tree = importer.importTree(taxa);
// } else {
// NewickImporter importer = new NewickImporter(reader);
// tree = importer.importTree(taxa);
// }
// } catch (Importer.ImportException ime) {
// JOptionPane.showMessageDialog(this, "Error parsing imported file: " + ime,
// "Error reading file",
// JOptionPane.ERROR_MESSAGE);
// ime.printStackTrace();
// return false;
// } catch (IOException ioex) {
// JOptionPane.showMessageDialog(this, "File I/O Error: " + ioex,
// "File I/O Error",
// JOptionPane.ERROR_MESSAGE);
// ioex.printStackTrace();
// return false;
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, "Fatal exception: " + ex, "Error reading file", JOptionPane.ERROR_MESSAGE);
ex.printStackTrace();
return false;
}
if (tree == null) {
JOptionPane.showMessageDialog(this, "The file is not in a suitable format or contains no trees.", "Error reading file", JOptionPane.ERROR_MESSAGE);
return false;
}
FlexibleTree binaryTree = new FlexibleTree(tree, true);
binaryTree.resolveTree();
trees.add(binaryTree);
// if (taxa == null) {
// taxa = binaryTree;
// }
getExportDataAction().setEnabled(true);
return true;
}
Aggregations