Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ To learn more about the docker pull rate limits and the open source software pro
| [metaphlan](https://hub.docker.com/r/staphb/metaphlan) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/metaphlan)](https://hub.docker.com/r/staphb/metaphlan) | <details><summary>Click to see all versions</summary> <ul><li>[3.0.3-no-db (no database)](./build-files/metaphlan/3.0.3-no-db/)</li><li>[3.0.3 (~3GB db)](./build-files/metaphlan/3.0.3/)</li><li>[4.1.0](./build-files/metaphlan/4.1.0/) (no database)</li><li>[4.1.1](./build-files/metaphlan/4.1.1/) (no database)</li><li>[4.2.2](./build-files/metaphlan/4.2.2/)</li><li>[4.2.4](./build-files/metaphlan/4.2.4/)</li></ul> </details> | https://github.com/biobakery/MetaPhlAn |
| [MIDAS](https://hub.docker.com/r/staphb/midas) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/midas)](https://hub.docker.com/r/staphb/midas) | <details><summary>Click to see all versions</summary> <ul><li>[1.3.2 (no database)](./build-files/midas/1.3.2/)</li>| https://github.com/snayfach/MIDAS |
| [minimap2](https://hub.docker.com/r/staphb/minimap2) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/minimap2)](https://hub.docker.com/r/staphb/minimap2) | <details><summary>Click to see all versions</summary> <ul><li>[2.17](./build-files/minimap2/2.17/)</li><li>[2.18](./build-files/minimap2/2.18/)</li><li>[2.21](./build-files/minimap2/2.21/)</li><li>[2.22](./build-files/minimap2/2.22/)</li><li>[2.23](./build-files/minimap2/2.23/)</li><li>[2.24](./build-files/minimap2/2.24/)</li><li>[2.25](./build-files/minimap2/2.25/)</li><li>[2.26](./build-files/minimap2/2.26)</li><li>[2.27](./build-files/minimap2/2.27/)</li><li>[2.28](./build-files/minimap2/2.28/)</li><li>[2.29](./build-files/minimap2/2.29/)</li><li>[2.30](./build-files/minimap2/2.30/)</li></ul></details> | https://github.com/lh3/minimap2 |
| [minipolish](https://hub.docker.com/r/staphb/minipolish) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/minipolish)](https://hub.docker.com/r/staphb/minipolish) | <details><summary>Click to see all versions</summary> <ul><li>[0.1.3](./build-files/minipolish/0.1.3/)</li><li>[0.2.0](./build-files/minipolish/0.2.0/)</li></ul> </details> | https://github.com/rrwick/Minipolish |
| [minipolish](https://hub.docker.com/r/staphb/minipolish) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/minipolish)](https://hub.docker.com/r/staphb/minipolish) | <details><summary>Click to see all versions</summary> <ul><li>[0.1.3](./build-files/minipolish/0.1.3/)</li><li>[0.2.0](./build-files/minipolish/0.2.0/)</li><li>[0.2.1](./build-files/minipolish/0.2.1/)</li></ul> </details> | https://github.com/rrwick/Minipolish |
| [mlst](https://hub.docker.com/r/staphb/mlst) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/mlst)](https://hub.docker.com/r/staphb/mlst) | <details><summary>Click to see all versions</summary> <ul><li>[2.16.2](./build-files/mlst/2.16.2/)</li><li>[2.17.6](./build-files/mlst/2.17.6/)</li><li>[2.19.0](./build-files/mlst/2.19.0/)</li><li>[2.22.0](./build-files/mlst/2.22.0/)</li><li>[2.22.1](./build-files/mlst/2.22.1/)</li><li>[2.23.0](./build-files/mlst/2.23.0/)</li><li>[2.23.0-2023-07](./build-files/mlst/2.23.0-2023-07/)</li><li>[2.23.0-2023-08](./build-files/mlst/2.23.0-2023-08/)</li><li>[2.23.0-2024-01](./build-files/mlst/2.23.0-2024-01/)</li><li>[2.23.0-2024-03](./build-files/mlst/2.23.0-2024-12/)</li><li>[2.23.0-2024-12-31](./build-files/mlst/2.23.0-2024-12-31/)</li><li>[2.25.0](./build-files/mlst/2.25.0/)</li><li>[2.28.1](./build-files/mlst/2.28.1/)</li><li>[2.32.2](./build-files/mlst/2.32.2/)</li></ul> </details> | https://github.com/tseemann/mlst |
| [MMseqs2](https://hub.docker.com/r/staphb/mmseqs2) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/mmseqs2)](https://hub.docker.com/r/staphb/mmseqs2) | <details><summary>Click to see all versions</summary> <ul><li>[17-b804f](./build-files/mmseqs2/17-b804f/)</li><li>[18-8cc5c](./build-files/mmseqs2/18-8cc5c/)</li></ul> </details> | https://github.com/soedinglab/MMseqs2 |
| [mob-suite](https://github.com/phac-nml/mob-suite) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/mob-suite)](https://hub.docker.com/r/staphb/mob-suite) | <details><summary>Click to see all versions</summary> <ul><li>[3.1.9](./build-files/mob-suite/3.1.9/)</li></ul> </details> | https://github.com/phac-nml/mob-suite |
Expand Down
116 changes: 116 additions & 0 deletions build-files/minipolish/0.2.1/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
ARG MINIPOLISH_VER=0.2.1
ARG MINIMAP2_VER=2.30
ARG RACON_VER=1.5.0
ARG MINIASM_VER=0.3

FROM ubuntu:noble AS builder
ARG MINIPOLISH_VER
ARG MINIMAP2_VER
ARG RACON_VER
ARG MINIASM_VER

# Install dependencies
RUN apt-get update && apt-get install --no-install-recommends -y \
perl \
default-jre \
gnuplot \
libgomp1 \
maven \
git \
wget \
python3 \
build-essential \
cmake \
zlib1g-dev \
curl \
bzip2 && \
apt-get autoclean && rm -rf /var/lib/apt/lists/*

# Install Racon
RUN wget https://github.com/lbcb-sci/racon/archive/refs/tags/${RACON_VER}.tar.gz && \
tar -xvf ${RACON_VER}.tar.gz && \
cd racon-${RACON_VER} && \
mkdir build && \
cd build && \
cmake -DCMAKE_BUILD_TYPE=Release .. && \
make

# Add Racon to PATH
ENV PATH="/racon-${RACON_VER}/build/bin:${PATH}"

# Test Racon
RUN racon_test

# Install Minimap2
RUN curl -L https://github.com/lh3/minimap2/releases/download/v${MINIMAP2_VER}/minimap2-${MINIMAP2_VER}_x64-linux.tar.bz2 | tar -jxvf - --no-same-owner && \
mv minimap2-${MINIMAP2_VER}_x64-linux /usr/local/bin/minimap2

# miniasm
RUN wget https://github.com/lh3/miniasm/archive/v${MINIASM_VER}.tar.gz && \
mkdir miniasm && \
tar -xzvf v${MINIASM_VER}.tar.gz -C miniasm --strip-components 1 && \
rm v${MINIASM_VER}.tar.gz && \
cd miniasm && \
make && \
mv miniasm /usr/local/bin/.

FROM ubuntu:noble AS app
ARG MINIPOLISH_VER
ARG RACON_VER

# metadata
LABEL base.image="ubuntu:noble"
LABEL dockerfile.version="1"
LABEL software="minipolish"
LABEL software.version="${MINIPOLISH_VER}"
LABEL description="Racon polishing for GFA graphs produced by miniasm"
LABEL website="https://github.com/rrwick/Minipolish"
LABEL license="https://github.com/rrwick/Minipolish/blob/main/LICENSE"
LABEL maintainer="Erin Young"
LABEL maintainer.email="eriny@utah.gov"

# install dependencies via apt-get or yum if using a centos or fedora base
RUN apt-get update && apt-get install -y --no-install-recommends \
wget \
ca-certificates \
python3-pip && \
apt-get autoclean && rm -rf /var/lib/apt/lists/*

COPY --from=builder /racon-${RACON_VER}/build/bin/* /usr/local/bin/
COPY --from=builder /usr/local/bin/* /usr/local/bin/

# install minipolish
RUN wget https://github.com/rrwick/Minipolish/archive/refs/tags/v${MINIPOLISH_VER}.tar.gz && \
tar -vxf v${MINIPOLISH_VER}.tar.gz && \
pip install --break-system-packages v${MINIPOLISH_VER}.tar.gz && \
rm v${MINIPOLISH_VER}.tar.gz
# in theory, this can be tested with python3 -m pytest

# set environmental variables e.g. $PATH and locale settings for singularity compatibility
ENV PATH="/Minipolish-${MINIPOLISH_VER}:${PATH}" \
TERM=xterm-256color \
LC_ALL=C

# set working directory
WORKDIR /data

CMD ["minipolish", "--help"]

FROM app AS test

RUN minipolish --help

# checking dependencies
RUN minimap2 --version && racon --help && miniasm -V

WORKDIR /test

RUN wget https://github.com/rrwick/Unicycler/raw/refs/heads/main/sample_data/long_reads_high_depth.fastq.gz

#RUN miniasm_and_minipolish.sh long_reads_high_depth.fastq.gz 4 > test.gfa && head test.gfa

# Testing the test data without using the wrapper script
RUN minimap2 -x ava-ont -t 4 long_reads_high_depth.fastq.gz long_reads_high_depth.fastq.gz > overlaps.paf && \
miniasm -f long_reads_high_depth.fastq.gz overlaps.paf -s 50 -e 1 > test.gfa && \
minipolish --threads 4 long_reads_high_depth.fastq.gz test.gfa > polished.gfa && \
head polished.gfa
22 changes: 22 additions & 0 deletions build-files/minipolish/0.2.1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# minipolish and miniasm container

Main tool : [minipolish](https://github.com/rrwick/Minipolish) and [miniasm](https://github.com/lh3/miniasm)

Other tools :
- [racon](https://github.com/isovic/racon) version 1.5.0
- [minimap2](https://github.com/lh3/minimap2) version 2.30
- [miniasm](https://github.com/lh3/miniasm) version 0.3

From minipolish's [readme](https://github.com/rrwick/Minipolish):

> Miniasm is a great long-read assembly tool: straight-forward, effective and very fast. However, it does not include a polishing step, so its assemblies have a high error rate – they are essentially made of stitched-together pieces of long reads.
>
> Racon is a great polishing tool that can be used to clean up assembly errors. It's also very fast and well suited for long-read data. However, it operates on FASTA files, not the GFA graphs that miniasm makes.
>
> That's where Minipolish comes in. With a single command, it will use Racon to polish up a miniasm assembly, while keeping the assembly in graph form.

# Example Usage

```
miniasm_and_minipolish.sh input.fastq $threads > output.gfa
```
Loading