version 3.5c

DRAWTREE
(c) Copyright  1990-1993  by  Joseph  Felsenstein  and  by  the  University  of
Washington.  Written by Joseph Felsenstein.  Permission is granted to copy this
document provided that no fee is charged for it and that this copyright  notice
is not removed.

     DRAWTREE interactively plots an unrooted tree diagram, with  many  options
including  orientation  of  tree  and  branches, label sizes and angles, margin
sizes.  Particularly if you can use your computer or terminal screen to preview
the  plot,  you  can very effectively adjust the details of the plotting to get
just the kind of plot you want.

     As with DRAWGRAM, to run DRAWTREE you need a compiled copy of the program,
a  font  file,  and  a tree file.  On running the program, you will be asked to
choose the plotter type for the final output.  Then you will be asked to choose
the  graphics  screen  type  for  the  previewing  (or  N  if there is to be no
previewing).  The various options have been  discussed  in  the  document  file
common to both these programs.

     Once these choices have been made you will see the  central  menu  of  the
program, which looks like this:



     These are the settings that control the appearance of the tree, which  has
already  been  read  in.   You can either accept these as is, in which case you
would answer Y to the question and press the Return or Enter key,  or  you  can
answer  N  if you want to change one, or simply type the digit corresponding to
the one you want to change (if you answer N it will just  immediately  ask  you
for that number anyway).

     For a first run, particularly if previewing is available, you might accept
these default values and see what the result looks like.  The program will then
tell you it is about to preview the tree and ask you to press Return  or  Enter
when  you  are  ready  to  see this (you will probably have to press it twice).
When you are through looking at the previewed tree on your  screen,  you  press
Return  or Enter again.  The program will then ask you if the tree is now ready
to be plotted.  If you answer Y (for Yes) the program will usually write a plot
file  (with  some  plot  options it will draw the tree on the screen).  Then it
will terminate.

     But if you answer N (for No) it will go back to the above menu, allow  you
to  change  more  options, and go through the whole process again.  The easiest
way to learn the meaning of  the  options  is  to  try  them,  particularly  if
previewing is available.  Below I will describe them one by one; you may prefer
to skip reading this unless you are puzzled about one of them.


                                  THE OPTIONS

     The first option (1) is whether  the  tree  will  use  the  branch  length
information.   If  a full set of branch lengths is not present in the tree file
this will be indicated, and you then cannot  change  this  option.   If  branch
lengths are not used, all branches will be given equal lengths of 1.0.

     The second (2) option shows the angle of the labels.   Initially  a  Fixed
label  angle  of  0.0  degrees will be used.  If you want to change the way the



labels are drawn, the program will offer you a choice  between  Fixed,  Radial,
and  Along  as  the ways the angles of the labels are to be determined.  If you
choose Fixed (the default), you will be asked if you want labels to be at  some
fixed  angle,  between  90.0  and -90.0 degrees, you can specify that.  You may
have to try different angles to find one that keeps the labels from  colliding:
I  have  not  guarded against this.  However there are additional options.  The
other two systems for determining angles of labels are  Radial  (R)  and  Along
(A).   Radial  indicates  that the labels are all aligned to as to point toward
the root node of the tree.  Along aligns them to have the  same  angle  as  the
branch  connected  to that tip.  This is particularly likely to keep the labels
from colliding, but it may give a misleading impression that the  final  branch
is  long.   Note that with the Radial option, if you do not like the point from
which the labels appear to radiate, you might try re-rooting the  tree  (option
7).

     The third (3) option controls the rotation of the tree.  This is initially
90.0  degrees.   The  angle is read out counterclockwise from the right side of
the tree, so that increasing this angle will rotate the tree  counterclockwise,
and  decreasing  it  will  rotate  it  clockwise.  The meaning of this angle is
explained further under option (4).  As you rotate  the  tree,  the  appearance
(and  size)  may  change, but the labels will not rotate if they are drawn at a
Fixed angle.

     The fourth (4) option is the angle through  which  the  tree  is  plotted.
