                             fastDNAml 1.2


Gary J. Olsen, Department of Microbiology
University of Illinois, Urbana, IL
gary@phylo.life.uiuc.edu

Ross Overbeek, Mathematics and Computer Science
Argonne National Laboratory, Argonne, IL
overbeek@mcs.anl.gov



Citing fastDNAml

If you publish work using fastDNAml, please cite the following publications:

   Olsen, G. J., Matsuda, H., Hagstrom, R., and Overbeek, R.  1994.  fastDNAml:
   A tool for construction of phylogenetic trees of DNA sequences using maximum
   likelihood.  Comput. Appl. Biosci. 10: 41-48.

   Felsenstein, J.  1981.  Evolutionary trees from DNA sequences:
   A maximum likelihood approach.  J. Mol. Evol. 17: 368-376.



What is fastDNAml

fastDNAml is a program derived from Joseph Felsenstein's version 3.3 DNAML
(part of his PHYLIP package).  Users should consult the documentation for
DNAML before using this program.

fastDNAml is an attempt to solve the same problem as DNAML, but to do so
faster and using less memory, so that larger trees and/or more bootstrap
replicates become tractable.  Much of fastDNAml is merely a recoding of the
PHYLIP 3.3 DNAML program from PASCAL to C.

DNAML includes the following notice:

version 3.3. (c) Copyright 1986, 1990 by the University of Washington and
Joseph Felsenstein.  Written by Joseph Felsenstein.  Permission is granted to
copy and use this program provided no fee is charged for it and provided that
this copyright notice is not removed.



Why is fastDNAml faster?

Some recomputation of values has been eliminated (Joe Felsenstein has done
much of this in version 3.4 DNAML).

The optimization of branch lengths has been accelerated by changing from an EM
method to Newton's method (Joe Felsenstein has done much of this in version 3.4
DNAML).

The strategy for simultaneously optimizing all of the branches on the tree has
been modified to spend less time getting an individual branch right before
improving the other branches.



Other new features in fastDNAml

fastDNAml includes a checkpoint feature to regularly save its progress toward
finding a large tree.  If the program is interrupted, a minor change to the
input file and adding the R (restart) option permits the work to be resumed
from the last checkpoint.

The new R {restart) option can also be used for more rapid addition of new
sequences to a previously computed tree (when new sequences are added to the
alignment, it is best if the relative alignment of the previous sequences is
not altered).

The G (global) option has been generalized to permit crossing any number of
branches during tree rearrangements.  In addition, it is possible to modify
the extent of rearrangement explored during the sequential addition phase of
tree building.

The G U (global and user tree) option combination instructs the program to
find the best of the user trees, and then look for rearrangements that are
better still.

The number of available rate categories has been raised from 9 to 35.

The weighting mask accepts values from 0 through 35.

The new B (bootstrap) option causes generation of a bootstrap sample, drawn
from the input data.

The program includes "P4" code for distributing the problem over multiple
processors (either within one machine, or across multiple machines).



Do DNAML and fastDNAml give the same answer?

Generally yes, though there are some reservations:

One or the other might find a better tree due to minor changes in the ways
trees are searched.  When sequence addition is replicated with different
values of the jumble random number seed, they have about the same probability
of finding the best tree, but any given seed might give different trees.

The likelihoods and branch lengths sometimes differ very slightly due to
different criteria for stopping the optimization process.

Little has been done to check the confidence limits on branch lengths.  There
seem to be some instances in which they disagree, and we think that fastDNAml
is correct.  However, do not take the "significantly greater than zero" too
seriously.

If you are concerned, you can supply a tree inferred by fastDNAml as a user
tree to DNAML and let it (1) reoptimize branch lengths, (2) tell you
the confidence limits and (3) tell you the tree likelihood.



Changes and new features in version 1.2

The program can now calculate the likelihood of extremely large user trees.
The largest tree we have tested had 3200 taxa.  Generally, you will run out
of computer memory before you excede an intrinsic limitation.  (With this,
it is possible to compare trees found by whatever your favorite methods are
under the likelihood criterion.)

The computation has been changed to permit ease of implimenting new models
of evolution and analysis of amino acid sequences (though these have not yet
been done).  This has slowed down the program 5-10%.



Changes and new features in version 1.1

The quickadd option is now the default.  This has the ugly effect of reversing
the meaning of putting a Q on the option line.  (Sorry, about this, and the
next note, but in the long run it it is the better behavior.)

