PAL: Phylogenetic Analysis Library
A Java library for molecular evolution and phylogenetics
Version 1.1 (December 1, 2000)
The PAL project (http://www.pal-project.org) is a collaborative effort dedicated to provide a high quality Java library for use in molecular evolution and phylogenetics.
This package may be distributed under the terms of the GNU General Public License
Copyright (c) 1999-2000 PAL Development Core Team.
School of Biological Sciences, University of Auckland, 3A Symonds Street, Auckland, New Zealand.
Department of Zoology, University of Oxford, South Parks Road, Oxford OX1 3PS, UK.
Matthew G. Goode, University of Auckland (Nucleotide translator, GUI code)
Sean Luke, University of Maryland (Random number generator)
Oliver G. Pybus, University of Oxford (Part of code in demographic models)
The PAL project is a collaborative effort to provide a high quality Java library for use in molecular evolution and phylogenetics. Updates of PAL are released in frequent regular intervals (approx. every 4 months). At present PAL consists of 145 public classes/interfaces in 13 packages with a total of more than 27,000 lines of code. Please refer to the API documentation for a detailed description of all classes and methods available, and to the release history for an overview of the development history of PAL.
Please feel free to use PAL or parts of it in your own programs, the terms and conditions for copying, distribution and modification of the GNU General Public License apply. Note that this implies that any work based on or derived from PAL will have to be licensed under the GNU GPL as well. If you redistribute PAL with your application you will have to indicate that you used PAL and you will have to provide its sources (if only by linking to this page).
Contributing code to PAL is greatly encouraged, please read the following guidelines.
You may also wish to cite this work as (participants in alphabetical order):
Drummond, A., and K. Strimmer. 2000. PAL: A Java library for molecular evolution and phylogenetics. Distributed from http://www.pal-project.org.
A reference article for PAL is in preparation.
back to top
The most flexible option to access the methods and objects available in PAL is to program in Java.
Alternatively, if you prefer more comfort you may want to use one of the software packages that rely (in part) on PAL to do their job. Be aware, however, that they will usually restrict functionality to some core features of PAL:
PAL is entirely written in the Java language. This allows for a clean object oriented design while avoiding the complexities of C++. Moreover, Java class code runs without needing recompilation on a wide range on platforms. Additionally, PAL also compiles into native code on Unix systems (just like C++) using the GNU compiler for Java (gcj), part of recent releases of the GNU compiler collection (gcc). Corresponding makefiles are included with this distribution of PAL.
PAL consists of a rich variety of objects to facilitate the construction of special-purpose tools for phylogenetic analysis. PAL contains, e.g., ready-to-use objects for:
Download and Installation:
By design, PAL can be installed and run on any platform where Java 1.1 (or better) is available.
Note that it is not necessary to download PAL if you are not interested in programming. Instead, download one of the user frontends like Vanilla or Pebble, they both ship with the PAL library already properly installed.
PAL 1.1 is distributed in two variants, one for Unix/MSDOS (includes makefiles for jikes/gcj) and one for Macintosh (includes project file for CW 6):
pal-1.1 ______|______ | | doc srcThe "doc" folder contains this page, the API manual and some other documentation and the "src" contains the complete source code. Note that there are no precompiled class files.
To actually compile the sources you need to set the class path properly to the folder "pal-1.1/src". Please consult the manual for your Java development kit for details.
Compile of PAL into native code on Unix has been successfully tested using the following software (or any later version):
For compilation on Macintosh a Metrowerks Codewarrior project file (suitable for CW 6) is included.
Older versions of PAL are also available, please refer to the
The next release of PAL is scheduled
for April 2001.
back to top
To our knowledge, PAL is the only project that aims at providing a molecular evolution and phylogenetics library in Java.
Similar efforts in C++, however, are currently undertaken for example by Andrew Rambaut and Mike Charleston (their Nautilus project) and by Joe Felsenstein, Mary Kuhner and associates (PHYLIP/LAMARC going C++).
The general issue of scientific programming in Java is discussed, e.g., on the
back to top
We thank Oliver Pybus, Andrew Rambaut, Rick Ree, Allen Rodrigo, and Wayne Maddison for discussion
and valuable suggestions.
We also thank Allen Rodrigo for providing hardware through his NIH grant #59174.
This work is also supported by
a Bright Future´s Scholarship of FRST to A.D.
and an Emmy-Noether-Fellowship of the DFG to K.S.
back to top