GithubHelp home page GithubHelp logo

bredelings / bali-phy Goto Github PK

View Code? Open in Web Editor NEW
45.0 6.0 16.0 70.62 MB

Bayesian co-estimation of phylogenies and multiple alignments via MCMC

Home Page: http://www.bali-phy.org/

License: GNU General Public License v2.0

C++ 87.64% Perl 0.25% C 0.16% Python 2.18% Haskell 8.97% Shell 0.27% R 0.22% Makefile 0.01% Meson 0.27% Singularity 0.02%

bali-phy's Introduction

Build and test

Install

If you just want to install bali-phy, please visit the release page. If you want to compile BAli-phy from source, the quick start instructions are below.

Compiling

You will need a C++ compiler that understands C++20.

  • gcc 11 (or higher) works
  • clang 14 (or higher) works
  • XCode 14 (or higher) works

Install Prerequisites

On Ubuntu 24.04 (or higher), or on Debian testing, you can use apt-get:

sudo apt-get install g++ libcairo2-dev meson libboost-all-dev

On Mac (or Linux, actually) you can use homebrew:

brew install cairo meson boost pkg-config

On miniconda, you can use:

conda create -n devel -c conda-forge --strict-channel-priority
conda activate devel
conda install meson gxx boost-cpp cmake pkg-config cairo
export BOOST_ROOT=$CONDA_PREFIX

Meson version

After installing prerequisites above, check that the meson version is at least 1.1.

meson --version

If your version of meson is less than 1.1, you need to install the most recent version of meson into a python virtual environment:

python3 -m venv meson_venv
source meson_venv/bin/activate
pip install meson ninja

Build BAli-Phy

This will build the latest unreleased beta version of BAli-Phy, which fixes some memory issues in 3.6. There are some changes to the model language. Check the NEWS file for the details.

git clone https://github.com/bredelings/BAli-Phy.git
cd BAli-Phy
meson setup build --prefix=$HOME/Applications/bali-phy
ninja -C build install
ninja -C build test

Adding bali-phy to your $PATH

In order to run the installed software, you should add bali-phy to your $PATH.

Installed locations

If you installed in $HOME/Applications/bali-phy/ as recommended above, then files will be in:

Location Files
~/Applications/bali-phy/bin Binary executables.
~/Applications/bali-phy/share/bali-phy/examples/sequences Example files.
~/Applications/bali-phy/share/doc/bali-phy/ Documentation.

Further Documentation

The Manual describes how to install bali-phy in greater detail.

bali-phy's People

Contributors

bredelings avatar caetanods avatar jonchang avatar karolisr avatar msuchard avatar sibonli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

bali-phy's Issues

bp-analyze (logging.debug)

Hello - is this known?
BAli-Phy running fine on test with [--iter=150] and finishes, but post-analysis with bp-analyze [../bp-analyze dir-1 dir-2] produces this:

~/../bali-phy-3.5.0/bin/bp-analyze", line 405 logging.debug(f"LogFileRun: {mcmc_output}") ^

System is BioLinux 8 Ubuntu 14.04 LTS. BAli-Phy version is latest (3.5, BUILD: Apr 20 2020 14:13:27, ARCH: linux x86_64)
Same result appears with no arguments fed in to bp-analyze. Reasonable fiddling doesn't help..
Any comment much appreciated.

Leo

gcc 10.1 compilation fails, call of overloaded ptree is ambiguous

gcc 10 has some improved pgo and lto options that might offer better performance.

However, compilation fails for me, with the message:
./BAli-Phy-3.5.0.1/src/models/rules.cc:362:51: error: call of overloaded ‘ptree()’ is ambiguous
...
./BAli-Phy-3.5.0.1/src/models/rules.cc:374:62: error: call of overloaded ‘ptree()’ is ambiguous

Compilation worked for me under gcc 9.3.0.

Build output attached.

build.log

Add alignment constraints to handle long sequences

When aligning long sequences we need to constrain the alignment in order to avoid taking too much CPU time (and RAM).

  • allow constraints that residue x[i] is within some distance of residue y[j] instead of requiring that they align exactly.
  • allow alignments within some "envelope" around an initial alignment

The problem here is that dynamic programming for 3 or more sequences allows constraints like x[i] <= y[i]. However, we must then decompose the alignment of three sequences into three pairwise alignments. This relaxes the ordering imposed encoding the alignments into paths through the dynamic programming matrix.

Ideas

  • Can we impose "not-less-than" constraints instead of "<=" constraints?

Test suite error in 4.0-beta7

Hi,
I tried to package 4.0-beta7 for Debian. In our CI you can find a full build log which contains an error in one test:

5/37 bali-phy 5d -A 200             FAIL             10.83s   killed by signal 11 SIGSEGV
>>> ASAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1 MALLOC_PERTURB_=129 UBSAN_OPTIONS=halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1 /builds/med-team/bali-phy/debian/output/source_dir/obj-x86_64-linux-gnu/src/bali-phy/bali-phy /builds/med-team/bali-phy/debian/output/source_dir/obj-x86_64-linux-gnu/../examples/5S-rRNA/5d.fasta --iter=200 --package-path=/builds/med-team/bali-phy/debian/output/source_dir/obj-x86_64-linux-gnu/src/builtins:/builds/med-team/bali-phy/debian/output/source_dir -Inone

Please let me know if you need further information.
Kind regards, Andreas.

segmentation fault

For one of my input files, with release 4.0-beta7, I get:

Allocation failed in sample_tri_multi!  Proceeding.
Allocation failed in sample_tri_multi!  Proceeding.
Allocation failed in sample_tri_multi!  Proceeding.
[maybe 30 times]
[1]    25144 segmentation fault  bali-phy APOB_extracted_oneseq_onedirection_All.fasta -S gtr -n  -i 2000

I then tried building from source with the current master branch to see if this was something that had gotten resolved, and that gave me:

bali-phy: Error! evaluating reg # 8295 (unchangeable): case <175495> of {_ -> <175496>}

evaluating reg # 175495 (unchangeable): case <175496> of {_ -> <2404>}

evaluating reg # 175496 (unchangeable): MCMC:runMCMC 2000 0 0

evaluating reg # 471014 (unchangeable): case <86522> of {_ -> <86561>}

evaluating reg # 86522 (unchangeable): case <86561> of {_ -> <2404>}

evaluating reg # 86561 (unchangeable): MCMC:walk_tree_sample_alignments <6084> <46054> 0 0

std::bad_array_new_length

I can provide the input fasta file if that would be helpful. Any thoughts?

Thanks!

<bitset> needs inclusion in src/dp/hmm.cc

BAli-Phy 3.6.1
gcc 12.2.1
glibc 2.36

Compilation error, bitset undefined. Fixed by this:

`diff --git a/src/dp/hmm.cc b/src/dp/hmm.cc
index 8be51b5..ea8a15e 100644
--- a/src/dp/hmm.cc
+++ b/src/dp/hmm.cc
@@ -24,6 +24,7 @@
///

#include
+#include
#include "hmm.H"
#include "2way.H"
#include "imodel/imodel.H"
`

BAli-Phy on conda?

Hi There! I was curious if there is any ongoing efforts to include BAli-Phy as a package available through bioconda?

Ubuntu LTS?

It is nice that BAli-Phy is available using package managers. However, it is not available on the current Ubuntu LTS release (v18.04).

Is it possible to make it available from an LTS (which I imagine most users, er, use), or are there significant roadblocks?

If this is not possible, it is not a big deal, as building it is straightforward (and the precompiled binaries are almost as convenient).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.