-
Install via conda (recommended):
conda activate
conda install zeromq
Install Rustup. On linux:
conda install -c milesgranger rustup
or on MacOs :
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup default nightly
change to you miniconda installation path
a=$(which conda)
LIBZMQ_LIB_DIR=${a%/*/*}/lib LIBZMQ_INCLUDE_DIR=${a%/*/*}/include cargo install gsearch
cargo install --git https://gitlab.com/Jianshu_Zhao/fraggenescanrs
conda install hmmer
sudo apt-get install libzmq-dev libsodium-dev openblas
brew install zeromq
brew install libsodium
BLAS are installed in the Architecture.framework, but you can still install openblas and add library path to environmental variables according to homebrew promt message. See above annembed part to see how to use a different openblas in intel-mkl library
### install openblas on intel MACs (note that openblas install lib path is different on M1 MACs)
brew install openblas
echo 'export LDFLAGS="-L/usr/local/opt/openblas/lib"' >> ~/.bash_profile
echo 'export CPPFLAGS="-I/usr/local/opt/openblas/include"' >> ~/.bash_profile
echo 'export PKG_CONFIG_PATH="/usr/local/opt/openblas/lib/pkgconfig"' >> ~/.bash_profile
cd gsearch
cargo build --release --features annembed_openblas-system
or, if openblas library is not needed
cargo build --release
you can install them first, but remember to add library configuration path and dynamic library config path to you environmental variables. Openblas must be installed at system level for MacOS system (static link is not prefered by Apple). Ask your system manager to install it for you.
LIBZMQ_LIB_DIR=~/miniconda3/lib LIBZMQ_INCLUDE_DIR=~/miniconda3/include cargo build --release --features annembed_intel-mkl
or without annembed feature, in this case openblas denpendency is not required:
LIBZMQ_LIB_DIR=~/miniconda3/lib LIBZMQ_INCLUDE_DIR=~/miniconda3/include cargo build --release
rust nightly version only Nightly rust must be used
## install rustup first, and the activate it
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
## setup nightly rust
rustup default nightly
## go to the kmerutils, annembed and gsearch directory you just cloned, and change the line: hnsw_rs = {version = "0.1.15"} to hnsw_rs = {path = "../hnswlib-rs"} in both Cargo.toml
## same procedure with the above regular compiling.
The last step involves a homology search using hmmer, which can be directly installed using conda or brew on Intel CPUs. If you are using apple M series ARM64/aarch64 structure, you can have a native support of hmmer folloing the steps:
### download h3-heno branch of hmmer here (do not git clone but download zip):
https://github.com/EddyRivasLab/hmmer/tree/h3-arm
## go into the donwloaded directory and download Easel develop branch here (do not git clone but download zip) :
cd h3-arm
https://github.com/EddyRivasLab/easel/tree/develop
## compile, or you can download binaries from here: https://github.com/jianshu93/hmmer-h3-arm
autoconf
./configure
make -j 8
sudo make install
hmmsearch -h