forked from Dfam-consortium/TETools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
153 lines (134 loc) · 5.87 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# Dfam TE Tools container including RepeatMasker, RepeatModeler, coseg
FROM debian:9 AS builder
RUN apt-get -y update && apt-get -y install \
curl gcc g++ make zlib1g-dev libgomp1 \
perl \
python3-h5py \
libfile-which-perl \
libtext-soundex-perl \
libjson-perl liburi-perl libwww-perl
COPY src/* /opt/src/
WORKDIR /opt/src
# Extract RMBlast
RUN echo 'e592d0601a98b9764dd55f2aa4815beb1987beb7222f0e171d4f4cd70a0d4a03 rmblast-2.10.0+-x64-linux.tar.gz' | sha256sum -c \
&& cd /opt \
&& mkdir rmblast \
&& tar --strip-components=1 -x -f src/rmblast-2.10.0+-x64-linux.tar.gz -C rmblast \
&& rm src/rmblast-2.10.0+-x64-linux.tar.gz
# Compile HMMER
RUN echo '0186bf40af67032666014971ed8ddc3cf2834bebc2be5b3bc0304a93e763736c hmmer-3.3.tar.gz' | sha256sum -c \
&& tar -x -f hmmer-3.3.tar.gz \
&& cd hmmer-3.3 \
&& ./configure --prefix=/opt/hmmer && make && make install \
&& make clean
# Compile TRF
RUN echo '516015b625473350c3d1c9b83cac86baea620c8418498ab64c0a67029c3fb28a trf-4.09.1.tar.gz' | sha256sum -c \
&& tar -x -f trf-4.09.1.tar.gz \
&& cd TRF-4.09.1 \
&& mkdir build && cd build \
&& ../configure && make && cp ./src/trf /opt/trf \
&& cd .. && rm -r build
# Compile RepeatScout
RUN echo '31a44cf648d78356aec585ee5d3baf936d01eaba43aed382d9ac2d764e55b716 RepeatScout-1.0.6.tar.gz' | sha256sum -c \
&& tar -x -f RepeatScout-1.0.6.tar.gz \
&& cd RepeatScout-1.0.6 \
&& sed -i 's#^INSTDIR =.*#INSTDIR = /opt/RepeatScout#' Makefile \
&& make && make install
# Compile and configure RECON
RUN echo '699765fa49d18dbfac9f7a82ecd054464b468cb7521abe9c2bd8caccf08ee7d8 RECON-1.08.tar.gz' | sha256sum -c \
&& tar -x -f RECON-1.08.tar.gz \
&& mv RECON-1.08 ../RECON \
&& cd ../RECON \
&& make -C src && make -C src install \
&& cp 00README bin/ \
&& sed -i 's#^\$path =.*#$path = "/opt/RECON/bin";#' scripts/recon.pl
# Compile cd-hit
RUN echo '26172dba3040d1ae5c73ff0ac6c3be8c8e60cc49fc7379e434cdf9cb1e7415de cd-hit-v4.8.1-2019-0228.tar.gz' | sha256sum -c \
&& tar -x -f cd-hit-v4.8.1-2019-0228.tar.gz \
&& cd cd-hit-v4.8.1-2019-0228 \
&& make && mkdir /opt/cd-hit && PREFIX=/opt/cd-hit make install
# Compile genometools (for ltrharvest)
RUN echo 'd59dbf5bc6151b40ec6e53abfb3fa9f50136a054448759278a8c862e288cd3c9 gt-1.6.0.tar.gz' | sha256sum -c \
&& tar -x -f gt-1.6.0.tar.gz \
&& cd genometools-1.6.0 \
&& make -j4 cairo=no && make cairo=no prefix=/opt/genometools install \
&& make cleanup
# Configure LTR_retriever
RUN echo 'e2d94f6179c33990a77fa9fdcefb842c8481b4c30833c9c12cbbe54cb3fdda73 LTR_retriever-2.9.0.tar.gz' | sha256sum -c \
&& cd /opt \
&& tar -x -f src/LTR_retriever-2.9.0.tar.gz \
&& mv LTR_retriever-2.9.0 LTR_retriever \
&& cd LTR_retriever \
&& sed -i \
-e 's#BLAST+=#BLAST+=/opt/rmblast/bin#' \
-e 's#RepeatMasker=#RepeatMasker=/opt/RepeatMasker#' \
-e 's#HMMER=#HMMER=/opt/hmmer/bin#' \
-e 's#CDHIT=#CDHIT=/opt/cd-hit#' \
paths
# Compile MAFFT
RUN echo '60f8ec7bab80e00dbb24be65b8000312ffc98ff10eb72fc2219869d1dd382964 mafft-7.471-without-extensions-src.tgz' | sha256sum -c \
&& tar -x -f mafft-7.471-without-extensions-src.tgz \
&& cd mafft-7.471-without-extensions/core \
&& sed -i 's#^PREFIX =.*#PREFIX = /opt/mafft#' Makefile \
&& make clean && make && make install \
&& make clean
# Compile NINJA
RUN echo 'b9b948c698efc3838e63817f732ead35c08debe1c0ae36b5c74df7d26ca4c4b6 NINJA-cluster.tar.gz' | sha256sum -c \
&& cd /opt \
&& mkdir NINJA \
&& tar --strip-components=1 -x -f src/NINJA-cluster.tar.gz -C NINJA \
&& cd NINJA/NINJA \
&& make clean && make all
# Compile and configure coseg
RUN echo 'e666874cc602d6a03c45eb2f19dc53b2d95150c6aae83fea0842b7db1d157682 coseg-0.2.2.tar.gz' | sha256sum -c \
&& cd /opt \
&& tar -x -f src/coseg-0.2.2.tar.gz \
&& cd coseg \
&& sed -i 's#use lib "/usr/local/RepeatMasker";#use lib "/opt/RepeatMasker";#' preprocessAlignments.pl \
&& make
# Configure RepeatMasker
RUN echo 'a2934996efd0d4baf1247970b94a5dbf5979453f11de31a288b6c099a826240c RepeatMasker-4.1.1.tar.gz' | sha256sum -c \
&& cd /opt \
&& tar -x -f src/RepeatMasker-4.1.1.tar.gz \
&& chmod a+w RepeatMasker/Libraries \
&& cd RepeatMasker \
&& perl configure \
-hmmer_dir=/opt/hmmer/bin \
-rmblast_dir=/opt/rmblast/bin \
-libdir=/opt/RepeatMasker/Libraries \
-trf_prgm=/opt/trf \
-default_search_engine=rmblast \
&& cd .. && rm src/RepeatMasker-4.1.1.tar.gz
# Configure RepeatModeler
RUN echo '628e7e1556865a86ed9d6a644c0c5487454c99fbcac21b68eae302fae7abb7ac RepeatModeler-2.0.1.tar.gz' | sha256sum -c \
&& cd /opt \
&& tar -x -f src/RepeatModeler-2.0.1.tar.gz \
&& mv RepeatModeler-2.0.1 RepeatModeler \
&& cd RepeatModeler \
&& perl configure \
-cdhit_dir=/opt/cd-hit -genometools_dir=/opt/genometools/bin \
-ltr_retriever_dir=/opt/LTR_retriever -mafft_dir=/opt/mafft/bin \
-ninja_dir=/opt/NINJA/NINJA -recon_dir=/opt/RECON/bin \
-repeatmasker_dir=/opt/RepeatMasker \
-rmblast_dir=/opt/rmblast/bin -rscout_dir=/opt/RepeatScout \
-trf_prgm=/opt/trf
FROM debian:9
# Install dependencies and some basic utilities
RUN apt-get -y update \
&& apt-get -y install \
aptitude \
libgomp1 \
perl \
python3-h5py \
libfile-which-perl \
libtext-soundex-perl \
libjson-perl liburi-perl libwww-perl \
&& aptitude install -y ~pstandard ~prequired \
curl wget \
vim nano \
libpam-systemd-
COPY --from=builder /opt /opt
RUN echo "PS1='(dfam-tetools \$(pwd))\\\$ '" >> /etc/bash.bashrc
ENV LANG=C
ENV PYTHONIOENCODING=utf8
ENV PATH=/opt/RepeatMasker:/opt/RepeatMasker/util:/opt/RepeatModeler:/opt/RepeatModeler/util:/opt/coseg:/opt:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin