Skip to content
/ BAD Public

Tool for estimating the difficulty of phylogenetic placements

License

Notifications You must be signed in to change notification settings

wiegertj/BAD

Repository files navigation

BAD: Bold Assertor of Difficulty

image image image

Description

BAD is a python tool for predicting the difficulty of phylogenetic placements. BAD uses RAxML-NG outputs as input. It requires a RAxML-NG installation. It was trained on empirical datasets from TreeBASE and can use both AA and DNA data. The output of BAD is a score between 0 (easy) and 1 (difficult). BAD provides an explanation of its prediction using the Shapley values implementation SHAP (Github, Paper).

Installation

Using pip

pip install bad-phylo

Usage Example

A simple command line call of BAD looks like this:

bad -msa /test/example.fasta -tree /test/example.bestTree -model /test/example.bestModel -query /test/query.fasta -o test_bad 

This command will use the MSA and query file in fasta format, and the best tree inferred with RAxML-NG as well as the model. It will compute features from all four data sources and predict the placement difficulties for each taxon in the query file. All output files will be stored in an output folder called test_bad in the current directory. BAD will summarize the explanations for the prediction in the command line. For further details, please look at the SHAP summary plots or the bad.log file in the output folder.

Before interpreting the explanations provided by BAD, please make sure you know how to properly interpret Shapley values. Easy to understand introduction to Shapley values: https://christophm.github.io/interpretable-ml-book/shapley.html

Please keep in mind that BAD requires an installation of RAxML-NG. By default, it uses the command raxml-ng. If your RAxML-NG installation is not part of the PATH variable, you can specify the path to the RAxML-NG binary file with the parameter -raxmlng PATH_TO_RAXMLNG.

References