diff --git a/README.md b/README.md index eb6b17022..5064cf191 100644 --- a/README.md +++ b/README.md @@ -278,7 +278,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) | | 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) | | 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) | | 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) | | 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) | | 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) | | 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) | | 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) | | 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 new file mode 100644 index 000000000..61411962b --- /dev/null +++ b/tbprofiler/6.2.1/Dockerfile @@ -0,0 +1,69 @@ +FROM mambaorg/micromamba:1.5.8 as app + +USER root +WORKDIR / + +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 +# 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" +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 \ + 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..ff8fc5938 --- /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 `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 +{"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 97b5876 Jody Phelan Wed May 8 13:53:15 2024 +0100 /opt/conda/share/tbprofiler/tbdb +``` + +## Additional included tools/dependencies + +- bedtools 2.31.1 +- gatk4 4.5.0.0 +- kmc 3.2.4 +- pathogen-profiler 4.2.0 +- perl 5.32.1 +- python 3.10.14 +- trimmomatic 0.39 +- 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.2 + +## 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/)