Table of Contents |
---|
1. Introduction
PhyloNet is a tool designed mainly for analyzing, reconstructing, and evaluating reticulate (or non-treelike) evolutionary relationships, generally known as phylogenetic networks. Various methods that we have developed make use of techniques and tools from the domain of phylogenetic trees, and hence the PhyloNet package includes several tools for phylogenetic tree analysis. PhyloNet is released under the GNU General Public License. For the full license, see the file GPL.txt included with this distribution.
...
In order to run the PhyloNet toolkit, you must have Java 1.67.0 or later installed on your system. All references to the java command assume that Java 1.6 7 is being used.
- To check your Java version, type "java -version" on your command line.
- To download Java 1.7, please go to website http://www.java.com/en/download/.
- To link to the new downloaded Java 1.7, for mac, try these two commands from command line:
sudo rm /usr/bin/java
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin
Downloading phylonet.jar
Acquire the current release of PhyloNet by downloading the most recent version of the PhyloNet JAR file. You will have a file named PhyloNet_X.Y.Z.jar
, where X is the major version number and Y and Z are the minor version numbers.
...
The PhyloNet tool is executed by typing the following command into your console:
Code Block |
---|
>java -jar $PHYLONET PATH/jar/PhyloNet_X.Y.Z.jar script.nex
|
...
When PhyloNet is invoked with a specified NEXUS script file the tool will execute all of the commands contained within the file's PHYLONET
block. For example, consider the following NEXUS file:
Code Block | ||
---|---|---|
| ||
#NEXUS
BEGIN NETWORKS;
Network net = ((a,(b,(c)x#1)),((x#1,d),e));
Network net1 = ((a,(b,(c)x#1)),((d,x#1),e));
Network net2 = ((((a, (c)x#1), d), (b, x)), e);
Network net3 = ((a,b),(c,(d,(e,(f,g)))));
Network net4 = ((f,b),(c,(d,(a,(e,g)))));
END;
BEGIN PHYLONET;
Charnet net -m tree;
Cmpnets net1 net2 -m cluster;
CountCoal net3 net4;
END;
|
...
The NETWORKS
block provides an area for defining any phylogenetic networks utilized by any command in the PHYLONET
block. A network definition in the NETWORKS
block must be of the form:
Code Block | ||
---|---|---|
| ||
Network "identifier" = "rich newick string";
|
...
For example usage of a TREES
block consider the following NEXUS file:
Code Block | ||
---|---|---|
| ||
#NEXUS
BEGIN TREES;
Tree speceiesTree = ((((a,b),c),d),e);
Tree geneTree1 = ((((a,b),c),d),e);
Tree geneTree2 = ((a,b),((c,e),d));
Tree geneTree3 = ((a,c),((b,e),d));
END;
BEGIN PHYLONET;
DeepCoalCount {speceiesTree} {geneTree1, geneTree2, geneTree3};
END;
|
...
The default behavior of PhyloNet for reporting results is to display each command's output on the console. For example given the following NEXUS file charnet.nex
:
Code Block | ||
---|---|---|
| ||
#NEXUS
BEGIN NETWORKS;
Network net = ((a,(b,(c)x#1)),((x#1,d),e));
END;
BEGIN PHYLONET;
Charnet net -m tree;
END;
|
we could execute the script by typing the following command on the console:
Code Block | ||
---|---|---|
| ||
>java -jar $PHYLONET PATH/jar/PhyloNet_X.Y.Z.jar charnet.nex
|
which in turn would append the following output to the console:
Code Block | ||
---|---|---|
| ||
>java -jar $PHYLONET PATH/jar/PhyloNet_X.Y.Z.jar charnet.nex
Charnet net -m tree
((a,(b,c)),(e,d));
((a,b),((d,c),e));
>
|
...
Most commands, including Charnet
, support an optional final parameter that specifies the name of a file where command output should be redirected to instead of the console. For example, we could modify charnet.nex
to send the command's output to the file C:\temp\charnet_output.txt
as follows:
Code Block | ||
---|---|---|
| ||
#NEXUS
BEGIN NETWORKS;
Network net = ((a,(b,(c)x#1)),((x#1,d),e));
END;
BEGIN PHYLONET;
Charnet net -m tree "C:\temp\charnet_output.txt";
END;
|
Upon executing the modified script from the console we would now see a new result without any tree results displayed to the console:
Code Block | ||
---|---|---|
| ||
>java -jar $PHYLONET PATH/jar/PhyloNet_X.Y.Z.jar charnet.nex
Charnet net -m tree "C:\temp\charnet_output.txt"
Writing output to C:\temp\charnet_output.txt
>
|
Opening the file C:\temp\charnet_output.txt
would reveal the command output:
Code Block | ||
---|---|---|
| ||
((a,(b,c)),(e,d));
((a,b),((d,c),e));
|
...
PhyloNet provides a special command called Nexus_Out
that instructs PhyloNet to additionally create an output NEXUS file containing a copy of each tree result generated by all commands within the script. For example, executing the following NEXUS script:
Code Block | ||
---|---|---|
| ||
#NEXUS
BEGIN NETWORKS;
Network net = ((a,(b,(c)x#1)),((x#1,d),e));
END;
BEGIN PHYLONET;
Nexus_Out "C:\temp\nexus_out.nex";
Charnet net -m tree;
END;
|
would cause a file C:\temp\nexus_out.nex
to be generated with contents:
Code Block | ||
---|---|---|
| ||
#NEXUS
BEGIN TREES;
2_Charnet_1 = ((a,(b,c)),(e,d));
2_Charnet_2 = ((a,b),((d,c),e));
END;
|
...
All trees recorded in the TREES
section will be of the form:
Code Block | ||
---|---|---|
| ||
N_Command_M = ...;
|
Where N is the number of the command (that is, the nth command) as it appears in the original NEXUS script, Command is the command identifier of the command that generated the tree, and M denotes the mth tree generated by the nth command.
...