From 2cb7abaa259480401bf4bbdbf3c649a1817c234d Mon Sep 17 00:00:00 2001 From: Lolli-AK <118637640+Lolli-AK@users.noreply.github.com> Date: Mon, 2 Sep 2024 12:11:51 -0500 Subject: [PATCH 1/7] Create Dockerfile --- Docker/CiDDER/Dockerfile | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Docker/CiDDER/Dockerfile diff --git a/Docker/CiDDER/Dockerfile b/Docker/CiDDER/Dockerfile new file mode 100644 index 0000000..cd5864b --- /dev/null +++ b/Docker/CiDDER/Dockerfile @@ -0,0 +1,24 @@ +FROM continuumio/miniconda3 +LABEL maintainer="Rauf Salamzade - Kalan Lab, UW-Madison" + +WORKDIR /usr/src +SHELL ["/bin/bash", "-c"] + +RUN apt-get update && apt-get install -y git wget gcc +RUN conda install -n base conda-libmamba-solver +RUN conda config --set solver libmamba +RUN conda create -p /usr/src/skder_conda_env/ -c conda-forge -c bioconda skder + +# Set env variables and download minimal databases (MIBiG v3.1 + PGAP HMMs) +ENV PATH /usr/src/skder_conda_env/bin:$PATH + +# chmod 777 /home changes the permissions of the /home directory +RUN chmod 777 /home +USER 1000:1000 +RUN mkdir -p /home/input /home/output +WORKDIR /home +ENV LANG C.UTF-8 +ENV LC_ALL C.UTF-8 + +ENTRYPOINT ["cidder"] +CMD ["--help"] From 3c7cf2ebe9d387ed46de3f6f063d03610fb15c64 Mon Sep 17 00:00:00 2001 From: Lolli-AK <118637640+Lolli-AK@users.noreply.github.com> Date: Mon, 2 Sep 2024 12:12:30 -0500 Subject: [PATCH 2/7] Create run_cidder --- Docker/CiDDER/run_cidder | 83 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 Docker/CiDDER/run_cidder diff --git a/Docker/CiDDER/run_cidder b/Docker/CiDDER/run_cidder new file mode 100644 index 0000000..63987ab --- /dev/null +++ b/Docker/CiDDER/run_cidder @@ -0,0 +1,83 @@ +#!/bin/bash + +# AUTHOR: Rauf Salamzade +# AFFILIATION: Kalan Lab, UW-Madison +# run_cidder.sh + +# function to determine absolute paths taken from peterh's respone on StackOverflow: +# https://stackoverflow.com/questions/3915040/how-to-obtain-the-absolute-path-of-a-file-via-shell-bash-zsh-sh +get_abs_filename() { + # $1 : relative filename + filename=$1 + parentdir=$(dirname "${filename}") + + if [ -d "${filename}" ]; then + echo "$(cd "${filename}" && pwd)" + elif [ -d "${parentdir}" ]; then + echo "$(cd "${parentdir}" && pwd)/$(basename "${filename}")" + fi +} + +## The following is also adapted from analogous file from BIG-SCAPE +if [[ $# -eq 0 || $1 == "-h" || $1 == "--help" || $1 == "-v" || $1 == "--version" ]]; then + docker pull raufs/cidder:latest + docker run \ + --detach=false \ + --rm \ + --user=$(id -u):$(id -g) \ + raufs/cidder:latest \ + +else + + set -o errexit + set -o nounset + + # Links within the container + readonly CONTAINER_INPUT_DIR=/home/input + readonly CONTAINER_OUTPUT_DIR=/home/output + + # variables for updating/input paths to account for Docker mounting + + DOCKER_VOLUME_ARGS="" + EASY_ARGS="" + OUTPUT_PARENT_DIR="NA" + while [[ ! $# -eq 0 ]]; do + if [[ "$1" == '-g' || "$1" == '--genomes' ]]; then + shift + ABS_VALUE=$(get_abs_filename $1) + INPUT_DIR=$(basename $ABS_VALUE) + INPUT_PARENT_DIR=$(dirname $ABS_VALUE) + EASY_ARGS+="-g $CONTAINER_INPUT_DIR/$INPUT_DIR/ " + DOCKER_VOLUME_ARGS+="--volume $INPUT_PARENT_DIR:$CONTAINER_INPUT_DIR:ro " + shift + elif [[ "$1" == '-o' || "$1" == '--output-directory' ]]; then + shift + ABS_VALUE=$(get_abs_filename $1) + OUTPUT_DIR=$(basename $ABS_VALUE) + OUTPUT_PARENT_DIR=$(dirname $ABS_VALUE) + EASY_ARGS+="-o $CONTAINER_OUTPUT_DIR/$OUTPUT_DIR/ " + DOCKER_VOLUME_ARGS+="--volume $OUTPUT_PARENT_DIR:$CONTAINER_OUTPUT_DIR:rw " + shift + elif [[ "$1" == '-gd' || "$1" == '--genomad-database' ]]; then + shift + ABS_VALUE=$(get_abs_filename $1) + OUTPUT_DIR=$(basename $ABS_VALUE) + OUTPUT_PARENT_DIR=$(dirname $ABS_VALUE) + EASY_ARGS+="-o $CONTAINER_OUTPUT_DIR/$OUTPUT_DIR/ " + DOCKER_VOLUME_ARGS+="--volume $OUTPUT_PARENT_DIR:$CONTAINER_OUTPUT_DIR:rw " + shift + else + EASY_ARGS+="$1 " + shift + fi + done + + if [[ ! -d ${OUTPUT_PARENT_DIR} && $OUTPUT_PARENT_DIR != "NA" ]]; then + mkdir ${OUTPUT_PARENT_DIR} + fi + + echo ${EASY_ARGS} + # run workflow + docker pull raufs/cidder:latest + docker run ${DOCKER_VOLUME_ARGS} --detach=false --rm --user=$(id -u):$(id -g) raufs/cidder:latest ${EASY_ARGS} +fi From 27a1cc96bf9a7789ad5081b530b36bb4facfeadc Mon Sep 17 00:00:00 2001 From: Lolli-AK <118637640+Lolli-AK@users.noreply.github.com> Date: Mon, 2 Sep 2024 12:13:06 -0500 Subject: [PATCH 3/7] Create Dockerfile --- Docker/skDER/Dockerfile | 1 + 1 file changed, 1 insertion(+) create mode 100644 Docker/skDER/Dockerfile diff --git a/Docker/skDER/Dockerfile b/Docker/skDER/Dockerfile new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Docker/skDER/Dockerfile @@ -0,0 +1 @@ + From 5a5008db152cc0dd97c14542074472285083e7a7 Mon Sep 17 00:00:00 2001 From: Lolli-AK <118637640+Lolli-AK@users.noreply.github.com> Date: Mon, 2 Sep 2024 12:13:45 -0500 Subject: [PATCH 4/7] Update Dockerfile --- Docker/skDER/Dockerfile | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Docker/skDER/Dockerfile b/Docker/skDER/Dockerfile index 8b13789..f0b3267 100644 --- a/Docker/skDER/Dockerfile +++ b/Docker/skDER/Dockerfile @@ -1 +1,24 @@ +FROM continuumio/miniconda3 +LABEL maintainer="Rauf Salamzade - Kalan Lab, UW-Madison" +WORKDIR /usr/src +SHELL ["/bin/bash", "-c"] + +RUN apt-get update && apt-get install -y git wget gcc +RUN conda install -n base conda-libmamba-solver +RUN conda config --set solver libmamba +RUN conda create -p /usr/src/skder_conda_env/ -c conda-forge -c bioconda skder + +# Set env variables and download minimal databases (MIBiG v3.1 + PGAP HMMs) +ENV PATH /usr/src/skder_conda_env/bin:$PATH + +# chmod 777 /home changes the permissions of the /home directory +RUN chmod 777 /home +USER 1000:1000 +RUN mkdir -p /home/input /home/output +WORKDIR /home +ENV LANG C.UTF-8 +ENV LC_ALL C.UTF-8 + +ENTRYPOINT ["skder"] +CMD ["--help"] From 54711e331e29abd38658bd3c2279be318f8e4b49 Mon Sep 17 00:00:00 2001 From: Lolli-AK <118637640+Lolli-AK@users.noreply.github.com> Date: Mon, 2 Sep 2024 12:14:15 -0500 Subject: [PATCH 5/7] Create run_skder.sh --- Docker/skDER/run_skder.sh | 83 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 Docker/skDER/run_skder.sh diff --git a/Docker/skDER/run_skder.sh b/Docker/skDER/run_skder.sh new file mode 100644 index 0000000..9157353 --- /dev/null +++ b/Docker/skDER/run_skder.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +# AUTHOR: Rauf Salamzade +# AFFILIATION: Kalan Lab, UW-Madison +# run_skder.sh + +# function to determine absolute paths taken from peterh's respone on StackOverflow: +# https://stackoverflow.com/questions/3915040/how-to-obtain-the-absolute-path-of-a-file-via-shell-bash-zsh-sh +get_abs_filename() { + # $1 : relative filename + filename=$1 + parentdir=$(dirname "${filename}") + + if [ -d "${filename}" ]; then + echo "$(cd "${filename}" && pwd)" + elif [ -d "${parentdir}" ]; then + echo "$(cd "${parentdir}" && pwd)/$(basename "${filename}")" + fi +} + +## The following is also adapted from analogous file from BIG-SCAPE +if [[ $# -eq 0 || $1 == "-h" || $1 == "--help" || $1 == "-v" || $1 == "--version" ]]; then + docker pull raufs/skder:latest + docker run \ + --detach=false \ + --rm \ + --user=$(id -u):$(id -g) \ + raufs/skder:latest \ + +else + + set -o errexit + set -o nounset + + # Links within the container + readonly CONTAINER_INPUT_DIR=/home/input + readonly CONTAINER_OUTPUT_DIR=/home/output + + # variables for updating/input paths to account for Docker mounting + + DOCKER_VOLUME_ARGS="" + EASY_ARGS="" + OUTPUT_PARENT_DIR="NA" + while [[ ! $# -eq 0 ]]; do + if [[ "$1" == '-g' || "$1" == '--genomes' ]]; then + shift + ABS_VALUE=$(get_abs_filename $1) + INPUT_DIR=$(basename $ABS_VALUE) + INPUT_PARENT_DIR=$(dirname $ABS_VALUE) + EASY_ARGS+="-g $CONTAINER_INPUT_DIR/$INPUT_DIR/ " + DOCKER_VOLUME_ARGS+="--volume $INPUT_PARENT_DIR:$CONTAINER_INPUT_DIR:ro " + shift + elif [[ "$1" == '-o' || "$1" == '--output-directory' ]]; then + shift + ABS_VALUE=$(get_abs_filename $1) + OUTPUT_DIR=$(basename $ABS_VALUE) + OUTPUT_PARENT_DIR=$(dirname $ABS_VALUE) + EASY_ARGS+="-o $CONTAINER_OUTPUT_DIR/$OUTPUT_DIR/ " + DOCKER_VOLUME_ARGS+="--volume $OUTPUT_PARENT_DIR:$CONTAINER_OUTPUT_DIR:rw " + shift + elif [[ "$1" == '-gd' || "$1" == '--genomad-database' ]]; then + shift + ABS_VALUE=$(get_abs_filename $1) + OUTPUT_DIR=$(basename $ABS_VALUE) + OUTPUT_PARENT_DIR=$(dirname $ABS_VALUE) + EASY_ARGS+="-o $CONTAINER_OUTPUT_DIR/$OUTPUT_DIR/ " + DOCKER_VOLUME_ARGS+="--volume $OUTPUT_PARENT_DIR:$CONTAINER_OUTPUT_DIR:rw " + shift + else + EASY_ARGS+="$1 " + shift + fi + done + + if [[ ! -d ${OUTPUT_PARENT_DIR} && $OUTPUT_PARENT_DIR != "NA" ]]; then + mkdir ${OUTPUT_PARENT_DIR} + fi + + echo ${EASY_ARGS} + # run workflow + docker pull raufs/skder:latest + docker run ${DOCKER_VOLUME_ARGS} --detach=false --rm --user=$(id -u):$(id -g) raufs/skder:latest ${EASY_ARGS} +fi From 2fca778cb357d84170b4befff124c9e456db7dbb Mon Sep 17 00:00:00 2001 From: Lolli-AK <118637640+Lolli-AK@users.noreply.github.com> Date: Mon, 2 Sep 2024 12:15:17 -0500 Subject: [PATCH 6/7] Delete Docker/Dockerfile --- Docker/Dockerfile | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100644 Docker/Dockerfile diff --git a/Docker/Dockerfile b/Docker/Dockerfile deleted file mode 100644 index f0b3267..0000000 --- a/Docker/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM continuumio/miniconda3 -LABEL maintainer="Rauf Salamzade - Kalan Lab, UW-Madison" - -WORKDIR /usr/src -SHELL ["/bin/bash", "-c"] - -RUN apt-get update && apt-get install -y git wget gcc -RUN conda install -n base conda-libmamba-solver -RUN conda config --set solver libmamba -RUN conda create -p /usr/src/skder_conda_env/ -c conda-forge -c bioconda skder - -# Set env variables and download minimal databases (MIBiG v3.1 + PGAP HMMs) -ENV PATH /usr/src/skder_conda_env/bin:$PATH - -# chmod 777 /home changes the permissions of the /home directory -RUN chmod 777 /home -USER 1000:1000 -RUN mkdir -p /home/input /home/output -WORKDIR /home -ENV LANG C.UTF-8 -ENV LC_ALL C.UTF-8 - -ENTRYPOINT ["skder"] -CMD ["--help"] From 571204d39eebd9a4d3635d303304deaddeb375ac Mon Sep 17 00:00:00 2001 From: Lolli-AK <118637640+Lolli-AK@users.noreply.github.com> Date: Mon, 2 Sep 2024 12:15:26 -0500 Subject: [PATCH 7/7] Delete Docker/run_skder.sh --- Docker/run_skder.sh | 83 --------------------------------------------- 1 file changed, 83 deletions(-) delete mode 100644 Docker/run_skder.sh diff --git a/Docker/run_skder.sh b/Docker/run_skder.sh deleted file mode 100644 index 9157353..0000000 --- a/Docker/run_skder.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/bash - -# AUTHOR: Rauf Salamzade -# AFFILIATION: Kalan Lab, UW-Madison -# run_skder.sh - -# function to determine absolute paths taken from peterh's respone on StackOverflow: -# https://stackoverflow.com/questions/3915040/how-to-obtain-the-absolute-path-of-a-file-via-shell-bash-zsh-sh -get_abs_filename() { - # $1 : relative filename - filename=$1 - parentdir=$(dirname "${filename}") - - if [ -d "${filename}" ]; then - echo "$(cd "${filename}" && pwd)" - elif [ -d "${parentdir}" ]; then - echo "$(cd "${parentdir}" && pwd)/$(basename "${filename}")" - fi -} - -## The following is also adapted from analogous file from BIG-SCAPE -if [[ $# -eq 0 || $1 == "-h" || $1 == "--help" || $1 == "-v" || $1 == "--version" ]]; then - docker pull raufs/skder:latest - docker run \ - --detach=false \ - --rm \ - --user=$(id -u):$(id -g) \ - raufs/skder:latest \ - -else - - set -o errexit - set -o nounset - - # Links within the container - readonly CONTAINER_INPUT_DIR=/home/input - readonly CONTAINER_OUTPUT_DIR=/home/output - - # variables for updating/input paths to account for Docker mounting - - DOCKER_VOLUME_ARGS="" - EASY_ARGS="" - OUTPUT_PARENT_DIR="NA" - while [[ ! $# -eq 0 ]]; do - if [[ "$1" == '-g' || "$1" == '--genomes' ]]; then - shift - ABS_VALUE=$(get_abs_filename $1) - INPUT_DIR=$(basename $ABS_VALUE) - INPUT_PARENT_DIR=$(dirname $ABS_VALUE) - EASY_ARGS+="-g $CONTAINER_INPUT_DIR/$INPUT_DIR/ " - DOCKER_VOLUME_ARGS+="--volume $INPUT_PARENT_DIR:$CONTAINER_INPUT_DIR:ro " - shift - elif [[ "$1" == '-o' || "$1" == '--output-directory' ]]; then - shift - ABS_VALUE=$(get_abs_filename $1) - OUTPUT_DIR=$(basename $ABS_VALUE) - OUTPUT_PARENT_DIR=$(dirname $ABS_VALUE) - EASY_ARGS+="-o $CONTAINER_OUTPUT_DIR/$OUTPUT_DIR/ " - DOCKER_VOLUME_ARGS+="--volume $OUTPUT_PARENT_DIR:$CONTAINER_OUTPUT_DIR:rw " - shift - elif [[ "$1" == '-gd' || "$1" == '--genomad-database' ]]; then - shift - ABS_VALUE=$(get_abs_filename $1) - OUTPUT_DIR=$(basename $ABS_VALUE) - OUTPUT_PARENT_DIR=$(dirname $ABS_VALUE) - EASY_ARGS+="-o $CONTAINER_OUTPUT_DIR/$OUTPUT_DIR/ " - DOCKER_VOLUME_ARGS+="--volume $OUTPUT_PARENT_DIR:$CONTAINER_OUTPUT_DIR:rw " - shift - else - EASY_ARGS+="$1 " - shift - fi - done - - if [[ ! -d ${OUTPUT_PARENT_DIR} && $OUTPUT_PARENT_DIR != "NA" ]]; then - mkdir ${OUTPUT_PARENT_DIR} - fi - - echo ${EASY_ARGS} - # run workflow - docker pull raufs/skder:latest - docker run ${DOCKER_VOLUME_ARGS} --detach=false --rm --user=$(id -u):$(id -g) raufs/skder:latest ${EASY_ARGS} -fi