Use of empirical base frequencies is now the default.  This reverses the
meaning of the F option, making the default behavior more like that of PHYLIP.

The tree output file is now generated by default and should be more compatible
with the files written and read by the PHILIP programs.  In particular, the
comments with information about the tree, its likelihood, etc. are removed, and
there are no quotation marks around names unless there are unusual characters
within the name.  (There are two things to be very careful about in names:
there is no completely consistent way to handle both blanks and underscores in
names without quotation marks, and when a name is spaced in from the margin in
the input file, there are leading blank spaces in the name, which can be very
hard to make compatible with some programs.)

Maintaining a list of the several best trees, not just the (single) best.  In
particular, when evaluating user-supplied trees, the program tries to same
information about all of the trees and provides a Hasegawa and Kashino type
test of whether each tree is better than optimum.  Note, the current version
of the program prints the report in the order of tree likelihood, NOT in the
order the trees are supplied to the program.  The best way (at present) to
figure out which tree is which is to look at the likelihoods.  This is the
same test used in PHILIP, but I had removed access in version 1.0 of fastDNAml
due to differences in how the programs handle multiple trees.  The difference
is that fastDNAml can maintain nearly optimal trees all the time, so you can
get a list of the N best trees found by using the new K option (below).

The program should accept rooted trees (strictly bifurcating), as well as
unrooted trees (with a trifurcation at the deepest level).  This is not fully
tested, but it seems to work.



Features in the works

Test subtree exchanges (as well as moving a single subtree) in the search for
better trees.

Allowing the program to optimize any user-defined subset of branches when user
lengths are supplied.



Input and Options


Basics

The input to fastDNAml is similar to that used by DNAML (and the other PHYLIP
programs).  The user should consult the PHYLIP documentation for a basic
description of the format.

This version of fastDNAml expects to get its input from stdin (standard input)
and writes its output to stdout (standard output).  (There are compile time
options to modify this, for those who care to get into such things.)

On a UNIX or DOS system, it is a simple matter to redirect input from a file
and output to a file:

  fastDNAml < infile > outfile

On a VMS system it is only slightly more difficult.  Immediately before
running the program, one includes two commands that define the input and
output files:

  $ Define/User  Sys$Input   infile
  $ Define/User  Sys$Output  outfile
  $ Run fastDNAml

The default input data format is Interleaved (see I option).  To help get data
from a GenBank or similar format, the interleaved option can be switched off with the I option.  Numbers in the sequence data (i.e., sequence position
numbers) will be ignored, so they need not be stripped out.

(Note that the program also writes a file called checkpoint.PID.  See the R
option below for more description.)


1 -- Print Data

By default, fastDNAml does not echo the sequence data to the output file.
Option 1 reverses this.


3 -- Do Not Print Tree

By default, fastDNAml prints the final tree to the output file.  Option 3
reverses this.


4 -- Do Not Write Tree to File  (*****  Changed in version 1.1 *****)

By default, fastDNAml versions 1.1 and 1.2 write a machine readable (Newick
format) copy of the final tree to an output file.  Option 4 reverses this.
The tree output file will be called treefile.PID (where PID is the process ID
under which fastDNAml is running).  Look at the Y option below for more
information on alternative tree formats.


B -- Bootstrap

Generates a bootstrap sample of the input data.  Requires auxiliary data line
of the form:

  B  random_number_seed

Example:

  5  114  B
  B  137
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...

If the W option is used, only positions that have nonzero weights are used in
computing the bootstrap sample.  Warning:  For a given random number seed, the
sample will always be the same.

PHYLIP DNAML does not include a bootstrap option.  (Use the SEQBOOT program.)


C -- Categories

Requires auxiliary data of the form:

  C  number_of_categories  list_of_category_rates

The maximum number of categories is 35.  This line is followed by a list of
the rates for each site:

  Categories  list_of_categories  [per site, one or more lines]

Category "numbers" are ordered: 1, 2, 3, ..., 9, A, B, ..., Y, Z.  Category
zero (undefined rate) is permitted at sites with a zero in a user-supplied
weighting mask.

Example:

  5  114  C
  C  12  0.0625  0.125  0.25  0.5  1  2  4  8  16  32  64  128
  Categories  5111136343678975AAA8949995566778888889AAAAAA9239898629AAAAA9
              633792246624457364222574877188898132984963499AA9899975
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...