This is by default 360.0 degrees.  The tree is in the shape of an old-fashioned
hand fan.  The tree fans out from its root node, each  of  the  subtrees  being
allocated  part of this angle, a part proportional to how many tips the subtree
contains.  If the rotation of the tree is (say) 90.0 degrees (the default under
option  (3)),  the  fan starts at +270 degrees and runs clockwise around to -90
degrees (i.e., it starts at the bottom of the plot and  runs  clockwise  around
until  it returns to the bottom.  Thus the center of the fan runs from the root
upwards (which is why we say it is  rotated  to  90.0  degrees).   By  changing
option  (3)  we can change the direction of the fan, and by changing option (4)
we can change the width of the fan without changing its center  line.   If  you
want  the  tree  to  fan out in a semicircle, a value of a bit greater than 180
degrees would be appropriate, as the tree will not completely fill the fan.

     The fifth option (5) is  whether  the  tree  angles  will  be  iteratively
improved.   This  is  a  rather arbitrary process intended to adjust them to be
less overcrowded in some regions of the plot.  It depends on a rather arbitrary
"enthusiasm  constant"  that you can adjust, reducing it if the tree angles are
changed so much by the iteration process that they tangle, or increasing it  if
you see little result from the iterative improvement.  If iterative improvement
is on (it is by default) then option (9) specifies the value of the  enthusiasm
constant.

     The sixth option (6) specifies how the branch lengths will  be  translated
into  distances  on  the output device.  Note that when branch lengths have not
been provided, there are implicit branch  lengths  of  1.0  per  branch.   This
option  will  toggle  back  and  forth  between  automatic adjustment of branch
lengths so that the diagram will just fit into the margins, and you  specifying
how many centimeters there will be per unit branch length.  This is included so
that you can plot different trees to a common scale, showing  which  ones  have
longer  or  shorter  branches than others.  Note that if you choose too large a
value for centimeters per unit branch length, the tree will be so big  it  will
overrun  the  plotting  area  and  may  cause failure of the diagram to display
properly.  Too small a value will cause the tree to be a nearly invisible dot.

     The seventh option (7) specifies the horizontal and  vertical  margins  in
centimeters.   You  can  enter  new margins (you must enter new values for both
horizontal and vertical margins, though these need not be  different  from  the



old  values.   For  the  moment  I  do  not allow you to specify left and right
margins separately, or top and bottom margins separately.  In the next  release
I  hope  to  do so, so that you can plot several trees on one plot, or plot one
tree across several pieces of paper.

     The eighth option (8) is the character height, measured as a fraction of a
quantity  which  is the horizontal space available for the tree, divided by one
less than the number of tips.  You need not worry about exactly what  this  is:
you  can always change the value (which is initially 0.3333) to make the labels
larger or smaller.  On output devices where line thicknesses can be varied, the
thickness  of  the tree lines will automatically be adjusted to be proportional
to the character height, which is an additional reason you may want  to  change
character height.

     The ninth option (9), if iterative improvement is turned on as  it  is  by
default,  specifies  the  value  of  the  "enthusiasm  constant"  for iterative
improvement, which we discussed above (see item 5).  If  iterative  improvement
is not turned on, the ninth option is whether the angles will be "regularized".
Regularization is on by default.  It takes the angles of  the  branches  coming
out  from  each  node,  and  changes them so that they are "rounded off".  This
process (which I will not fully describe) will make the lines vertical if  they
are  close  to vertical, horizontal if they are close to horizontal, 45 degrees
if they are close to that, and so on.  It will lead to a tree in  which  angles
look  very regular.  You may or may not want that.  If you are unhappy with the
appearance of the tree you could try rotating it slightly (option  3)  as  that
may  cause some branches to change their angle by a large amount, by having the
angles be "rounded off" to a different value.

     If the printer is a Laserwriter or other  Postscript  printer,  the  tenth
menu  item (10) appears, and asks you for the name of the font to be used.  The
default is the Hershey stroke font provided in the font  file.   You  can  also
specify  any  other  font  available to you on the Laserwriter.  However I have
only been able to get Courier, Times-Roman, and Helvetica to work on mine.   We
hope  in the future to provide font choices for other printers as well, such as
Hewlett-Packard Laserjets, but at the moment we can only do it  for  Postscript
printers as the others cannot print text at an arbitrary angle.

     I recommend that you try all of these options  (particularly  if  you  can
preview  the  trees).   It  is  of particular use to try trees with and without
regularization (option number 5), plotted at different angles (option number 3)
and  with  fan  sizes  360 degrees or less (option 4).  You will find that wide
variety of effects can be achieved.

     I would appreciate suggestions for improvements in DRAWTREE, but please be
aware  that  the  source  code  is  already very large and I may not be able to
implement all suggestions.