ALL Metrics
-
Views
-
Downloads
Get PDF
Get XML
Cite
Export
Track
Software Tool Article

Phylommand - a command line software package for phylogenetics

[version 1; peer review: 2 approved with reservations]
PUBLISHED 22 Dec 2016
Author details Author details
OPEN PEER REVIEW
REVIEWER STATUS

This article is included in the Phylogenetics collection.

Abstract

Phylogenetics is an intrinsic part of many analyses in evolutionary biology and ecology, and as the amount of data available for these analyses is increasing rapidly the need for automated pipelines to deal with the data also increases. Phylommand is a package of four programs to create, manipulate, and/or analyze phylogenetic trees or pairwise alignments. It is built to be easily implemented in software workflows, both directly on the command prompt, and executed using scripts. Inputs can be taken from standard input or a file, and the behavior of the programs can be changed through switches. By using standard file formats for phylogenetic analyses, such as newick, nexus, phylip, and fasta, phylommand is widely compatible with other software.

Keywords

Phylogeny, Work-flow, Pipeline, Supermatrix, Supertree

Introduction

The improvement of high throughput sequencing methods, and the ability to produce more and/or longer reads at a cheaper price have allowed the use of these data in new areas of research (Ellison et al., 2011; Jumpponen & Jones, 2009; Lemmon et al., 2012). More or less, automated software pipelines are often an intrinsic part in the development of ways to process and analyze data for new types of research questions.

Phylogenetic analyses are an integral part of many biological studies. Phylommand is a package of four software - treebender, treeator, contree, and pairalign - with capabilities in manipulation and analyses of phylogenetic trees. The functions include rooting, splitting, and comparing trees, calculating parsimony and likelihood scores, as well as performing parsimonious stepwise addition of taxa, nearest neighbour interchange branch swapping, and construction of neighbour joining trees. In addition there are functions, such as calculating decisiveness (Sanderson et al., 2010), MAD scores (Smith et al., 2009), and matrix representation of trees, for use in supermatrix and supertree pipelines. Similar to the Newick utilities software suit (Junier & Zdobnov, 2010), that also act on phylogenetic trees, the phylommand programs are designed to be used on the command line, without the overhead from a graphical interface. Phylommand also accepts inputs from file or standard input, outputs the results to standard output (i.e. usually screen if not redirected), and works without any configuration files or user input (after execution). It is thus made to work in software pipelines.

Both phylommand and Newick utilities can use the newick file format and are therefore compatible, and they complement each other as most of the functions in phylommand are not included in the Newick utilities. Even if phylommand is made for pipelines, each software work independent of any other program (given appropriate input).

Methods

Implementation

