Louis BECQUEY

Nettoyage + command line tests

......@@ -6,8 +6,6 @@ from math import sqrt, ceil
import numpy as np
import matplotlib.pyplot as plt
log_path = "test.log"
log = open(log_path, 'a')
......@@ -112,7 +110,7 @@ def get_list_str_by_seq(name, estimator, function, list_str, true_str, modules):
max_mcc = get_mcc_structs_max(path_benchmark, name, estimator, function, extension, modules, true_str)
list_str.append(max_mcc)
# ================== Code from Louis Beckey Benchark.py ==============================
# ================== Code from Louis Becquey Benchark.py ==============================
def dbn_to_basepairs(structure):
parenthesis = []
brackets = []
......@@ -199,7 +197,7 @@ def f1_score(tp, tn, fp, fn):
def specificity(tp, tn, fp, fn):
return tn / (tn + fp)
# ================== Code from Louis Beckey Benchark.py ==============================
# ================== Code from Louis Becquey Benchark.py ==============================
#Get the best MCC value for all prediction of the results file of the sequence in argument
def get_mcc_structs_max(path_benchmark, sequence_id, estimator, function, extension, modules, true_structure):
......
......@@ -9,7 +9,7 @@ CC = g++
CFLAGS = -Icppsrc/ -I/usr/local/include -I$(CPLEX)/concert/include -I$(CPLEX)/cplex/include -g -O3
CXXFLAGS = --std=c++17 -Wall -Wpedantic -Wextra -Wno-deprecated-copy -Wno-ignored-attributes
LINKER = g++
LDFLAGS = -L$(CPLEX)/concert/lib/x86-64_linux/static_pic/ -L$(CPLEX)/cplex/lib/x86-64_linux/static_pic/ -lboost_system -lboost_filesystem -lboost_program_options -lgomp -lconcert -lilocplex -lcplex -lpthread -ldl -lRNA -lm
LDFLAGS = -Wno-free-nonheap-object -L$(CPLEX)/concert/lib/x86-64_linux/static_pic/ -L$(CPLEX)/cplex/lib/x86-64_linux/static_pic/ -lboost_system -lboost_filesystem -lboost_program_options -lgomp -lconcert -lilocplex -lcplex -lpthread -ldl -lRNA -lm
# change these to proper directories where each file should be
SRCDIR = cppsrc
......@@ -32,7 +32,7 @@ $(OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.cpp $(INCLUDES)
@echo -e "\033[00;32mCompiled "$<".\033[00m"
.PHONY: all
all: $(BINDIR)/$(TARGET) doc
all: $(BINDIR)/$(TARGET)
.PHONY: re
re: remove clean all
......
......@@ -87,11 +87,6 @@ MOIP::MOIP(const RNA& rna, string source, string source_path, float theta, bool
} else {
index_of_yuv_[u].push_back(rna_.get_RNA_length() * rna_.get_RNA_length() + 1);
}
/*for (u = 0; u < index_of_yuv_.size(); u++) {
for (v = 0; v < index_of_yuv_[u].size(); v++) {
cout << "["<< u << "]["<< v <<"]: " << index_of_yuv_[u][v] << endl;
}
}*/
if (verbose_) cout << endl;
// Add the x_i,j decision variables
......@@ -100,7 +95,7 @@ MOIP::MOIP(const RNA& rna, string source, string source_path, float theta, bool
index_of_xij_ = vector<vector<size_t>>(rna_.get_RNA_length() - 6, vector<size_t>(0));
for (u = 0; u < rna_.get_RNA_length() - 6; u++)
for (v = u + 4; v < rna_.get_RNA_length(); v++) // A basepair is possible if v > u+3
if (rna_.get_pij(u, v) > theta and rna_.get_pij(u + 1, v - 1) > theta) { // ou u-1 v+1 ??
if (rna_.get_pij(u, v) > theta and rna_.get_pij(u + 1, v - 1) > theta) { // or u-1 v+1 ??
if (verbose_) cout << u << '-' << v << " ";
index_of_xij_[u].push_back(c);
c++;
......@@ -110,11 +105,6 @@ MOIP::MOIP(const RNA& rna, string source, string source_path, float theta, bool
} else {
index_of_xij_[u].push_back(rna_.get_RNA_length() * rna_.get_RNA_length() + 1);
}
/*for (u = 0; u < index_of_xij_.size(); u++) {
for (v = 0; v < index_of_xij_[u].size(); v++) {
cout << "["<< u << "]["<< v <<"]: " << index_of_xij_[u][v] << endl;
}
}*/
if (verbose_) cout << endl;
// Look for insertions sites, then create the appropriate Cxip variables
......@@ -221,25 +211,25 @@ MOIP::MOIP(const RNA& rna, string source, string source_path, float theta, bool
thread_pool.push_back(thread(&Pool::infinite_loop_func, &pool));
// Read every RIN file and add it to the queue (iff valid)
char error;
char error;
for (auto it : recursive_directory_range(source_path))
{
if ((error = Motif::is_valid_RIN(it.path().string()))) // Returns error if RIN file is incorrect
{
if (verbose)
if ((error = Motif::is_valid_RIN(it.path().string()))) // Returns error if RIN file is incorrect
{
if (verbose)
{
cerr << "\t> Ignoring RIN " << it.path().stem();
switch (error)
{
case 'l': cerr << ", too short to be considered."; break;
case 'x': cerr << ", because not constraining the secondary structure."; break;
default: cerr << ", unknown reason";
default: cerr << ", unknown reason";
}
cerr << endl;
}
errors++;
errors++;
continue;
}
}
accepted++;
args_of_parallel_func args(it.path(), posInsertionSites_access);
inserted++;
......@@ -264,12 +254,12 @@ MOIP::MOIP(const RNA& rna, string source, string source_path, float theta, bool
size_t errors = 0;
// Read every JSON files
vector<pair<uint,char>> errors_id;
vector<pair<uint,char>> errors_id;
for (auto it : recursive_directory_range(source_path))
{
errors_id = Motif::is_valid_JSON(it.path().string());
if (!(errors_id.empty())) // Returns error if JSON file is incorrect
{
if (!(errors_id.empty())) // Returns error if JSON file is incorrect
{
for(uint j = 0; j < errors_id.size(); j++)
{
if(verbose) {
......@@ -293,7 +283,7 @@ MOIP::MOIP(const RNA& rna, string source, string source_path, float theta, bool
}
}
errors++;
}
}
accepted++;
args_of_parallel_func args(it.path(), posInsertionSites_access);
inserted++;
......@@ -306,7 +296,7 @@ MOIP::MOIP(const RNA& rna, string source, string source_path, float theta, bool
}
else
{
cout << "!!! Unknown module source" << endl;
cout << "Err: Unknown module source." << endl;
}
// Add the Cx,i,p decision variables
......@@ -1103,7 +1093,7 @@ void MOIP::allowed_motifs_from_rin(args_of_parallel_func arg_struct)
mutex& posInsertionSites_access = arg_struct.posInsertionSites_mutex;
std::ifstream motif;
string filepath = rinfile.string();
string filepath = rinfile.string();
vector<vector<Component>> vresults, r_vresults;
vector<string> component_sequences;
uint carnaval_id;
......@@ -1112,7 +1102,7 @@ void MOIP::allowed_motifs_from_rin(args_of_parallel_func arg_struct)
string reversed_rna = rna_.get_seq();
std::reverse(reversed_rna.begin(), reversed_rna.end());
filenumber = filepath.substr(filepath.find("Subfiles/")+9, filepath.find(".txt"));
filenumber = filepath.substr(filepath.find("Subfiles/")+9, filepath.find(".txt"));
carnaval_id = 1 + stoi(filenumber); // Start counting at 1 to be consistant with the website numbering
motif = std::ifstream(rinfile.string());
......@@ -1137,13 +1127,13 @@ void MOIP::allowed_motifs_from_rin(args_of_parallel_func arg_struct)
{
Motif temp_motif = Motif(v, rinfile, carnaval_id, false);
bool unprobable = false;
for (const Link& l : temp_motif.links_)
{
if (!allowed_basepair(l.nts.first,l.nts.second))
unprobable = true;
}
if (unprobable) continue;
bool unprobable = false;
for (const Link& l : temp_motif.links_)
{
if (!allowed_basepair(l.nts.first,l.nts.second))
unprobable = true;
}
if (unprobable) continue;
// Add it to the results vector
unique_lock<mutex> lock(posInsertionSites_access);
......@@ -1328,7 +1318,7 @@ void MOIP::allowed_motifs_from_json(args_of_parallel_func arg_struct, vector<pai
mutex& posInsertionSites_access = arg_struct.posInsertionSites_mutex;
std::ifstream motif;
string filepath = jsonfile.string();
string filepath = jsonfile.string();
vector<vector<Component>> vresults, r_vresults;
vector<string> component_sequences;
vector<string> component_contacts;
......
This diff is collapsed. Click to expand it.
No preview for this file type
__'CRYSTAL_STRUCTURE_OF_A_TIGHT-BINDING_GLUTAMINE_TRNA_BOUND_TO_GLUTAMINE_AMINOACYL_TRNA_SYNTHETASE_'_(PDB_00376)
GGGGUAUCGCCAAGCGGUAAGGCACCGGAUUCUGAUUCCGGAGGUCGAGGUUCGAAUCCUCGUACCCCAGCCA
(((((((((([..)))....(((.(((((.({..).))))).])))((((.(.}.).)))))))))))..... + JSON432 + JSON615 32.0000000 19.2280288
................****.................................................****
(((((((((([..)))....(((.((((((....).))))).])))((((.(...).)))))))))))..... + JSON169 + JSON432 + JSON615 48.0000000 19.2123884
................****..........****...................................****
(((((((.(([.....))..(((.(((((.({..).))))).])))((((.(.}.).)))))))))))..... + JSON322 + JSON478 52.0000000 18.3718588
............****................**...................................****
((((((((((...)))....(([.((((((....).)))))...))((((.(...).))))))))))).]... + JSON169 + JSON615 + JSON763 57.0000000 18.3583187
................****..........****.......***...........................**
(((((((((([..)))....(((.((((((....).))))).])))(((.........))))))))))..... + JSON169 + JSON386 + JSON432 + JSON615 64.0000000 18.2180422
................****..........****...............****................****
(((((([(((...))).)..(((.(((((.(...).))))).){))((((.(...).))))]})))))..... + JSON322 + JSON471 80.0000000 17.8060915
........**.....................***................*...........*........**
(((((([((([..))).)..((..((((((....).))))).]{))((((.(...).))))]})))))..... + JSON169 + JSON432 + JSON471 96.0000000 17.7717258
........**............*.......****......................*.....*......****
(((((.((((...)))....(((.(((((.[.....))))).){))((((.(..]).)))))})))))..... + JSON154 + JSON432 + JSON471 105.0000000 17.5888835
........**......**.............****.....................*.....*......****
(((((.(((([..)))....((..((((((....).))))).][))((((.(...).)))))])))))..... + JSON169 + JSON432 + JSON471 + JSON615 112.0000000 17.5772109
........**......****..*.......****......................*.....*......****
(((((.((((...)))....(((.((((([[.....))))).){))(((.....]]..))))})))))..... + JSON154 + JSON386 + JSON432 + JSON471 121.0000000 16.5955778
........**......**.............****..............****...*.....*......****
(((((.(((([..)))....((..((((((....).))))).][))(((.........))))])))))..... + JSON169 + JSON386 + JSON432 + JSON471 + JSON615 128.0000000 16.5828646
........**......****..*.......****...............****...*.....*......****
(((((.(.(([.........{)).(((((.(...).))))).][(}[[[[.[..)].]]]])])))))..... + JSON322 + JSON471 + JSON478 + JSON615 132.0000000 15.2549277
........**..********...........***................*...........*......****
(((((((.............(...((((((....).)))))....)(((.........))))))))))..... + JSON169 + JSON386 + JSON432 + JSON432 + JSON473 + JSON478 + JSON615 141.0000000 14.8831569
........************.**.......****.......****....****...............*****
((((((..(((.........))).(((((.......)))))....(((((.(...).)))))))))))..... + JSON38 2916.0000000 14.7452026
*******.*******......*****.....******............................********
((((((..(((.........))).(((((.......)))))....((((.........))))))))))..... + JSON38 + JSON386 2932.0000000 13.7508564
*******.*******......*****.....******............****............********
((((((..(((.........))).(((((.......)))))....((....(...)....))))))))..... + JSON38 + JSON473 2941.0000000 11.8254010
*******.*******......*****.....******..........****...*..........********
(((((((.............(...((((((....).)))))....)(((.........))))))))))..... + JSON169 + JSON386 + JSON432 + JSON432 + JSON473 + JSON478 + JSON615 141.0000000 14.8831569
........************.**.......****.......****....****..*.............****
(((((.(.(([.........{)).(((((.(...).))))).][(}[[[[.[..)].]]]])])))))..... + JSON322 + JSON471 + JSON478 + JSON615 132.0000000 15.2549277
........**..********...........***......................*.....*......****
(((((.(((([..)))....((..((((((....).))))).][))((((.(...).)))))])))))..... + JSON169 + JSON432 + JSON471 + JSON615 112.0000000 17.5772109
........**......****..*.......****................*...........*......****
(((((.((((...)))....(((.(((((.[.....))))).){))((((.(..]).)))))})))))..... + JSON154 + JSON432 + JSON471 105.0000000 17.5888835
........**......**.............****...............*...........*......****
(((((([((([..))).)..((..((((((....).))))).]{))((((.(...).))))]})))))..... + JSON169 + JSON432 + JSON471 96.0000000 17.7717258
........**............*.......****................*...........*......****
(((((([(((...))).)..(((.(((((.(...).))))).){))((((.(...).))))]})))))..... + JSON322 + JSON471 80.0000000 17.8060915
........**.....................***......................*.....*........**
(((((((((([..)))....(((.(((((.({..).))))).])))((((.(.}.).)))))))))))..... + JSON322 + JSON615 32.0000000 19.2280288
................****............**.....................................**
__'CRYSTAL_STRUCTURE_OF_A_TIGHT-BINDING_GLUTAMINE_TRNA_BOUND_TO_GLUTAMINE_AMINOACYL_TRNA_SYNTHETASE_'_(PDB_00376)
GGGGUAUCGCCAAGCGGUAAGGCACCGGAUUCUGAUUCCGGAGGUCGAGGUUCGAAUCCUCGUACCCCAGCCA
(((((((((([..)))....(((.(((((.({..).))))).])))((((.(.}.).)))))))))))..... + JSON322 + JSON615 1.5000000 19.2280288
................****............**.....................................**
(((((((((([..)))....(((.(((((.(...).))))).])))((((.(...).)))))))))))..... + JSON322 + JSON615 1.5000200 19.2269926
................****............**.....................................**
(((((((.(([.....))..(((.(((((.({..).))))).])))((((.(.}.).)))))))))))..... + JSON322 + JSON478 1.7737056 18.3718588
............****................**...................................****
((((((((((...)))....(([.((((((....).)))))...))((((.(...).))))))))))).]... + JSON169 + JSON615 + JSON763 1.8613531 18.3583187
................****..........****.......***...........................**
.((((((((([..)))....(((.(((((.({..).))))).])))((((.(.}.).))))))))))...... + JSON322 + JSON432 + JSON615 2.0000000 18.2455939
................****............**.................................******
(((((((((({..)))....(((.((((([([..).))))).})))(((....].]..))))))))))..... + JSON322 + JSON386 + JSON615 2.0000200 18.2347086
................****............**...............****..................**
(((((([(((...))).)..(((.(((((.(...).))))).){))((((.(...).))))]})))))..... + JSON322 + JSON471 3.0000000 17.8060915
........**.....................***......................*.....*........**
(((((.((((...)))....(((.(((((.(...).))))).)[))((((.(...).)))))])))))..... + JSON322 + JSON471 + JSON615 3.5000000 17.6115766
........**......****...........***......................*.....*........**
.((((.((((...)))....(((.(((((.(...).))))).)[))((((.(...).)))))]))))...... + JSON322 + JSON432 + JSON471 + JSON615 4.0000000 16.6291417
........**......****...........***......................*.....*....******
.((((.((((...)))....(((.((((([(...).))))).){))(((......]..))))}))))...... + JSON322 + JSON386 + JSON432 + JSON471 + JSON615 4.5000000 15.6358360
........**......****...........***...............****...*.....*....******
(((((.(.(([.........{)).(((((<(...).))))).][(}[[[.....)>..]]])])))))..... + JSON322 + JSON386 + JSON471 + JSON478 + JSON615 4.7737056 14.2616220
........**..********...........***...............****...*.....*......****
.((((.((((...)))....(((.(((((.(...).)))))[){))(....(...)...]))}))))...... + JSON322 + JSON432 + JSON471 + JSON473 + JSON615 4.8613531 13.7313706
........**......****...........***.............****...*.*.....*....******
.((((.((.....[[)....(]].((((([(...).)))))..{[)(((.....]]..))))}))))...... + JSON322 + JSON386 + JSON432 + JSON432 + JSON471 + JSON615 5.0000000 13.7177100
........****.**.****...........***...............****...*.....*....******
(((((.(.((..........[)).(((((.(...).)))))(({(][....[..)]..))])})))))..... + JSON322 + JSON471 + JSON473 + JSON478 + JSON615 5.1350587 12.3759713
........**..********...........***.............****.....*.....*.....*****
.((((.....(..[[)....(]]..(((([(...).))))...{[)(((.....]]..))).}))))...... + JSON322 + JSON386 + JSON432 + JSON471 + JSON615 + JSON632 5.2737056 11.9911280
......****...**.****...**......***...............****...*.....*....******
.((((.((.....[[)....(]].(((((.(...).)))))[[{.)(....(...)..]]))}))))...... + JSON322 + JSON432 + JSON432 + JSON471 + JSON473 + JSON615 5.3613531 11.8157013
........****.**.****...........***.............****...*.*.....*....******
.((....(.....[[)....(]].((((([(...).))))).{{[)(((.....]]..))).}.}))...... + JSON322 + JSON386 + JSON432 + JSON432 + JSON471 + JSON615 + JSON928 5.5000000 11.2444565
...****.****.**.****...........***...............****...*.....*....******
.(........(..[[)....(]].((((([(...).))))).{{[)(((.....]]..))).}..})...... + JSON322 + JSON386 + JSON432 + JSON433 + JSON471 + JSON615 + JSON632 5.7737056 10.1268257
..********...**.****...........***...............****...*.....***..******
.((....(.....[[)....(]].(((((.(...).)))))[[{[)(....(..])..]]).}..))...... + JSON322 + JSON432 + JSON432 + JSON471 + JSON473 + JSON615 + JSON928 5.8613531 9.3610813
...****.****.**.****...........***.............****.....*.....**...******
.((....(.....[[)....(]].((.[.[(...)....)).{{[)(((.....]].]))).}.}))...... + JSON156 + JSON322 + JSON386 + JSON432 + JSON432 + JSON471 + JSON615 + JSON928 6.0000000 8.2749650
...****.****.**.****...........***.****..........****...*.....*....******
.(........(..[[)....(]].(((((.(...).)))))[[{.)(....(...)..]]).}...)...... + JSON322 + JSON432 + JSON433 + JSON471 + JSON473 + JSON615 + JSON632 6.1350587 8.2098083
..********...**.****...........***.............****...*.*.....***..******
.(........(..[[)....(]].((.[.[(...)....)).{{[)(((.....]].]))).}..})...... + JSON156 + JSON322 + JSON386 + JSON432 + JSON433 + JSON471 + JSON615 + JSON632 6.2737056 7.1573341
..********...**.****...........***.****..........****...*.....***..******
.((....(.....[[)....(]].((.[..(...)....)){{<[)(....(..]).]}}).>..))...... + JSON156 + JSON322 + JSON432 + JSON432 + JSON471 + JSON473 + JSON615 + JSON928 6.3613531 6.3915897
...****.****.**.****...........***.****........****.....*.....**...******
.(........(..[[)....(]].((.[..(...)....)){{<.)(....(...).]}}).>...)...... + JSON156 + JSON322 + JSON432 + JSON433 + JSON471 + JSON473 + JSON615 + JSON632 6.6350587 5.2403168
..********...**.****...........***.****........****...*.*.....***..******
.((((.((((...)))....((..(((((.({..).)))))[[<))(....(.}.)..]]))>))))...... + JSON322 + JSON432 + JSON471 + JSON473 + JSON615 4.8613531 13.7314599
........**......****..*.........**.............****...*.*.....*....******
.((((.((((...)))....(((.(((((.(...).))))).)[))((((.(...).)))))]))))...... + JSON322 + JSON432 + JSON471 + JSON615 4.0000000 16.6291417
........**......****...........***................*...........*....******
(((((.((((...)))....(((.(((((.(...).))))).)[))((((.(...).)))))])))))..... + JSON322 + JSON471 + JSON615 3.5000000 17.6115766
........**......****...........***................*...........*........**
(((((([(((...))).)..(((.(((((.(...).))))).){))((((.(...).))))]})))))..... + JSON322 + JSON471 3.0000000 17.8060915
........**.....................***................*...........*........**
__'CRYSTAL_STRUCTURE_OF_A_TIGHT-BINDING_GLUTAMINE_TRNA_BOUND_TO_GLUTAMINE_AMINOACYL_TRNA_SYNTHETASE_'_(PDB_00376)
GGGGUAUCGCCAAGCGGUAAGGCACCGGAUUCUGAUUCCGGAGGUCGAGGUUCGAAUCCUCGUACCCCAGCCA
(((((((((([..)))....(((.(((((.({..).))))).])))((((.(.}.).)))))))))))..... 0.0000000 19.2280288
.........................................................................
(((((((((([..)))....(((.(((((.({..).))))).])))((((.(.}.).)))))))))))..... + JSON322 0.0000000 19.2280288
................................**.....................................**