-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
172 lines (116 loc) · 4.62 KB
/
Makefile
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
.PHONY: venv grammars clean clean-yaep clean-venv deps pairaligns
all: libraries venv
libraries: grammars energies pairaligns
#####################################################
# Dependencies
deps:
sudo apt-get update
sudo apt-get install -y virtualenv git gcc make g++ build-essential bison libgsl23
#####################################################
# YAEP
YAEP_DIR = .yaep
CFLAGS += -I$(YAEP_DIR)/src
LIBS += $(YAEP_DIR)/src/libyaep.a
grammars: libpseudoknot.so libhairpin.so libbruteforce.so
lib%.so: parsers/%.c $(YAEP_DIR)/src/libyaep.a
$(CC) $< $(CFLAGS) $(LIBS) -fPIC -shared -o $@
$(YAEP_DIR)/src/libyaep.a:
git clone https://github.com/ntua-dslab/yaep --depth 1 $(YAEP_DIR)
cd $(YAEP_DIR) && ./configure CFLAGS=-fPIC && make
#####################################################
# PK energy
PKENERGY_DIR = pkenergy
energies: libpkenergy.so
libpkenergy.so:
cd $(PKENERGY_DIR)/hotknots/LE && make -j
cp $(PKENERGY_DIR)/hotknots/LE/libpkenergy.so .
#####################################################
# PairAligns
pairaligns: libskipfinalau.so libcpairalign.so libbulges.so
libskipfinalau.so: pairalign/skipfinalau.c
$(CC) $< -fPIC -shared -o $@
libcpairalign.so: pairalign/cpairalign.c
$(CC) $< -fPIC -shared -o $@
libbulges.so: pairalign/bulges.c
$(CC) $< -fPIC -shared -o $@
#####################################################
# Python
VENV_DIR = .venv
venv: $(VENV_DIR)/bin/rna_analysis
$(VENV_DIR)/bin/rna_analysis: setup.py setup.cfg
virtualenv --python=python3 $(VENV_DIR)
$(VENV_DIR)/bin/pip install -e . -r wheel-requirements.txt -r dev-requirements.txt
#####################################################
# IPKnot
IPKNOT_DIR = .ipknot
ipknot: $(IPKNOT_DIR)/ipknot
ipknot-deps:
sudo apt-get update
wget https://www.tbi.univie.ac.at/RNA/download/ubuntu/ubuntu_20_04/viennarna-dev_2.5.0-1_amd64.deb -O viennarna.deb
sudo apt-get install -y ./viennarna.deb cmake build-essential pkg-config libltdl-dev libglpk-dev liblz4-dev
$(IPKNOT_DIR)/ipknot: ipknot-deps
git clone https://github.com/satoken/ipknot --depth 1 $(IPKNOT_DIR)
cd $(IPKNOT_DIR) && cmake . && make -j
#####################################################
# Knotty
KNOTTY_DIR = .knotty
knotty: $(KNOTTY_DIR)/knotty
knotty-deps:
sudo apt-get install -y cmake
$(KNOTTY_DIR)/knotty: knotty-deps
git clone https://github.com/HosnaJabbari/Knotty --depth 1 $(KNOTTY_DIR)
cd $(KNOTTY_DIR) && cmake . && make -j
#####################################################
# HotKnots
HOTKNOTS_DIR = .hotknots
hotknots: $(HOTKNOTS_DIR)/HotKnots_v2.0/bin/HotKnots
hotknots-deps:
mkdir -p $(HOTKNOTS_DIR)
sudo apt-get install -y libx11-dev
$(HOTKNOTS_DIR)/HotKnots_v2.0.tar.gz:
mkdir -p $(HOTKNOTS_DIR)
cd $(HOTKNOTS_DIR) && wget http://www.cs.ubc.ca/labs/beta/Software/HotKnots/HotKnots_v2.0.tar.gz && tar xvzf HotKnots_v2.0.tar.gz
$(HOTKNOTS_DIR)/HotKnots_v2.0/bin/HotKnots: hotknots-deps $(HOTKNOTS_DIR)/HotKnots_v2.0.tar.gz
cd $(HOTKNOTS_DIR)/HotKnots_v2.0/graphics && make clean
cd $(HOTKNOTS_DIR)/HotKnots_v2.0 && make clean
cd $(HOTKNOTS_DIR)/HotKnots_v2.0/graphics && make -j
cd $(HOTKNOTS_DIR)/HotKnots_v2.0 && make -j
#####################################################
# Iterative-HFold
IHFOLD_DIR = .ihfold
ihfold: $(IHFOLD_DIR)/v1/HFold_iterative $(IHFOLD_DIR)/v2/Iterative-HFold $(IHFOLD_DIR)/v3/Iterative-HFold
ihfold-deps: $(IHFOLD_DIR)/dev/Iterative-HFold.cpp
sudo apt-get install -y cmake
$(IHFOLD_DIR)/dev/Iterative-HFold.cpp:
git clone https://github.com/HosnaJabbari/Iterative-HFold $(IHFOLD_DIR)/dev
$(IHFOLD_DIR)/v1/HFold_iterative: ihfold-deps
git clone $(IHFOLD_DIR)/dev $(IHFOLD_DIR)/v1
cd $(IHFOLD_DIR)/v1 && git checkout c77dd839943c85f9e0c9db3b3e8feae2909b9df0
cd $(IHFOLD_DIR)/v1 && cmake . && make -j
$(IHFOLD_DIR)/v2/Iterative-HFold: ihfold-deps
git clone $(IHFOLD_DIR)/dev $(IHFOLD_DIR)/v2
cd $(IHFOLD_DIR)/v2 && git checkout 56d736b224027fe2627ebde66ebf2e7557997638
cd $(IHFOLD_DIR)/v2 && cmake . && make -j
$(IHFOLD_DIR)/v3/Iterative-HFold: ihfold-deps
git clone $(IHFOLD_DIR)/dev $(IHFOLD_DIR)/v3
cd $(IHFOLD_DIR)/v3 && git checkout 672b11e4e8050a8e6133c635ebfed4c0c37912e8
cd $(IHFOLD_DIR)/v3 && cmake . && make -j
#####################################################
# Clean
clean: clean-yaep clean-venv clean-libs clean-pkenergy clean-ipknot clean-knotty clean-hotknots clean-ihfold
clean-libs:
rm -rf **.so
clean-pkenergy:
cd $(PKENERGY_DIR)/hotknots/LE && make clean
clean-yaep:
rm -rf $(YAEP_DIR)
clean-venv:
rm -rf $(VENV_DIR) .pytest_cache **.egg-info .eggs
clean-ipknot:
rm -rf $(IPKNOT_DIR)
clean-knotty:
rm -rf $(KNOTTY_DIR)
clean-hotknots:
rm -rf $(HOTKNOTS_DIR)
clean-ihfold:
rm -rf $(IHFOLD_DIR)