PHYLIP DNAML is limited to categories 1 through 9.  Also, in PHYLIP version
3.3, the categories data came after all the other auxiliary data, but before
the user-supplied base frequencies and sequence data.  If you make the C line
your last auxiliary data line, the programs will behave the same.


F -- Empirical Frequencies  (*****  Changed in version 1.1 *****)

By default (starting with version 1.1), the program uses base frequencies
derived from the sequence data (called emperical base frequencies).  Therefore
the input file should normally NOT include a base frequencies line preceding
the data.  If you want to include your own base freqency data, it is now
necessary to use the F option, and add a line to the input file that supplies
the frequency data:

Instructs the program to use user-supllied base frequencies derived from the
sequence data.  Therefore the input file should not include a base frequencies
line IMMEDIATELY preceding the data:

  5  114  F
  0.25  0.30  0.20  0.25
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...

There is an alternative format: the frequencies can be anywhere in the list of
auxilliary data lines if they are preceded by an F in the first column:

  5  114  F C W
  F 0.25  0.30  0.20  0.25
  C ...
    ...
  W ...
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...


G -- Global

If the global option is specified, there may also be an [optional] auxiliary
data line of form:

  G  N1

or

  G  N1  N2

N1 is the number of branches to cross in rearrangements of the completed tree.
The value of N2 is the number of branches to cross in testing rearrangements
during the sequential addition phase of tree inference.

  N1 = 1:            local rearrangement (default without G option)

  1 < N1 < numsp-3:  regional rearrangements (crossing N1 branches)

  N1>= numsp-3:      global rearrangements (default with G option)



  N2 <= N1           the default N2 is 1, local rearrangements.

The G option can also be used to force branch swapping on user trees, that is,
a combination of G and U options.

If the auxiliary line is supplied, it cannot be the last line of auxiliary
data.  (It may be necessary to add the T option with an auxiliary data line of

  T 2.0

if no other auxiliary data are used.)

Examples:

Do local rearrangements after each addition, and global after last addition:

  5  114  G
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...

Do local rearrangements after each addition, and regional (crossing 4
branches) after last addition:

  5  114  G T
  G  4
  T  2.0
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...

Do no rearrangements after each addition, and local after last addition:

  5  114  G T
  G  1 0
  T  2.0
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...

PHYLIP DNAML does not support the auxiliary data line or branch swapping on a
user tree.


I -- Not Interleaved

By default, fastDNAml 1.2 expects data lines for the various sequences in an
interleaved format (as did PHYLIP 3.3 DNAML).  The I option reverses the
expected format (to non-interleaved data, in which all the data lines for one
sequence before the next sequence begins).  This is particularly useful for
editing a GenBank or equivalent format into a valid input file (note that
numbers within the sequence data are ignored, so it is not necessary to remove
them).

If all the data for each sequence are on one line, then the interleaved  and
non-interleaved formats are degenerate.  (This is the way David Swofford's
PAUP program writes PHYLIP format output files.)  The drawback is that many
programs do not handle long lines of text.  This includes the vi and EDT text
editors, many electronic mail programs, and some versions of FTP for VAX/VMS
systems.

PHYLIP 3.3 DNAML expects interleaved data, and does not include an I option to
alter this.  PHYLIP 3.4 DNAML accepts an I option, but the default format is
reversed.


J -- Jumble

Randomize the sequence addition order.  Requires an auxiliary input line of
the form:

  J  random_number_seed

Example:

  5  114  J
  J  137
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...

Note that fastDNAml explores a very small number of alternative tree
topologies relative to a typical parsimony program.  There is a very real
chance that the search procedure will not find the tree topology with the
highest likelihood.  Altering the order of taxon addition and comparing the
trees found is a fairly efficient method for testing convergence.  Typically,
it would be nice to find the same best tree at least twice (if not three
times), as opposed to simply performing some fixed number of jumbles and
hoping that at least one of them will be the optimum.


K -- Keep multiple best trees  (***** New in version 1.1 *****)

The program can keep a list of the best trees that it has found.  When the
program is done, it prints a list of these, from best to worst, and print
a Hasegawa and Kishino type test as to which trees are significantly worse
than the best tree found.  When evaluating user-supplied trees, the program
automatically keeps all trees.  In other situations, the program keeps only
the best tree that it has found.  The K option, and associate auxilliary data
line, can be used to define an alternative number:

Example, to keep the 15 best trees found:

  5  114  K
  K  15
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...

Example, to keep only the one best tree of possibly numerous user-supplied
trees:

  5  114  K  U
  K  1
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...



L -- User Lengths

