-
Notifications
You must be signed in to change notification settings - Fork 125
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #974 from sage-wright/master
add tbprofiler version 6.2.1
- Loading branch information
Showing
3 changed files
with
128 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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="[email protected]" | ||
LABEL maintainer2="Curtis Kapsak" | ||
LABEL maintainer2.email="[email protected]" | ||
LABEL maintainer3="Sage Wright" | ||
LABEL maintainer3.email="[email protected]" | ||
|
||
# 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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/) |