Mercurial > repos > dereeper > roary_plots
diff Roary/install_dependencies.sh @ 0:c47a5f61bc9f draft
Uploaded
author | dereeper |
---|---|
date | Fri, 14 May 2021 20:27:06 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Roary/install_dependencies.sh Fri May 14 20:27:06 2021 +0000 @@ -0,0 +1,248 @@ +#!/bin/bash + +set -x +set -eu + +start_dir=$(pwd) +ROARY_LIB_DIR="${start_dir}/lib" +ROARY_BIN_DIR="${start_dir}/bin" + +PARALLEL_VERSION=${PARALLEL_VERSION:-"20160722"} +PARALLEL_DOWNLOAD_FILENAME="parallel-${PARALLEL_VERSION}.tar.bz2" +PARALLEL_URL="http://ftp.gnu.org/gnu/parallel/${PARALLEL_DOWNLOAD_FILENAME}" + +BEDTOOLS_VERSION="2.27.1" +BEDTOOLS_DOWNLOAD_FILENAME="bedtools-${BEDTOOLS_VERSION}.tar.gz" +BEDTOOLS_URL="https://github.com/arq5x/bedtools2/releases/download/v${BEDTOOLS_VERSION}/${BEDTOOLS_DOWNLOAD_FILENAME}" + +CDHIT_SHORT_VERSION="4.6.8" +CDHIT_LONG_VERSION="4.6.8-2017-0621" +CDHIT_DOWNLOAD_FILENAME="cd-hit-${CDHIT_SHORT_VERSION}.tar.gz" +CDHIT_URL="https://github.com/weizhongli/cdhit/releases/download/V${CDHIT_SHORT_VERSION}/cd-hit-v${CDHIT_LONG_VERSION}-source.tar.gz" + +PRANK_VERSION="0.140603" +PRANK_DOWNLOAD_FILENAME="prank-msa-master.tar.gz" +PRANK_URL="https://github.com/ariloytynoja/prank-msa/archive/master.tar.gz" + +BLAST_VERSION="2.6.0" +BLAST_DOWNLOAD_FILENAME="ncbi-blast-${BLAST_VERSION}+-x64-linux.tar.gz" +BLAST_URL="ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${BLAST_VERSION}/${BLAST_DOWNLOAD_FILENAME}" + +MCL_VERSION="14-137" +MCL_DOWNLOAD_FILENAME="mcl-${MCL_VERSION}.tar.gz" +MCL_URL="http://micans.org/mcl/src/mcl-${MCL_VERSION}.tar.gz" + +FASTTREE_VERSION="2.1.10" +FASTTREE_DOWNLOAD_FILENAME="FastTree-${FASTTREE_VERSION}.c" +FASTTREE_URL="http://microbesonline.org/fasttree/FastTree-${FASTTREE_VERSION}.c" + +MAFFT_VERSION="7.310" +MAFFT_DOWNLOAD_FILENAME="mafft-${MAFFT_VERSION}-without-extensions-src.tgz" +MAFFT_URL="http://mafft.cbrc.jp/alignment/software/${MAFFT_DOWNLOAD_FILENAME}" + +# Make an install location +if [ ! -d 'build' ]; then + mkdir build +fi +cd build +build_dir=$(pwd) + +PARALLEL_DOWNLOAD_PATH="$(pwd)/${PARALLEL_DOWNLOAD_FILENAME}" +BEDTOOLS_DOWNLOAD_PATH="$(pwd)/${BEDTOOLS_DOWNLOAD_FILENAME}" +CDHIT_DOWNLOAD_PATH="$(pwd)/${CDHIT_DOWNLOAD_FILENAME}" +PRANK_DOWNLOAD_PATH="$(pwd)/${PRANK_DOWNLOAD_FILENAME}" +BLAST_DOWNLOAD_PATH="$(pwd)/${BLAST_DOWNLOAD_FILENAME}" +MCL_DOWNLOAD_PATH="$(pwd)/${MCL_DOWNLOAD_FILENAME}" +FASTTREE_DOWNLOAD_PATH="$(pwd)/${FASTTREE_DOWNLOAD_FILENAME}" +MAFFT_DOWNLOAD_PATH="$(pwd)/${MAFFT_DOWNLOAD_FILENAME}" + +PARALLEL_BUILD_DIR="$(pwd)/parallel-${PARALLEL_VERSION}" +BEDTOOLS_BUILD_DIR="$(pwd)/bedtools2" +CDHIT_BUILD_DIR="$(pwd)/cd-hit-v${CDHIT_LONG_VERSION}" +PRANK_BUILD_DIR="$(pwd)/prank-msa-master" +BLAST_BUILD_DIR="$(pwd)/ncbi-blast-${BLAST_VERSION}+" +MCL_BUILD_DIR="$(pwd)/mcl-${MCL_VERSION}" +FASTTREE_BUILD_DIR="$(pwd)/fasttree" +MAFFT_BUILD_DIR="$(pwd)/mafft-${MAFFT_VERSION}-without-extensions" + + +download () { + download_url=$1 + download_path=$2 + cd $build_dir + if [ -e "$download_path" ]; then + echo "Skipping download of $download_url, $download_path already exists" + else + echo "Downloading $download_url to $download_path" + wget $download_url -O $download_path + pwd + fi +} + +untar () { + to_untar=$1 + expected_directory=$2 + if [ -d "$expected_directory" ]; then + rm -rf $expected_directory + fi + echo "Untarring $to_untar to $expected_directory" + cd $build_dir + tar xzvf $to_untar + rm $to_untar + pwd +} + +if [ -e "$BLAST_BUILD_DIR/bin/blastp" ]; then + echo "blast already untarred to $BLAST_BUILD_DIR, skipping" +else + download $BLAST_URL $BLAST_DOWNLOAD_PATH + untar $BLAST_DOWNLOAD_PATH $BLAST_BUILD_DIR +fi + +# Build parallel +if [ -e "$PARALLEL_BUILD_DIR/src/parallel" ]; then + echo "Parallel already built, skipping" +else + download $PARALLEL_URL $PARALLEL_DOWNLOAD_PATH + echo "Untarring parallel to $PARALLEL_BUILD_DIR" + tar xjvf $PARALLEL_DOWNLOAD_PATH + echo "Building parallel" + cd $PARALLEL_BUILD_DIR + ./configure + make +fi + +# Build bedtools +if [ -e "$BEDTOOLS_BUILD_DIR/bin/bedtools" ]; then + echo "Bedtools already built, skipping" +else + + download $BEDTOOLS_URL $BEDTOOLS_DOWNLOAD_PATH + untar $BEDTOOLS_DOWNLOAD_PATH $BEDTOOLS_BUILD_DIR + cd $BEDTOOLS_BUILD_DIR + echo "Building bedtools" + ls -alrt + make +fi + +# Build cd-hit +if [ -e "$CDHIT_BUILD_DIR/cd-hit" ]; then + echo "cd-hit already built, skipping" +else + download $CDHIT_URL $CDHIT_DOWNLOAD_PATH + untar $CDHIT_DOWNLOAD_PATH $CDHIT_BUILD_DIR + echo "Building cd-hit" + cd $CDHIT_BUILD_DIR + make +fi + +# Build prank +if [ -e "$PRANK_BUILD_DIR/src/prank" ]; then + echo "prank already built, skipping" +else + download $PRANK_URL $PRANK_DOWNLOAD_PATH + untar $PRANK_DOWNLOAD_PATH $PRANK_BUILD_DIR + echo "Building prank" + cd $PRANK_BUILD_DIR + cd src + make +fi + +# Build MCL +if [ -e "$MCL_BUILD_DIR/src/shmcl/mcl" ]; then + echo "MCL already built, skipping" +else + download $MCL_URL $MCL_DOWNLOAD_PATH + untar $MCL_DOWNLOAD_PATH $MCL_BUILD_DIR + echo "Building MCL" + cd $MCL_BUILD_DIR + ./configure + make +fi + +# Build FastTree +if [ -e "$FASTTREE_BUILD_DIR/FastTree" ]; then + echo "FastTree already built, skipping" +else + download $FASTTREE_URL $FASTTREE_DOWNLOAD_PATH + mkdir -p $FASTTREE_BUILD_DIR + mv $FASTTREE_DOWNLOAD_FILENAME $FASTTREE_BUILD_DIR + cd $FASTTREE_BUILD_DIR + echo "Building FastTree" + gcc -o FastTree FastTree-${FASTTREE_VERSION}.c -lm +fi + +export MAFFT_INSTALL_DIR="${MAFFT_BUILD_DIR}/build" +# Build MAFFT +if [ -e "$MAFFT_BUILD_DIR/build/mafft" ]; then + echo "MAFFT already built, skipping" +else + download $MAFFT_URL $MAFFT_DOWNLOAD_PATH + untar $MAFFT_DOWNLOAD_PATH $MAFFT_BUILD_DIR + echo "Building MAFFT" + cd $MAFFT_BUILD_DIR + mkdir -p $MAFFT_INSTALL_DIR + cd core + sed -i '1s!.*!PREFIX = $(MAFFT_INSTALL_DIR)!' Makefile + make + make install +fi + + +# Add things to PATH +update_path () { + new_dir=$1 + if [[ ! "$PATH" =~ (^|:)"${new_dir}"(:|$) ]]; then + echo "export PATH=${new_dir}:${PATH}" + export PATH=${new_dir}:${PATH} + fi +} + +export PATH +PARALLEL_BIN_DIR="$PARALLEL_BUILD_DIR/src" +update_path $PARALLEL_BIN_DIR +BEDTOOLS_BIN_DIR="$BEDTOOLS_BUILD_DIR/bin" +update_path $BEDTOOLS_BIN_DIR +CDHIT_BIN_DIR="$CDHIT_BUILD_DIR" +update_path $CDHIT_BIN_DIR +PRANK_BIN_DIR="$PRANK_BUILD_DIR/src" +update_path $PRANK_BIN_DIR + +BLAST_BIN_DIR="$BLAST_BUILD_DIR/bin" +update_path $BLAST_BIN_DIR + +MCL_BIN_DIR="$MCL_BUILD_DIR/src/shmcl" +update_path $MCL_BIN_DIR +MCL_BIN_DIR_2="$MCL_BUILD_DIR/src/alien/oxygen/src" +update_path $MCL_BIN_DIR_2 + +FASTTREE_BIN_DIR=$FASTTREE_BUILD_DIR +update_path $FASTTREE_BIN_DIR +MAFFT_BIN_DIR="$MAFFT_INSTALL_DIR/bin" +update_path $MAFFT_BIN_DIR + +update_perl_path () { + new_dir=$1 + PERL5LIB=${PERL5LIB-$new_dir} + if [[ ! "$PERL5LIB" =~ (^|:)"${new_dir}"(:|$) ]]; then + echo "export PERL5LIB=${new_dir}:${PERL5LIB}" + export PERL5LIB=${new_dir}:${PERL5LIB} + fi +} + +BEDTOOLS_LIB_DIR="$BEDTOOLS_BUILD_DIR/lib" +update_perl_path $BEDTOOLS_LIB_DIR + +cd $start_dir +cpanm --notest Dist::Zilla +dzil authordeps --missing | cpanm --notest +dzil listdeps --missing | cpanm --notest + +cd $start_dir + +echo "Add the following lines to one of these files ~/.bashrc or ~/.bash_profile or ~/.profile" +echo "export PATH=${ROARY_BIN_DIR}:${PARALLEL_BIN_DIR}:${BEDTOOLS_BIN_DIR}:${CDHIT_BIN_DIR}:${PRANK_BIN_DIR}:${BLAST_BIN_DIR}:${MCL_BIN_DIR}:${MCL_BIN_DIR_2}:${FASTTREE_BIN_DIR}:${MAFFT_BIN_DIR}:${PATH}" +echo "export PERL5LIB=${ROARY_LIB_DIR}:${BEDTOOLS_LIB_DIR}:${PERL5LIB}" + +set +eu +set +x