Causes user trees to be read with branch lengths (and it is an error to omit
any of them).  Without the L option, branch lengths in user trees are not
required, and are ignored if present.

Example:

  5  114  U L
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...

(The U is for user tree and the L for user lengths)


O -- Outgroup

Use the specified sequence number for the outgroup.  Requires an auxiliary
data line of the form:

  O  outgroup_number

Example:

  5  114  O
  O 5
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...

This option only affects the way the tree is drawn (and written to the
treefile).



Q -- Quickadd  (***** Changed in version 1.1 *****)

The quickadd feature greatly decreases the time in initially placing a new
sequence in the growing tree (but does not change the time required to
subsequently test rearrangements).  The overall time savings seems to be about
30%, based on a number of test cases.  Its downside, if any, is unknown.  This
is now (starting in version 1.1) the default program behavior.

If the analysis is run with a global option of "G 0 0", so that no
rearrangements are permitted, the tree is build very approximately, but very
quickly.  This may be of greatest interest if the question is, "Where does
this one new sequence fit into this known tree?  The known tree is provided
with the restart option (below).

PHYLIP DNAML does not include anything comparable to the quickadd feature.

The quickadd feature can be turned OFF by adding a Q to the first line of the
input file.



R -- Restart

The R option causes the program to read a user-supplied tree with less than
the full number of taxa as the starting point for sequential addition of the
remaining taxa.  Thus, the sequence data must be followed by a valid (Newick
format) tree.  (The phylip_tree/2, prolog fact format, is now also supported.)

The restart option can also be used to increase the range of the search for
alternative (better) trees.  For example, you can take a tree produced with
only "local" tree rearrangements, and increase the rearrangements to
"regional" or "global" by combining the appropriate global option with the
restart option.  If the starting tree was written by fastDNAml, then the
extent of rearrangements is saved with the tree, and will be used as the
starting point for the additional search.  If the tree was already globally
optimized, then no additional searching will be performed.

To support the R option, after each taxon is added to the growing tree, and
after each round of rearrangements, the program appends a checkpoint tree to a
file called checkpoint.PID, where PID is the process number of the running
fastDNAml program.  The last line of this file needs to be appended to the
input file when the R option is used.  (This should not be confused with the U
(user tree) option, which expects a number followed by that number of trees.
No additional taxa are added to user trees.)

The UNIX utility tail can be used to remove the last tree from the checkpoint
file, and the utility cat can be used to append it to the input.  For example,
the following script can be used to add a starting tree and the R option to a
data file, and restart fastDNAml:

  #! /bin/sh
  if test $# -ne 1
    then echo "Usage:  restart checkpoint_file"
    exit
  fi
  read first_line             # first line of data file
  echo "$first_line R"        # add restart option
  cat -                       # rest of data file
  tail -1 $1                  # append last tree in checkpoint file

If this shell script is in the file called restart, then one might use the
command:

  restart  checkpoint.21312  < infile  | fastDNAml  > new_outfile
   ^script  ^checkpoint tree    ^data     ^dnaml program  ^output_file

If this is too opaque, don't worry about it, or talk with your local unix
wizard.  In the mean time, this and other useful shell scripts are provided
with the program.

PHYLIP DNAML does not write checkpoint trees and does not have a restart
option.



T -- Transition/transversion ratio

Use a user-specified ratio of transition to transversion type substitutions.
Without the T option, a value of 2.0 is used.  Requires an auxiliary data line
of the form:

  T  ratio

Example:

  5  114  T
  T  1.0
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...

(Note that a T option with a value of 2.0 does nothing, but it can provide
a last auxiliary data line following optional auxiliary data.  See the
examples for G and Y.)



U -- User Tree(s)

Read an input line with the number of user-specified trees, followed by the
specified number of trees.  These data immediately follow the sequence data.

The trees must be in Newick format, and terminated with a semicolon.  (The
program also accepts a pseudo_newick format, which is a valid prolog fact.)

The tree reader in this program is more powerful than that in PHYLIP 3.3.  In
particular, material enclosed in square brackets, [ like this ], is ignored as
comments; taxa names can be wrapped in single quotation marks to support the
inclusion of characters that would otherwise end the name (i.e., '(', ')',
':', ';', '[', ']', ',' and ' '); names of internal nodes are properly
ignored; and exponential notation (such as 1.0E-6) for branch lengths is
supported.



W -- Weights

Read user-specified column weighting information.  This option requires
auxiliary data of the form:

  Weights     list_of_weight_values    [per site, one or more lines]

