Skip to content

Commit

Permalink
Modify mmseqs2 to use pre-built assets and docker conainers
Browse files Browse the repository at this point in the history
  • Loading branch information
jterstriep committed Jan 27, 2025
1 parent 1d345ea commit ea4a2d5
Show file tree
Hide file tree
Showing 6 changed files with 90 additions and 7 deletions.
23 changes: 23 additions & 0 deletions mmseqs2/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Use Ubuntu Jammy as the base image
FROM ubuntu:jammy

# Define the ARG for the download URL
ARG MMSEQS_URL=https://dev.mmseqs.com/latest/mmseqs-linux-gpu.tar.gz

# Install necessary packages
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
wget \
tar \
&& rm -rf /var/lib/apt/lists/*

# Download and extract the mmseqs-linux-avx2.tar.gz file
RUN wget ${MMSEQS_URL} -O /tmp/mmseqs.tar.gz \
&& tar -xzf /tmp/mmseqs.tar.gz -C /opt \
&& rm /tmp/mmseqs.tar.gz

# Add the mmseqs binary to the PATH
ENV PATH="/opt/mmseqs/bin:${PATH}"

# Default command
CMD ["mmseqs"]
15 changes: 15 additions & 0 deletions mmseqs2/avx2/container.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
docker: jterstriep/mmseqs-linux-avx2
url: https://github.com/soedinglab/MMseqs2
maintainer: "@jterstriep"

description: "MMseqs2 (Many-against-Many sequence searching) is a software suite to search and cluster huge protein and nucleotide sequence sets. MMseqs2 is free and open source software implemented in C++ for Linux, MacOS, and (as beta version, via cygwin) Windows. The software is designed to run on multiple cores and servers and exhibits very good scalability. MMseqs2 can run 10000 times faster than BLAST. At 100 times its speed it achieves almost the same sensitivity. It can perform profile searches with the same sensitivity as PSI-BLAST at over 400 times its speed."


latest:
"17-b804f": sha256:4f9e1e64a4f02a70adf8b12814d360276b970a009d502f55b1fbd2b90182b8e2
tags:
"17-b804f": sha256:4f9e1e64a4f02a70adf8b12814d360276b970a009d502f55b1fbd2b90182b8e2

aliases:
mmseqs: /opt/mmseqs/bin/mmseqs

24 changes: 24 additions & 0 deletions mmseqs2/avx2/mmseqs2.def
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Bootstrap: docker
From: ubuntu:jammy

%post
# Update and install necessary packages
apt-get update && apt-get install -y wget

cd /opt
wget https://dev.mmseqs.com/latest/mmseqs-linux-avx2.tar.gz
tar xzf mmseqs-linux-avx2.tar.gz
rm mmseqs-linux-avx2.tar.gz

%environment
# Set environment variables
export PATH=/opt/mmseqs/bin

%runscript
# Define the default command
/opt/mmseqs2/build/bin/mmseqs "$@"

%labels
Author: Jeff Terstriep
Version: 1.0
Description: Singularity container for MMseqs2 avx2 version (bindary download)
11 changes: 4 additions & 7 deletions mmseqs2/container.yaml → mmseqs2/gpu/container.yaml
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
# fake path for locally built container
path: mmseqs2_gpu.sif
docker: jterstriep/mmseqs-linux-gpu
url: https://github.com/soedinglab/MMseqs2
maintainer: "@jterstriep"

description: "MMseqs2 (Many-against-Many sequence searching) is a software suite to search and cluster huge protein and nucleotide sequence sets. MMseqs2 is free and open source software implemented in C++ for Linux, MacOS, and (as beta version, via cygwin) Windows. The software is designed to run on multiple cores and servers and exhibits very good scalability. MMseqs2 can run 10000 times faster than BLAST. At 100 times its speed it achieves almost the same sensitivity. It can perform profile searches with the same sensitivity as PSI-BLAST at over 400 times its speed."


# fake hashes for locally built container
latest:
"16-747c6": sha256:caae00cea035b1aba1a9a38e39cecf2ecc7f6ba443187204b405302645e7cac1
"17-b804f": sha256:7b2e3e68f3c3fcdf66cb509839ab220abe8c5a67044f97c35a9e3d91bcf07065
tags:
"16-747c6": sha256:caae00cea035b1aba1a9a38e39cecf2ecc7f6ba443187204b405302645e7cac1
"17-b804f": sha256:7b2e3e68f3c3fcdf66cb509839ab220abe8c5a67044f97c35a9e3d91bcf07065

aliases:
mmseqs: /opt/MMseqs2/build/bin/mmseqs
mmseqs_gpu: /opt/MMseqs2/build/bin/mmseqs
mmseqs: /opt/mmseqs/bin/mmseqs

features:
gpu: true
File renamed without changes.
24 changes: 24 additions & 0 deletions mmseqs2/gpu/mmseqs2-gpu.def
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Bootstrap: docker
From: ubuntu:jammy

%post
# Update and install necessary packages
apt-get update && apt-get install -y wget

cd /opt
wget https://dev.mmseqs.com/latest/mmseqs-linux-gpu.tar.gz
tar xzf mmseqs-linux-gpu.tar.gz
rm mmseqs-linux-gpu.tar.gz

%environment
# Set environment variables
export PATH=/opt/mmseqs/bin

%runscript
# Define the default command
/opt/mmseqs2/build/bin/mmseqs "$@"

%labels
Author: Jeff Terstriep
Version: 1.0
Description: Singularity container for MMseqs2 PU version (binary download)

0 comments on commit ea4a2d5

Please sign in to comment.