Showing
9 changed files
with
49 additions
and
340 deletions
This diff is collapsed. Click to expand it.
biorseo.py
deleted
100755 → 0
This diff is collapsed. Click to expand it.
... | @@ -1142,178 +1142,9 @@ void MOIP::allowed_motifs_from_rin(args_of_parallel_func arg_struct) | ... | @@ -1142,178 +1142,9 @@ void MOIP::allowed_motifs_from_rin(args_of_parallel_func arg_struct) |
1142 | } | 1142 | } |
1143 | } | 1143 | } |
1144 | 1144 | ||
1145 | - | ||
1146 | -//Check if the sequence is a rna sequence (ATGC) and replace T by U or remove modified nucleotide if necessary | ||
1147 | -string check_motif_sequence(string seq) { | ||
1148 | - std::transform(seq.begin(), seq.end(), seq.begin(), ::toupper); | ||
1149 | - for (int i = seq.size(); i >= 0; i--) { | ||
1150 | - if(seq[i] == 'T') { | ||
1151 | - seq[i] = 'U'; | ||
1152 | - } else if (!(seq [i] == 'A' || seq [i] == 'U' || seq [i] == '&' | ||
1153 | - || seq [i] == 'G' || seq [i] == 'C')) { | ||
1154 | - seq = seq.erase(i,1); | ||
1155 | - } | ||
1156 | - } | ||
1157 | - return seq; | ||
1158 | -} | ||
1159 | - | ||
1160 | -// Based on the 2d structure find all positions of the pairings. | ||
1161 | -vector<Link> search_pairing(string& struc, vector<Component>& v) { | ||
1162 | - | ||
1163 | - vector<Link> vec; | ||
1164 | - stack<uint> parentheses; | ||
1165 | - stack<uint> crochets; | ||
1166 | - stack<uint> accolades; | ||
1167 | - stack<uint> chevrons; | ||
1168 | - | ||
1169 | - uint count = 0; | ||
1170 | - uint debut = v[count].pos.first; | ||
1171 | - uint gap = 0; | ||
1172 | - | ||
1173 | - for (uint i = 0; i < struc.size(); i++) { | ||
1174 | - if (struc[i] == '(') { | ||
1175 | - parentheses.push(i + debut + gap - count); | ||
1176 | - | ||
1177 | - } else if (struc[i] == ')') { | ||
1178 | - Link l; | ||
1179 | - l.nts.first = parentheses.top(); | ||
1180 | - l.nts.second = i + debut + gap - count; | ||
1181 | - vec.push_back(l); | ||
1182 | - parentheses.pop(); | ||
1183 | - | ||
1184 | - } else if (struc[i] == '[') { | ||
1185 | - crochets.push(i + debut + gap - count); | ||
1186 | - | ||
1187 | - } else if (struc[i] == ']') { | ||
1188 | - Link l; | ||
1189 | - l.nts.first = crochets.top(); | ||
1190 | - l.nts.second = i + debut + gap - count; | ||
1191 | - vec.push_back(l); | ||
1192 | - crochets.pop(); | ||
1193 | - | ||
1194 | - } else if (struc[i] == '{') { | ||
1195 | - accolades.push(i + debut + gap - count); | ||
1196 | - | ||
1197 | - } else if (struc[i] == '}') { | ||
1198 | - Link l; | ||
1199 | - l.nts.first = accolades.top(); | ||
1200 | - l.nts.second = i + debut + gap - count; | ||
1201 | - vec.push_back(l); | ||
1202 | - accolades.pop(); | ||
1203 | - | ||
1204 | - } else if (struc[i] == '<') { | ||
1205 | - chevrons.push(i + debut + gap - count); | ||
1206 | - | ||
1207 | - } else if (struc[i] == '>') { | ||
1208 | - Link l; | ||
1209 | - l.nts.first = chevrons.top(); | ||
1210 | - l.nts.second = i + debut + gap - count; | ||
1211 | - vec.push_back(l); | ||
1212 | - chevrons.pop(); | ||
1213 | - | ||
1214 | - } else if (struc[i] == '&') { | ||
1215 | - count ++; | ||
1216 | - gap += v[count].pos.first - v[count - 1].pos.second - 1; | ||
1217 | - } | ||
1218 | - } | ||
1219 | - return vec; | ||
1220 | -} | ||
1221 | - | ||
1222 | -size_t count_contacts(string contacts) { | ||
1223 | - | ||
1224 | - size_t count = 0; | ||
1225 | - for (uint i = 0; i < contacts.size(); i++) { | ||
1226 | - if (contacts[i] == '*') { | ||
1227 | - count++; | ||
1228 | - } | ||
1229 | - } | ||
1230 | - return count; | ||
1231 | -} | ||
1232 | - | ||
1233 | -uint find_max_occurrences (string filepath) { | ||
1234 | - uint max = 0; | ||
1235 | - std::ifstream in = std::ifstream(filepath); | ||
1236 | - json js = json::parse(in); | ||
1237 | - string contacts_id; | ||
1238 | - | ||
1239 | - for(auto it = js.begin(); it != js.end(); ++it) { | ||
1240 | - contacts_id = it.key(); | ||
1241 | - for(auto it2 = js[contacts_id].begin(); it2 != js[contacts_id].end(); ++it2) { | ||
1242 | - string test = it2.key(); | ||
1243 | - if (!test.compare("occurences")) { | ||
1244 | - uint occ = it2.value(); | ||
1245 | - if (occ > max) { | ||
1246 | - max = occ; | ||
1247 | - } | ||
1248 | - } | ||
1249 | - } | ||
1250 | - } | ||
1251 | - return max; | ||
1252 | -} | ||
1253 | - | ||
1254 | -uint find_max_sequence (string filepath) { | ||
1255 | - uint max = 0; | ||
1256 | - std::ifstream in = std::ifstream(filepath); | ||
1257 | - json js = json::parse(in); | ||
1258 | - string contacts_id; | ||
1259 | - string seq; | ||
1260 | - | ||
1261 | - for(auto it = js.begin(); it != js.end(); ++it) { | ||
1262 | - contacts_id = it.key(); | ||
1263 | - for(auto it2 = js[contacts_id].begin(); it2 != js[contacts_id].end(); ++it2) { | ||
1264 | - string test = it2.key(); | ||
1265 | - if (!test.compare("sequence")) { | ||
1266 | - seq = it2.value(); | ||
1267 | - uint size = seq.size(); | ||
1268 | - if (size > max) { | ||
1269 | - max = size; | ||
1270 | - } | ||
1271 | - } | ||
1272 | - } | ||
1273 | - } | ||
1274 | - return max; | ||
1275 | -} | ||
1276 | - | ||
1277 | -vector<string> find_components(string sequence, string delimiter) { | ||
1278 | - vector<string> list; | ||
1279 | - string seq = sequence; | ||
1280 | - string subseq; | ||
1281 | - uint fin = 0; | ||
1282 | - | ||
1283 | - while(seq.find(delimiter) != string::npos) { | ||
1284 | - fin = seq.find(delimiter); | ||
1285 | - | ||
1286 | - subseq = seq.substr(0, fin); | ||
1287 | - seq = seq.substr(fin + 1); | ||
1288 | - list.push_back(subseq); // new component sequence | ||
1289 | - } | ||
1290 | - if (!seq.empty()) { | ||
1291 | - list.push_back(seq); | ||
1292 | - } | ||
1293 | - return list; | ||
1294 | -} | ||
1295 | - | ||
1296 | -vector<uint> find_contacts(vector<string>& struc2d, vector<Component>& v) { | ||
1297 | - vector<uint> positions; | ||
1298 | - string delimiter = "*"; | ||
1299 | - uint debut; | ||
1300 | - for (uint i = 0; i < v.size(); i++) { | ||
1301 | - debut = v[i].pos.first; | ||
1302 | - uint pos = struc2d[i].find(delimiter, 0); | ||
1303 | - while(pos != string::npos && pos <= struc2d[i].size()) | ||
1304 | - { | ||
1305 | - positions.push_back(pos + debut); | ||
1306 | - pos = struc2d[i].find(delimiter, pos+1); | ||
1307 | - } | ||
1308 | - } | ||
1309 | - return positions; | ||
1310 | -} | ||
1311 | - | ||
1312 | void MOIP::allowed_motifs_from_json(args_of_parallel_func arg_struct, vector<pair<uint, char>> errors_id) | 1145 | void MOIP::allowed_motifs_from_json(args_of_parallel_func arg_struct, vector<pair<uint, char>> errors_id) |
1313 | { | 1146 | { |
1314 | - /* | 1147 | + // Searches where to place some JSON motifs in the RNA |
1315 | - Searches where to place some JSON motifs in the RNA | ||
1316 | - */ | ||
1317 | path jsonfile = arg_struct.motif_file; | 1148 | path jsonfile = arg_struct.motif_file; |
1318 | mutex& posInsertionSites_access = arg_struct.posInsertionSites_mutex; | 1149 | mutex& posInsertionSites_access = arg_struct.posInsertionSites_mutex; |
1319 | 1150 | ||
... | @@ -1389,7 +1220,7 @@ void MOIP::allowed_motifs_from_json(args_of_parallel_func arg_struct, vector<pai | ... | @@ -1389,7 +1220,7 @@ void MOIP::allowed_motifs_from_json(args_of_parallel_func arg_struct, vector<pai |
1389 | if (verbose_) cout << "\t> Considering motif JSON " << contacts_id << "\t" << seq << ", " << struct2d << " "; | 1220 | if (verbose_) cout << "\t> Considering motif JSON " << contacts_id << "\t" << seq << ", " << struct2d << " "; |
1390 | 1221 | ||
1391 | Motif temp_motif = Motif(v, contacts_id, nb_contacts, tx_occurrences); | 1222 | Motif temp_motif = Motif(v, contacts_id, nb_contacts, tx_occurrences); |
1392 | - temp_motif.links_ = search_pairing(struct2d, v); | 1223 | + temp_motif.links_ = build_motif_pairs(struct2d, v); |
1393 | temp_motif.pos_contacts = find_contacts(component_contacts, v); | 1224 | temp_motif.pos_contacts = find_contacts(component_contacts, v); |
1394 | 1225 | ||
1395 | // Check if the motif can be inserted, checking the basepairs probabilities and theta | 1226 | // Check if the motif can be inserted, checking the basepairs probabilities and theta |
... | @@ -1421,4 +1252,4 @@ void MOIP::allowed_motifs_from_json(args_of_parallel_func arg_struct, vector<pai | ... | @@ -1421,4 +1252,4 @@ void MOIP::allowed_motifs_from_json(args_of_parallel_func arg_struct, vector<pai |
1421 | component_sequences.clear(); | 1252 | component_sequences.clear(); |
1422 | } | 1253 | } |
1423 | 1254 | ||
1424 | -} | 1255 | +} |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
This diff is collapsed. Click to expand it.
... | @@ -86,6 +86,18 @@ vector<Motif> load_json_folder(const string& path, const string& r | ... | @@ -86,6 +86,18 @@ vector<Motif> load_json_folder(const string& path, const string& r |
86 | vector<vector<Component>> find_next_ones_in(string rna, uint offset, vector<string>& vc); | 86 | vector<vector<Component>> find_next_ones_in(string rna, uint offset, vector<string>& vc); |
87 | vector<vector<Component>> json_find_next_ones_in(string rna, uint offset, vector<string>& vc); | 87 | vector<vector<Component>> json_find_next_ones_in(string rna, uint offset, vector<string>& vc); |
88 | 88 | ||
89 | +// utilities for Json motifs | ||
90 | +size_t count_nucleotide(string&); | ||
91 | +size_t count_delimiter(string&); | ||
92 | +size_t count_contacts(string&); | ||
93 | +string check_motif_sequence(string); | ||
94 | +bool checkSecondaryStructure(string); | ||
95 | +vector<Link> build_motif_pairs(string&, vector<Component>&); | ||
96 | +uint find_max_occurrences(string&); | ||
97 | +uint find_max_sequence(string&); | ||
98 | +vector<string> find_components(string&, string); | ||
99 | +vector<uint> find_contacts(vector<string>&, vector<Component>&); | ||
100 | + | ||
89 | // utilities to compare secondary structures: | 101 | // utilities to compare secondary structures: |
90 | bool operator==(const Motif& m1, const Motif& m2); | 102 | bool operator==(const Motif& m1, const Motif& m2); |
91 | bool operator!=(const Motif& m1, const Motif& m2); | 103 | bool operator!=(const Motif& m1, const Motif& m2); | ... | ... |
... | @@ -74,67 +74,57 @@ int main(int argc, char* argv[]) | ... | @@ -74,67 +74,57 @@ int main(int argc, char* argv[]) |
74 | ("help,h", "Print the help message") | 74 | ("help,h", "Print the help message") |
75 | ("version", "Print the program version") | 75 | ("version", "Print the program version") |
76 | ("seq,s", po::value<string>(&inputName)->required(), "Fasta file containing the RNA sequence") | 76 | ("seq,s", po::value<string>(&inputName)->required(), "Fasta file containing the RNA sequence") |
77 | - ("descfolder,d", po::value<string>(&motifs_path_name), "A folder containing modules in .desc format, as produced by Djelloul & Denise's catalog program") | 77 | + ("descfolder,d", po::value<string>(&motifs_path_name), "A folder containing modules in .desc format, as produced by Djelloul & Denise's catalog program (deprecated)") |
78 | - ("rinfolder,x", po::value<string>(&motifs_path_name), "A folder containing CaRNAval's RINs in .txt format, as produced by script transform_caRNAval_pickle.py") | 78 | + ("rinfolder,r", po::value<string>(&motifs_path_name), "A folder containing CaRNAval's RINs in .txt format, as produced by script transform_caRNAval_pickle.py") |
79 | - ("jsonfolder,a", po::value<string>(&motifs_path_name), "A folder containing a custom motif library in .json format") | 79 | + ("jsonfolder,j", po::value<string>(&motifs_path_name), "A folder containing a custom motif library in .json format") |
80 | - | 80 | + ("pre-placed,x", po::value<string>(&motifs_path_name), "A CSV file providing motif insertion sites obtained with another tool.") |
81 | - ("jar3dcsv,j", po::value<string>(&motifs_path_name), "A file containing the output of JAR3D's search for motifs in the sequence, as produced by biorseo.py") | 81 | + ("function,f", po::value<char>(&obj_function_nbr)->default_value('B'), |
82 | - ("bayespaircsv,b", po::value<string>(&motifs_path_name), "A file containing the output of BayesPairing's search for motifs in the sequence, as produced by biorseo.py") | 82 | + "(A, B, C, D, E or F) Objective function to score module insertions:\n" |
83 | - ("first-objective,c", po::value<unsigned int>(&MOIP::obj_to_solve_)->default_value(2), "Objective to solve in the mono-objective portions of the algorithm") | 83 | + " (A) insert big modules\n (B) light, high-order modules\n" |
84 | + " (C) well-scored modules\n (D) light, high-order, well-scored\n modules\n" | ||
85 | + " (E, F) insert big modules with many\n contacts with proteins, different\n ponderations.\n" | ||
86 | + " C and D require position scores\n provided by --pre-placed.\n" | ||
87 | + " E and F require protein-contact\n information and should be\n used only with --jsonfolder.") | ||
88 | + ("mfe,E", "Minimize stacking energies\n (leads to MFE extimator)") | ||
89 | + ("mea,A", "(default) Maximize expected accuracy\n (leads to MEA estimator)") | ||
90 | + ("first-objective,c", po::value<unsigned int>(&MOIP::obj_to_solve_)->default_value(2), | ||
91 | + "(1 or 2) Objective to solve in the mono-objective portions of the algorithm.\n" | ||
92 | + " (1) is the module objective,\n given by --function\n" | ||
93 | + " (2) is energy-based objective,\n either MFE or MEA") | ||
84 | ("output,o", po::value<string>(&outputName), "A file to summarize the computation results") | 94 | ("output,o", po::value<string>(&outputName), "A file to summarize the computation results") |
85 | ("theta,t", po::value<float>(&theta_p_threshold)->default_value(1e-3, "0.001"), "Pairing probability threshold to consider or not the possibility of pairing") | 95 | ("theta,t", po::value<float>(&theta_p_threshold)->default_value(1e-3, "0.001"), "Pairing probability threshold to consider or not the possibility of pairing") |
86 | - ("function,f", po::value<char>(&obj_function_nbr)->default_value('B'), "What objective function to use to include motifs: square of motif size in nucleotides like " | ||
87 | - "RNA-MoIP (A), light motif size + high number of components (B), site score (C), light motif size + site score + high number of components (D)") | ||
88 | - | ||
89 | - ("mfe,E", "Minimize stacking energies as second criteria (should lead to MFE structure)") | ||
90 | - ("mea,A", "(default) Maximize expected accuracy as second criteria (should lead to MEA structure)") | ||
91 | - | ||
92 | ("disable-pseudoknots,n", "Add constraints forbidding the formation of pseudoknots") | 96 | ("disable-pseudoknots,n", "Add constraints forbidding the formation of pseudoknots") |
93 | ("limit,l", po::value<unsigned int>(&MOIP::max_sol_nbr_)->default_value(500), "Intermediate number of solutions in the Pareto set above which we give up the calculation.") | 97 | ("limit,l", po::value<unsigned int>(&MOIP::max_sol_nbr_)->default_value(500), "Intermediate number of solutions in the Pareto set above which we give up the calculation.") |
94 | - ("verbose,v", "Print what is happening to stdout"); | 98 | + ("verbose,v", "Print what is happening to console"); |
95 | po::variables_map vm; | 99 | po::variables_map vm; |
96 | po::store(po::parse_command_line(argc, argv, desc), vm); | 100 | po::store(po::parse_command_line(argc, argv, desc), vm); |
97 | basename = remove_ext(inputName.c_str(), '.', '/'); | 101 | basename = remove_ext(inputName.c_str(), '.', '/'); |
98 | 102 | ||
99 | try { | 103 | try { |
100 | po::store(po::parse_command_line(argc, argv, desc), vm); // can throw | 104 | po::store(po::parse_command_line(argc, argv, desc), vm); // can throw |
101 | - po::notify(vm); | ||
102 | 105 | ||
103 | if (vm.count("help") or vm.count("-h")) { | 106 | if (vm.count("help") or vm.count("-h")) { |
104 | - cout << "Biorseo, bio-objective integer linear programming framework to predict RNA secondary " | 107 | + cout << "Biorseo, Bi-Objective RNA Structure Efficient Optimizer" << endl |
105 | - "structures by including known RNA modules." | 108 | + << "Bio-objective integer linear programming framework to predict RNA secondary structures by including known RNA modules." << endl |
106 | - << endl | 109 | + << "Developped by Louis Becquey, 2018-2021\nLénaïc Durand, 2019\nNathalie Bernard, 2021" << endl << endl |
107 | - << "developped by Louis Becquey, 2018-2021" << endl | 110 | + << "Usage:\tYou must provide:\n\t1) a FASTA input file with -s," << endl |
108 | - << "Lénaïc Durand, 2019" << endl | 111 | + << "\t2) a module type with --rna3dmotifs, --carnaval, --contacts or --pre-placed," << endl |
109 | - << "Nathalie Bernard, 2021" << endl | 112 | + << "\t3) one module-based scoring function with --func A, B, C, D, E or F," << endl |
110 | - << endl | 113 | + << "\t4) one energy-based scoring function with --mfe or --mea," << endl |
111 | - << desc << endl; | 114 | + << "\t5) how to display results: in console (-v), or in a result file (-o)." << endl |
115 | + << endl | ||
116 | + << desc << endl; | ||
112 | return EXIT_SUCCESS; | 117 | return EXIT_SUCCESS; |
113 | } | 118 | } |
114 | if (vm.count("version")) { | 119 | if (vm.count("version")) { |
115 | cout << "Biorseo v2.1, dockerized, November 2021" << endl; | 120 | cout << "Biorseo v2.1, dockerized, November 2021" << endl; |
116 | return EXIT_SUCCESS; | 121 | return EXIT_SUCCESS; |
117 | } | 122 | } |
123 | + po::notify(vm); // throws on error, so do after help in case there are any problems | ||
118 | if (vm.count("mfe")) mea_or_mfe = 'a'; | 124 | if (vm.count("mfe")) mea_or_mfe = 'a'; |
119 | if (vm.count("mea")) mea_or_mfe = 'b'; | 125 | if (vm.count("mea")) mea_or_mfe = 'b'; |
120 | if (vm.count("verbose")) verbose = true; | 126 | if (vm.count("verbose")) verbose = true; |
121 | if (vm.count("disable-pseudoknots")) MOIP::allow_pk_ = false; | 127 | if (vm.count("disable-pseudoknots")) MOIP::allow_pk_ = false; |
122 | - | ||
123 | - if (!vm.count("jar3dcsv") and !vm.count("bayespaircsv") and !vm.count("descfolder") and !vm.count("rinfolder") and !vm.count("jsonfolder")) { | ||
124 | - cerr << "\033[31mYou must provide at least one of --descfolder, --rinfolder, --jsonfolder, --jar3dcsv or --bayespaircsv.\033[0m See --help " | ||
125 | - "for more information." | ||
126 | - << endl; | ||
127 | - return EXIT_FAILURE; | ||
128 | - } | ||
129 | - | ||
130 | - if ((vm.count("descfolder") or vm.count("jsonfolder") or vm.count("rinfolder")) and (obj_function_nbr == 'C' or obj_function_nbr == 'D')) { | ||
131 | - cerr << "\033[31mYou must provide --jar3dcsv or --bayespaircsv to use --function C or --function D.\033[0m See " | ||
132 | - "--help for more information." | ||
133 | - << endl; | ||
134 | - return EXIT_FAILURE; | ||
135 | - } | ||
136 | - | ||
137 | - po::notify(vm); // throws on error, so do after help in case there are any problems | ||
138 | } catch (po::error& e) { | 128 | } catch (po::error& e) { |
139 | cerr << "ERROR: \033[31m" << e.what() << "\033[0m" << endl; | 129 | cerr << "ERROR: \033[31m" << e.what() << "\033[0m" << endl; |
140 | cerr << desc << endl; | 130 | cerr << desc << endl; |
... | @@ -158,7 +148,7 @@ int main(int argc, char* argv[]) | ... | @@ -158,7 +148,7 @@ int main(int argc, char* argv[]) |
158 | myRNA = RNA(fa->name(), fa->seq(), verbose); | 148 | myRNA = RNA(fa->name(), fa->seq(), verbose); |
159 | if (verbose) cout << "\t> " << inputName << " successfuly loaded (" << myRNA.get_RNA_length() << " nt)" << endl; | 149 | if (verbose) cout << "\t> " << inputName << " successfuly loaded (" << myRNA.get_RNA_length() << " nt)" << endl; |
160 | 150 | ||
161 | - // load CSV file | 151 | + // check motif folder exists |
162 | if (access(motifs_path_name.c_str(), F_OK) == -1) { | 152 | if (access(motifs_path_name.c_str(), F_OK) == -1) { |
163 | cerr << "\033[31m" << motifs_path_name << " not found\033[0m" << endl; | 153 | cerr << "\033[31m" << motifs_path_name << " not found\033[0m" << endl; |
164 | return EXIT_FAILURE; | 154 | return EXIT_FAILURE; |
... | @@ -167,16 +157,14 @@ int main(int argc, char* argv[]) | ... | @@ -167,16 +157,14 @@ int main(int argc, char* argv[]) |
167 | 157 | ||
168 | /* FIND PARETO SET */ | 158 | /* FIND PARETO SET */ |
169 | string source; | 159 | string source; |
170 | - if (vm.count("jar3dcsv")) | 160 | + if (vm.count("rinfolder")) |
171 | - source = "jar3dcsv"; | ||
172 | - else if (vm.count("bayespaircsv")) | ||
173 | - source = "bayespaircsv"; | ||
174 | - else if (vm.count("rinfolder")) | ||
175 | source = "rinfolder"; | 161 | source = "rinfolder"; |
176 | else if (vm.count("descfolder")) | 162 | else if (vm.count("descfolder")) |
177 | source = "descfolder"; | 163 | source = "descfolder"; |
178 | else if (vm.count("jsonfolder")) | 164 | else if (vm.count("jsonfolder")) |
179 | source = "jsonfolder"; | 165 | source = "jsonfolder"; |
166 | + else if (vm.count("pre-placed")) | ||
167 | + source = "csvfile"; | ||
180 | else | 168 | else |
181 | cerr << "ERR: no source of modules provided !" << endl; | 169 | cerr << "ERR: no source of modules provided !" << endl; |
182 | 170 | ||
... | @@ -254,22 +242,12 @@ int main(int argc, char* argv[]) | ... | @@ -254,22 +242,12 @@ int main(int argc, char* argv[]) |
254 | if (verbose) cout << "Saving structures to " << outputName << "..." << endl; | 242 | if (verbose) cout << "Saving structures to " << outputName << "..." << endl; |
255 | outfile.open(outputName); | 243 | outfile.open(outputName); |
256 | outfile << fa->name() << endl << fa->seq() << endl; | 244 | outfile << fa->name() << endl << fa->seq() << endl; |
245 | + | ||
257 | for (uint i = 0; i < myMOIP.get_n_solutions(); i++) { | 246 | for (uint i = 0; i < myMOIP.get_n_solutions(); i++) { |
258 | outfile << myMOIP.solution(i).to_string() << endl << structure_with_contacts(myMOIP.solution(i)) << endl; | 247 | outfile << myMOIP.solution(i).to_string() << endl << structure_with_contacts(myMOIP.solution(i)) << endl; |
259 | string str1 = myMOIP.solution(i).to_string(); | 248 | string str1 = myMOIP.solution(i).to_string(); |
260 | 249 | ||
261 | - // Check if the best score for obj2 is actually included in the results | ||
262 | - // string delimiter = "\t"; | ||
263 | - // string obj2 = str1.substr(str1.find(delimiter) + delimiter.size()); | ||
264 | - // obj2 = obj2.substr(0, obj2.find(delimiter)); | ||
265 | - // if (obj2.compare(best_score) == 0) | ||
266 | - // flag = true;*/ | ||
267 | } | 250 | } |
268 | - // if (!flag) | ||
269 | - // cout << "\033[1m\033[31mBest score not found for " << outputName << " !\033[0m" << endl; | ||
270 | - // else | ||
271 | - // cout << "OK for "<< outputName << "!" << endl; | ||
272 | - | ||
273 | outfile.close(); | 251 | outfile.close(); |
274 | } | 252 | } |
275 | 253 | ... | ... |
result.biorseo_dpm_A
deleted
100644 → 0
1 | -__'CRYSTAL_STRUCTURE_OF_A_TIGHT-BINDING_GLUTAMINE_TRNA_BOUND_TO_GLUTAMINE_AMINOACYL_TRNA_SYNTHETASE_'_(PDB_00376) | ||
2 | -GGGGUAUCGCCAAGCGGUAAGGCACCGGAUUCUGAUUCCGGAGGUCGAGGUUCGAAUCCUCGUACCCCAGCCA | ||
3 | -(((((((((([..)))....(((.(((((.({..).))))).])))((((.(.}.).)))))))))))..... + JSON432 + JSON615 32.0000000 19.2280288 | ||
4 | -................****.................................................**** | ||
5 | -(((((((((([..)))....(((.((((((....).))))).])))((((.(...).)))))))))))..... + JSON169 + JSON432 + JSON615 48.0000000 19.2123884 | ||
6 | -................****..........****...................................**** | ||
7 | -(((((((.(([.....))..(((.(((((.({..).))))).])))((((.(.}.).)))))))))))..... + JSON322 + JSON478 52.0000000 18.3718588 | ||
8 | -............****................**...................................**** | ||
9 | -((((((((((...)))....(([.((((((....).)))))...))((((.(...).))))))))))).]... + JSON169 + JSON615 + JSON763 57.0000000 18.3583187 | ||
10 | -................****..........****.......***...........................** | ||
11 | -(((((((((([..)))....(((.((((((....).))))).])))(((.........))))))))))..... + JSON169 + JSON386 + JSON432 + JSON615 64.0000000 18.2180422 | ||
12 | -................****..........****...............****................**** | ||
13 | -(((((([(((...))).)..(((.(((((.(...).))))).){))((((.(...).))))]})))))..... + JSON322 + JSON471 80.0000000 17.8060915 | ||
14 | -........**.....................***................*...........*........** | ||
15 | -(((((([((([..))).)..((..((((((....).))))).]{))((((.(...).))))]})))))..... + JSON169 + JSON432 + JSON471 96.0000000 17.7717258 | ||
16 | -........**............*.......****......................*.....*......**** | ||
17 | -(((((.((((...)))....(((.(((((.[.....))))).){))((((.(..]).)))))})))))..... + JSON154 + JSON432 + JSON471 105.0000000 17.5888835 | ||
18 | -........**......**.............****.....................*.....*......**** | ||
19 | -(((((.(((([..)))....((..((((((....).))))).][))((((.(...).)))))])))))..... + JSON169 + JSON432 + JSON471 + JSON615 112.0000000 17.5772109 | ||
20 | -........**......****..*.......****......................*.....*......**** | ||
21 | -(((((.((((...)))....(((.((((([[.....))))).){))(((.....]]..))))})))))..... + JSON154 + JSON386 + JSON432 + JSON471 121.0000000 16.5955778 | ||
22 | -........**......**.............****..............****...*.....*......**** | ||
23 | -(((((.(((([..)))....((..((((((....).))))).][))(((.........))))])))))..... + JSON169 + JSON386 + JSON432 + JSON471 + JSON615 128.0000000 16.5828646 | ||
24 | -........**......****..*.......****...............****...*.....*......**** | ||
25 | -(((((.(.(([.........{)).(((((.(...).))))).][(}[[[[.[..)].]]]])])))))..... + JSON322 + JSON471 + JSON478 + JSON615 132.0000000 15.2549277 | ||
26 | -........**..********...........***................*...........*......**** | ||
27 | -(((((((.............(...((((((....).)))))....)(((.........))))))))))..... + JSON169 + JSON386 + JSON432 + JSON432 + JSON473 + JSON478 + JSON615 141.0000000 14.8831569 | ||
28 | -........************.**.......****.......****....****...............***** | ||
29 | -((((((..(((.........))).(((((.......)))))....(((((.(...).)))))))))))..... + JSON38 2916.0000000 14.7452026 | ||
30 | -*******.*******......*****.....******............................******** | ||
31 | -((((((..(((.........))).(((((.......)))))....((((.........))))))))))..... + JSON38 + JSON386 2932.0000000 13.7508564 | ||
32 | -*******.*******......*****.....******............****............******** | ||
33 | -((((((..(((.........))).(((((.......)))))....((....(...)....))))))))..... + JSON38 + JSON473 2941.0000000 11.8254010 | ||
34 | -*******.*******......*****.....******..........****...*..........******** | ||
35 | -(((((((.............(...((((((....).)))))....)(((.........))))))))))..... + JSON169 + JSON386 + JSON432 + JSON432 + JSON473 + JSON478 + JSON615 141.0000000 14.8831569 | ||
36 | -........************.**.......****.......****....****..*.............**** | ||
37 | -(((((.(.(([.........{)).(((((.(...).))))).][(}[[[[.[..)].]]]])])))))..... + JSON322 + JSON471 + JSON478 + JSON615 132.0000000 15.2549277 | ||
38 | -........**..********...........***......................*.....*......**** | ||
39 | -(((((.(((([..)))....((..((((((....).))))).][))((((.(...).)))))])))))..... + JSON169 + JSON432 + JSON471 + JSON615 112.0000000 17.5772109 | ||
40 | -........**......****..*.......****................*...........*......**** | ||
41 | -(((((.((((...)))....(((.(((((.[.....))))).){))((((.(..]).)))))})))))..... + JSON154 + JSON432 + JSON471 105.0000000 17.5888835 | ||
42 | -........**......**.............****...............*...........*......**** | ||
43 | -(((((([((([..))).)..((..((((((....).))))).]{))((((.(...).))))]})))))..... + JSON169 + JSON432 + JSON471 96.0000000 17.7717258 | ||
44 | -........**............*.......****................*...........*......**** | ||
45 | -(((((([(((...))).)..(((.(((((.(...).))))).){))((((.(...).))))]})))))..... + JSON322 + JSON471 80.0000000 17.8060915 | ||
46 | -........**.....................***......................*.....*........** | ||
47 | -(((((((((([..)))....(((.(((((.({..).))))).])))((((.(.}.).)))))))))))..... + JSON322 + JSON615 32.0000000 19.2280288 | ||
48 | -................****............**.....................................** |
result.biorseo_dpm_B
deleted
100644 → 0
1 | -__'CRYSTAL_STRUCTURE_OF_A_TIGHT-BINDING_GLUTAMINE_TRNA_BOUND_TO_GLUTAMINE_AMINOACYL_TRNA_SYNTHETASE_'_(PDB_00376) | ||
2 | -GGGGUAUCGCCAAGCGGUAAGGCACCGGAUUCUGAUUCCGGAGGUCGAGGUUCGAAUCCUCGUACCCCAGCCA | ||
3 | -(((((((((([..)))....(((.(((((.({..).))))).])))((((.(.}.).)))))))))))..... + JSON322 + JSON615 1.5000000 19.2280288 | ||
4 | -................****............**.....................................** | ||
5 | -(((((((((([..)))....(((.(((((.(...).))))).])))((((.(...).)))))))))))..... + JSON322 + JSON615 1.5000200 19.2269926 | ||
6 | -................****............**.....................................** | ||
7 | -(((((((.(([.....))..(((.(((((.({..).))))).])))((((.(.}.).)))))))))))..... + JSON322 + JSON478 1.7737056 18.3718588 | ||
8 | -............****................**...................................**** | ||
9 | -((((((((((...)))....(([.((((((....).)))))...))((((.(...).))))))))))).]... + JSON169 + JSON615 + JSON763 1.8613531 18.3583187 | ||
10 | -................****..........****.......***...........................** | ||
11 | -.((((((((([..)))....(((.(((((.({..).))))).])))((((.(.}.).))))))))))...... + JSON322 + JSON432 + JSON615 2.0000000 18.2455939 | ||
12 | -................****............**.................................****** | ||
13 | -(((((((((({..)))....(((.((((([([..).))))).})))(((....].]..))))))))))..... + JSON322 + JSON386 + JSON615 2.0000200 18.2347086 | ||
14 | -................****............**...............****..................** | ||
15 | -(((((([(((...))).)..(((.(((((.(...).))))).){))((((.(...).))))]})))))..... + JSON322 + JSON471 3.0000000 17.8060915 | ||
16 | -........**.....................***......................*.....*........** | ||
17 | -(((((.((((...)))....(((.(((((.(...).))))).)[))((((.(...).)))))])))))..... + JSON322 + JSON471 + JSON615 3.5000000 17.6115766 | ||
18 | -........**......****...........***......................*.....*........** | ||
19 | -.((((.((((...)))....(((.(((((.(...).))))).)[))((((.(...).)))))]))))...... + JSON322 + JSON432 + JSON471 + JSON615 4.0000000 16.6291417 | ||
20 | -........**......****...........***......................*.....*....****** | ||
21 | -.((((.((((...)))....(((.((((([(...).))))).){))(((......]..))))}))))...... + JSON322 + JSON386 + JSON432 + JSON471 + JSON615 4.5000000 15.6358360 | ||
22 | -........**......****...........***...............****...*.....*....****** | ||
23 | -(((((.(.(([.........{)).(((((<(...).))))).][(}[[[.....)>..]]])])))))..... + JSON322 + JSON386 + JSON471 + JSON478 + JSON615 4.7737056 14.2616220 | ||
24 | -........**..********...........***...............****...*.....*......**** | ||
25 | -.((((.((((...)))....(((.(((((.(...).)))))[){))(....(...)...]))}))))...... + JSON322 + JSON432 + JSON471 + JSON473 + JSON615 4.8613531 13.7313706 | ||
26 | -........**......****...........***.............****...*.*.....*....****** | ||
27 | -.((((.((.....[[)....(]].((((([(...).)))))..{[)(((.....]]..))))}))))...... + JSON322 + JSON386 + JSON432 + JSON432 + JSON471 + JSON615 5.0000000 13.7177100 | ||
28 | -........****.**.****...........***...............****...*.....*....****** | ||
29 | -(((((.(.((..........[)).(((((.(...).)))))(({(][....[..)]..))])})))))..... + JSON322 + JSON471 + JSON473 + JSON478 + JSON615 5.1350587 12.3759713 | ||
30 | -........**..********...........***.............****.....*.....*.....***** | ||
31 | -.((((.....(..[[)....(]]..(((([(...).))))...{[)(((.....]]..))).}))))...... + JSON322 + JSON386 + JSON432 + JSON471 + JSON615 + JSON632 5.2737056 11.9911280 | ||
32 | -......****...**.****...**......***...............****...*.....*....****** | ||
33 | -.((((.((.....[[)....(]].(((((.(...).)))))[[{.)(....(...)..]]))}))))...... + JSON322 + JSON432 + JSON432 + JSON471 + JSON473 + JSON615 5.3613531 11.8157013 | ||
34 | -........****.**.****...........***.............****...*.*.....*....****** | ||
35 | -.((....(.....[[)....(]].((((([(...).))))).{{[)(((.....]]..))).}.}))...... + JSON322 + JSON386 + JSON432 + JSON432 + JSON471 + JSON615 + JSON928 5.5000000 11.2444565 | ||
36 | -...****.****.**.****...........***...............****...*.....*....****** | ||
37 | -.(........(..[[)....(]].((((([(...).))))).{{[)(((.....]]..))).}..})...... + JSON322 + JSON386 + JSON432 + JSON433 + JSON471 + JSON615 + JSON632 5.7737056 10.1268257 | ||
38 | -..********...**.****...........***...............****...*.....***..****** | ||
39 | -.((....(.....[[)....(]].(((((.(...).)))))[[{[)(....(..])..]]).}..))...... + JSON322 + JSON432 + JSON432 + JSON471 + JSON473 + JSON615 + JSON928 5.8613531 9.3610813 | ||
40 | -...****.****.**.****...........***.............****.....*.....**...****** | ||
41 | -.((....(.....[[)....(]].((.[.[(...)....)).{{[)(((.....]].]))).}.}))...... + JSON156 + JSON322 + JSON386 + JSON432 + JSON432 + JSON471 + JSON615 + JSON928 6.0000000 8.2749650 | ||
42 | -...****.****.**.****...........***.****..........****...*.....*....****** | ||
43 | -.(........(..[[)....(]].(((((.(...).)))))[[{.)(....(...)..]]).}...)...... + JSON322 + JSON432 + JSON433 + JSON471 + JSON473 + JSON615 + JSON632 6.1350587 8.2098083 | ||
44 | -..********...**.****...........***.............****...*.*.....***..****** | ||
45 | -.(........(..[[)....(]].((.[.[(...)....)).{{[)(((.....]].]))).}..})...... + JSON156 + JSON322 + JSON386 + JSON432 + JSON433 + JSON471 + JSON615 + JSON632 6.2737056 7.1573341 | ||
46 | -..********...**.****...........***.****..........****...*.....***..****** | ||
47 | -.((....(.....[[)....(]].((.[..(...)....)){{<[)(....(..]).]}}).>..))...... + JSON156 + JSON322 + JSON432 + JSON432 + JSON471 + JSON473 + JSON615 + JSON928 6.3613531 6.3915897 | ||
48 | -...****.****.**.****...........***.****........****.....*.....**...****** | ||
49 | -.(........(..[[)....(]].((.[..(...)....)){{<.)(....(...).]}}).>...)...... + JSON156 + JSON322 + JSON432 + JSON433 + JSON471 + JSON473 + JSON615 + JSON632 6.6350587 5.2403168 | ||
50 | -..********...**.****...........***.****........****...*.*.....***..****** | ||
51 | -.((((.((((...)))....((..(((((.({..).)))))[[<))(....(.}.)..]]))>))))...... + JSON322 + JSON432 + JSON471 + JSON473 + JSON615 4.8613531 13.7314599 | ||
52 | -........**......****..*.........**.............****...*.*.....*....****** | ||
53 | -.((((.((((...)))....(((.(((((.(...).))))).)[))((((.(...).)))))]))))...... + JSON322 + JSON432 + JSON471 + JSON615 4.0000000 16.6291417 | ||
54 | -........**......****...........***................*...........*....****** | ||
55 | -(((((.((((...)))....(((.(((((.(...).))))).)[))((((.(...).)))))])))))..... + JSON322 + JSON471 + JSON615 3.5000000 17.6115766 | ||
56 | -........**......****...........***................*...........*........** | ||
57 | -(((((([(((...))).)..(((.(((((.(...).))))).){))((((.(...).))))]})))))..... + JSON322 + JSON471 3.0000000 17.8060915 | ||
58 | -........**.....................***................*...........*........** |
result.biorseo_dpm_C
deleted
100644 → 0
1 | -__'CRYSTAL_STRUCTURE_OF_A_TIGHT-BINDING_GLUTAMINE_TRNA_BOUND_TO_GLUTAMINE_AMINOACYL_TRNA_SYNTHETASE_'_(PDB_00376) | ||
2 | -GGGGUAUCGCCAAGCGGUAAGGCACCGGAUUCUGAUUCCGGAGGUCGAGGUUCGAAUCCUCGUACCCCAGCCA | ||
3 | -(((((((((([..)))....(((.(((((.({..).))))).])))((((.(.}.).)))))))))))..... 0.0000000 19.2280288 | ||
4 | -......................................................................... | ||
5 | -(((((((((([..)))....(((.(((((.({..).))))).])))((((.(.}.).)))))))))))..... + JSON322 0.0000000 19.2280288 | ||
6 | -................................**.....................................** |
-
Please register or login to post a comment