A Phylogenetic Library based on a refactoring of POY.
The goal of Phylocaml is to use the experience from POY 3/4/5 to develop a library. A major reason for this refactoring is that we need the ability to support different types of topologies from our previous implementations. Although our utility is to develop a rooted network approach, we believe the framework can be used in general for other types of topologies and offers us a way to write a powerful library for bioinformatics research.
We are also taking the approach to utilize many of the new features that the OCaml team has developed over the years, prefer a standard library (Core), and become more idiomatic to the standards developed since the initial versions.
- Dependencies
- Installation
- Testing Framework
- Documentation
- Benchmarks
- Applications
- Contact Information
- License
Required -
Optional -
- OUnit2
- Core_bench
- OPAM (> 1.0.0)
- OCamion
Currently there is no configuration step.
Typing 'make' will initiate native and bytecode compilation of the Phylocaml library. After building 'make install' will do a findlib installation. To generate the ocamldoc API documentation use 'make phylocaml.html'.
To remove Phylocaml type 'make uninstall' or it can be done directly via the findlib command 'ocamlfind remove phylocaml'.
Installation via OPAM is available by including our opam-repo. This can be added via 'opam repository add AMNH git://github.com/amnh/opam-amnh.git' and then installing the provided package.
The tests can be built by installing the package and linking, or by compiling it directly. Doing both ensures everything is packaged and installed properly. This switch is done with USE_EXTERNAL_LINKING pre-processor flag for includes.
The externally linked tests are compiled by,
make test
./tests/test.native
and the locally linked build is done by,
make test.native
./test.native
The api documentation (PDF and HTML) is built using ocamlbuild and can be built from,
make phylocaml.html
make phylocaml.tex
make phylocaml.pdf
Further developer documentation can be found on the github wiki, and complete examples are maintained in the app/ directory.
Benchmarks for different implementations of C and OCaml functions, as well as comparisons of analogous methods can be found in the bench/ directory. Running,
make bench
will produce an entry point for all the benchmarks which can be determined through the command,
./bench --help
The benchmark suite requires Core_bench.
A number of applications can be found in the app/ directory. These are used as entry points for users to experiment initially and to prove the framework we've developed. Within that directory is further documentation regarding the individual applications.
- Nicholas Lucaroni (nlucaroni at amnh dot org)
- Ward Wheeler (wheeler at amnh dot org)
- Support Forum
- Site on AMNH
Mozilla Public License, version 2.0