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

adds SeqFu #1047

Merged
merged 25 commits into from
Oct 4, 2024
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d8de6ac
Create main.yml
taylorpaisie Feb 22, 2024
d345f7a
adding my seqfu docker container to branch
taylorpaisie Sep 11, 2024
91f0366
editing seqfu readme
taylorpaisie Sep 11, 2024
fdf1a33
updated seqfu readme
taylorpaisie Sep 11, 2024
d0f59ae
removed extra 1.20.3 seqfu dir in wrong spot
taylorpaisie Sep 11, 2024
1f8ce15
restored files for seqfu
taylorpaisie Sep 11, 2024
9ea00af
cleaning up dockerfile
taylorpaisie Sep 11, 2024
d06fe74
updated readme and program licenses with seqfu
taylorpaisie Sep 11, 2024
a042be4
Merge branch 'master' into tkp-seqfu
erinyoung Sep 12, 2024
ecbc8b8
Update README.md
erinyoung Sep 12, 2024
d42f0e8
removed main.yml and edited dockerfile to removing test data from seq…
taylorpaisie Sep 14, 2024
03040ca
Merge branch 'tkp-seqfu' of github.com:taylorpaisie/docker-builds int…
taylorpaisie Sep 14, 2024
7996814
cleaning and fixing up seqfu dockerfile
taylorpaisie Sep 30, 2024
df9da92
cleaning up seqfu dockerfile
taylorpaisie Sep 30, 2024
a85d15d
adding tests data for seqfu in dockerfile
taylorpaisie Oct 2, 2024
1832275
updating test data in seqfu dockerfile
taylorpaisie Oct 2, 2024
8d84645
updating seqfu tests in dockerfile
taylorpaisie Oct 2, 2024
1581984
fixing seqfu dockerfile labels for staph-b template
taylorpaisie Oct 2, 2024
d982925
making edits to seqfu test in dockerfile
taylorpaisie Oct 2, 2024
a63df03
updating seqfu docker container readme
taylorpaisie Oct 2, 2024
43978a7
cleaning up seqfu dockerfile
taylorpaisie Oct 2, 2024
6f0ef56
Moving labels to app stage from builder
erinyoung Oct 4, 2024
ecd7ea9
Add CMD layer and more tests
erinyoung Oct 4, 2024
62e2ec0
add curl to apt-get layer
erinyoung Oct 4, 2024
cc9f01e
Update Dockerfile
erinyoung Oct 4, 2024
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
1 change: 1 addition & 0 deletions Program_Licenses.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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) <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
71 changes: 71 additions & 0 deletions seqfu/1.20.3/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Set global variables
ARG SEQFU_VER="1.20.3"

# Stage 1: Build Dockerfile
FROM ubuntu:focal AS builder
ARG SEQFU_VER

# Metadata
LABEL base.image="ubuntu:focal" \
dockerfile.version="1" \
software="SeqFu" \
software.version="${SEQFU_VER}" \
description="A general-purpose program to manipulate and parse information from FASTA/FASTQ files, supporting gzipped input files." \
website="https://github.com/telatin/seqfu2" \
license.url="https://github.com/telatin/seqfu2?tab=GPL-3.0-1-ov-file#readme" \
maintainer="Taylor K. Paisie" \
maintainer.email="[email protected]"

# 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 1.22.2 && \
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

# Copy the built binary to a location in the PATH
RUN ls -l /root/seqfu2-${SEQFU_VER}/bin && \
cp -R /root/seqfu2-${SEQFU_VER}/bin/* /usr/local/bin/ && \
chmod +x /usr/local/bin/seqfu

# Stage 2: Create the final image
FROM ubuntu:focal AS app
ARG SEQFU_VER

# Copy the necessary files from the builder
COPY --from=builder /usr/local/bin /usr/local/bin

# Install minimal runtime dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
wget && \
rm -rf /var/lib/apt/lists/*

# Set working directory
WORKDIR /data

# Verify installation
RUN ls -l /usr/local/bin && \
seqfu --version && seqfu --help

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is looking great!

If you're looking for assistance with creating tests, seqtk uses some fastq files from this repository in its tests

I imagine for seqfu it'd be someting like

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 count -f SRR13957123_1.fastq.gz -r SRR13957123_2.fastq.gz

SeqFu also looks like it comes with its own tests and files which may be useful.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, so i originally had all the test files in the container but you mentioned it wasn't necessary, so maybe i'll just put in the seqfu test fastq files you suggested in the comment for the seqfu test in the dockerfile. Also thank you for your help and suggestions!!!

46 changes: 46 additions & 0 deletions seqfu/1.20.3/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# 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
```
seqfu check \
--deep \
--verbose \
/root/seqfu2-1.20.3/data/tests/sample1_R1.fq \
/root/seqfu2-1.20.3/data/tests/sample1_R2.fq
```

Loading