Showing
5 changed files
with
53 additions
and
102 deletions
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 | ... | ... |
-
Please register or login to post a comment