Louis BECQUEY
...@@ -549,7 +549,7 @@ class BiorseoInstance: ...@@ -549,7 +549,7 @@ class BiorseoInstance:
549 cmd = ["java", "-jar", jar3dexec, filename, ILmotifDir+"/all.txt", 549 cmd = ["java", "-jar", jar3dexec, filename, ILmotifDir+"/all.txt",
550 loop.header[1:]+".ILloop.csv", loop.header[1:]+".ILseq.csv"] 550 loop.header[1:]+".ILloop.csv", loop.header[1:]+".ILseq.csv"]
551 nowhere = open(devnull, 'w') 551 nowhere = open(devnull, 'w')
552 - logfile = open("log_of_the_run.sh", 'a') 552 + logfile = open(biorseoDir + "/log_of_the_run.sh", 'a')
553 logfile.write(' '.join(cmd)) 553 logfile.write(' '.join(cmd))
554 logfile.write("\n") 554 logfile.write("\n")
555 logfile.close() 555 logfile.close()
...@@ -789,7 +789,7 @@ class BiorseoInstance: ...@@ -789,7 +789,7 @@ class BiorseoInstance:
789 if c == 0: 789 if c == 0:
790 seq = l[:-1].upper() 790 seq = l[:-1].upper()
791 if is_canonical_nts(seq): 791 if is_canonical_nts(seq):
792 - header = header.replace('/', '_').replace('\'','').replace('(','').replace(')','') 792 + header = header.replace('/', '_').replace('\'','').replace('(','').replace(')','').replace(' ','_')
793 RNAcontainer.append(RNA(header, seq)) 793 RNAcontainer.append(RNA(header, seq))
794 if not path.isfile(self.outputf + header + ".fa"): 794 if not path.isfile(self.outputf + header + ".fa"):
795 rna = open(self.outputf + header + ".fa", "w") 795 rna = open(self.outputf + header + ".fa", "w")
...@@ -845,4 +845,4 @@ class BiorseoInstance: ...@@ -845,4 +845,4 @@ class BiorseoInstance:
845 self.joblist.append(Job(command=command, priority=priority, timeout=3600, how_many_in_parallel=3)) 845 self.joblist.append(Job(command=command, priority=priority, timeout=3600, how_many_in_parallel=3))
846 846
847 847
848 -BiorseoInstance(opts) 848 +BiorseoInstance(opts)
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -9,7 +9,7 @@ from matplotlib import colors ...@@ -9,7 +9,7 @@ from matplotlib import colors
9 from math import sqrt 9 from math import sqrt
10 from multiprocessing import Pool, cpu_count, Manager 10 from multiprocessing import Pool, cpu_count, Manager
11 import multiprocessing 11 import multiprocessing
12 -import ast 12 +import ast, time
13 13
14 # ================== DEFINITION OF THE PATHS ============================== 14 # ================== DEFINITION OF THE PATHS ==============================
15 15
...@@ -77,9 +77,8 @@ class MyPool(multiprocessing.pool.Pool): ...@@ -77,9 +77,8 @@ class MyPool(multiprocessing.pool.Pool):
77 kwargs['context'] = NoDaemonContext() 77 kwargs['context'] = NoDaemonContext()
78 super(MyPool, self).__init__(*args, **kwargs) 78 super(MyPool, self).__init__(*args, **kwargs)
79 79
80 -exit()
81 -def execute_job(j):
82 80
81 +def execute_job(j):
83 if j.checkFunc_ is not None: 82 if j.checkFunc_ is not None:
84 if j.checkFunc_(*j.checkArgs_): 83 if j.checkFunc_(*j.checkArgs_):
85 running_stats[2] += 1 84 running_stats[2] += 1
...@@ -223,6 +222,7 @@ def launch_JAR3D_worker(loop): ...@@ -223,6 +222,7 @@ def launch_JAR3D_worker(loop):
223 return insertion_sites 222 return insertion_sites
224 223
225 def launch_JAR3D(seq_, basename): 224 def launch_JAR3D(seq_, basename):
225 + time1 = time.time()
226 rnasubopt_preds = [] 226 rnasubopt_preds = []
227 # Extracting probable loops from RNA-subopt structures 227 # Extracting probable loops from RNA-subopt structures
228 rna = open(outputDir + basename + ".subopt", "r") 228 rna = open(outputDir + basename + ".subopt", "r")
...@@ -270,9 +270,10 @@ def launch_JAR3D(seq_, basename): ...@@ -270,9 +270,10 @@ def launch_JAR3D(seq_, basename):
270 positions.append("-,-") 270 positions.append("-,-")
271 resultsfile.write(','.join(positions)+'\n') 271 resultsfile.write(','.join(positions)+'\n')
272 resultsfile.close() 272 resultsfile.close()
273 + time2 = time.time()
274 + print("<%s | %.3fs" % (basename, time2-time1))
273 275
274 def launch_BayesPairing(module_type, seq_, header_, basename): 276 def launch_BayesPairing(module_type, seq_, header_, basename):
275 - chdir(bypdir)
276 277
277 cmd = ["python3","parse_sequences.py","-seq",outputDir + basename + ".fa", "-d", module_type, "-interm","1"] 278 cmd = ["python3","parse_sequences.py","-seq",outputDir + basename + ".fa", "-d", module_type, "-interm","1"]
278 279
...@@ -281,6 +282,7 @@ def launch_BayesPairing(module_type, seq_, header_, basename): ...@@ -281,6 +282,7 @@ def launch_BayesPairing(module_type, seq_, header_, basename):
281 logfile.write("\n") 282 logfile.write("\n")
282 logfile.close() 283 logfile.close()
283 284
285 + chdir(bypdir)
284 out = subprocess.check_output(cmd).decode('utf-8') 286 out = subprocess.check_output(cmd).decode('utf-8')
285 BypLog = out.split('\n') 287 BypLog = out.split('\n')
286 idx = 0 288 idx = 0
...@@ -1176,43 +1178,43 @@ for instance in RNAcontainer: ...@@ -1176,43 +1178,43 @@ for instance in RNAcontainer:
1176 instance.evaluate() 1178 instance.evaluate()
1177 1179
1178 x_PK = [ 1180 x_PK = [
1179 - [ rna.biokop.avg_mcc for rna in RNAcontainer if len(rna.biokop.predictions)], 1181 + [ rna.biokop.max_mcc for rna in RNAcontainer if len(rna.biokop.predictions)],
1180 - [ rna.biokop.avg_mcc for rna in RNAcontainer if len(rna.biokop.predictions)], 1182 + [ rna.biokop.max_mcc for rna in RNAcontainer if len(rna.biokop.predictions)],
1181 - [ rna.biorseoRawA.avg_mcc for rna in RNAcontainer if len(rna.biorseoRawA.predictions)], 1183 + [ rna.biorseoRawA.max_mcc for rna in RNAcontainer if len(rna.biorseoRawA.predictions)],
1182 - [ rna.biorseoRawB.avg_mcc for rna in RNAcontainer if len(rna.biorseoRawB.predictions)], 1184 + [ rna.biorseoRawB.max_mcc for rna in RNAcontainer if len(rna.biorseoRawB.predictions)],
1183 - [ rna.biorseoBayesPairA.avg_mcc for rna in RNAcontainer if len(rna.biorseoBayesPairA.predictions)], 1185 + [ rna.biorseoBayesPairA.max_mcc for rna in RNAcontainer if len(rna.biorseoBayesPairA.predictions)],
1184 - [ rna.biorseoBayesPairB.avg_mcc for rna in RNAcontainer if len(rna.biorseoBayesPairB.predictions)], 1186 + [ rna.biorseoBayesPairB.max_mcc for rna in RNAcontainer if len(rna.biorseoBayesPairB.predictions)],
1185 - [ rna.biorseoBayesPairC.avg_mcc for rna in RNAcontainer if len(rna.biorseoBayesPairC.predictions)], 1187 + [ rna.biorseoBayesPairC.max_mcc for rna in RNAcontainer if len(rna.biorseoBayesPairC.predictions)],
1186 - [ rna.biorseoBayesPairD.avg_mcc for rna in RNAcontainer if len(rna.biorseoBayesPairD.predictions)], 1188 + [ rna.biorseoBayesPairD.max_mcc for rna in RNAcontainer if len(rna.biorseoBayesPairD.predictions)],
1187 - [ rna.biorseoBGSUJAR3DA.avg_mcc for rna in RNAcontainer if len(rna.biorseoBGSUJAR3DA.predictions)], 1189 + [ rna.biorseoBGSUJAR3DA.max_mcc for rna in RNAcontainer if len(rna.biorseoBGSUJAR3DA.predictions)],
1188 - [ rna.biorseoBGSUJAR3DB.avg_mcc for rna in RNAcontainer if len(rna.biorseoBGSUJAR3DB.predictions)], 1190 + [ rna.biorseoBGSUJAR3DB.max_mcc for rna in RNAcontainer if len(rna.biorseoBGSUJAR3DB.predictions)],
1189 - [ rna.biorseoBGSUJAR3DC.avg_mcc for rna in RNAcontainer if len(rna.biorseoBGSUJAR3DC.predictions)], 1191 + [ rna.biorseoBGSUJAR3DC.max_mcc for rna in RNAcontainer if len(rna.biorseoBGSUJAR3DC.predictions)],
1190 - [ rna.biorseoBGSUJAR3DD.avg_mcc for rna in RNAcontainer if len(rna.biorseoBGSUJAR3DD.predictions)], 1192 + [ rna.biorseoBGSUJAR3DD.max_mcc for rna in RNAcontainer if len(rna.biorseoBGSUJAR3DD.predictions)],
1191 - [ rna.biorseoBGSUBayesPairA.avg_mcc for rna in RNAcontainer if len(rna.biorseoBGSUBayesPairA.predictions)], 1193 + [ rna.biorseoBGSUBayesPairA.max_mcc for rna in RNAcontainer if len(rna.biorseoBGSUBayesPairA.predictions)],
1192 - [ rna.biorseoBGSUBayesPairB.avg_mcc for rna in RNAcontainer if len(rna.biorseoBGSUBayesPairB.predictions)], 1194 + [ rna.biorseoBGSUBayesPairB.max_mcc for rna in RNAcontainer if len(rna.biorseoBGSUBayesPairB.predictions)],
1193 - [ rna.biorseoBGSUBayesPairC.avg_mcc for rna in RNAcontainer if len(rna.biorseoBGSUBayesPairC.predictions)], 1195 + [ rna.biorseoBGSUBayesPairC.max_mcc for rna in RNAcontainer if len(rna.biorseoBGSUBayesPairC.predictions)],
1194 - [ rna.biorseoBGSUBayesPairD.avg_mcc for rna in RNAcontainer if len(rna.biorseoBGSUBayesPairD.predictions)] 1196 + [ rna.biorseoBGSUBayesPairD.max_mcc for rna in RNAcontainer if len(rna.biorseoBGSUBayesPairD.predictions)]
1195 ] 1197 ]
1196 1198
1197 RNAs_fully_predicted = [ x for x in RNAcontainer if x.has_complete_results(True)] 1199 RNAs_fully_predicted = [ x for x in RNAcontainer if x.has_complete_results(True)]
1198 1200
1199 x_PK_fully = [ 1201 x_PK_fully = [
1200 - [ rna.biokop.avg_mcc for rna in RNAs_fully_predicted], 1202 + [ rna.biokop.max_mcc for rna in RNAs_fully_predicted],
1201 - [ rna.biokop.avg_mcc for rna in RNAs_fully_predicted], 1203 + [ rna.biokop.max_mcc for rna in RNAs_fully_predicted],
1202 - [ rna.biorseoRawA.avg_mcc for rna in RNAs_fully_predicted], 1204 + [ rna.biorseoRawA.max_mcc for rna in RNAs_fully_predicted],
1203 - [ rna.biorseoRawB.avg_mcc for rna in RNAs_fully_predicted], 1205 + [ rna.biorseoRawB.max_mcc for rna in RNAs_fully_predicted],
1204 - [ rna.biorseoBayesPairA.avg_mcc for rna in RNAs_fully_predicted], 1206 + [ rna.biorseoBayesPairA.max_mcc for rna in RNAs_fully_predicted],
1205 - [ rna.biorseoBayesPairB.avg_mcc for rna in RNAs_fully_predicted], 1207 + [ rna.biorseoBayesPairB.max_mcc for rna in RNAs_fully_predicted],
1206 - [ rna.biorseoBayesPairC.avg_mcc for rna in RNAs_fully_predicted], 1208 + [ rna.biorseoBayesPairC.max_mcc for rna in RNAs_fully_predicted],
1207 - [ rna.biorseoBayesPairD.avg_mcc for rna in RNAs_fully_predicted], 1209 + [ rna.biorseoBayesPairD.max_mcc for rna in RNAs_fully_predicted],
1208 - [ rna.biorseoBGSUJAR3DA.avg_mcc for rna in RNAs_fully_predicted], 1210 + [ rna.biorseoBGSUJAR3DA.max_mcc for rna in RNAs_fully_predicted],
1209 - [ rna.biorseoBGSUJAR3DB.avg_mcc for rna in RNAs_fully_predicted], 1211 + [ rna.biorseoBGSUJAR3DB.max_mcc for rna in RNAs_fully_predicted],
1210 - [ rna.biorseoBGSUJAR3DC.avg_mcc for rna in RNAs_fully_predicted], 1212 + [ rna.biorseoBGSUJAR3DC.max_mcc for rna in RNAs_fully_predicted],
1211 - [ rna.biorseoBGSUJAR3DD.avg_mcc for rna in RNAs_fully_predicted], 1213 + [ rna.biorseoBGSUJAR3DD.max_mcc for rna in RNAs_fully_predicted],
1212 - [ rna.biorseoBGSUBayesPairA.avg_mcc for rna in RNAs_fully_predicted], 1214 + [ rna.biorseoBGSUBayesPairA.max_mcc for rna in RNAs_fully_predicted],
1213 - [ rna.biorseoBGSUBayesPairB.avg_mcc for rna in RNAs_fully_predicted], 1215 + [ rna.biorseoBGSUBayesPairB.max_mcc for rna in RNAs_fully_predicted],
1214 - [ rna.biorseoBGSUBayesPairC.avg_mcc for rna in RNAs_fully_predicted], 1216 + [ rna.biorseoBGSUBayesPairC.max_mcc for rna in RNAs_fully_predicted],
1215 - [ rna.biorseoBGSUBayesPairD.avg_mcc for rna in RNAs_fully_predicted], 1217 + [ rna.biorseoBGSUBayesPairD.max_mcc for rna in RNAs_fully_predicted],
1216 ] # We ensure having the same number of RNAs in every sample by discarding the one for which computations did not ended/succeeded. 1218 ] # We ensure having the same number of RNAs in every sample by discarding the one for which computations did not ended/succeeded.
1217 1219
1218 print() 1220 print()
...@@ -1260,87 +1262,88 @@ test = stats.wilcoxon(x_PK_fully[0], x_PK_fully[11]) ...@@ -1260,87 +1262,88 @@ test = stats.wilcoxon(x_PK_fully[0], x_PK_fully[11])
1260 print("Wilcoxon signed rank test with PK: H0 = 'The position parameter of Biokop and Jar3dD are equal', p-value = ", test.pvalue) 1262 print("Wilcoxon signed rank test with PK: H0 = 'The position parameter of Biokop and Jar3dD are equal', p-value = ", test.pvalue)
1261 1263
1262 1264
1263 -# # ================== Print results for application cases ===================== 1265 +# ================== Print results for application cases =====================
1264 - 1266 +
1265 -# labels = ["Biokop","Biokop","RawA","RawB","BayesPairingA","BayesPairingB","BayesPairingC","BayesPairingD","JAR3DA","JAR3DB","JAR3DC","JAR3DD","BGSUBayesPairingA","BGSUBayesPairingB","BGSUBayesPairingC","BGSUBayesPairingD"] 1267 +labels = ["Biokop","Biokop","RawA","RawB","BayesPairingA","BayesPairingB","BayesPairingC","BayesPairingD","JAR3DA","JAR3DB","JAR3DC","JAR3DD","BGSUBayesPairingA","BGSUBayesPairingB","BGSUBayesPairingC","BGSUBayesPairingD"]
1266 -# print("RNAsubopt",":",x_noPK[0]) 1268 +print("RNAsubopt",":",x_noPK[0])
1267 -# print("RNA-MOIP",":",x_noPK[1]) 1269 +print("RNA-MOIP",":",x_noPK[1])
1268 -# for data, name in zip(x_PK, labels): 1270 +for data, name in zip(x_PK, labels):
1269 -# print(name,":",data) 1271 + print(name,":",data)
1270 -# labels = ["RNAsubopt","Biokop\t", "RNA-MoIP\t","RawA\t","RawB\t","BayesPairingA","BayesPairingB","BayesPairingC","BayesPairingD","JAR3DA\t","JAR3DB\t","JAR3DC\t","JAR3DD\t","BGSUBPairingA","BGSUBPairingB","BGSUBPairingC","BGSUBPairingD"] 1272 +labels = ["RNAsubopt","Biokop\t", "RNA-MoIP\t","RawA\t","RawB\t","BayesPairingA","BayesPairingB","BayesPairingC","BayesPairingD","JAR3DA\t","JAR3DB\t","JAR3DC\t","JAR3DD\t","BGSUBPairingA","BGSUBPairingB","BGSUBPairingC","BGSUBPairingD"]
1271 -# for r in RNAcontainer: 1273 +for r in RNAcontainer:
1272 -# print("\n",r.header_,"\nTrue structure:\t", r.true2d) 1274 + print("\n",r.header_,"\nTrue structure:\t", r.true2d)
1273 -# for m, name in zip([r.rnasubopt, r.biokop, r.rnamoip, 1275 + for m, name in zip([r.rnasubopt, r.biokop, r.rnamoip,
1274 -# r.biorseoRawA, 1276 + r.biorseoRawA,
1275 -# r.biorseoRawB, 1277 + r.biorseoRawB,
1276 -# r.biorseoBayesPairA, 1278 + r.biorseoBayesPairA,
1277 -# r.biorseoBayesPairB, 1279 + r.biorseoBayesPairB,
1278 -# r.biorseoBayesPairC, 1280 + r.biorseoBayesPairC,
1279 -# r.biorseoBayesPairD, 1281 + r.biorseoBayesPairD,
1280 -# r.biorseoBGSUJAR3DA, 1282 + r.biorseoBGSUJAR3DA,
1281 -# r.biorseoBGSUJAR3DB, 1283 + r.biorseoBGSUJAR3DB,
1282 -# r.biorseoBGSUJAR3DC, 1284 + r.biorseoBGSUJAR3DC,
1283 -# r.biorseoBGSUJAR3DD, 1285 + r.biorseoBGSUJAR3DD,
1284 -# r.biorseoBGSUBayesPairA, 1286 + r.biorseoBGSUBayesPairA,
1285 -# r.biorseoBGSUBayesPairB, 1287 + r.biorseoBGSUBayesPairB,
1286 -# r.biorseoBGSUBayesPairC, 1288 + r.biorseoBGSUBayesPairC,
1287 -# r.biorseoBGSUBayesPairD ], labels): 1289 + r.biorseoBGSUBayesPairD ], labels):
1288 -# print(name+":\t",m.best_pred) 1290 + print(name+":\t",m.best_pred, "%.2f"% m.max_mcc, m.n_pred)
1289 - 1291 +
1290 -# ================= PLOTS OF RESULTS ======================================= 1292 +# # ================= PLOTS OF RESULTS =======================================
1291 - 1293 +
1292 -merge = [ x_noPK[0], # RNA subopt 1294 +# merge = [
1293 - x_noPK[1], # RNA-MoIP 1295 +# x_PK[0], # Biokop
1294 - x_PK[0], # Biokop 1296 +# x_noPK[0], # RNA subopt
1295 - x_PK[2], #biorseoRawA 1297 +# x_noPK[1], # RNA-MoIP
1296 - x_PK[3], #biorseoRawB 1298 +# x_PK[2], #biorseoRawA
1297 - x_PK[4], #biorseoBayesPairA 1299 +# x_PK[3], #biorseoRawB
1298 - x_PK[5], #biorseoBayesPairB 1300 +# x_PK[4], #biorseoBayesPairA
1299 - x_PK[6], #biorseoBayesPairC 1301 +# x_PK[5], #biorseoBayesPairB
1300 - x_PK[7], #biorseoBayesPairD 1302 +# x_PK[6], #biorseoBayesPairC
1301 - x_PK[8], #biorseoBGSUJAR3DA 1303 +# x_PK[7], #biorseoBayesPairD
1302 - x_PK[9], #biorseoBGSUJAR3DB 1304 +# x_PK[8], #biorseoBGSUJAR3DA
1303 - x_PK[10], #biorseoBGSUJAR3DC 1305 +# x_PK[9], #biorseoBGSUJAR3DB
1304 - x_PK[11], #biorseoBGSUJAR3DD 1306 +# x_PK[10], #biorseoBGSUJAR3DC
1305 - x_PK[12], #biorseoBGSUBayesPairA 1307 +# x_PK[11], #biorseoBGSUJAR3DD
1306 - x_PK[13], #biorseoBGSUBayesPairB 1308 +# x_PK[12], #biorseoBGSUBayesPairA
1307 - x_PK[14], #biorseoBGSUBayesPairC 1309 +# x_PK[13], #biorseoBGSUBayesPairB
1308 - x_PK[15], #biorseoBGSUBayesPairD 1310 +# x_PK[14], #biorseoBGSUBayesPairC
1309 -] 1311 +# x_PK[15], #biorseoBGSUBayesPairD
1312 +# ]
1310 1313
1311 -colors = [ 'blue', 'goldenrod', 'green', 1314 +# colors = [ 'green', 'blue', 'goldenrod',
1312 - 'red', 1315 +# 'red',
1313 - 'firebrick', 1316 +# 'firebrick',
1314 - 'limegreen', 1317 +# 'limegreen',
1315 - 'olive', 1318 +# 'olive',
1316 - 'forestgreen', 1319 +# 'forestgreen',
1317 - 'lime', 1320 +# 'lime',
1318 - 'darkcyan', 1321 +# 'darkturquoise',
1319 - 'royalblue', 1322 +# 'darkcyan',
1320 - 'navy', 1323 +# 'royalblue',
1321 - 'limegreen', 1324 +# 'navy',
1322 - 'olive', 1325 +# 'limegreen',
1323 - 'forestgreen', 1326 +# 'olive',
1324 - 'lime' 1327 +# 'forestgreen',
1325 -] 1328 +# 'lime'
1326 -labels = [ "RNAsubopt", 1329 +# ]
1327 - "RNA-MoIP", 1330 +# labels = [ "Biokop", "RNAsubopt",
1328 - "Biokop", 1331 +# "RNA-MoIP",
1329 - "$f_{1A}$", 1332 +# "$f_{1A}$",
1330 - "$f_{1B}$", 1333 +# "$f_{1B}$",
1331 - "$f_{1A}$", 1334 +# "$f_{1A}$",
1332 - "$f_{1B}$", 1335 +# "$f_{1B}$",
1333 - "$f_{1C}$", 1336 +# "$f_{1C}$",
1334 - "$f_{1D}$", 1337 +# "$f_{1D}$",
1335 - "$f_{1A}$", 1338 +# "$f_{1A}$",
1336 - "$f_{1B}$", 1339 +# "$f_{1B}$",
1337 - "$f_{1C}$", 1340 +# "$f_{1C}$",
1338 - "$f_{1D}$", 1341 +# "$f_{1D}$",
1339 - "$f_{1A}$", 1342 +# "$f_{1A}$",
1340 - "$f_{1B}$", 1343 +# "$f_{1B}$",
1341 - "$f_{1C}$", 1344 +# "$f_{1C}$",
1342 - "$f_{1D}$" 1345 +# "$f_{1D}$"
1343 -] 1346 +# ]
1344 1347
1345 1348
1346 # for y in [ i/10 for i in range(11) ]: 1349 # for y in [ i/10 for i in range(11) ]:
...@@ -1371,7 +1374,7 @@ labels = [ "RNAsubopt", ...@@ -1371,7 +1374,7 @@ labels = [ "RNAsubopt",
1371 # # plt.axhline(y=0, color="black", linewidth=1) 1374 # # plt.axhline(y=0, color="black", linewidth=1)
1372 # # plt.axhline(y=1, color="black", linewidth=1) 1375 # # plt.axhline(y=1, color="black", linewidth=1)
1373 # plt.xticks([1.0+i for i in range(16)], labels[1:]) 1376 # plt.xticks([1.0+i for i in range(16)], labels[1:])
1374 -# plt.ylim((0.5, 1.01)) 1377 +# plt.ylim((0.4, 1.01))
1375 # plt.ylabel("MCC", fontsize=12) 1378 # plt.ylabel("MCC", fontsize=12)
1376 # plt.subplots_adjust(left=0.05, right=0.95) 1379 # plt.subplots_adjust(left=0.05, right=0.95)
1377 # # plt.title("Performance without pseudoknots (%d RNAs included)" % len(x_noPK_fully[0])) 1380 # # plt.title("Performance without pseudoknots (%d RNAs included)" % len(x_noPK_fully[0]))
......