Example:

  5  114  W
  Weights     111111111111001100000100011111100000000000000110000110000000
              111101111111111111111111011100000111001011100000000011
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...

It is necessary that the weight values not start before the 11'th character in
the line, or some of them will be lost.  Weights from 0 to 35 are indicated by
the series: 0, 1, 2, 3, ..., 9, A, B, ..., Y, Z.

PHYLIP DNAML does not support user weights with values other than 1 or 0.
This limit has been removed in fastDNAml to permit the use of user weights
as a mechanism for representing a bootstrap sample (that is, only the
auxiliary data lines change, not the body of the data file).



Y -- Write Tree  (*****  Changed in version 1.1  *****)

fastDNAml writes the final tree to an output file called treefile.PID.  By
default the tree is in PHYLIP format.  The Y option allows turning this off,
or changing the format of the tree.

The Y option by itself toggles the saving of the tree, on or off.  If there
is also an auxiliary input line of the form:

  Y number

where number can be 1, 2, or 3, the number selects one of three tree output
formats:

  1  Newick
  2  Prolog
  3  PHYLIP (default)

Newick is the tree standard used by PAUP, MacClade, and serveral other
programs.  The tree includes a comment about the analysis that the tree is
based upon.  fastDNAml uses this comment when it reads a tree.  In addition,
the names of the taxa are enclosed in quotation marks.  Both of these
features of the file make it incompatible with the PHYLIP package.

PHYLIP is the subset of the Newick tree standard used by programs in the
PHYLIP package.  There are no comments and no quotations marks around names.
(If a name includes unusual characters, such as a comma, fastDNAml will put
it in quotation marks, making it a valid tree, but it cannot be read by the
PHYLIP programs.)

The Prolog format very similar to the Newick format, but it is a valid prolog
fact that permits direct loading into some sequence analysis tools that we
use.  The structure of the term is:

  pseudo_newick([Comment], (Subtree1, Subtree2, Subtree3): Length).

where each subtree is either

  (Subtree1,Subtree2): Length

or

  Label: Length

The comment is a valid prolog term when && is defined as a unary operator.
Label is a prolog atom (it is a valid Newick label, with single quotation
marks).  Length is a number.

Because the Y auxiliary input line is optional, it cannot be the last auxiliary
data line.

Examples.  To turn of the saving of the tree,

  5  114  Y
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...

or, to change the output to the full Newick format,

  5  114  Y T
  Y 1
  T 2.0
  Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
  ...

PHYLIP DNAML does not append the PID (process ID) to the tree file name and
does not support the full Newick standard or the prolog format output.

=============================================================================

Acknowledgements:

The origin and development of fastDNAml as a program to extend the use of
maximum likelihood phylogenetic inference to larger sets of DNA sequences
was encouraged by Carl Woese.  Through the development and evolution of the
program, Joseph Felsenstein has been extremely helpful and encouraging.

Numerous users have made suggestions and/or reported program bugs:

   Gary Nunn
   Tom Schmidt
   Ross Overbeek
   Hideo Matsuda
   Mitchell Sogin
   Brenden Rielly

=============================================================================

Examples:

Data file with empirical frequencies (generic analysis) (notice that blank
lines are permitted in the data):

5  114
Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
Sequence2   ACGCGGTGTCGTGTCATGCTACATTATGCTAGACTGCGTCGGATGCTCGTATTGACTGCG
Sequence3   ACGCGGTGCCGTGTNATGCTGCATTATGCTCGACTGCGRCGGATGCTAGTATTGACTGCG
Sequence4   ACGCGCTGCCGTGTCATCCTACACGATGCYAGACAGCGTCAGCTGCTAGTACTGGCTGAG
Sequence5   ACGCGCTGTCGTGTCATACTGCAGGATGCTAGACTGCGTCAGCTGCTAGTACTGGCTGAG

            AGCTCGATGATCGGTGACGTAGACTCAGGGGCCATGCCGCGAGTTTGCGATGCG
            AGCACGGTGATCAATGACGTAGNCTCAGGRTCCACGCCGTGACTTTGTGATNCG
            AGCACGATGACCGATGACGTAGACTGAGGGTCCGTGCCGCGACTTTGTGATGCG
            ACCTCGGTGATTGATGACGTAGACTGCGGGTCCATGCCGCGATTTTGCGRTGCG
            ACCTCGATGCTCGATGACGTAGACTGCGGGTCCATGCCGTGATTTTGCGATGCG


