Skip to content

Commit 955a00b

Browse files
authored
Merge pull request #1077 from Kincekara/viridian
adds viridian 1.3.0
2 parents 746f2b3 + 79c8c57 commit 955a00b

File tree

3 files changed

+263
-1
lines changed

3 files changed

+263
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ To learn more about the docker pull rate limits and the open source software pro
305305
| [Verkko](https://hub.docker.com/r/staphb/verkko/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/verkko)](https://hub.docker.com/r/staphb/verkko) | <ul><li>[2.0](./verkko/2.0/)</li><li>[2.1](./verkko/2.1/)</li><li>[2.2](./verkko/2.2/)</li></ul> | https://github.com/marbl/verkko |
306306
| [VIBRANT](https://hub.docker.com/r/staphb/vibrant/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/vibrant)](https://hub.docker.com/r/staphb/vibrant) | <ul><li>1.2.1</li></ul> | https://github.com/AnantharamanLab/VIBRANT |
307307
| [VIGOR4](https://hub.docker.com/r/staphb/vigor4/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/vigor4)](https://hub.docker.com/r/staphb/vigor4) | <ul><li>[4.1.20190131](./vigor4/4.1.20190131/)</li><li>[4.1.20200702](./vigor4/4.1.20200702/)</li></ul> | https://github.com/JCVenterInstitute/VIGOR4 |
308-
| [Viridian](https://hub.docker.com/r/staphb/viridian/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/viridian)](https://hub.docker.com/r/staphb/viridian) | <ul><li>[1.2.2](./viridian/1.2.2/)</li></ul> | https://github.com/iqbal-lab-org/viridian |
308+
| [Viridian](https://hub.docker.com/r/staphb/viridian/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/viridian)](https://hub.docker.com/r/staphb/viridian) | <ul><li>[1.2.2](./viridian/1.2.2/)</li><li>[1.3.0](./viridian/1.3.0/)</li></ul> | https://github.com/iqbal-lab-org/viridian |
309309
| [VirSorter2](https://hub.docker.com/r/staphb/virsorter2/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/virsorter2)](https://hub.docker.com/r/staphb/virsorter2/) | <ul><li>2.1</li></ul> | https://github.com/jiarong/VirSorter2 |
310310
| [VirulenceFinder](https://hub.docker.com/r/staphb/virulencefinder/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/virulencefinder)](https://hub.docker.com/r/staphb/virulencefinder/) | <ul><li>[2.1.4](virulencefinder/2.0.4/)</li></ul> | https://bitbucket.org/genomicepidemiology/virulencefinder/src/master/ <br/> https://bitbucket.org/genomicepidemiology/virulencefinder_db/src/master/ |
311311
| [wtdbg2](https://hub.docker.com/r/staphb/wtdbg2/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/wtdbg2)](https://hub.docker.com/r/staphb/wtdbg2) | <ul><li>2.5</li></ul> | https://github.com/ruanjue/wtdbg2 |

viridian/1.3.0/Dockerfile

Lines changed: 215 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
ARG VIRIDIAN_VER="1.3.0"
2+
ARG SAMTOOLS_VER="1.21"
3+
ARG BCFTOOLS_VER=${SAMTOOLS_VER}
4+
ARG HTSLIB_VER=${SAMTOOLS_VER}
5+
ARG ENA_VER="1.7.1"
6+
ARG NGMERGE_VER="0.3"
7+
ARG VT_VER="0.57721"
8+
ARG RACON_VER="1.5.0"
9+
ARG MUMMER_VER="4.0.0rc1"
10+
ARG READITANDKEEP_VER="0.3.0"
11+
ARG CYLON_COMMIT_HASH="57d559a76254b0b95785f7c02fa58ef806713e01"
12+
ARG VARIFIER_COMMIT_HASH="8bc8726ed3cdb337dc47b62515e709759e451137"
13+
ARG MINIMAP2_VER="2.28"
14+
15+
## Builder ##
16+
FROM ubuntu:jammy as build
17+
ARG SAMTOOLS_VER
18+
ARG BCFTOOLS_VER
19+
ARG HTSLIB_VER
20+
ARG NGMERGE_VER
21+
ARG VT_VER
22+
ARG RACON_VER
23+
ARG READITANDKEEP_VER
24+
ARG MINIMAP2_VER
25+
ARG MUMMER_VER
26+
27+
ENV DEBIAN_FRONTEND=noninteractive
28+
29+
RUN apt-get update && apt-get install --no-install-recommends -y \
30+
wget \
31+
ca-certificates \
32+
perl \
33+
bzip2 \
34+
cmake \
35+
git \
36+
autoconf \
37+
automake \
38+
make \
39+
curl \
40+
gcc \
41+
g++ \
42+
gnuplot \
43+
zlib1g-dev \
44+
libbz2-dev \
45+
liblzma-dev \
46+
libcurl4-gnutls-dev \
47+
libncurses5-dev \
48+
libssl-dev \
49+
libperl-dev \
50+
libgsl0-dev \
51+
procps \
52+
gawk \
53+
sed \
54+
build-essential \
55+
unzip \
56+
nasm \
57+
pkgconf \
58+
libtool \
59+
ruby \
60+
yaggo \
61+
gcc-11 && \
62+
rm -rf /var/lib/apt/lists/* && apt-get autoclean
63+
64+
# compile bcftools
65+
RUN wget -q https://github.com/samtools/bcftools/releases/download/${BCFTOOLS_VER}/bcftools-${BCFTOOLS_VER}.tar.bz2 && \
66+
tar -xjf bcftools-${BCFTOOLS_VER}.tar.bz2 && \
67+
rm -v bcftools-${BCFTOOLS_VER}.tar.bz2 && \
68+
cd bcftools-${BCFTOOLS_VER} && \
69+
make && \
70+
make install
71+
72+
# compile samtools
73+
RUN wget -q https://github.com/samtools/samtools/releases/download/${SAMTOOLS_VER}/samtools-${SAMTOOLS_VER}.tar.bz2 && \
74+
tar -xjf samtools-${SAMTOOLS_VER}.tar.bz2 && \
75+
cd samtools-${SAMTOOLS_VER} && \
76+
./configure && \
77+
make && \
78+
make install
79+
80+
# compile htslib
81+
RUN wget -q https://github.com/samtools/htslib/releases/download/${HTSLIB_VER}/htslib-${HTSLIB_VER}.tar.bz2 && \
82+
tar -vxjf htslib-${HTSLIB_VER}.tar.bz2 && \
83+
rm -v htslib-${HTSLIB_VER}.tar.bz2 && \
84+
cd htslib-${HTSLIB_VER} && \
85+
make && \
86+
make install
87+
88+
# compile NGmerge
89+
RUN wget -q https://github.com/harvardinformatics/NGmerge/archive/refs/tags/v${NGMERGE_VER}.tar.gz && \
90+
tar -vxf v${NGMERGE_VER}.tar.gz && \
91+
cd NGmerge-${NGMERGE_VER} && \
92+
make && \
93+
cp NGmerge /usr/local/bin/.
94+
95+
# compile vt
96+
RUN wget -q https://github.com/atks/vt/archive/refs/tags/${VT_VER}.tar.gz && \
97+
tar -vxf ${VT_VER}.tar.gz && \
98+
cd vt-${VT_VER} && \
99+
make && \
100+
cp vt /usr/local/bin/.
101+
102+
# compile racon
103+
RUN wget -q https://github.com/lbcb-sci/racon/archive/refs/tags/${RACON_VER}.tar.gz && \
104+
tar -xvf ${RACON_VER}.tar.gz && \
105+
cd racon-${RACON_VER} && \
106+
mkdir build && \
107+
cd build && \
108+
cmake -DCMAKE_BUILD_TYPE=Release .. && \
109+
make && \
110+
cp bin/racon /usr/local/bin/.
111+
112+
# compile read-it-and-keep
113+
RUN wget -q https://github.com/GlobalPathogenAnalysisService/read-it-and-keep/archive/refs/tags/v${READITANDKEEP_VER}.tar.gz && \
114+
tar -vxf v${READITANDKEEP_VER}.tar.gz && \
115+
cd read-it-and-keep-${READITANDKEEP_VER}/src && \
116+
make && \
117+
cp readItAndKeep /usr/local/bin/.
118+
119+
# install minimap2 binary
120+
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 && \
121+
cp minimap2-${MINIMAP2_VER}_x64-linux/minimap2 /usr/local/bin
122+
123+
RUN wget -q https://github.com/mummer4/mummer/archive/refs/tags/v${MUMMER_VER}.tar.gz && \
124+
tar -xvf v${MUMMER_VER}.tar.gz && \
125+
cd mummer-${MUMMER_VER} && \
126+
autoreconf -i && \
127+
./configure CXXFLAGS="-std=c++11 -Wno-maybe-uninitialized" LDFLAGS=-static && \
128+
make && \
129+
make install && \
130+
ldconfig
131+
132+
## App ##
133+
FROM ubuntu:jammy as app
134+
135+
ARG VIRIDIAN_VER
136+
ARG ENA_VER
137+
ARG CYLON_COMMIT_HASH
138+
ARG VARIFIER_COMMIT_HASH
139+
140+
LABEL base.image="ubuntu:jammy"
141+
LABEL dockerfile.version="1"
142+
LABEL software="viridian"
143+
LABEL software.version="${VIRIDIAN_VER}"
144+
LABEL description="Ultra-careful amplicon-aware viral assembly for tiled amplicon schemes."
145+
LABEL website="https://github.com/iqbal-lab-org/viridian"
146+
LABEL license="https://github.com/iqbal-lab-org/viridian/blob/master/LICENSE"
147+
LABEL maintainer="Wilson Chan"
148+
LABEL maintainer.email="chan.wilson.wc@gmail.com"
149+
LABEL maintainer2="Kutluhan Incekara"
150+
LABEL maintainer2.email="kutluhan.incekara@ct.gov"
151+
LABEL maintainer3="Erin Young"
152+
LABEL maintainer3.email="eriny@utah.gov"
153+
154+
RUN apt-get update && apt-get install -y --no-install-recommends \
155+
python3 \
156+
python3-pip \
157+
python3-dev \
158+
gzip \
159+
gcc \
160+
perl \
161+
zlib1g \
162+
libncurses5 \
163+
bzip2 \
164+
liblzma-dev \
165+
libcurl4-gnutls-dev \
166+
wget \
167+
&& apt-get autoclean && rm -rf /var/lib/apt/lists/*
168+
169+
COPY --from=build /usr/local/bin/* /usr/local/bin/
170+
COPY --from=build /usr/local/lib/* /usr/local/lib/
171+
172+
RUN pip install --no-cache-dir cython
173+
174+
# ENA tools
175+
RUN wget -q https://github.com/enasequence/enaBrowserTools/archive/refs/tags/v${ENA_VER}.tar.gz && \
176+
tar -xvf v${ENA_VER}.tar.gz && \
177+
rm v${ENA_VER}.tar.gz
178+
179+
RUN wget -q https://github.com/iqbal-lab-org/cylon/archive/${CYLON_COMMIT_HASH}.zip &&\
180+
pip install --no-cache-dir ${CYLON_COMMIT_HASH}.zip && \
181+
rm ${CYLON_COMMIT_HASH}.zip
182+
183+
RUN wget -q https://github.com/iqbal-lab-org/varifier/archive/${VARIFIER_COMMIT_HASH}.zip &&\
184+
pip install --no-cache-dir ${VARIFIER_COMMIT_HASH}.zip && \
185+
rm ${VARIFIER_COMMIT_HASH}.zip
186+
187+
# install viridian
188+
RUN wget -q https://github.com/iqbal-lab-org/viridian/archive/refs/tags/v${VIRIDIAN_VER}.tar.gz && \
189+
pip install --no-cache-dir v${VIRIDIAN_VER}.tar.gz && \
190+
mkdir viridian && \
191+
tar -C viridian --strip-components=1 -xvf v${VIRIDIAN_VER}.tar.gz && \
192+
rm v${VIRIDIAN_VER}.tar.gz
193+
194+
WORKDIR /data
195+
196+
CMD ["viridian", "--help "]
197+
198+
ENV PATH="/enaBrowserTools-${ENA_VER}/python3:$PATH" LC_ALL=C
199+
200+
## Test ##
201+
FROM app as test
202+
203+
WORKDIR /test
204+
205+
RUN cd /viridian && \
206+
pip install --no-cache-dir pytest && \
207+
pytest
208+
209+
RUN viridian run_one_sample --run_accession SRR29437696 --outdir OUT && \
210+
wc -l OUT/consensus.fa.gz OUT/log.json.gz OUT/qc.tsv.gz && \
211+
head OUT/variants.vcf
212+
213+
RUN viridian run_one_sample --run_accession SRR29437696 --outdir OUT2 --keep_bam && \
214+
wc -l OUT2/consensus.fa.gz OUT2/log.json.gz OUT2/qc.tsv.gz OUT2/reference_mapped.bam && \
215+
head OUT2/variants.vcf

viridian/1.3.0/README.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Viridian container
2+
3+
Main tool: [Viridian](https://github.com/iqbal-lab-org/viridian)
4+
5+
Code repository: [Viridian](https://github.com/iqbal-lab-org/viridian)
6+
7+
Additional tools:
8+
- samtools: 1.21
9+
- bcftools: 1.21
10+
- htslib: 1.21
11+
- ENA: 1.7.1
12+
- ngmerge: 0.3
13+
- vt: 0.577721
14+
- racon: 1.5.0
15+
- mummer: 4.0.0
16+
- read-it-and-keep: 0.3.0
17+
- cylon: commit hash 57d559a76254b0b95785f7c02fa58ef806713e01
18+
- varifier: commit hash 8bc8726ed3cdb337dc47b62515e709759e451137
19+
- minimap2: 2.28
20+
21+
Basic information on how to use this tool:
22+
- executable: viridian
23+
- help: --help
24+
- version: --version
25+
- description: Ultra-careful amplicon-aware viral assembly for tiled amplicon schemes.
26+
27+
Full documentation: [Viridian wiki](https://github.com/iqbal-lab-org/viridian/wiki)
28+
29+
30+
## Example Usage
31+
32+
To run on paired Illumina reads:
33+
34+
```bash
35+
viridian run_one_sample \
36+
--tech illumina \
37+
--reads1 reads_1.fastq.gz \
38+
--reads2 reads_2.fastq.gz \
39+
--outdir OUT
40+
```
41+
42+
Download reads with accession SRR12345678 and run:
43+
```bash
44+
viridian run_one_sample --run_accession SRR12345678 --outdir OUT
45+
```
46+
47+
The sequencing tech and unpaired/paired is taken from the ENA metadata for each run.

0 commit comments

Comments
 (0)