Phylommand is written in the C++ programming language and is primarily distributed as source code. Its core utilities only depend on standard libraries to facilitate ease of compilation and use on multiple platforms. However, in addition to standard libraries, treeator may be compiled with the option to optimize model parameters under the maximum likelihood criterion using the NLopt library (Steven G. Johnson, The NLopt nonlinear-optimization package, http://ab-initio.mit.edu/nlopt); pairalign can be compiled in a parallelized version using pthreads, which may be useful to decrease runtime when doing pairwise alignment. As an addition to the four core programs rudisvg, a rudimentary svg viewer, that depends on the X11 library and a X11 server is included with phylommand (rudisvg).

Operation

The core programs of phylommand, in their basic version, have been successfully compiled and used on OS X 10.10 and Ubuntu Linux 16.04 (including Ubuntu 14.04 on Windows [anniversary edition of Windows 10]) using GNU g++ and make, and on Windows 10 using the same tools in MinGW. The svg viewer rudisvg has been successfully compiled and used on OS X 10.10 and Ubuntu 16.04 (Gnu/Linux; including Ubuntu on Windows). The behavior of the programs in phylommand are controlled by switches, and all programs have an extensive help documentation that can be accessed by the switch --help. Phylogenies can be given in either newick or nexus format. Pairalign reads DNA sequences in fasta format, and treeator reads character matrices/sequences in fasta, phylip, or nexus format (as outputted from for example AliView 1.19; Larsson, 2014) or work on distance matrices. The output formats for phylogenies are newick and nexus, but treebender can also output trees as standard vector graphics (svg). The svg output from treebender can be displayed by rudisvg. Treebender is faster at rooting trees than nw_reroot from Newick utilities (Table 1), but the difference is small compared to how much faster nw_reroot is for the same task compared with packages in interpreted languages such as BioPerl (Perl), APE (R), and ETE (python; Junier & Zdobnov, 2010).

Table 1. Time to root 10 trees, using one tip as outgroup.

Number of tipsTreebender1nw_reroot1
10000.051 (0.0012)0.058 (0.00060)
5000 0.19 (0.0029) 0.2178 (0.0082)
100000.33 (0.0041)0.40 (0.0019)
200000.57 (0.0068)0.96 (0.017)

1Mean and standard deviation in seconds based on 10 separate runs on a workstation with a Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz, 24Gb RAM, running Ubuntu 16.04.1, with Linux kernel 4.4.0-34.

Use cases

In the examples, alignment_file.fst can be replaced by any fasta formatted alignment file, and tree_file.tree (tree_file.trees if including more than one tree) can be replaced by any newick or nexus formatted file. Treebender can easily be used to create a svg image that can be piped into a file:

treebender --output svg tree_file.tree > tree_file.svg

Treebender can also be used to create monophyletic operational taxonomic units in a tree based on branch lengths (c.f. virtual taxa sunsu Öpik et al., 2009):

treebender --cluster branch_length \ --cut_off 0.03 tree_file.tree

To view a neighbour joining tree representation of a set of DNA sequences it is possible to use:

pairalign -j -n -m -v alignment_file.fst \ treeator -n | treebender --output svg | rudisvg

The parsimony score and trees of all nearest neighbour interchange swaps from a topology can be given by:

treebender --nni all tree_file.tree \ -f alignment_file.fst -p

Pairalign can be used to get which taxa can be aligned confidently according to MAD scores:

pairalign --group alignment_groups \ -v alignment_file_with_taxon_string.fst

Contree can be used to draw the support values (e.g. bootstrap support) from a set of trees on a given topology:

contree -d tree_file.trees -a tree_file.tree

Contree can also be used to get supported conflicts between trees. The output can be either text or svg formatted as html (Figure 1):

e2a574b9-d9cf-4a6e-bb32-92ba0f002cde_figure1.gif

Figure 1. Figure of conlict.

Part of output from contree -c 70 --html (re-formatted so trees are put next to each other and text removed). Tips in clade with more than 70 in support in tree to the left that is in conflict with tree to the right with more than 70 in support are colored green. The tips that cause the conflict in tree to the right are colored red.

contree -c 70 --html tree_file.trees

These and further examples, and an example of a bash script to do a search for the most parsimonious tree and a Perl script to find groups that are alignable according to MAD scores without a predefined taxonomy, are distributed with the source code.

Summary

Phylommand offers an efficient way of manipulating and analyzing phylogenetic trees without the overhead of a graphical interface or specialized command line interpreter. It can be used in both automated (through scripts) or manual work-flows. Since it is made to be compilable with minimum reliance of non standard libraries it is possible to use it on most operating systems including UNIX like systems as OS X and Linux, and Windows. This increases its utility for pipelines that will need to work on different platforms.

Software availability

Comments on this article Comments (0)

Version 1
VERSION 1 PUBLISHED 22 Dec 2016
Comment
Author details Author details
Competing interests
Grant information
Copyright
Download
 
Export To
metrics
Views Downloads
F1000Research - -
PubMed Central
Data from PMC are received and updated monthly.
- -
Citations
CITE
how to cite this article
Ryberg M. Phylommand - a command line software package for phylogenetics [version 1; peer review: 2 approved with reservations]. F1000Research 2016, 5:2903 (https://doi.org/10.12688/f1000research.10446.1)
NOTE: If applicable, it is important to ensure the information in square brackets after the title is included in all citations of this article.
track
receive updates on this article
Track an article to receive email alerts on any updates to this article.

Open Peer Review

Current Reviewer Status: ?
Key to Reviewer Statuses VIEW
ApprovedThe paper is scientifically sound in its current form and only minor, if any, improvements are suggested
Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit.
Not approvedFundamental flaws in the paper seriously undermine the findings and conclusions
Version 1
VERSION 1
PUBLISHED 22 Dec 2016
Views
22
Cite
Reviewer Report 19 Apr 2017
Siavash Mirarab, Department of Electrical and Computer Engineering, University of California, San Diego, San Diego, CA, USA 
Niema Moshiri, Bioinformatics and Systems Biology Graduate Program, University of California, San Diego, San Diego, CA, USA 
Approved with Reservations
VIEWS 22
The article describes the author’s open-source toolkit, “Phylommand,” which was designed to perform basic operations on phylogenetic trees from the command line. Phylommand was designed with an emphasis on portability/compatibility (by using standard libraries that enable easy cross-platform compilation), efficiency ... Continue reading
CITE
CITE
HOW TO CITE THIS REPORT
Mirarab S and Moshiri N. Reviewer Report For: Phylommand - a command line software package for phylogenetics [version 1; peer review: 2 approved with reservations]. F1000Research 2016, 5:2903 (https://doi.org/10.5256/f1000research.11256.r21590)
NOTE: it is important to ensure the information in square brackets after the title is included in all citations of this article.
Views
33
Cite
Reviewer Report 06 Feb 2017
Thomas S. B. Schmidt, European Molecular Biology Laboratory, Heidelberg, Germany 
Approved with Reservations
VIEWS 33
The present article is a short application note on an open-source phylogenetic software tool, phylomand. The article is very concise and can serve well as a reference for a tool under ongoing development. However, I believe that in its present ... Continue reading
CITE
CITE
HOW TO CITE THIS REPORT
Schmidt TSB. Reviewer Report For: Phylommand - a command line software package for phylogenetics [version 1; peer review: 2 approved with reservations]. F1000Research 2016, 5:2903 (https://doi.org/10.5256/f1000research.11256.r19805)
NOTE: it is important to ensure the information in square brackets after the title is included in all citations of this article.

Comments on this article Comments (0)

Version 1
VERSION 1 PUBLISHED 22 Dec 2016
Comment
Alongside their report, reviewers assign a status to the article:
Approved - the paper is scientifically sound in its current form and only minor, if any, improvements are suggested
Approved with reservations - A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit.
Not approved - fundamental flaws in the paper seriously undermine the findings and conclusions
Sign In
If you've forgotten your password, please enter your email address below and we'll send you instructions on how to reset your password.

The email address should be the one you originally registered with F1000.

Email address not valid, please try again

You registered with F1000 via Google, so we cannot reset your password.

To sign in, please click here.

If you still need help with your Google account password, please click here.

You registered with F1000 via Facebook, so we cannot reset your password.

To sign in, please click here.

If you still need help with your Facebook account password, please click here.

Code not correct, please try again
Email us for further assistance.
Server error, please try again.