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.
PhyloNet is designed, implemented, and maintained by Rice's BioInformatics Group, which is lead by Professor Luay Nakhleh (firstname.lastname@example.org). For more details related to this group please visit http://bioinfo.cs.rice.edu.
In order to run the PhyloNet toolkit, you must have Java 1.7.0 or later installed on your system. All references to the java command assume that Java 1.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
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.
Installing the file
Place the jar file in the desired installation directory. The remainder of this document assumes that it is located in
$PHYLONET PATH/jar. Installation is now complete. In order to run PhyloNet, you must execute the file
PhyloNet_X.Y.Z.jar, as described in the next section.
3. Basic Usage
The PhyloNet tool is executed by typing the following command into your console:
script.nex is the NEXUS file containing the commands to be executed.
4. Basic NEXUS Overview
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:
Blocks in a NEXUS file start with the
BEGIN keyword and terminate with the
END; keyword. This example file contains two blocks--
PHYLONET. Contained within the
PHYLONET block is the list of commands PhyloNet will execute when processing the NEXUS file. Commands in a
PHYLONET block begin with a command identifier and terminate with a semicolon. In this example script, three commands are listed:
CountCoal. Appearing after the command identifier but before the semicolon are any parameters provided to a given command for its execution. For example in the script file above three parameters are provided to the
tree. Details about specific parameters for a given command can be found on the documentation page for the given command.
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:
Where "identifier" is a user specified name for the network and "rich newick string" is a user specified rich newick string. For more information about rich newick strings see its corresponding reference page.
In addition to the
NETWORKS block, the
TREES block may also be used to define rich newick strings. However, rich newick strings defined in a
TREES block may not contain hybridization nodes. Support for the
TREES block as an alternate declaration to the
NETWORKS block is for increased compatibility with NEXUS processing tools besides PhyloNet that historically consume or produce
TREES blocks within NEXUS files.
For example usage of a
TREES block consider the following NEXUS file:
The example script's
TREES block defines four phylogenetic trees in rich newick form that are referenced by the
DeepCoalCount command within the
5. Managing Output
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
we could execute the script by typing the following command on the console:
which in turn would append the following output to the console:
Note how the
Charnet command identifier and its parameters are first displayed followed by the output of the command. This feature becomes very helpful for reading results when many commands are listed in a single NEXUS file.
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:
Upon executing the modified script from the console we would now see a new result without any tree results displayed to the console:
Opening the file
C:\temp\charnet_output.txt would reveal the command output:
Each command that supports the optional file output parameter in a given NEXUS file can be given its own unique file parameter value resulting in the generation of distinct output files for each command. Alternatively, one may specify the file output parameter for only some commands in a NEXUS file. In this case those commands without the optional parameter would continue to utilize the default behavior and display their results on the console. Repeating a file output parameter value for many commands in a NEXUS file is not advisable as each command's output will overwrite the previous command's output with the same parameter value. One can however send the entire output of a PhyloNet execution to one file by using most operating systems' redirection operators.
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:
would cause a file
C:\temp\nexus_out.nex to be generated with contents:
in addition to the usual console output for the
All trees recorded in the
TREES section will be of the form:
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.