Preliminary distribution of Threshml from PHYLIP 3.7a

This folder has an alpha release of the program Threshml, from PHYLIP 3.7a. That version of PHYLIP is not yet released as other programs are not in a releasable state yet.

My paper describing Threshml is:

Felsenstein, J. 2012. A comparative method for both discrete and continuous characters using the threshold model. American Naturalist 179: 145-156.

The files here include a documentation web page file, threshml.html which explains the options and use of Threshml.

They also include some pieces of the source code:

threshml.c       The main Threshml program
cont.c supporting functions
cont.h a header file for them
phylip.c more widely-used PHYLIP functions
phylip.h the main PHYLIP header file
Slist.c linked-list functions
Slist.h ... and their header file
ml.h header file for likelihood

You mostly do not need to worry about these files once Threshml is compiled.

In addition there is a Unix/Linux Makefile for compiling Threshml:

Makefile.unix

A zip archive of the source code, executables, and the documentation files is also available. It is called threshml.zip
It may be the easiest file to download to get everything. It can be downloaded at this link.

USING OUR PRECOMPILED EXECUTABLES

We have also included several executable files compiled for various systems. The relevant one could be copied to another folder, and renamed "threshml". On some systems you might also need to give that executable file "execution permission" with a command such as (for Unix, Linux, or Mac OS X) "chmod +x threshml"

Here are the executables available now:

threshml.linuxi64      Intel- or AMD-compatible 64-bit Linux executable
threshml.linuxi32      Intel- or AMD-compatible 32-bit Linux executable
threshml.exe32-bit Windows executable
threshml.osxMac OS X universal executable Intel or Powermac

For the moment the Mac OS X executable needs to be run from a Terminal window by typing "threshml" or by typing "./threshml" We do not yet have a version available that will run by clicking on an icon.

The Windows executable can be run by double-clicking on its icon. Although it is a 32-bit Windows executable, it is reported to be runnable on some Windows 11 systems.

Note that some systems will not be happy downloading an executable from elsewhere and allowing it to run on your system. In these cases you might be able to do the compilation locally, using the instructions below.

COMPILING IT YOURSELF

For Linux or Unix systems, or for Mac OS X systems you can compile an executable of your own by following these steps:

  1. Make sure you are in a command-line terminal window (for Mac OS X you can use the Terminal utility which will be found in the Utilities folder within the Applications folder, or else the X11 terminal application that is available from the Applications menu once you run the X11 application).
  2. Type:
    make threshml -f Makefile.unix
    which should cause the program to be compiled and the executable named "threshml"
  3. If for some reason you want to remove the executable and the object (".o") files that were used to make it, type the command
    make clean -f Makefile.unix

Important: you don't need to do any compiling

b> if you can use one of the precompiled executables described above. There is then no reason to compile.

For Mac OS X systems, the above instructions will work. However if you want to compile a universal executable, rather than one which will work only on your processor, you need to edit the Makefile.unix file, and remove the initial "#" character from the special CFLAGS line that is for OSX compiles, and instead place that character on front of the CFLAGS line which is for the GCC compiler. Then do the compilation as described above.

For Windows systems we have a line in the Makefile.unix that can be used with the CygWin GCC compiler to compile the program. If for some reason you cannot use our precompiled Windows executable and want to compile one of your own, you need to edit the Makefile.unix file, and remove the initial "#" character from the special CFLAGS line that is for CygWin Windows compiles, and instead place that character on front of the CFLAGS line which is for the GCC compiler. Then do the compilation as described above.

Joe Felsenstein
Department of Genome Sciences
University of Washington
Box 355065
Seattle, WA 98195-5065
USA

email: joe (at) gs.washington.edu