Overview | User Interfaces | Main Features | Download and Installation | Related (Java) Projects | Acknowledgments

PAL icon PAL: Phylogenetic Analysis Library

A Java library for molecular evolution and phylogenetics
Version 1.4 (January 20, 2002)

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 Lesser General Public License

Copyright (c) 1999-2002 PAL Development Core Team.

Core Team (with CVS rights):

Alexei Drummond (2000-)
email: a.drummond@auckland.ac.nz
School of Biological Sciences, University of Auckland, 3A Symonds Street, Auckland, New Zealand.

Ed Buckler (2001-)
email: buckler@statgen.ncsu.edu
Department of Genetics, North Carolina State University, 2523 Gardner Hall, Box 7614, Raleigh, NC 27695-7614, USA.

Korbinian Strimmer (1999-)
email: strimmer@stat.uni-muenchen.de
Department of Statistics, University of Munich, Ludwigstrasse 33, 80539 Munich, Germany.

Other Contributions:

Matthew G. Goode, University of Auckland (GUI, codon and alignment classes, utilities)
Sean Luke, University of Maryland (Random number generator)
Oliver G. Pybus, University of Oxford (Demographic models)
Andrew Rambaut, University of Oxford (Yang codon model, demographic models)
Jesse Stone, ? (Optimization code)


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 regular intervals. At present (version 1.4) PAL consists of approximately 200 public classes/interfaces in 16 packages with a total of more than 35,000 lines of Java 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 Lesser General Public License apply. (Note that previous versions of PAL were licensed under the GNU GPL rather the GNU LGPL.)

Contributing code to PAL is greatly encouraged, please read the following guidelines.

If you wish to cite PAL please use

Drummond, A., and K. Strimmer. 2001. PAL: An object-oriented programming library for molecular evolution and phylogenetics. Bioinformatics 17: 662-663.

This paper provides an overview over PAL version 1.1.
back to top

User Interfaces:

PAL is designed as an object-oriented programming library, and as such it has no direct user interface. To access the methods and objects available in PAL you need to program in Java.

However, there are user-friendly programs available 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:

Three other ways of accessing the functionality in PAL without requiring Java programming experience are planned:
back to top

Main Features:

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:

All classes are members of one of the 16 PAL packages (alignment, coalescent, datatype, distance, eval, gui, io, math, mep, misc, popgen, statistics, substmodel, tree, util, xml). A detailed list of these packages along with a description of the public and protected interfaces and functions and the purpose of each single class in the library is available in the API Documentation.
back to top

Download and Installation:

By design, PAL can be installed and run on any platform where Java 1.1 (or better) is available.

PAL 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 is also available from Don Gilbert's IUBio archive (University of Indiana):

After uncompressing using appropriate tools the following simple directory structure will be created:

                 |             |                
                doc           src                
The "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.4/src". Please consult the manual for your Java development kit (or your system administrator) for details.

Compile of PAL into native code on Unix has been successfully tested using the following software (or any later version):

Makefiles for compilation are provided with the PAL sources. Note that gcc version 3.0 (June 2001) includes native Java compilation by default (no need to download libgcj separately).

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 release history.
back to top

Related (Java) Projects:

To our knowledge, PAL is the only project that aims at providing a collaborative Java library for molecular evolution and phylogenetics.

Similar "private" projects are, however, currently undertaken, e.g., by Andrew Rambaut and Mike Charleston (their Nautilus project) or by the Felsenstein lab (both in C++).

Other Java projects in molecular evolution and bioinformatics include:

Finally, the general issue of scientific programming in Java is discussed, e.g., on the Java Numerics web page.
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 and Don Gilbert for distributing PAL in his software archive. 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

Last modified: January, 2002