diff --git a/Program_Licenses.md b/Program_Licenses.md index 66fdb4c9e..aa7180ed6 100644 --- a/Program_Licenses.md +++ b/Program_Licenses.md @@ -151,6 +151,7 @@ The licenses of the open-source software that is contained in these Docker image | SalmID| MIT | https://github.com/hcdenbakker/SalmID/blob/master/LICENSE | | samclip | GNU GPLv3 | https://github.com/tseemann/samclip/blob/master/LICENSE | | Samtools | GNU GPLv3 | https://github.com/samtools/samtools/blob/develop/LICENSE | +| SeqFu | GNU GPLv3 | https://github.com/telatin/seqfu2 | | SeqKit | MIT | https://github.com/shenwei356/seqkit/blob/master/LICENSE | SeqSero | GNU GPLv2 | https://github.com/denglab/SeqSero/blob/master/LICENSE | | SeqSero2 | GNU GPLv2 | https://github.com/denglab/SeqSero2/blob/master/LICENSE | diff --git a/README.md b/README.md index 664e4fa52..75b9cf911 100644 --- a/README.md +++ b/README.md @@ -257,6 +257,7 @@ To learn more about the docker pull rate limits and the open source software pro | [SalmID](https://hub.docker.com/r/staphb/salmid)
[![docker pulls](https://badgen.net/docker/pulls/staphb/salmid)](https://hub.docker.com/r/staphb/salmid) | | https://github.com/hcdenbakker/SalmID | | [samclip](https://hub.docker.com/r/staphb/samclip)
[![docker pulls](https://badgen.net/docker/pulls/staphb/samclip)](https://hub.docker.com/r/staphb/samclip) | | https://github.com/tseemann/samclip | | [Samtools](https://hub.docker.com/r/staphb/samtools)
[![docker pulls](https://badgen.net/docker/pulls/staphb/samtools)](https://hub.docker.com/r/staphb/samtools) | | https://github.com/samtools/samtools | +| [SeqFu](https://hub.docker.com/r/staphb/SeqFu)
[![docker pulls](https://badgen.net/docker/pulls/staphb/seqfu)](https://hub.docker.com/r/staphb/seqfu) | | https://github.com/telatin/seqfu2 | | [SeqKit](https://hub.docker.com/r/staphb/SeqKit)
[![docker pulls](https://badgen.net/docker/pulls/staphb/seqkit)](https://hub.docker.com/r/staphb/seqkit) | | https://github.com/shenwei356/seqkit | | [SeqSero](https://hub.docker.com/r/staphb/seqsero/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/seqsero)](https://hub.docker.com/r/staphb/seqsero) | | https://github.com/denglab/SeqSero | | [SeqSero2](https://hub.docker.com/r/staphb/seqsero2/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/seqsero2)](https://hub.docker.com/r/staphb/seqsero2) | | https://github.com/denglab/SeqSero2/ | diff --git a/seqfu/1.20.3/Dockerfile b/seqfu/1.20.3/Dockerfile new file mode 100644 index 000000000..06a56b5d7 --- /dev/null +++ b/seqfu/1.20.3/Dockerfile @@ -0,0 +1,90 @@ +# Set global variables +ARG SEQFU_VER="1.20.3" +ARG NIM_VER="1.22.2" + +# Stage 1: Build Dockerfile +FROM ubuntu:focal AS builder +ARG SEQFU_VER + +# Set non-interactive frontend and update PATH +ENV DEBIAN_FRONTEND=noninteractive \ + PATH="/root/.nimble/bin:${PATH}" + +# Install required dependencies +RUN apt-get update && apt-get install -y --no-install-recommends \ + wget \ + unzip \ + build-essential \ + zlib1g-dev \ + curl \ + python3 \ + python3-pip \ + git \ + ca-certificates && \ + rm -rf /var/lib/apt/lists/* + +# Set the working directory +WORKDIR /root + +# Install Nim and SeqFu +RUN curl https://nim-lang.org/choosenim/init.sh -sSf | sh -s -- -y --ver ${NIM_VER} + +# Install SeqFu +RUN wget https://github.com/telatin/seqfu2/archive/refs/tags/v${SEQFU_VER}.tar.gz && \ + tar -xzf v${SEQFU_VER}.tar.gz && \ + rm v${SEQFU_VER}.tar.gz && \ + cd seqfu2-${SEQFU_VER} && \ + make + +# Stage 2: Create the final image +FROM ubuntu:focal AS app +ARG SEQFU_VER + +# Metadata +LABEL base.image="ubuntu:focal" +LABEL dockerfile.version="1" +LABEL software="SeqFu" +LABEL software.version="${SEQFU_VER}" +LABEL description="A general-purpose program to manipulate and parse information from FASTA/FASTQ files, supporting gzipped input files." +LABEL website="https://github.com/telatin/seqfu2" +LABEL license.url="https://github.com/telatin/seqfu2?tab=GPL-3.0-1-ov-file#readme" +LABEL maintainer="Taylor K. Paisie" +LABEL maintainer.email="ltj8@cdc.gov" + +# Copy the necessary files from the builder +COPY --from=builder /root/seqfu2-${SEQFU_VER}/bin /usr/local/bin + +# Install minimal runtime dependencies +# curl is used in checking for the versions of dependencies +RUN apt-get update && apt-get install -y --no-install-recommends \ + curl \ + ca-certificates \ + wget && \ + apt-get autoclean && rm -rf /var/lib/apt/lists/* + +ENV LC_ALL=C + +CMD seqfu --help + +# Stage 3: testing the installation +FROM app AS test + +ARG SEQFU_VER + +# Verify installation +RUN seqfu --version && seqfu --help + +WORKDIR /test + +# using dev supplied tests +COPY --from=builder /root/seqfu2-${SEQFU_VER} /test + +# skipping test-check.sh because it throws an error on dev-supplied fastq files +RUN mv test/test-check.sh test/test-check.sh_skip && \ + bash test/mini.sh + +# testing on user-supplied files +RUN wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_1.fastq.gz && \ + wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_2.fastq.gz && \ + seqfu check SRR13957123_1.fastq.gz SRR13957123_2.fastq.gz > seqfu_check_test.txt && \ + seqfu count -f SRR13957123_1.fastq.gz -r SRR13957123_2.fastq.gz > seqfu_count_test.txt diff --git a/seqfu/1.20.3/README.md b/seqfu/1.20.3/README.md new file mode 100644 index 000000000..e8e7fbbb5 --- /dev/null +++ b/seqfu/1.20.3/README.md @@ -0,0 +1,52 @@ +# SeqFu + +Main tool: [SeqFu](https://github.com/telatin/seqfu2) + +Code repository: https://github.com/telatin/seqfu2 + +Basic information on how to use this tool: +- executable: | +``` + · count [cnt] : count FASTA/FASTQ reads, pair-end aware + · deinterleave [dei] : deinterleave FASTQ + · derep [der] : feature-rich dereplication of FASTA/FASTQ files + · interleave [ilv] : interleave FASTQ pair ends + · lanes [mrl] : merge Illumina lanes + · list [lst] : print sequences from a list of names + · metadata [met] : print a table of FASTQ reads (mapping files) + · sort [srt] : sort sequences by size (uniques) + · stats [st] : statistics on sequence lengths + + · cat : concatenate FASTA/FASTQ files + · grep : select sequences with patterns + · head : print first sequences + · rc : reverse complement strings or files + · tab : tabulate reads to TSV (and viceversa) + · tail : view last sequences + · view : view sequences with colored quality and oligo matches +``` + +- help: `seqfu --help` +- version: `seqfu --version` +- description: | +> A general-purpose program to manipulate and parse information from FASTA/FASTQ files, supporting gzipped input files. + + +Full documentation: https://telatin.github.io/seqfu2/ + + +# Testing SeqFU analysis +``` +wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_1.fastq.gz + +wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_2.fastq.gz + +seqfu check \ + SRR13957123_1.fastq.gz \ + SRR13957123_2.fastq.gz + +seqfu count \ + -f SRR13957123_1.fastq.gz \ + -r SRR13957123_2.fastq.gz +``` +