Data file with empirical frequencies and a random addition order:

5  114  J
J 137
Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
Sequence2   ACGCGGTGTCGTGTCATGCTACATTATGCTAGACTGCGTCGGATGCTCGTATTGACTGCG
Sequence3   ACGCGGTGCCGTGTNATGCTGCATTATGCTCGACTGCGRCGGATGCTAGTATTGACTGCG
Sequence4   ACGCGCTGCCGTGTCATCCTACACGATGCYAGACAGCGTCAGCTGCTAGTACTGGCTGAG
Sequence5   ACGCGCTGTCGTGTCATACTGCAGGATGCTAGACTGCGTCAGCTGCTAGTACTGGCTGAG

            AGCTCGATGATCGGTGACGTAGACTCAGGGGCCATGCCGCGAGTTTGCGATGCG
            AGCACGGTGATCAATGACGTAGNCTCAGGRTCCACGCCGTGACTTTGTGATNCG
            AGCACGATGACCGATGACGTAGACTGAGGGTCCGTGCCGCGACTTTGTGATGCG
            ACCTCGGTGATTGATGACGTAGACTGCGGGTCCATGCCGCGATTTTGCGRTGCG
            ACCTCGATGCTCGATGACGTAGACTGCGGGTCCATGCCGTGATTTTGCGATGCG


Data file with empirical frequencies and a bootstrap resampling:

5  114  B
B 137
Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
Sequence2   ACGCGGTGTCGTGTCATGCTACATTATGCTAGACTGCGTCGGATGCTCGTATTGACTGCG
Sequence3   ACGCGGTGCCGTGTNATGCTGCATTATGCTCGACTGCGRCGGATGCTAGTATTGACTGCG
Sequence4   ACGCGCTGCCGTGTCATCCTACACGATGCYAGACAGCGTCAGCTGCTAGTACTGGCTGAG
Sequence5   ACGCGCTGTCGTGTCATACTGCAGGATGCTAGACTGCGTCAGCTGCTAGTACTGGCTGAG

            AGCTCGATGATCGGTGACGTAGACTCAGGGGCCATGCCGCGAGTTTGCGATGCG
            AGCACGGTGATCAATGACGTAGNCTCAGGRTCCACGCCGTGACTTTGTGATNCG
            AGCACGATGACCGATGACGTAGACTGAGGGTCCGTGCCGCGACTTTGTGATGCG
            ACCTCGGTGATTGATGACGTAGACTGCGGGTCCATGCCGCGATTTTGCGRTGCG
            ACCTCGATGCTCGATGACGTAGACTGCGGGTCCATGCCGTGATTTTGCGATGCG


Data with weighting mask and rate categories:

5  114  W C
Weights     111111111111001100000100011111100000000000000110000110000000
            111101111111111111111111011100000111001011100000000011
C  10  0.0625  0.125  0.25  0.5  1  2  4  8  16  32
Categories  5111136343678975AAA8949995566778888889AAAAAA9239898629AAAAA9
            633792246624457364222574877188898132984963499AA9899975
Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
Sequence2   ACGCGGTGTCGTGTCATGCTACATTATGCTAGACTGCGTCGGATGCTCGTATTGACTGCG
Sequence3   ACGCGGTGCCGTGTNATGCTGCATTATGCTCGACTGCGRCGGATGCTAGTATTGACTGCG
Sequence4   ACGCGCTGCCGTGTCATCCTACACGATGCYAGACAGCGTCAGCTGCTAGTACTGGCTGAG
Sequence5   ACGCGCTGTCGTGTCATACTGCAGGATGCTAGACTGCGTCAGCTGCTAGTACTGGCTGAG

            AGCTCGATGATCGGTGACGTAGACTCAGGGGCCATGCCGCGAGTTTGCGATGCG
            AGCACGGTGATCAATGACGTAGNCTCAGGRTCCACGCCGTGACTTTGTGATNCG
            AGCACGATGACCGATGACGTAGACTGAGGGTCCGTGCCGCGACTTTGTGATGCG
            ACCTCGGTGATTGATGACGTAGACTGCGGGTCCATGCCGCGATTTTGCGRTGCG
            ACCTCGATGCTCGATGACGTAGACTGCGGGTCCATGCCGTGATTTTGCGATGCG


Data with three user-specified tree branching orders:

