Skip to content

Commit

Permalink
added seqsero2 version 1.3.1 (#956)
Browse files Browse the repository at this point in the history
* added seqsero2 version 1.3.1

* added maintainer

* added line to delete samtools source code to save space; edited comment for setting PATH

---------

Co-authored-by: kapsakcj <[email protected]>
  • Loading branch information
erinyoung and kapsakcj authored Apr 12, 2024
1 parent 554f36e commit 50b9174
Show file tree
Hide file tree
Showing 3 changed files with 197 additions and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ To learn more about the docker pull rate limits and the open source software pro
| [Samtools](https://hub.docker.com/r/staphb/samtools) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/samtools)](https://hub.docker.com/r/staphb/samtools) | <ul><li>[1.9](./samtools/1.9/)</li><li>[1.10](./samtools/1.10/)</li><li>[1.11](./samtools/1.11/)</li><li>[1.12](./samtools/1.12/)</li><li>[1.13](./samtools/1.13/)</li><li>[1.14](./samtools/1.14/)</li><li>[1.15](./samtools/1.15/)</li><li>[1.16](./samtools/1.16/)</li><li>[1.16.1](./samtools/1.16.1/)</li><li>[1.17](./samtools/1.17/)</li><li>[1.17-2023-06](./samtools/1.17-2023-06/)</li><li>[1.18](./samtools/1.18/)</li><li>[1.19](./samtools/1.19/)</li></ul> | https://github.com/samtools/samtools |
| [SeqKit](https://hub.docker.com/r/staphb/SeqKit) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/seqkit)](https://hub.docker.com/r/staphb/seqkit) | <ul><li>[2.3.1](./seqkit/2.3.1/)</li><li>[2.6.1](./seqkit/2.6.1/)</li><li>[2.7.0](./seqkit/2.7.0/)</li><li>[2.8.0](./seqkit/2.8.0/)</li><li>[2.8.1](./seqkit/2.8.1/)</li></ul> | https://github.com/shenwei356/seqkit |
| [SeqSero](https://hub.docker.com/r/staphb/seqsero/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/seqsero)](https://hub.docker.com/r/staphb/seqsero) | <ul><li>1.0.1</li></ul> | https://github.com/denglab/SeqSero |
| [SeqSero2](https://hub.docker.com/r/staphb/seqsero2/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/seqsero2)](https://hub.docker.com/r/staphb/seqsero2) | <ul><li>0.1.0</li><li>1.0.0</li><li>1.0.2</li><li>1.1.0</li><li>1.1.1</li><li>1.2.1</li></ul> | https://github.com/denglab/SeqSero2/ |
| [SeqSero2](https://hub.docker.com/r/staphb/seqsero2/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/seqsero2)](https://hub.docker.com/r/staphb/seqsero2) | <ul><li>[0.1.0](./seqsero2/0.1.0/)</li><li>[1.0.0](./seqsero2/1.0.0/)</li><li>[1.0.2](./seqsero2/1.0.2/)</li><li>[1.1.0](./seqsero2/1.1.0/)</li><li>[1.1.1](./seqsero2/1.1.1/)</li><li>[1.2.1](./seqsero2/1.2.1/)</li><li>[1.3.1](./seqsero2/1.3.1/)</li></ul> | https://github.com/denglab/SeqSero2/ |
| [seqtk](https://hub.docker.com/r/staphb/seqtk) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/seqtk)](https://hub.docker.com/r/staphb/seqtk) | <ul><li>[1.3](seqtk/1.3/)</li><li>[1.4](seqtk/1.4/)</li></ul> | https://github.com/lh3/seqtk |
| [seqyclean](https://hub.docker.com/r/staphb/seqyclean) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/seqyclean)](https://hub.docker.com/r/staphb/seqyclean) | <ul><li>1.10.09</li></ul> | https://github.com/ibest/seqyclean |
| [Seroba](https://hub.docker.com/r/staphb/seroba) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/seroba)](https://hub.docker.com/r/staphb/seroba) | <ul><li>1.0.0</li><li>1.0.2</li></ul> | https://github.com/sanger-pathogens/seroba |
Expand Down
129 changes: 129 additions & 0 deletions seqsero2/1.3.1/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
FROM ubuntu:bionic as app

# for easy upgrade later. ARG variables only persist during build time
ARG SEQSERO2_VER="1.3.1"
ARG SPADES_VER="3.15.5"
ARG SAMTOOLS_VER="1.8"
ARG SALMID_VER="0.11"

# Metadata
LABEL base.image="ubuntu:bionic"
LABEL dockerfile.version="1"
LABEL software="SeqSero2"
LABEL software.version="${SEQSERO2_VER}"
LABEL description="Salmonella serotyping from genome sequencing data"
LABEL website="https://github.com/denglab/SeqSero2"
LABEL license="https://github.com/denglab/SeqSero2/blob/master/LICENSE"
LABEL maintainer="Erin Young"
LABEL maintainer.email="[email protected]"
LABEL maintainer1="Jake Garfin"
LABEL maintainer1.email="[email protected]"
LABEL maintainer2="Curtis Kapsak"
LABEL maintainer2.email="[email protected]"
LABEL maintainer3="Kelsey Florek"
LABEL maintainer3.email="[email protected]"

# python = 2.7.17
# python3 = 3.6.9
# biopython = 1.73
# bedtools = 2.26.0
# sra-toolkit = 2.8.2
# bwa = 0.7.17
# ncbi-blast+ = 2.6.0
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 \
python3-pip \
python3-setuptools \
bwa \
ncbi-blast+ \
sra-toolkit \
bedtools \
wget \
ca-certificates \
unzip \
zlib1g-dev \
libbz2-dev \
liblzma-dev \
build-essential \
libncurses5-dev && \
rm -rf /var/lib/apt/lists/* && apt-get autoclean

# Install samtools
RUN wget -q https://github.com/samtools/samtools/releases/download/${SAMTOOLS_VER}/samtools-${SAMTOOLS_VER}.tar.bz2 && \
tar -xjf samtools-${SAMTOOLS_VER}.tar.bz2 && \
rm -v samtools-${SAMTOOLS_VER}.tar.bz2 && \
cd samtools-${SAMTOOLS_VER} && \
./configure && \
make && \
make install && \
cd / && \
rm -rfv /samtools-${SAMTOOLS_VER}

# Install salmID
RUN wget -q https://github.com/hcdenbakker/SalmID/archive/${SALMID_VER}.tar.gz && \
tar -xzf ${SALMID_VER}.tar.gz && \
rm -rvf ${SALMID_VER}.tar.gz

# install SPAdes binary
RUN wget -q https://github.com/ablab/spades/releases/download/v${SPADES_VER}/SPAdes-${SPADES_VER}-Linux.tar.gz && \
tar -xzf SPAdes-${SPADES_VER}-Linux.tar.gz && \
rm -r SPAdes-${SPADES_VER}-Linux.tar.gz

# Install SeqSero2; make /data
RUN wget -q https://github.com/denglab/SeqSero2/archive/v${SEQSERO2_VER}.tar.gz && \
tar -xzf v${SEQSERO2_VER}.tar.gz && \
rm -vrf v${SEQSERO2_VER}.tar.gz && \
cd /SeqSero2-${SEQSERO2_VER}/ && \
python3 -m pip install . && \
mkdir /data

# set PATH for manually installed tools. SeqSero2 placed in PATH already with "pip install" cmd
ENV PATH="${PATH}:/SPAdes-${SPADES_VER}-Linux/bin:/SalmID-${SALMID_VER}:/samtools-${SAMTOOLS_VER}" \
LC_ALL=C

CMD SeqSero2_package.py --help

WORKDIR /data

FROM app as test

WORKDIR /test

# install ncbi datasets tool (pre-compiled binary); place in $PATH
RUN wget -q https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/LATEST/linux-amd64/datasets && \
chmod +x datasets && \
mv -v datasets /usr/local/bin

# download an example assembly; test with SeqSero2
# Salmonella enterica serovar Infantis genome: https://www.ncbi.nlm.nih.gov/data-hub/genome/GCA_007765495.1/
# BioSample:SAMN07684583
ARG GENBANK_ACCESSION="GCA_007765495.1"
RUN datasets download genome accession ${GENBANK_ACCESSION} --filename ${GENBANK_ACCESSION}.zip && \
mkdir -v ${GENBANK_ACCESSION}-download && \
unzip ${GENBANK_ACCESSION}.zip -d ${GENBANK_ACCESSION}-download && \
rm ${GENBANK_ACCESSION}.zip && \
mv -v ${GENBANK_ACCESSION}-download/ncbi_dataset/data/${GENBANK_ACCESSION}/${GENBANK_ACCESSION}*.fna ${GENBANK_ACCESSION}-download/ncbi_dataset/data/${GENBANK_ACCESSION}/${GENBANK_ACCESSION}.genomic.fna && \
SeqSero2_package.py \
-i ${GENBANK_ACCESSION}-download/ncbi_dataset/data/${GENBANK_ACCESSION}/${GENBANK_ACCESSION}.genomic.fna \
-t 4 \
-m k \
-d ${GENBANK_ACCESSION}-seqsero2-assembly-kmer-mode \
-n ${GENBANK_ACCESSION} \
-p 2 && \
grep 'Infantis' ${GENBANK_ACCESSION}-seqsero2-assembly-kmer-mode/SeqSero_result.txt

# testing reads as input for the same Salmonella isolate
# specifically the "allele" mode which does micro assembly first using SPAdes
RUN wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR608/003/SRR6082043/SRR6082043_1.fastq.gz && \
wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR608/003/SRR6082043/SRR6082043_2.fastq.gz && \
SeqSero2_package.py \
-i SRR6082043_1.fastq.gz SRR6082043_2.fastq.gz \
-t 2 \
-m a \
-d SRR6082043-seqsero2-reads-allele-mode \
-n SRR6082043 \
-p 2 && \
grep 'Infantis' SRR6082043-seqsero2-reads-allele-mode/SeqSero_result.txt

# print help options, check dependencies, print version
RUN SeqSero2_package.py --help && SeqSero2_package.py --check && SeqSero2_package.py --version
67 changes: 67 additions & 0 deletions seqsero2/1.3.1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# SeqSero2 docker image

> SeqSero2: Salmonella enterica serotype prediction from genome sequencing data
Main tool : [SeqSero2](https://github.com/denglab/SeqSero2)

Additional tools:

- spades 3.15.5
- ncbi-blast+ 2.6.0
- python 2.7.17
- python3 3.6.9
- biopython 1.73
- samtools 1.8
- bedtools 2.26.0
- SalmID 0.11
- bwa 0.7.17-r1188
- sra-toolkit 2.8.2

## Example Usage

```bash
# paired end Illumina reads as input for allele mode
$ SeqSero2_package.py \
-i SRR6082043_1.fastq.gz SRR6082043_2.fastq.gz \
-t 2 \
-m a \
-d SRR6082043-seqsero2-reads-allele-mode \
-n SRR6082043 \
-p 2
[bam_sort_core] merging from 0 files and 2 in-memory blocks...
building database...
mapping...
check samtools version: 1.9
assembling...
blasting...

Sample name: SRR6082043
Output directory: /test/SRR6082043-seqsero2-reads-allele-mode
Input files: /test/SRR6082043_1.fastq.gz /test/SRR6082043_2.fastq.gz
O antigen prediction: 7
H1 antigen prediction(fliC): r
H2 antigen prediction(fljB): 1,5
Predicted identification: Salmonella enterica subspecies enterica (subspecies I)
Predicted antigenic profile: 7:r:1,5
Predicted serotype: Infantis
Note:

# genome assembly FASTA as input for kmer mode
$ SeqSero2_package.py \
-i GCA_007765495.1.genomic.fna \
-t 4 \
-m k \
-d GCA_007765495.1-seqsero2-assembly-kmer-mode \
-n GCA_007765495.1 \
-p 2
Sample name: GCA_007765495.1
Output directory: /test/GCA_007765495.1-seqsero2-assembly-kmer-mode
Input files: GCA_007765495.1.genomic.fna
O antigen prediction: 7
H1 antigen prediction(fliC): r
H2 antigen prediction(fljB): 1,5
Predicted identification: Salmonella enterica subspecies enterica (subspecies I)
Predicted antigenic profile: 7:r:1,5
Predicted serotype: Infantis
Note:
```

0 comments on commit 50b9174

Please sign in to comment.