From c4ea70f45960d2ac587b52425002cada2233cddc Mon Sep 17 00:00:00 2001 From: Sage Wright Date: Fri, 10 May 2024 19:14:36 +0000 Subject: [PATCH 1/5] add tbprofiler v6.2.1 --- tbprofiler/6.2.1/Dockerfile | 67 +++++++++++++++++++++++++++++++++++++ tbprofiler/6.2.1/README.md | 58 ++++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 tbprofiler/6.2.1/Dockerfile create mode 100644 tbprofiler/6.2.1/README.md diff --git a/tbprofiler/6.2.1/Dockerfile b/tbprofiler/6.2.1/Dockerfile new file mode 100644 index 000000000..64e02145d --- /dev/null +++ b/tbprofiler/6.2.1/Dockerfile @@ -0,0 +1,67 @@ +FROM mambaorg/micromamba:1.5.8 as app + +USER root +WORKDIR / + +ARG TBPROFILER_VER="6.2.`" + +# this version is the shortened commit hash on the `master` branch here https://github.com/jodyphelan/tbdb/ +# commits are found on https://github.com/jodyphelan/tbdb/commits/master +# this was the latest commit as of 2024-05-10 +ARG TBDB_COMMIT="97b5876a1a9d2f06e8bb6076ed88baf481ef5fe5" + +# LABEL instructions tag the image with metadata that might be important to the user +LABEL base.image="micromamba:1.5.8" +LABEL dockerfile.version="1" +LABEL software="tbprofiler" +LABEL software.version="${TBPROFILER_VER}" +LABEL description="The pipeline aligns reads to the H37Rv reference using bowtie2, BWA or minimap2 and then calls variants using bcftools. These variants are then compared to a drug-resistance database." +LABEL website="https://github.com/jodyphelan/TBProfiler/" +LABEL license="https://github.com/jodyphelan/TBProfiler/blob/master/LICENSE" +LABEL maintainer="John Arnn" +LABEL maintainer.email="jarnn@utah.gov" +LABEL maintainer2="Curtis Kapsak" +LABEL maintainer2.email="kapsakcj@gmail.com" + +# Install dependencies via apt-get; cleanup apt garbage +RUN apt-get update && apt-get install -y --no-install-recommends \ + wget \ + ca-certificates \ + procps && \ + apt-get autoclean && rm -rf /var/lib/apt/lists/* + +# install tb-profiler via bioconda; install into 'base' conda env +RUN micromamba install --yes --name base --channel conda-forge --channel bioconda \ + tb-profiler=${TBPROFILER_VER} && \ + micromamba clean --all --yes + +# hardcode 'base' env bin into PATH, so conda env does not have to be "activated" at run time +ENV PATH="/opt/conda/bin:${PATH}" + +# Version of database can be confirmed at /opt/conda/share/tbprofiler/tbdb.version.json +# can also run 'tb-profiler list_db' to find the same version info +# In 5.0.1 updating_tbdb does not work with tb-profiler update_tbdb --commit ${TBDB_VER} +# ^^ this was resolved in 6.2.1 +#RUN tb-profiler update_tbdb -h && whatever + +# https://github.com/jodyphelan/tbdb + +RUN tb-profiler update_tbdb --commit ${TBDB_COMMIT} + +WORKDIR /data + +# Added command to bring help menu up upon running container. +CMD tb-profiler + +# test stage +FROM app as test + +# checking if tool is in PATH +RUN tb-profiler && tb-profiler version + +WORKDIR /tests + +# download some TB FASTQs and run through tb-profiler +RUN wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR166/009/ERR1664619/ERR1664619_1.fastq.gz && \ + wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR166/009/ERR1664619/ERR1664619_2.fastq.gz && \ + tb-profiler profile -1 ERR1664619_1.fastq.gz -2 ERR1664619_2.fastq.gz -t 2 -p ERR1664619 --txt diff --git a/tbprofiler/6.2.1/README.md b/tbprofiler/6.2.1/README.md new file mode 100644 index 000000000..80dae452a --- /dev/null +++ b/tbprofiler/6.2.1/README.md @@ -0,0 +1,58 @@ +# TBProfiler Container + +Main tool: [TBProfiler](https://github.com/jodyphelan/TBProfiler) + +The pipeline aligns reads to the H37Rv reference using bowtie2, BWA or minimap2 and then calls variants using bcftools. These variants are then compared to a drug-resistance database. It also predicts the number of reads supporting drug resistance variants as an insight into hetero-resistance. + +## Database + +This tool relies on a database to run. The version (AKA git commit hash) of the database that is included in the docker image is `c2fb9a2`. This is from the GitHub repository https://github.com/jodyphelan/tbdb. This can be confirmed in the json file: `/opt/conda/share/tbprofiler/tbdb.version.json`: + +```bash +$ grep 'commit' /opt/conda/share/tbprofiler/tbdb.version.json +{"name": "tbdb", "commit": "5f3c51e", "Merge": "b1a2549 abddb8e", "Author": "Jody Phelan ", "Date": "Thu Jan 19 10:47:32 2023 +0000"} +``` + +Additionally you can run the command `tb-profiler list_db` to list the same information + +```bash +$ tb-profiler list_db +tbdb 5f3c51e Jody Phelan Thu Jan 19 10:47:32 2023 +0000 /opt/conda/share/tbprofiler/tbdb +``` + +## Additional included tools/dependencies + +- bedtools 2.30.0 +- gatk4 4.3.0.0 +- kmc 3.2.1 +- pathogen-profiler 2.0.4 +- perl 5.32.1 +- python 3.9.9 +- trimmomatic 0.39 +- bwa 0.7.17 +- minimap2 2.16 +- samtools 1.12 +- bcftools 1.12 +- freebayes 1.3.5 +- tqdm 4.32.2 +- parallel v20190522 +- samclip 0.4.0 +- snpeff 5.1 + +## Example Usage + +Run whole pipeline on Illumina paired-end reads: + +```bash +tb-profiler profile -1 ERR1664619_1.fastq.gz -2 ERR1664619_2.fastq.gz -t 4 -p ERR1664619 --txt +``` + +Make alternative database: + +```bash +tb-profiler create_db --prefix +tb-profiler load_library --prefix +``` + +## Updates +Release 5.0.1 implemented sqlite3 database locking with https://py-filelock.readthedocs.io/en/latest/index.html. This should fix issues using it over network filing systems (NFS). For more information, official documentation can be found [here.](https://jodyphelan.gitbook.io/tb-profiler/) From 10ea853b607ac31d30943424388fd4ca4312fab0 Mon Sep 17 00:00:00 2001 From: Sage Wright Date: Fri, 10 May 2024 19:18:27 +0000 Subject: [PATCH 2/5] update readme to show current database hash --- tbprofiler/6.2.1/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tbprofiler/6.2.1/README.md b/tbprofiler/6.2.1/README.md index 80dae452a..5db19ecd8 100644 --- a/tbprofiler/6.2.1/README.md +++ b/tbprofiler/6.2.1/README.md @@ -6,7 +6,7 @@ The pipeline aligns reads to the H37Rv reference using bowtie2, BWA or minimap2 ## Database -This tool relies on a database to run. The version (AKA git commit hash) of the database that is included in the docker image is `c2fb9a2`. This is from the GitHub repository https://github.com/jodyphelan/tbdb. This can be confirmed in the json file: `/opt/conda/share/tbprofiler/tbdb.version.json`: +This tool relies on a database to run. The version (AKA git commit hash) of the database that is included in the docker image is `97b5876`. This is from the GitHub repository https://github.com/jodyphelan/tbdb. This can be confirmed in the json file: `/opt/conda/share/tbprofiler/tbdb.version.json`: ```bash $ grep 'commit' /opt/conda/share/tbprofiler/tbdb.version.json @@ -25,7 +25,7 @@ tbdb 5f3c51e Jody Phelan Thu Jan 19 10:47:32 2023 - bedtools 2.30.0 - gatk4 4.3.0.0 - kmc 3.2.1 -- pathogen-profiler 2.0.4 +- pathogen-profiler 4.2.0 - perl 5.32.1 - python 3.9.9 - trimmomatic 0.39 From b6e632dfc8e2725273e75ceb93b0813bc994d4b2 Mon Sep 17 00:00:00 2001 From: Sage Wright Date: Fri, 10 May 2024 19:26:54 +0000 Subject: [PATCH 3/5] new keybarod, can't sepll --- README.md | 2 +- tbprofiler/6.2.1/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0343a92e2..6d3ebfb66 100644 --- a/README.md +++ b/README.md @@ -277,7 +277,7 @@ To learn more about the docker pull rate limits and the open source software pro | [SRST2](https://hub.docker.com/r/staphb/srst2/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/srst2)](https://hub.docker.com/r/staphb/srst2) |
  • 0.2.0
  • [0.2.0 + custom Vibrio cholerae database](srst2/0.2.0-vibrio-230224/README.md)
