Skip to content

Commit

Permalink
Merge pull request #1047 from taylorpaisie/tkp-seqfu
Browse files Browse the repository at this point in the history
adds SeqFu
  • Loading branch information
erinyoung authored Oct 4, 2024
2 parents 4fb98cb + cc9f01e commit f0017b6
Show file tree
Hide file tree
Showing 4 changed files with 144 additions and 0 deletions.
1 change: 1 addition & 0 deletions Program_Licenses.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,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 |
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,7 @@ To learn more about the docker pull rate limits and the open source software pro
| [SalmID](https://hub.docker.com/r/staphb/salmid) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/salmid)](https://hub.docker.com/r/staphb/salmid) | <ul><li>0.1.23</li></ul> | https://github.com/hcdenbakker/SalmID |
| [samclip](https://hub.docker.com/r/staphb/samclip) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/samclip)](https://hub.docker.com/r/staphb/samclip) | <ul><li>[0.4.0](./samclip/0.4.0/)</li></ul>| https://github.com/tseemann/samclip |
| [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><li>[1.20](./samtools/1.20/)</li><li>[1.20.c](./samtools/1.20.c/)</li></ul> | https://github.com/samtools/samtools |
| [SeqFu](https://hub.docker.com/r/staphb/SeqFu) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/seqfu)](https://hub.docker.com/r/staphb/seqfu) | <ul><li>[1.20.3](./seqfu/1.20.3/)</li></ul> | https://github.com/telatin/seqfu2 |
| [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><li>[2.8.2](./seqkit/2.8.2/)</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](./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/ |
Expand Down
90 changes: 90 additions & 0 deletions seqfu/1.20.3/Dockerfile
Original file line number Diff line number Diff line change
@@ -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="[email protected]"

# 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
52 changes: 52 additions & 0 deletions seqfu/1.20.3/README.md
Original file line number Diff line number Diff line change
@@ -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
```

0 comments on commit f0017b6

Please sign in to comment.