Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add tbprofiler version 6.2.1 #974

Merged
merged 7 commits into from
May 29, 2024
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/srst2)](https://hub.docker.com/r/staphb/srst2) | <ul><li>0.2.0</li><li>[0.2.0 + custom Vibrio cholerae database](srst2/0.2.0-vibrio-230224/README.md)</li></ul> | https://github.com/katholt/srst2 |
| [Staramr](https://hub.docker.com/r/staphb/staramr/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/staramr)](https://hub.docker.com/r/staphb/staramr) | <ul><li>[0.5.1](./staramr/0.5.1/)</li><li>[0.7.1](./staramr/0.7.1/)</li><li>[0.8.0](./staramr/0.8.0/)</li><li>[0.10.0](./staramr/0.10.0/)</li></ul> | https://github.com/phac-nml/staramr |
| [sylph](https://hub.docker.com/r/staphb/sylph) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/sylph)](https://hub.docker.com/r/staphb/sylph) | <ul><li>[0.4.1](./sylph/0.4.1)</li><li>[0.5.1](./sylph/0.5.1)</li><li>[0.6.0](./sylph/0.6.0)</li><li>[0.6.1](./sylph/0.6.1)</li></ul> | https://github.com/bluenote-1577/sylph |
| [TBProfiler](https://hub.docker.com/r/staphb/tbprofiler/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/tbprofiler)](https://hub.docker.com/r/staphb/tbprofiler) | <ul><li>[4.3.0](./tbprofiler/4.3.0/)</li><li>[4.4.0](./tbprofiler/4.4.0/)</li><li>[4.4.2](./tbprofiler/4.4.2/)</li><li>[5.0.1](tbprofiler/5.0.1/)</li><li>[6.2.0](tbprofiler/6.2.0/)</li></ul> | https://github.com/jodyphelan/TBProfiler |
| [TBProfiler](https://hub.docker.com/r/staphb/tbprofiler/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/tbprofiler)](https://hub.docker.com/r/staphb/tbprofiler) | <ul><li>[4.3.0](./tbprofiler/4.3.0/)</li><li>[4.4.0](./tbprofiler/4.4.0/)</li><li>[4.4.2](./tbprofiler/4.4.2/)</li><li>[5.0.1](tbprofiler/5.0.1/)</li><li>[6.2.0](tbprofiler/6.2.0/)</li><li>[6.2.1](tbprofiler/6.2.1/)</li></ul> | https://github.com/jodyphelan/TBProfiler |
| [TipToft](https://hub.docker.com/r/staphb/tiptoft/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/tiptoft)](https://hub.docker.com/r/staphb/tiptoft) | <ul><li>1.0.0</li><li>1.0.2</li></ul> | https://github.com/andrewjpage/tiptoft |
| [Tostadas](https://hub.docker.com/r/staphb/tostadas/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/tostadas)](https://hub.docker.com/r/staphb/tostadas) | <ul><li>[0.2.0-beta](./tostadas/0.2.0-beta/)</li><li>[3.1.0](./tostadas/3.1.0/)</li></ul> | https://github.com/CDCgov/tostadas |
| [Treemmer](https://hub.docker.com/r/staphb/treemmer/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/treemmer)](https://hub.docker.com/r/staphb/treemmer) | <ul><li>0.3</li></ul> | https://git.scicore.unibas.ch/TBRU/Treemmer (archived, moved to GitHub) </br> https://github.com/fmenardo/Treemmer |
Expand Down
67 changes: 67 additions & 0 deletions tbprofiler/6.2.1/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
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="[email protected]"
LABEL maintainer2="Curtis Kapsak"
LABEL maintainer2.email="[email protected]"
sage-wright marked this conversation as resolved.
Show resolved Hide resolved

# 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
58 changes: 58 additions & 0 deletions tbprofiler/6.2.1/README.md
Original file line number Diff line number Diff line change
@@ -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 <[email protected]>", "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 <[email protected]> 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 <new_library_name>
tb-profiler load_library --prefix <new_library_name>
```

## 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/)