| https://github.com/katholt/srst2 | | [Staramr](https://hub.docker.com/r/staphb/staramr/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/staramr)](https://hub.docker.com/r/staphb/staramr) |
  • [0.5.1](./staramr/0.5.1/)
  • [0.7.1](./staramr/0.7.1/)
  • [0.8.0](./staramr/0.8.0/)
  • [0.10.0](./staramr/0.10.0/)
| https://github.com/phac-nml/staramr | | [sylph](https://hub.docker.com/r/staphb/sylph)
[![docker pulls](https://badgen.net/docker/pulls/staphb/sylph)](https://hub.docker.com/r/staphb/sylph) |
  • [0.4.1](./sylph/0.4.1)
  • [0.5.1](./sylph/0.5.1)
  • [0.6.0](./sylph/0.6.0)
| https://github.com/bluenote-1577/sylph | -| [TBProfiler](https://hub.docker.com/r/staphb/tbprofiler/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/tbprofiler)](https://hub.docker.com/r/staphb/tbprofiler) |
  • [4.3.0](./tbprofiler/4.3.0/)
  • [4.4.0](./tbprofiler/4.4.0/)
  • [4.4.2](./tbprofiler/4.4.2/)
  • [5.0.1](tbprofiler/5.0.1/)
  • [6.2.0](tbprofiler/6.2.0/)
| https://github.com/jodyphelan/TBProfiler | +| [TBProfiler](https://hub.docker.com/r/staphb/tbprofiler/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/tbprofiler)](https://hub.docker.com/r/staphb/tbprofiler) |
  • [4.3.0](./tbprofiler/4.3.0/)
  • [4.4.0](./tbprofiler/4.4.0/)
  • [4.4.2](./tbprofiler/4.4.2/)
  • [5.0.1](tbprofiler/5.0.1/)
  • [6.2.0](tbprofiler/6.2.0/)
  • [6.2.1](tbprofiler/6.2.1/)
| https://github.com/jodyphelan/TBProfiler | | [TipToft](https://hub.docker.com/r/staphb/tiptoft/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/tiptoft)](https://hub.docker.com/r/staphb/tiptoft) |
  • 1.0.0
  • 1.0.2
| https://github.com/andrewjpage/tiptoft | | [Tostadas](https://hub.docker.com/r/staphb/tostadas/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/tostadas)](https://hub.docker.com/r/staphb/tostadas) |
  • [0.2.0-beta](./tostadas/0.2.0-beta/)
  • [3.1.0](./tostadas/3.1.0/)
| https://github.com/CDCgov/tostadas | | [Treemmer](https://hub.docker.com/r/staphb/treemmer/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/treemmer)](https://hub.docker.com/r/staphb/treemmer) |
  • 0.3
| https://git.scicore.unibas.ch/TBRU/Treemmer (archived, moved to GitHub)
https://github.com/fmenardo/Treemmer | diff --git a/tbprofiler/6.2.1/Dockerfile b/tbprofiler/6.2.1/Dockerfile index 64e02145d..c424ee3ca 100644 --- a/tbprofiler/6.2.1/Dockerfile +++ b/tbprofiler/6.2.1/Dockerfile @@ -3,7 +3,7 @@ FROM mambaorg/micromamba:1.5.8 as app USER root WORKDIR / -ARG TBPROFILER_VER="6.2.`" +ARG TBPROFILER_VER="6.2.1" # this version is the shortened commit hash on the `master` branch here https://github.com/jodyphelan/tbdb/ # commits are found on https://github.com/jodyphelan/tbdb/commits/master From 8c113e2ba2a96a80326876f28c1df09d276beb58 Mon Sep 17 00:00:00 2001 From: Sage Wright Date: Tue, 28 May 2024 17:07:11 +0000 Subject: [PATCH 4/5] update readme --- tbprofiler/6.2.1/README.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tbprofiler/6.2.1/README.md b/tbprofiler/6.2.1/README.md index 5db19ecd8..ff8fc5938 100644 --- a/tbprofiler/6.2.1/README.md +++ b/tbprofiler/6.2.1/README.md @@ -17,27 +17,27 @@ Additionally you can run the command `tb-profiler list_db` to list the same info ```bash $ tb-profiler list_db -tbdb 5f3c51e Jody Phelan Thu Jan 19 10:47:32 2023 +0000 /opt/conda/share/tbprofiler/tbdb +tbdb 97b5876 Jody Phelan Wed May 8 13:53:15 2024 +0100 /opt/conda/share/tbprofiler/tbdb ``` ## Additional included tools/dependencies -- bedtools 2.30.0 -- gatk4 4.3.0.0 -- kmc 3.2.1 +- bedtools 2.31.1 +- gatk4 4.5.0.0 +- kmc 3.2.4 - pathogen-profiler 4.2.0 - perl 5.32.1 -- python 3.9.9 +- python 3.10.14 - trimmomatic 0.39 -- bwa 0.7.17 -- minimap2 2.16 -- samtools 1.12 -- bcftools 1.12 -- freebayes 1.3.5 -- tqdm 4.32.2 -- parallel v20190522 +- bwa 0.7.18 +- minimap2 2.28 +- samtools 1.20 +- bcftools 1.20 +- freebayes 1.3.6 +- tqdm 4.66.4 +- parallel 20240522 - samclip 0.4.0 -- snpeff 5.1 +- snpeff 5.2 ## Example Usage From 1fbf2337938a0a48a95dacbaf2ed6519ecdd70ec Mon Sep 17 00:00:00 2001 From: Sage Wright <40403716+sage-wright@users.noreply.github.com> Date: Wed, 29 May 2024 13:06:02 -0400 Subject: [PATCH 5/5] add myself to maintainer list --- tbprofiler/6.2.1/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tbprofiler/6.2.1/Dockerfile b/tbprofiler/6.2.1/Dockerfile index c424ee3ca..61411962b 100644 --- a/tbprofiler/6.2.1/Dockerfile +++ b/tbprofiler/6.2.1/Dockerfile @@ -22,6 +22,8 @@ LABEL maintainer="John Arnn" LABEL maintainer.email="jarnn@utah.gov" LABEL maintainer2="Curtis Kapsak" LABEL maintainer2.email="kapsakcj@gmail.com" +LABEL maintainer3="Sage Wright" +LABEL maintainer3.email="sagemwright@gmail.com" # Install dependencies via apt-get; cleanup apt garbage RUN apt-get update && apt-get install -y --no-install-recommends \