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 @@ -275,7 +275,7 @@ To learn more about the docker pull rate limits and the open source software pro
| [pmga](https://hub.docker.com/r/staphb/pmga/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/pmga)](https://hub.docker.com/r/staphb/pmga) | <details><summary>Click to see all versions</summary> <ul><li>[3.0.2](./build-files/pmga/3.0.2/)</li></ul> </details> | https://github.com/rpetit3/pmga |
| [pod5](https://hub.docker.com/r/staphb/pod5/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/pod5)](https://hub.docker.com/r/staphb/pod5) | <details><summary>Click to see all versions</summary> <ul><li>[0.3.23](./build-files/pod5/0.3.23/)</li><li>[0.3.27](./build-files/pod5/0.3.27/)</li><li>[0.3.34](./build-files/pod5/0.3.34/)</li><li>[0.3.36](./build-files/pod5/0.3.36/)</li></ul> </details> | https://github.com/nanoporetech/pod5-file-format |
| [PolkaPox](https://hub.docker.com/r/staphb/polkapox/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/polkapox)](https://hub.docker.com/r/staphb/polkapox) | <details><summary>Click to see all versions</summary> <ul><li>[1.0.0-beta](./build-files/polkapox/1.0.0-beta/)</li></ul> </details> | https://github.com/CDCgov/polkapox |
| [polypolish](https://hub.docker.com/r/staphb/polypolish/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/polypolish)](https://hub.docker.com/r/staphb/polypolish) | <details><summary>Click to see all versions</summary> <ul><li>[0.5.0](./build-files/polypolish/0.5.0/)</li><li>[0.6.0](./build-files/polypolish/0.6.0/)</li><li>[0.6.0-bwa](./build-files/polypolish/0.6.0-bwa/)</li><li>[0.6.1](./build-files/polypolish/0.6.1/)</li></ul> </details> | https://github.com/rrwick/Polypolish |
| [polypolish](https://hub.docker.com/r/staphb/polypolish/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/polypolish)](https://hub.docker.com/r/staphb/polypolish) | <details><summary>Click to see all versions</summary> <ul><li>[0.5.0](./build-files/polypolish/0.5.0/)</li><li>[0.6.0](./build-files/polypolish/0.6.0/)</li><li>[0.6.0-bwa](./build-files/polypolish/0.6.0-bwa/)</li><li>[0.6.1](./build-files/polypolish/0.6.1/)</li><li>[0.6.1-bwa](./build-files/polypolish/0.6.1-bwa/)</li></ul> </details> | https://github.com/rrwick/Polypolish |
| [PopPUNK](https://hub.docker.com/r/staphb/poppunk/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/poppunk)](https://hub.docker.com/r/staphb/poppunk) | <details><summary>Click to see all versions</summary> <ul><li>[2.4.0](./build-files/poppunk/2.4.0/)</li><li>[2.5.0](./build-files/poppunk/2.5.0/)</li><li>[2.6.0](./build-files/poppunk/2.6.0/)</li><li>[2.6.2](./build-files/poppunk/2.6.2/)</li><li>[2.6.3](./build-files/poppunk/2.6.3/)</li><li>[2.6.5](./build-files/poppunk/2.6.5/)</li><li>[2.7.5](./build-files/poppunk/2.7.5/)</li><li>[2.7.6](./build-files/poppunk/2.7.6/)</li><li>[2.7.7](./build-files/poppunk/2.7.7/)</li><li>[2.7.8](./build-files/poppunk/2.7.8/)</li></ul> </details> | https://github.com/bacpop/PopPUNK |
| [Porechop](https://hub.docker.com/r/staphb/porechop/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/porechop)](https://hub.docker.com/r/staphb/porechop) | <details><summary>Click to see all versions</summary> <ul><li>[0.2.4](./build-files/porechop/0.2.4/)</li></ul> </details> | https://github.com/rrwick/Porechop |
| [PPanGGOLiN](https://hub.docker.com/r/staphb/ppanggolin/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/ppanggolin)](https://hub.docker.com/r/staphb/ppanggolin) | <details><summary>Click to see all versions</summary> <ul><li>[1.2.105](./build-files/ppanggolin/1.2.105/)</li><li>[2.0.3](./build-files/ppanggolin/2.0.3/)</li><li>[2.0.5](./build-files/ppanggolin/2.0.5/)</li><li>[2.1.2](./build-files/ppanggolin/2.1.2/)</li><li>[2.2.1](./build-files/ppanggolin/2.2.1/)</li><li>[2.2.4](./build-files/ppanggolin/2.2.4/)</li><li>[2.2.5](./build-files/ppanggolin/2.2.5/)</li><li>[2.2.6](./build-files/ppanggolin/2.2.6/)</li></ul> </details> | https://github.com/labgem/PPanGGOLiN |
Expand Down
71 changes: 71 additions & 0 deletions build-files/polypolish/0.6.1-bwa/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
ARG POLYPOLISH_VER="0.6.1"
ARG BWA_VER="0.7.19"

FROM rust:1.75 AS builder

ARG POLYPOLISH_VER
ARG BWA_VER

RUN wget -q https://github.com/rrwick/Polypolish/archive/refs/tags/v${POLYPOLISH_VER}.tar.gz && \
tar -vxf v${POLYPOLISH_VER}.tar.gz && \
cd /Polypolish-${POLYPOLISH_VER} && \
cargo build --release

RUN wget https://github.com/lh3/bwa/archive/refs/tags/v${BWA_VER}.tar.gz &&\
tar -xvf v${BWA_VER}.tar.gz &&\
cd bwa-${BWA_VER} &&\
make &&\
mv bwa /usr/local/bin/

FROM ubuntu:noble AS app

ARG POLYPOLISH_VER

LABEL base.image="ubuntu:noble"
LABEL dockerfile.version="1"
LABEL software="polypolish"
LABEL software.version="${POLYPOLISH_VER}"
LABEL description="Polypolish is a tool for polishing genome assemblies with short reads."
LABEL website="https://github.com/rrwick/Polypolish"
LABEL license="https://github.com/rrwick/Polypolish/blob/main/LICENSE"
LABEL maintainer="Erin Young"
LABEL maintainer.email="eriny@utah.gov"
LABEL maintainer2="Raheel Ahmed"
LABEL maintainer2.email="raheelsyedahmed@gmail.com"

RUN apt-get update && apt-get install -y --no-install-recommends \
wget \
ca-certificates \
procps \
unzip \
python3 && \
apt-get autoclean && rm -rf /var/lib/apt/lists/*

COPY --from=builder /Polypolish-${POLYPOLISH_VER}/target/release/polypolish /usr/local/bin/polypolish
COPY --from=builder /usr/local/bin/bwa /usr/local/bin/

ENV LC_ALL=C

CMD ["polypolish", "--help"]

WORKDIR /data


FROM app AS test

RUN polypolish --help && polypolish --version

# using "toy" data
RUN wget -q https://raw.githubusercontent.com/wiki/rrwick/Polypolish/files/toy_example/assembly.fasta && \
wget -q https://raw.githubusercontent.com/wiki/rrwick/Polypolish/files/toy_example/alignments.sam && \
polypolish polish assembly.fasta alignments.sam > polished.fasta

# testing bwa
RUN wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR608/003/SRR6082043/SRR6082043_1.fastq.gz -O r1.fq.gz && \
wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR608/003/SRR6082043/SRR6082043_2.fastq.gz -O r2.fq.gz && \
wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/006/945/GCF_000006945.2_ASM694v2/GCF_000006945.2_ASM694v2_genomic.fna.gz && \
gunzip -c GCF_000006945.2_ASM694v2_genomic.fna.gz > ref.fa

RUN bwa index ref.fa && \
bwa mem ref.fa r1.fq.gz r2.fq.gz > aln.sam && \
head aln.sam
43 changes: 43 additions & 0 deletions build-files/polypolish/0.6.1-bwa/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# polypolish container

Main tool : [polypolish](https://github.com/rrwick/Polypolish/wiki/How-to-run-Polypolish)

Full documentation: [https://github.com/rrwick/Polypolish/wiki](https://github.com/rrwick/Polypolish/wiki)

Polypolish "polishes" consensus files created during assembly of long reads with Illumina short reads. Polypolish is a little different than other polishing tools in that paired-end reads need to be aligned separatly to generate two sam files.

Additional tools:

- bwa: 0.7.19
- python: 3.12.3

Basic information on how to use this tool:

- executable: polypolish
- help: `--help`, `-h`
- version: `--version`, `-V`
- description: "Polypolish "polishes" consensus files created during assembly of long reads with Illumina short reads. Polypolish is a little different than other polishing tools in that paired-end reads need to be aligned separatly to generate two sam files."

Additional Information:
This container also includes BWA v0.7.19 so that the user can align their short reads within the same container.

## Example Usage

Align reads to the draft sequence in a different container. The example shows bwa, as this is in the Polypolish wiki, but bbamp, minimap2 or any other similar software can perform a similar step that may be better suited for your use-case.

```bash
bwa index draft.fasta
bwa mem -t 16 -a draft.fasta reads_1.fastq.gz > alignments_1.sam
bwa mem -t 16 -a draft.fasta reads_2.fastq.gz > alignments_2.sam
```

Once the sam files are generated, they can be used with polypolish in this container.

```bash
# paired end
polypolish filter --in1 alignments_1.sam --in2 alignments_2.sam --out1 filtered_1.sam --out2 filtered_2.sam
polypolish polish draft.fasta filtered_1.sam filtered_2.sam > polished.fasta

# single end
polypolish polish draft.fasta input.sam > polished.fasta
```
Loading