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

New Unicycler Dockerfile version 0.5.1 #1131

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
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
99 changes: 99 additions & 0 deletions unicycler/0.5.1/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
FROM ubuntu:focal as app

# for easy upgrade later. ARG variables only persist during image build time
ARG unicyclerVer="0.5.1"
ARG blastVer="2.12.0"
# the spades.py version is actually VERY important
ARG spadesVer="3.15.4"
ARG raconVer="1.4.3"

LABEL base.image="ubuntu:focal"
LABEL dockerfile.version="1"
LABEL software="Unicycler"
LABEL software.version="${unicyclerVer}"
LABEL description="Unicycler is an assembly pipeline for bacterial genomes."
LABEL website="https://github.com/rrwick/Unicycler"
LABEL license="https://github.com/rrwick/Unicycler/blob/main/LICENSE"
LABEL maintainer1="Kelsey Florek"
LABEL maintainer1.email="kelsey.florek@slh.wisc.edu"
LABEL maintainer2="Curtis Kapsak"
LABEL maintainer2.email="kapsakcj@gmail.com"
LABEL maintainer="Erin Young"
LABEL maintainer.email="eriny@utah.gov"

ARG DEBIAN_FRONTEND=noninteractive

# install dependencies; cleanup apt garbage
RUN apt-get update && apt-get install --no-install-recommends -y \
python3 \
python3-pip \
python3-distutils \
python-setuptools \
cmake \
build-essential \
wget \
libgomp1 \
libz-dev \
ca-certificates && \
apt-get autoclean && rm -rf /var/lib/apt/lists/* && \
# python v3.8.10 is installed here; point 'python' to python3
update-alternatives --install /usr/bin/python python /usr/bin/python3 10

# install SPAdes binary
RUN wget https://github.com/ablab/spades/releases/download/v${spadesVer}/SPAdes-${spadesVer}-Linux.tar.gz && \
tar -xzf SPAdes-${spadesVer}-Linux.tar.gz && \
rm -v SPAdes-${spadesVer}-Linux.tar.gz

# ncbi-blast+
# ubuntu:focal apt version of blast is old-ish (2.9.0)
RUN wget https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${blastVer}/ncbi-blast-${blastVer}+-x64-linux.tar.gz && \
tar -xzf ncbi-blast-${blastVer}+-x64-linux.tar.gz && \
rm ncbi-blast-${blastVer}+-x64-linux.tar.gz

# get racon
RUN wget https://github.com/isovic/racon/releases/download/${raconVer}/racon-v${raconVer}.tar.gz && \
mkdir racon && \
tar -xzvf racon-v${raconVer}.tar.gz -C racon --strip-components 1 && \
rm racon-v${raconVer}.tar.gz && \
cd racon && \
mkdir build && \
cd build && \
# for installing racon tests
cmake -DCMAKE_BUILD_TYPE=Release -Dracon_build_tests=ON ../ && \
cmake -DCMAKE_BUILD_TYPE=Release ../ && \
make && \
make install

# LC_ALL for singularity compatibility
# set PATH so that blast binaries and spades.py are available during unicycler install
# TERM set so that output is pretty during tests - also ensures unicycler unit tests pass
ENV PATH="/SPAdes-${spadesVer}-Linux/bin:/ncbi-blast-${blastVer}+/bin/:${PATH}" \
LC_ALL=C.UTF-8 \
TERM=xterm-256color

# get unicycler; install
RUN wget https://github.com/rrwick/Unicycler/archive/v${unicyclerVer}.tar.gz && \
mkdir unicycler && \
tar -xzvf v${unicyclerVer}.tar.gz -C unicycler --strip-components 1 && \
rm v${unicyclerVer}.tar.gz && \
python3 /unicycler/setup.py install && \
mkdir /data

# final working directory in app layer is /data, as usual
WORKDIR /data

FROM app as test

# test spades and unicycler unit tests
RUN spades.py --test && \
cd /unicycler && python -m unittest

# test racon; added in to make sure that racon wasn't an issue
RUN /racon/build/bin/racon_test

# testing on the test data (ILMN and ONT) provided with unicycler code
RUN unicycler --version && unicycler --help && \
unicycler -1 /unicycler/sample_data/short_reads_1.fastq.gz \
-2 /unicycler/sample_data/short_reads_2.fastq.gz \
-l /unicycler/sample_data/long_reads_high_depth.fastq.gz \
--out sample_data_hybrid_asm_test
18 changes: 18 additions & 0 deletions unicycler/0.5.1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Unicycler container

Main tools:
- [Unicycler](https://github.com/rrwick/Unicycler)

Other tools:
- [spades](https://github.com/ablab/spades)
- [racon](https://github.com/isovic/racon)

Unicycler is a hybrid assembler that takes reads assembled with spades and ties them together with long reads.

# Example Usage

```
unicycler -1 short_reads_1.fastq.gz -2 short_reads_2.fastq.gz -l long_reads.fastq.gz -o output_dir
```

Better documentation can be found at [https://github.com/rrwick/Unicycler](https://github.com/rrwick/Unicycler)
Loading