5  114  U
Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
Sequence2   ACGCGGTGTCGTGTCATGCTACATTATGCTAGACTGCGTCGGATGCTCGTATTGACTGCG
Sequence3   ACGCGGTGCCGTGTNATGCTGCATTATGCTCGACTGCGRCGGATGCTAGTATTGACTGCG
Sequence4   ACGCGCTGCCGTGTCATCCTACACGATGCYAGACAGCGTCAGCTGCTAGTACTGGCTGAG
Sequence5   ACGCGCTGTCGTGTCATACTGCAGGATGCTAGACTGCGTCAGCTGCTAGTACTGGCTGAG

            AGCTCGATGATCGGTGACGTAGACTCAGGGGCCATGCCGCGAGTTTGCGATGCG
            AGCACGGTGATCAATGACGTAGNCTCAGGRTCCACGCCGTGACTTTGTGATNCG
            AGCACGATGACCGATGACGTAGACTGAGGGTCCGTGCCGCGACTTTGTGATGCG
            ACCTCGGTGATTGATGACGTAGACTGCGGGTCCATGCCGCGATTTTGCGRTGCG
            ACCTCGATGCTCGATGACGTAGACTGCGGGTCCATGCCGTGATTTTGCGATGCG
3
(Sequence1,(Sequence2,Sequence3),(Sequence4,Sequence5));
(Sequence2,(Sequence1,Sequence3),(Sequence4,Sequence5));
(Sequence3,(Sequence1,Sequence2),(Sequence4,Sequence5));


Data with transition/transversion ratio and base frequencies to
simulate Jukes & Cantor model:

5  114  T F
T 0.501
F 0.25 0.25 0.25 0.25
Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
Sequence2   ACGCGGTGTCGTGTCATGCTACATTATGCTAGACTGCGTCGGATGCTCGTATTGACTGCG
Sequence3   ACGCGGTGCCGTGTNATGCTGCATTATGCTCGACTGCGRCGGATGCTAGTATTGACTGCG
Sequence4   ACGCGCTGCCGTGTCATCCTACACGATGCYAGACAGCGTCAGCTGCTAGTACTGGCTGAG
Sequence5   ACGCGCTGTCGTGTCATACTGCAGGATGCTAGACTGCGTCAGCTGCTAGTACTGGCTGAG

            AGCTCGATGATCGGTGACGTAGACTCAGGGGCCATGCCGCGAGTTTGCGATGCG
            AGCACGGTGATCAATGACGTAGNCTCAGGRTCCACGCCGTGACTTTGTGATNCG
            AGCACGATGACCGATGACGTAGACTGAGGGTCCGTGCCGCGACTTTGTGATGCG
            ACCTCGGTGATTGATGACGTAGACTGCGGGTCCATGCCGCGATTTTGCGRTGCG
            ACCTCGATGCTCGATGACGTAGACTGCGGGTCCATGCCGTGATTTTGCGATGCG


Non-interleaved data:

5  114  I
Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
            AGCTCGATGATCGGTGACGTAGACTCAGGGGCCATGCCGCGAGTTTGCGATGCG
Sequence2   ACGCGGTGTCGTGTCATGCTACATTATGCTAGACTGCGTCGGATGCTCGTATTGACTGCG
            AGCACGGTGATCAATGACGTAGNCTCAGGRTCCACGCCGTGACTTTGTGATNCG
Sequence3   ACGCGGTGCCGTGTNATGCTGCATTATGCTCGACTGCGRCGGATGCTAGTATTGACTGCG
            AGCACGATGACCGATGACGTAGACTGAGGGTCCGTGCCGCGACTTTGTGATGCG
Sequence4   ACGCGCTGCCGTGTCATCCTACACGATGCYAGACAGCGTCAGCTGCTAGTACTGGCTGAG
            ACCTCGGTGATTGATGACGTAGACTGCGGGTCCATGCCGCGATTTTGCGRTGCG
Sequence5   ACGCGCTGTCGTGTCATACTGCAGGATGCTAGACTGCGTCAGCTGCTAGTACTGGCTGAG
            ACCTCGATGCTCGATGACGTAGACTGCGGGTCCATGCCGTGATTTTGCGATGCG


Non-interleaved data by editing a GenBank format (make sure that the names are
padded to at least ten characters with blanks):

5  114  I
Sequence1  
        1 ACACGGTGTC GTATCATGCT GCAGGATGCT AGACTGCGTC ANATGTTCGT ACTAACTGTG
       61 AGCTCGATGA TCGGTGACGT AGACTCAGGG GCCATGCCGC GAGTTTGCGA TGCG
