Louis BECQUEY

Cleaned benchmark.py and installation

1 -FROM ubuntu:bionic 1 +# You can pick the Ubuntu version that suits you instead, according to the version of the boost libraries
2 +# that you are using to compile biorseo.
3 +#
4 +# Typically, on the machine where you typed 'make', check :
5 +# ls /usr/lib/libboost_filesystem.so.*
6 +# this will give you the file name of your boost library, including the version number.
7 +# Use the docker basis image of the Ubuntu which has this version of boost in the apt sources.
8 +FROM ubuntu:focal
2 9
3 -# installing dependencies 10 +# compiled biorseo
11 +COPY . /biorseo/
12 +
13 +# Install runtime dependencies
4 RUN apt-get update -yq && \ 14 RUN apt-get update -yq && \
5 apt-get upgrade -y && \ 15 apt-get upgrade -y && \
6 - apt-get install -y python3-dev python3-pip openjdk-11-jre libgsl23 libgslcblas0 libboost-program-options-dev libboost-filesystem-dev && \ 16 + apt-get install -y libboost-program-options-dev libboost-filesystem-dev && \
7 rm -rf /var/lib/apt/lists/* 17 rm -rf /var/lib/apt/lists/*
8 18
9 -# compiled biorseo
10 -COPY . /biorseo
11 -# ViennaRNA installer
12 -ADD "https://www.tbi.univie.ac.at/RNA/download/ubuntu/ubuntu_18_04/viennarna_2.4.14-1_amd64.deb" /
13 -# jar3d archive
14 -ADD http://rna.bgsu.edu/data/jar3d/models/jar3d_2014-12-11.jar /
15 -
16 -# install codes
17 -RUN dpkg -i /viennarna_2.4.14-1_amd64.deb && \
18 - apt-get install -f && \
19 - \
20 - pip3 install networkx numpy regex wrapt biopython /biorseo/BayesPairing && \
21 - \
22 - cd / && \
23 - rm -rf /biorseo/BayesPairing /ViennaRNA-2.4.13 /ViennaRNA-2.4.13.tar.gz
24 WORKDIR /biorseo 19 WORKDIR /biorseo
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -14,10 +14,9 @@ sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io ...@@ -14,10 +14,9 @@ sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io
14 ``` 14 ```
15 15
16 ### Download and install the RNA motifs data files: 16 ### Download and install the RNA motifs data files:
17 +* Move your JSON-formatted or CSV-formatted files containing motifs in the folder.
17 * If you use Rna3Dmotifs, you need to get RNA-MoIP's .DESC dataset: download it from [GitHub](https://github.com/McGill-CSB/RNAMoIP/blob/master/CATALOGUE.tgz). Put all the .desc from the `Non_Redundant_DESC` folder into `./data/modules/DESC`. Otherwise, you also can run Rna3Dmotifs' `catalog` program to get your own DESC modules collection from updated 3D data (download [Rna3Dmotifs](https://rna3dmotif.lri.fr/Rna3Dmotif.tgz)). You also need to move the final DESC files into `./data/modules/DESC`. 18 * If you use Rna3Dmotifs, you need to get RNA-MoIP's .DESC dataset: download it from [GitHub](https://github.com/McGill-CSB/RNAMoIP/blob/master/CATALOGUE.tgz). Put all the .desc from the `Non_Redundant_DESC` folder into `./data/modules/DESC`. Otherwise, you also can run Rna3Dmotifs' `catalog` program to get your own DESC modules collection from updated 3D data (download [Rna3Dmotifs](https://rna3dmotif.lri.fr/Rna3Dmotif.tgz)). You also need to move the final DESC files into `./data/modules/DESC`.
18 19
19 -* Get the latest version of the HL and IL module models from the [BGSU website](http://rna.bgsu.edu/data/jar3d/models/) and extract the Zip files. Put the HL and IL folders from inside the Zip files into `./data/modules/BGSU`. Note that only the latest Zip is required.
20 -
21 ### Download the docker image from Docker Hub 20 ### Download the docker image from Docker Hub
22 `docker pull persalteas/biorseo:latest` 21 `docker pull persalteas/biorseo:latest`
23 22
...@@ -31,9 +30,9 @@ $ docker run ...@@ -31,9 +30,9 @@ $ docker run
31 persalteas/biorseo 30 persalteas/biorseo
32 yourexamplejobcommandhere 31 yourexamplejobcommandhere
33 ``` 32 ```
34 -You can replace \`pwd\` by the full path of the biorseo/ root folder. Here we launch the biorseo image with 4 volumes : A first to give BiORSEO access to the module files, a second to give it access to your input file(s), a third for your trained BayesPairing, and a last for it to output the result files of your job. Considering you place your input file 'MyFastaFile.fa' into the `data/fasta` folder, an example job command can be ` ./biorseo.py -i /biorseo/data/fasta/myFastaFile.fa --rna3dmotifs --patternmatch --func B`, so the full run command would be 33 +You can replace \`pwd\` by the full path of the biorseo/ root folder. Here we launch the biorseo image with 4 volumes : A first to give BiORSEO access to the module files, a second to give it access to your input file(s), a third for your trained BayesPairing, and a last for it to output the result files of your job. Considering you place your input file 'MyFastaFile.fa' into the `data/fasta` folder, an example job command can be ` ./biorseo.py -i /biorseo/data/fasta/myFastaFile.fa --rna3dmotifs --func B`, so the full run command would be
35 ``` 34 ```
36 -$ docker run -v `pwd`/data/modules:/modules -v `pwd`/data/fasta:/biorseo/data/fasta -v `pwd`/results:/biorseo/results persalteas/biorseo ./biorseo.py -i /biorseo/data/fasta/applications.fa --rna3dmotifs --patternmatch --func B 35 +$ docker run -v `pwd`/data/modules:/modules -v `pwd`/data/fasta:/biorseo/data/fasta -v `pwd`/results:/biorseo/results persalteas/biorseo ./bin/biorseo -s /biorseo/data/fasta/applications.fa --descfolder /biorseo/data/modules/DESC --func B -v
37 ``` 36 ```
38 37
39 Note that the paths to the input and output files are paths *inside the Docker container*, and those paths are mounted to folders of the host machine with -v options. 38 Note that the paths to the input and output files are paths *inside the Docker container*, and those paths are mounted to folders of the host machine with -v options.
...@@ -83,12 +82,11 @@ If you use Rna3Dmotifs, you need to get RNA-MoIP's .DESC dataset: download it fr ...@@ -83,12 +82,11 @@ If you use Rna3Dmotifs, you need to get RNA-MoIP's .DESC dataset: download it fr
83 * Check if the executable file exists: `./bin/biorseo --version`. 82 * Check if the executable file exists: `./bin/biorseo --version`.
84 83
85 ### RUN BIORSEO 84 ### RUN BIORSEO
86 -Now you can run biorseo.py, but, as you are not into the Docker environment, you MUST provide the options to tell it the jar3d or BayesPairing locations, for example: 85 +Now you can run biorseo, but, as you are not into the Docker environment, you MUST provide the options to tell it the jar3d or BayesPairing locations, for example:
87 ``` 86 ```
88 -$ ./biorseo.py 87 +$ ./bin/biorseo
89 --i ./data/fasta/applications.fa 88 +-s ./data/fasta/applications.fa
90 --O ./results/ 89 +-o result.bi
91 ---rna3dmotifs --patternmatch --func B 90 +--func B
92 ---biorseo-dir /FULL/path/to/the/root/biorseo/dir 91 +--descfolder=./data/modules/DESC
93 ---modules-path=./data/modules/DESC
94 ``` 92 ```
......
...@@ -273,15 +273,15 @@ class RNA: ...@@ -273,15 +273,15 @@ class RNA:
273 # print(filename, "not found !") 273 # print(filename, "not found !")
274 274
275 def load_biokop_results(self): 275 def load_biokop_results(self):
276 - filename = outputDir+"PK/"+basename+".biok" 276 + filename = outputDir+"PK/"+self.basename+".biok"
277 if path.isfile(filename): 277 if path.isfile(filename):
278 rna = open(filename, "r") 278 rna = open(filename, "r")
279 lines = rna.readlines() 279 lines = rna.readlines()
280 rna.close() 280 rna.close()
281 for i in range(2, len(lines)): 281 for i in range(2, len(lines)):
282 - ss = lines[i].split(' ')[0].split('\t')[0] 282 + ss = lines[i].split('\t')[0]
283 - method.predictions.append(ss) 283 + self.get_method("Biokop-mode").predictions.append(ss)
284 - method.ninsertions.append(lines[i].count('+')) 284 + self.get_method("Biokop-mode").ninsertions.append(0)
285 285
286 def load_results(self, include_noPK=False): 286 def load_results(self, include_noPK=False):
287 if "Biokop-mode" in self.meth_idx.keys(): 287 if "Biokop-mode" in self.meth_idx.keys():
...@@ -905,28 +905,24 @@ if __name__ == '__main__': ...@@ -905,28 +905,24 @@ if __name__ == '__main__':
905 colors = [ 905 colors = [
906 '#911eb4', #purple 906 '#911eb4', #purple
907 '#000075', #navy 907 '#000075', #navy
908 - '#ffe119', '#ffe119', # yellow
909 '#e6194B', '#e6194B', #red 908 '#e6194B', '#e6194B', #red
910 - '#3cb44b', '#3cb44b', #green
911 '#4363d8', '#4363d8', #blue 909 '#4363d8', '#4363d8', #blue
910 + '#3cb44b', '#3cb44b', #green
912 ] 911 ]
913 912
914 def plot_best_MCCs(x_noPK_fully, x_PK_fully, x_pseudobase_fully): 913 def plot_best_MCCs(x_noPK_fully, x_PK_fully, x_pseudobase_fully):
915 914
916 print("Best MCCs...") 915 print("Best MCCs...")
917 labels = [ 916 labels = [
918 - "Biokop-mode\n", "RNAsubopt", 917 + "Biokop\nmode", "RNA\nsubopt",
919 - "$f_{1A}$", "$f_{1B}$",
920 - "$f_{1A}$", "$f_{1B}$",
921 "$f_{1A}$", "$f_{1B}$", 918 "$f_{1A}$", "$f_{1B}$",
922 "$f_{1A}$", "$f_{1B}$", 919 "$f_{1A}$", "$f_{1B}$",
923 "$f_{1A}$", "$f_{1B}$", 920 "$f_{1A}$", "$f_{1B}$",
924 ] 921 ]
925 922
926 - fig, axes = plt.subplots(nrows=3, ncols=1, figsize=(10,5), dpi=150) 923 + fig, axes = plt.subplots(nrows=3, ncols=1, figsize=(7,5), dpi=150)
927 fig.suptitle(" \n ") 924 fig.suptitle(" \n ")
928 - fig.subplots_adjust(left=0.1, right=0.97, top=0.83, bottom=0.05) 925 + fig.subplots_adjust(left=0.18, right=0.97, top=0.83, bottom=0.05)
929 -
930 926
931 927
932 # Line 1 : no Pseudoknots 928 # Line 1 : no Pseudoknots
...@@ -949,10 +945,10 @@ if __name__ == '__main__': ...@@ -949,10 +945,10 @@ if __name__ == '__main__':
949 axes[0].set_ylabel("(A)\nmax MCC\n(%d RNAs)" % (len(x_noPK_fully[0])), fontsize=12) 945 axes[0].set_ylabel("(A)\nmax MCC\n(%d RNAs)" % (len(x_noPK_fully[0])), fontsize=12)
950 946
951 # Line 2 : Pseudoknots supported 947 # Line 2 : Pseudoknots supported
952 - xpos = [ 0 ] + [ i for i in range(4,20) ] 948 + xpos = [ 0 ] + [ 1+i for i in range(1, len(x_PK_fully)) ]
953 vplot = axes[1].violinplot(x_PK_fully, showmeans=False, showmedians=False, showextrema=False, 949 vplot = axes[1].violinplot(x_PK_fully, showmeans=False, showmedians=False, showextrema=False,
954 points=len(x_PK_fully[0]), positions=xpos) 950 points=len(x_PK_fully[0]), positions=xpos)
955 - for patch, color in zip(vplot['bodies'], colors[:1] + colors[4:]): 951 + for patch, color in zip(vplot['bodies'], [colors[0]] + colors[2:]):
956 patch.set_facecolor(color) 952 patch.set_facecolor(color)
957 patch.set_edgecolor(color) 953 patch.set_edgecolor(color)
958 patch.set_alpha(0.5) 954 patch.set_alpha(0.5)
...@@ -986,13 +982,13 @@ if __name__ == '__main__': ...@@ -986,13 +982,13 @@ if __name__ == '__main__':
986 982
987 for ax in axes: 983 for ax in axes:
988 ax.set_ylim((0.0, 1.01)) 984 ax.set_ylim((0.0, 1.01))
989 - ax.set_xlim((-1, 20)) 985 + ax.set_xlim((-1, 8))
990 yticks = [ i/10 for i in range(0, 11, 2) ] 986 yticks = [ i/10 for i in range(0, 11, 2) ]
991 ax.set_yticks(yticks) 987 ax.set_yticks(yticks)
992 for y in yticks: 988 for y in yticks:
993 ax.axhline(y=y, color="grey", linestyle="--", linewidth=1) 989 ax.axhline(y=y, color="grey", linestyle="--", linewidth=1)
994 ax.tick_params(top=False, bottom=False, labeltop=False, labelbottom=False) 990 ax.tick_params(top=False, bottom=False, labeltop=False, labelbottom=False)
995 - ax.set_xticks([i for i in range(20)]) 991 + ax.set_xticks([i for i in range(8)])
996 axes[0].tick_params(top=True, bottom=False, labeltop=True, labelbottom=False) 992 axes[0].tick_params(top=True, bottom=False, labeltop=True, labelbottom=False)
997 axes[0].set_xticklabels(labels) 993 axes[0].set_xticklabels(labels)
998 for i, tick in enumerate(axes[0].xaxis.get_major_ticks()): 994 for i, tick in enumerate(axes[0].xaxis.get_major_ticks()):
...@@ -1006,9 +1002,9 @@ if __name__ == '__main__': ...@@ -1006,9 +1002,9 @@ if __name__ == '__main__':
1006 1002
1007 # Figure : number of solutions 1003 # Figure : number of solutions
1008 print("Number of solutions...") 1004 print("Number of solutions...")
1009 - plt.figure(figsize=(9,2.5), dpi=80) 1005 + plt.figure(figsize=(5,3), dpi=80)
1010 plt.suptitle(" \n ") 1006 plt.suptitle(" \n ")
1011 - plt.subplots_adjust(left=0.05, right=0.97, top=0.6, bottom=0.05) 1007 + plt.subplots_adjust(left=0.1, right=0.97, top=0.72, bottom=0.05)
1012 xpos = [ x for x in range(len(n)) ] 1008 xpos = [ x for x in range(len(n)) ]
1013 for y in [ 10*x for x in range(8) ]: 1009 for y in [ 10*x for x in range(8) ]:
1014 plt.axhline(y=y, color="grey", linestyle="-", linewidth=0.5) 1010 plt.axhline(y=y, color="grey", linestyle="-", linewidth=0.5)
...@@ -1019,24 +1015,15 @@ if __name__ == '__main__': ...@@ -1019,24 +1015,15 @@ if __name__ == '__main__':
1019 patch.set_edgecolor(color) 1015 patch.set_edgecolor(color)
1020 patch.set_alpha(0.5) 1016 patch.set_alpha(0.5)
1021 labels = [ 1017 labels = [
1022 - "Biokop", 1018 + "Biokop\nmode", "RNA\nsubopt",
1023 - "RNAsubopt","RNA-MoIP\n1by1", "RNA-MoIP\nchunk",
1024 "$f_{1A}$", "$f_{1B}$", 1019 "$f_{1A}$", "$f_{1B}$",
1025 - "$f_{1A}$", "$f_{1B}$", "$f_{1C}$", "$f_{1D}$", 1020 + "$f_{1A}$", "$f_{1B}$",
1026 - "$f_{1A}$", "$f_{1B}$", "$f_{1C}$", "$f_{1D}$",
1027 - "$f_{1A}$", "$f_{1B}$", "$f_{1C}$", "$f_{1D}$",
1028 "$f_{1A}$", "$f_{1B}$" 1021 "$f_{1A}$", "$f_{1B}$"
1029 ] 1022 ]
1030 - plt.xlim((-1,20)) 1023 + plt.xlim((-1,8))
1031 plt.tick_params(top=False, bottom=False, labeltop=False, labelbottom=False) 1024 plt.tick_params(top=False, bottom=False, labeltop=False, labelbottom=False)
1032 plt.xticks([ i for i in range(len(labels))], labels) 1025 plt.xticks([ i for i in range(len(labels))], labels)
1033 plt.tick_params(top=True, bottom=False, labeltop=True, labelbottom=False) 1026 plt.tick_params(top=True, bottom=False, labeltop=True, labelbottom=False)
1034 - for i, tick in enumerate(plt.gca().xaxis.get_major_ticks()):
1035 - if i<4: # Reduce size of RNA-MoIP labels to stay readable
1036 - # tick.label2.set_fontsize(8)
1037 - tick.label2.set_rotation(90)
1038 - else:
1039 - tick.label2.set_fontsize(12)
1040 plt.yticks([ 20*x for x in range(3) ]) 1027 plt.yticks([ 20*x for x in range(3) ])
1041 plt.ylim((0,40)) 1028 plt.ylim((0,40))
1042 plt.savefig("number_of_solutions.png") 1029 plt.savefig("number_of_solutions.png")
...@@ -1044,11 +1031,11 @@ if __name__ == '__main__': ...@@ -1044,11 +1031,11 @@ if __name__ == '__main__':
1044 # Figure : max number of insertions and ratio 1031 # Figure : max number of insertions and ratio
1045 fig, axes = plt.subplots(nrows=2, ncols=1, figsize=(10,4), dpi=80) 1032 fig, axes = plt.subplots(nrows=2, ncols=1, figsize=(10,4), dpi=80)
1046 fig.suptitle(" \n ") 1033 fig.suptitle(" \n ")
1047 - fig.subplots_adjust(left=0.09, right=0.99, top=0.7, bottom=0.05) 1034 + fig.subplots_adjust(left=0.09, right=0.99, top=0.85, bottom=0.05)
1048 1035
1049 # Figure : max inserted 1036 # Figure : max inserted
1050 print("Max inserted...") 1037 print("Max inserted...")
1051 - xpos = [ x for x in range(18) ] 1038 + xpos = [ x for x in range(len(max_i)) ]
1052 axes[0].set_yticks([ 5*x for x in range(3) ]) 1039 axes[0].set_yticks([ 5*x for x in range(3) ])
1053 for y in [ 2*x for x in range(7) ]: 1040 for y in [ 2*x for x in range(7) ]:
1054 axes[0].axhline(y=y, color="grey", linestyle="-", linewidth=0.5) 1041 axes[0].axhline(y=y, color="grey", linestyle="-", linewidth=0.5)
...@@ -1061,14 +1048,13 @@ if __name__ == '__main__': ...@@ -1061,14 +1048,13 @@ if __name__ == '__main__':
1061 1048
1062 # Figure : insertion ratio 1049 # Figure : insertion ratio
1063 print("Ratio of insertions...") 1050 print("Ratio of insertions...")
1064 - xpos = [ 0 ] + [ x for x in range(2, 1+len(r)) ]
1065 axes[1].set_ylim((-0.01, 1.01)) 1051 axes[1].set_ylim((-0.01, 1.01))
1066 yticks = [ 0, 0.5, 1.0 ] 1052 yticks = [ 0, 0.5, 1.0 ]
1067 axes[1].set_yticks(yticks) 1053 axes[1].set_yticks(yticks)
1068 for y in yticks: 1054 for y in yticks:
1069 axes[1].axhline(y=y, color="grey", linestyle="-", linewidth=0.5) 1055 axes[1].axhline(y=y, color="grey", linestyle="-", linewidth=0.5)
1070 vplot = axes[1].violinplot(r, showmeans=False, showmedians=False, showextrema=False, points=len(r[0]), positions=xpos) 1056 vplot = axes[1].violinplot(r, showmeans=False, showmedians=False, showextrema=False, points=len(r[0]), positions=xpos)
1071 - for patch, color in zip(vplot['bodies'], [colors[2]] + colors[4:]): 1057 + for patch, color in zip(vplot['bodies'], colors[2:]):
1072 patch.set_facecolor(color) 1058 patch.set_facecolor(color)
1073 patch.set_edgecolor(color) 1059 patch.set_edgecolor(color)
1074 patch.set_alpha(0.5) 1060 patch.set_alpha(0.5)
...@@ -1078,21 +1064,15 @@ if __name__ == '__main__': ...@@ -1078,21 +1064,15 @@ if __name__ == '__main__':
1078 1064
1079 labels = labels[2:] 1065 labels = labels[2:]
1080 for ax in axes: 1066 for ax in axes:
1081 - ax.set_xlim((-1,18)) 1067 + ax.set_xlim((-1,6))
1082 ax.tick_params(top=False, bottom=False, labeltop=False, labelbottom=False) 1068 ax.tick_params(top=False, bottom=False, labeltop=False, labelbottom=False)
1083 - ax.set_xticks([ i for i in range(18)]) 1069 + ax.set_xticks([ i for i in range(6)])
1084 axes[0].tick_params(top=True, bottom=False, labeltop=True, labelbottom=False) 1070 axes[0].tick_params(top=True, bottom=False, labeltop=True, labelbottom=False)
1085 axes[0].set_xticklabels(labels) 1071 axes[0].set_xticklabels(labels)
1086 for i, tick in enumerate(axes[0].xaxis.get_major_ticks()): 1072 for i, tick in enumerate(axes[0].xaxis.get_major_ticks()):
1087 - if i<2: # Reduce size of RNA-MoIP labels to stay readable 1073 + tick.label2.set_fontsize(12)
1088 - # tick.label2.set_fontsize(9)
1089 - tick.label2.set_rotation(90)
1090 - else:
1091 - tick.label2.set_fontsize(12)
1092 1074
1093 plot_best_MCCs(x_noPK_fully, x_PK_fully, x_pseudobase_fully) 1075 plot_best_MCCs(x_noPK_fully, x_PK_fully, x_pseudobase_fully)
1094 plt.savefig("best_MCCs.png") 1076 plt.savefig("best_MCCs.png")
1095 plot_more_info() 1077 plot_more_info()
1096 plt.savefig("detailed_stats.png") 1078 plt.savefig("detailed_stats.png")
1097 - compare_subopt_MoIP()
1098 - plt.savefig("compare_subopt_MOIP.png")
......
This diff is collapsed. Click to expand it.
...@@ -3,16 +3,13 @@ ...@@ -3,16 +3,13 @@
3 echo "WARNING: The purpose of this file is to document how the docker image was built."; 3 echo "WARNING: The purpose of this file is to document how the docker image was built.";
4 echo "You cannot execute it directly, because of licensing reasons. Please get your own:"; 4 echo "You cannot execute it directly, because of licensing reasons. Please get your own:";
5 echo "- CPLEX academic version: cplex_installer_12.8_Student.bin"; 5 echo "- CPLEX academic version: cplex_installer_12.8_Student.bin";
6 -echo "- Nupack header files: nupack_3.2.2.tar.gz";
7 exit 0; 6 exit 0;
8 7
9 cd ../ 8 cd ../
10 THISDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 9 THISDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
11 10
12 ####################################################### Dependencies ############################################################## 11 ####################################################### Dependencies ##############################################################
13 -sudo apt install -y clang-7 cmake make automake libboost-program-options-dev libboost-filesystem-dev openjdk-11-jre 12 +sudo apt install -y make automake libgsl-dev libmpfr-dev libeigen3-dev libboost-program-options-dev libboost-filesystem-dev
14 -sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-7 100
15 -sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-7 100
16 13
17 # CPLEX: only to build biorseo 14 # CPLEX: only to build biorseo
18 # HERE YOU SHOULD GET YOUR OWN cplex_installer_12.8_Student.bin ! I am not allowed to share mine anymore. 15 # HERE YOU SHOULD GET YOUR OWN cplex_installer_12.8_Student.bin ! I am not allowed to share mine anymore.
...@@ -20,39 +17,20 @@ chmod +x cplex_installer_12.8_Student.bin ...@@ -20,39 +17,20 @@ chmod +x cplex_installer_12.8_Student.bin
20 printf "4\n\n1\n\n\n\n\n" | sudo ./cplex_installer_12.8_Student.bin 17 printf "4\n\n1\n\n\n\n\n" | sudo ./cplex_installer_12.8_Student.bin
21 rm cplex_installer_12.8_Student.bin 18 rm cplex_installer_12.8_Student.bin
22 19
23 -# Eigen: only to build biorseo (no need to give it to the docker image) 20 +# ViennaRNA (to build Biorseo with libRNA)
24 -wget http://bitbucket.org/eigen/eigen/get/3.3.7.tar.gz -O eigen_src.tar.gz 21 +wget https://www.tbi.univie.ac.at/RNA/download/sourcecode/2_5_x/ViennaRNA-2.5.0.tar.gz
25 -tar -xf eigen_src.tar.gz 22 +tar xzf ViennaRNA-2.5.0.tar.gz
26 -cd eigen-eigen-323c052e1731 23 +cd ViennaRNA-2.5.0
27 -mkdir build 24 +./configure
28 -cd build 25 +make -j 8
29 -cmake ..
30 -sudo make install
31 -cd ../..
32 -rm -rf eigen_src.tar.gz eigen-eigen-323c052e1731
33 -
34 -# Nupack: only to build biorseo (no need to give it to the docker image)
35 -#curl -u yourname@yourUni.com:yourPassword http://www.nupack.org/downloads/serve_file/nupack3.2.2.tar.gz --output nupack3.2.2.tar.gz
36 -tar -xf nupack3.2.2.tar.gz
37 -cd nupack3.2.2
38 -mkdir build
39 -cd build
40 -cmake ..
41 -make -j8
42 sudo make install 26 sudo make install
43 -cd ../..
44 -sudo cp nupack3.2.2/src/thermo/*.h /usr/local/include/nupack/thermo/
45 -rm -rf nupack3.2.2.tar.gz nupack3.2.2/
46 -
47 -# BayesPairing: install on the docker image (done by the Dockerfile)
48 -git clone http://jwgitlab.cs.mcgill.ca/sarrazin/rnabayespairing.git BayesPairing
49 27
50 ######################################################### Build Biorseo ########################################################### 28 ######################################################### Build Biorseo ###########################################################
51 # build here, install later on the docker image (done by the Dockerfile) 29 # build here, install later on the docker image (done by the Dockerfile)
52 mkdir -p results 30 mkdir -p results
53 make -j 8 31 make -j 8
54 make clean 32 make clean
55 -rm -rf doc/ obj/ 33 +rm -rf obj/ figures/
56 34
57 ######################################################## Build Docker container ################################################## 35 ######################################################## Build Docker container ##################################################
58 # Execute the Dockerfile and build the image 36 # Execute the Dockerfile and build the image
......