GeLL
GeLL is a General Likelihood Library for
use in phylogenetics. It is intended to provide classes that facilitate
investigating new models and techniques. It is not intended for everyday
use in phylogenetic studies as it is otpimised for easy use of new models
rather than speed.
GeLL achieves this versatility by allowing models to be defined using
an array of Strings where each string represents an equation. This allows
new models to be defined quickly and easily. The driver executable included
allows many different models to be run simply by changing the text file
defining the model.
Capabilities
Show
Hide
GeLL has the following capabilities:
-
Likelihood - Using the method of Felsenstein 1981[1]. Unobserved
data can also be accounted for, per Felsenstein 1992[2]. Confidence intervals
for a parameter can also be calculated as discussed in Felsenstein 2003[3].
-
Ancestral Reconstruction
-
Marginal Reconstruction - Using the basic method of Yang,
Kurma and Nei 1995[4].
-
Joint Reconstruction - Using the methods of Pupko et al 2000[5] and
Pupko et al 2002[6].
-
Simulated data - Using the standard methods as described, for example,
in Yang 2006[7].
Packages
Show
Hide
GeLL comes in three different packages:
- Basic Package - This includes just the JAR file
and the javadoc documentation
- Source Package - This additionally includes the
source code
- Test Package - This additionally includes both
the source code and test classes
Documentation
Show
Hide
GeLL comes with full javadoc documentation in the javadoc
directory here.
GeLL includes a driver that should be capable of doing
most basic computations. This is documented in the driver
documentation here.
A description of the test cases is included
here in the test package.
Tips & Tricks
Show
Hide
- Gaps
Gaps can be dealt with in two ways. They can be treated
as an extra state in which case the extra state should simply
be added to the model. To sum across all states, like many
models do, simply define the gap character as being an ambiguos
character that could be any one of the states.
Citation
Show
Hide
Money, D. and Whelan, S. (2012) GeLL: Generalized Likelihood Library
(http://phylo.bio.ku.edu/GeLL)
Known Issues
Show
Hide
- Eigendecomposition
Eigendecompositions may not always converge and many not throw
an error. The eigendecomposition code is taken from
JAMA and
has not been debugged. This seems to especially be the case for
gene family size models.
- Parameters (1)
There is an issue where using the same Parameters object in two or more
calls to different Calculator objects will cause an error. This
can be solved by passing a cloned copy of the paramters in the second
- Parameters (2)
The way branch lengths are treated as parameters is a little odd
and could well cause confusion. It is intended to overhaul
this in a future version.
- Exceptions
Some excpetions are thrown in circumstances where it is known
that the excpetion shouldn't occur, normally because we know
that the calling class has already checked (either implcitly
or explicitly) that the exception can't occur. It is intended
to fix this in a later release.
- Threaded Computation - Likelihood
Currently threaded computation is always used for lieklihood
computation. It is known that this can be slower for small
trees and small state-space models. However, it has not been
yet been determined under what conditions threaded calculation
is slower so, for the moment, it is always used.
- Threaded Computation - Ancestral reconstruction
At the moment ancestral reconstruction is not threaded.
Release Notes
Show
Hide
License
Show
Hide
GeLL is avaliable under GPL v3.
The EigenvalueDecomposition
and LUDecomposition
classes are from JAMA
and as such are in the public domain.
The test package contains both executables and example datasets from
PAML. This
example dataset is also used for the example execution using
Example.java
. The applicable license for these compenents is as
follows:
© Copyright 1993-2008 by Ziheng Yang
The software package is provided "as is" without warranty of any kind.
In no event shall the author or his employer be held responsible for any
damage resulting from the use of this software, including but not limited
to the frustration that you may experience in using the package. The program
package, including source codes, example data sets, executables, and this
documentation, is distributed free of charge for academic use only.
Permission is granted to copy and use programs in the package provided no
fee is charged for it and provided that this copyright notice is not removed.
Contact
Show
Hide
References
Show
Hide
- Felsenstein, J. 1981. Evolutionary trees from DNA sequences: A maximum likelihood
approach. Journal of Molecular Evolution, 17:368–376.
- Felsenstein, J. 1992. Phylogenies from restriction sites: A Maximum-Likelihood
approach. Evolution, 46:159–173.
- Felsenstein, J. 2003. Inferring phylogenies. Sinauer Associates Sunderland, Mass., USA.
- Yang, Z., S. Kumar, and M. Nei. 1995. A new method of inference of ancestral nucleotide
and amino acid sequences. Genetics, 141:1641–1650.
- Pupko, T., I. Pe, R. Shamir, and D. Graur. 2000. A fast algorithm for joint reconstruction
of ancestral amino acid sequences. Molecular Biology and Evolution, 17:890–896.
- Pupko, T., I. Pe’er, M. Hasegawa, D. Graur, and N. Friedman. 2002. A branchand-
bound algorithm for the inference of ancestral amino-acid sequences when the
replacement rate varies among sites: Application to the evolution of five gene families.
Bioinformatics, 18:1116–1123.
- Yang, Z. 2006. Computational molecular evolution. Oxford University Press, USA.