Sequence2  
        1 ACGCGGTGTC GTGTCATGCT ACATTATGCT AGACTGCGTC GGATGCTCGT ATTGACTGCG
       61 AGCACGGTGA TCAATGACGT AGNCTCAGGR TCCACGCCGT GACTTTGTGA TNCG
Sequence3  
        1 ACGCGGTGCC GTGTNATGCT GCATTATGCT CGACTGCGRC GGATGCTAGT ATTGACTGCG
       61 AGCACGATGA CCGATGACGT AGACTGAGGG TCCGTGCCGC GACTTTGTGA TGCG
Sequence4  
        1 ACGCGCTGCC GTGTCATCCT ACACGATGCY AGACAGCGTC AGCTGCTAGT ACTGGCTGAG
       61 ACCTCGGTGA TTGATGACGT AGACTGCGGG TCCATGCCGC GATTTTGCGR TGCG
Sequence5  
        1 ACGCGCTGTC GTGTCATACT GCAGGATGCT AGACTGCGTC AGCTGCTAGT ACTGGCTGAG
       61 ACCTCGATGC TCGATGACGT AGACTGCGGG TCCATGCCGT GATTTTGCGA TGCG


Data analysis restarted from a four-taxon tree (which happens to be wrong,
but it will be corrected by local rearrangements after the tree is read):

5  114  R
Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
Sequence2   ACGCGGTGTCGTGTCATGCTACATTATGCTAGACTGCGTCGGATGCTCGTATTGACTGCG
Sequence3   ACGCGGTGCCGTGTNATGCTGCATTATGCTCGACTGCGRCGGATGCTAGTATTGACTGCG
Sequence4   ACGCGCTGCCGTGTCATCCTACACGATGCYAGACAGCGTCAGCTGCTAGTACTGGCTGAG
Sequence5   ACGCGCTGTCGTGTCATACTGCAGGATGCTAGACTGCGTCAGCTGCTAGTACTGGCTGAG

            AGCTCGATGATCGGTGACGTAGACTCAGGGGCCATGCCGCGAGTTTGCGATGCG
            AGCACGGTGATCAATGACGTAGNCTCAGGRTCCACGCCGTGACTTTGTGATNCG
            AGCACGATGACCGATGACGTAGACTGAGGGTCCGTGCCGCGACTTTGTGATGCG
            ACCTCGGTGATTGATGACGTAGACTGCGGGTCCATGCCGCGATTTTGCGRTGCG
            ACCTCGATGCTCGATGACGTAGACTGCGGGTCCATGCCGTGATTTTGCGATGCG
(Sequence4:0.1,Sequence2:0.1,(Sequence1:0.1,Sequence5:0.1):0.1):0.0;


Data analysis restarted from a four-taxon tree (which is wrong, and which
will not be corrected after the tree is read due to the suppression of all
rearrangements by the global 0 0 option):

5  114  R G T
G 0 0
T 2.0
Sequence1   ACACGGTGTCGTATCATGCTGCAGGATGCTAGACTGCGTCANATGTTCGTACTAACTGTG
Sequence2   ACGCGGTGTCGTGTCATGCTACATTATGCTAGACTGCGTCGGATGCTCGTATTGACTGCG
Sequence3   ACGCGGTGCCGTGTNATGCTGCATTATGCTCGACTGCGRCGGATGCTAGTATTGACTGCG
Sequence4   ACGCGCTGCCGTGTCATCCTACACGATGCYAGACAGCGTCAGCTGCTAGTACTGGCTGAG
Sequence5   ACGCGCTGTCGTGTCATACTGCAGGATGCTAGACTGCGTCAGCTGCTAGTACTGGCTGAG

            AGCTCGATGATCGGTGACGTAGACTCAGGGGCCATGCCGCGAGTTTGCGATGCG
            AGCACGGTGATCAATGACGTAGNCTCAGGRTCCACGCCGTGACTTTGTGATNCG
            AGCACGATGACCGATGACGTAGACTGAGGGTCCGTGCCGCGACTTTGTGATGCG
            ACCTCGGTGATTGATGACGTAGACTGCGGGTCCATGCCGCGATTTTGCGRTGCG
            ACCTCGATGCTCGATGACGTAGACTGCGGGTCCATGCCGTGATTTTGCGATGCG
(Sequence4:0.1,Sequence2:0.1,(Sequence1:0.1,Sequence5:0.1):0.1):0.0;
