Crates.io | myte |
lib.rs | myte |
version | 0.6.4 |
source | src |
created_at | 2021-11-17 17:52:44.165821 |
updated_at | 2021-11-20 17:50:45.482346 |
description | A tool for phylogenomic tree building |
homepage | https://github.com/hhandika/myte |
repository | https://github.com/hhandika/myte |
max_upload_size | |
id | 483512 |
size | 158,209 |
The app is a wrapper for IQ-TREE and Astral. It allows to estimate species tree, gene trees, gene and site concordance factors, MSC Astral trees, and to organize resulting files using a single command:
myte auto -d [gene-alignment-folder]
Similar functions can be achieved using a Bash script running GNU parallel. Our solution, however, carries some benefits:
Limitation:
The app does not yet support MPI. It is designed to run in a desktop computer and take advantage of all the available cores in it when possible. It should work in a cluster computer just fine, but will be limited to a single CPU in a single node.
myte
is a single executable command line app. The executable file will be available in the release link. Copy it to the folder that is registered in your PATH variable. For Linux users, if you encounter GLIBC erorrs when trying to run myte
, try using the ManyLinux
executable.
You can also install the app using the Rust package manager cargo:
cargo install myte
OS support:
Attention ARM Mac Users!
myte
can run native on Apple Arm64 CPUs (M1 series). We provide Apple Arm64 executable for it in the release page. However, due to IQ-TREE limitation that only supports Intel-based MacOS, when myte interfaces with IQ-TREE, IQ-TREE will run on the Apple Rosetta emulator. In our test, allmyte
functions work on our default MacOS terminal running native on ARM architecture and interface well with IQ-TREE. There is no need to create a separate terminal that opens using Rosetta.
Dependencies:
To check if the app can detect the dependencies:
myte check
See segul readme for more detailed instruction on how to install a command line application written in Rust.
Download the rust compiler here and follow the installation instruction.
git clone https://github.com/hhandika/myte
cd myte
cargo build --release
Your executable will be available at /target/release/myte
. Copy it to the folder that is registered in your PATH variable.
The program detects iqtree2
installation from the environment path variable. If the program fails to detect IQ-TREE, make sure the executable is called iqtree2
(no spaces) and the directory where you put the IQ-TREE executable is registered to your environment path variable.
For Astral installation, to solve the dependency, go to the folder where you install Astral. Then, use this command to solve it:
myte deps astral -j [path-to-astral-jar-file]
It will generate an executable file named astral.sh
. Put the astral.sh
file in a directory that is registered in your environment variable.
Try to check the dependencies again:
myte check
USAGE:
myte <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
auto Estimate species tree, gene trees, gene and site concordance factors, and MSC tree
check Check dependencies
deps Solves dependency issues
gene Batch gene tree estimation using IQ-Tree
help Prints this message or the help of the given subcommand(s)
This feature is particularly useful for running the analyses using a desktop computer. If you have access to a cluster computer, it may be better to only use this program to run gene tree analyses in parallel (see below) and run the rest of the analyses separately to reduce waiting time.
myte auto -d [alignment-folder]
For species tree estimation, the default option will run IQ-TREE using this command:
iqtree2 -s ../genes/ --prefix concat -T 1 -B 1000
For gene tree estimation, the default option will run IQ-TREE using this command:
iqtree2 -s [alignment-path] --prefix [gene-names] -T 1
The app allow any current and future available parameters on IQ-TREE for species tree and gene tree estimation.
You can specify IQ-TREE parameters for the species tree using option --opts-s=
.
For example
myte auto -d genes/ opts-s="-T 4 -bnni -B 1000"
Similar to species tree estimation, you can specify any IQ-TREE parameters using the --opts-g=
option in the app.
By default the app looks for nexus files in your alignment directory. To specify the file format, use the --input-fmt
option or the short option -f
. Other than nexus
format, the app supports fasta
and phylip
. Use the help command to see all the options:
myte auto --help
The program will create multiple instances of IQ-TREE to run gene tree estimation in parallel. The program assess available cpu resources in your system and does it sensibly.
To generate gene trees:
myte gene -d [alignment-folder]
You can also specify IQ-TREE parameters using --opts-g=
option. Similar to the auto format, by default, the app will look for nexus files. Use the same option as the auto sub-command to specify the input format.
We welcome any kind of contribution, from issue reporting, ideas to improve the app, to code contribution. For ideas and issue reporting please post in the Github issues page. For code contribution, please fork the repository and send pull requests to this repo.