Code Duplication    Length = 168-171 lines in 2 locations

rna_tools/tools/mq/rna_mq_collect.py 1 location

@@ 176-346 (lines=171) @@
173
    'rmsd_all': ['rmsd_all'],
174
}
175
176
def single_run(filename):
177
    """Start a mqaprna run for a given file
178
    with all methods (according to config file).
179
180
    [!] Use global cleanup = False to block cleaning up
181
182
    .. warning:: The function uses global variable.
183
    """
184
    filename, filename_length = filename
185
    #print 'fn: ', filename
186
187
    global methods, c
188
    all_results = {}
189
190
    for m in methods:
191
            arguments = ''
192
            #if DEBUG_MODE: print 'method', m, arguments
193
            mfull = m
194
            if verbose: print(m + '...') # show method 'eSCORE...'
195
196
            if m == 'FARNA':
197
                mfull = m
198
                arguments = [filename] + [False]
199
200
            if m == 'FARNA_hires':
201
                m = 'FARNA'
202
                mfull = 'FARNA_hires'
203
                arguments = [filename] + [True]
204
205
            if m == 'FARFAR2':
206
                m = 'FARFAR2'
207
                mfull = 'FARFAR2'
208
                arguments = [filename] + [False]
209
210
            if m == 'FARFAR2_hires':
211
                m = 'FARFAR2'
212
                mfull = 'FARFAR2_hires'
213
                arguments = [filename] + [True]
214
                
215
            if m == 'RNAkb_all':
216
                m = 'RNAkb'
217
                mfull = 'RNAkb_all'
218
                arguments = [filename] + ['aa']
219
220
            if m.find('_') > -1:
221
                m, n = m.split('_')
222
                n = n.replace('n', '') # n_XXX
223
                n = n.replace('k', '000')
224
                n = n.replace('m', '000000')
225
                arguments = [filename] + [n]
226
227
            if not arguments:
228
                arguments = [filename] + Config.WRAPPER_OPTIONS[m]
229
230
            if m == 'escore':
231
                m = 'eSCORE'
232
            wrapper = getattr(MODULES[m], m)()#verbose) # ref_seq, ref_ss, verbose)  # for all wrappers but SSAgrement '','' is OK
233
234
            if m == 'NAST_pyro':
235
                lock.acquire()
236
237
            if DEBUG_MODE:
238
                result = wrapper.run(*arguments)
239
                if verbose: print(m, result) # ClashScore 12.256669
240
                all_results[mfull] = result
241
                if cleanup: wrapper.cleanup()
242
            else:
243
                try:
244
                    result = wrapper.run(*arguments)
245
                    all_results[mfull] = result
246
                    if cleanup: wrapper.cleanup()
247
                except:
248
                    all_results[mfull] = 'error'
249
                    if cleanup: wrapper.cleanup()
250
251
            # {'ClashScore': 12.256669}
252
            # {'ClashScore': 12.256669, 'AnalyzeGeometry': 32.5581}
253
            # {'ClashScore': 12.256669, 'AnalyzeGeometry': 32.5581, 'FARNA': '-20.008,-2.739,-13.175,-77.67,-10.652,-158.51,9.547,8.39,-16.246,-263.281,0.0,0.0,17.782,0.0'}
254
            #if verbose: print 'all_results:', all_results # this every each method showed
255
256
            if m == 'NAST_pyro':
257
                lock.release()
258
259
    # get rmsd
260
    if opt.native_pdb_filename:
261
        rmsd = rmsd_calc.get_rmsd(opt.native_pdb_filename,
262
                                     filename)
263
        all_results['rmsd'] = rmsd
264
        methods = methods + ['rmsd']
265
    else:
266
        methods = methods
267
268
    # length
269
    length = len(ref_seq)
270
    all_results['length'] = length
271
272
    if opt.mqapscore:
273
        # meta-score
274
        ms =  MqapScore(all_results)
275
        mqap_score = ms.get_score()
276
        methods = methods + ['SCORE']
277
        all_results['SCORE'] = mqap_score
278
279
    if True:
280
        lock.acquire()
281
282
        global counter_lock
283
        #with counter_lock:
284
        counter.value += 1
285
286
        if counter.value != 1:
287
            # @todo does not work
288
            #sys.stdout.write('\033[F')
289
            #sys.stdout.write('\033[F')
290
            pass
291
292
        #results = [str(round(all_results[mfull],2)).strip().rjust(9) for m in methods]
293
294
        results_str = str(all_results) # "{'AnalyzeGeometry': 0.0, 'eSCORE': 0.10661, 'FARNA': ['-2.411', '0.0', '0.0', '-9.672', '0.0', '-25.678', '0.0', '1.061', '0.0', '-32.098', '0.0', '0.0', '4.601', '0.0'], 'ClashScore': 36.458333, 'length': 0, 'SimRNA_0': ['0', '67.345305', '-37.428', '-23.073', '0.248', '104.524975', '87.955', '9.938', '5.669', '1.089', '-0.126', '', '67.345305'], 'FARNA_hires': ['0.0', '-13.107', '-0.711', '0.0', '5.22', '2.734', '-30.044', '0.223', '-10.511', '-0.173', '-4.719', '1.143', '0.0', '14.371', '9.358'], 'RNAscore': 8.11007, 'RASP': ['-0.1382', '15', '-0.00921333', '-0.0845115', '0.454033', '-0.118248', '-277.666', '949', '-0.292588', '-273.37', '2.51163', '-1.71042', '-584.451', '2144', '-0.272598', '-564.143', '5.77609', '-3.51588', '-1616.08', '6700', '-0.241206', '0', '0', '0'], 'RNAkb': -1}"
295
296
        results = [all_results[mfull] for m in methods]
297
298
        # progress bar
299
        #sys.stdout.write('\r')
300
        #sys.stdout.flush()
301
        #sys.stdout.write('\r' + ' ' * 110 + '\r' + filename.split(os.sep)[-1].ljust(50) + ' ' + ' '.join(results))
302
303
        ########### line with resluts ######################
304
        bar.update(counter.value)
305
        ## my old progress bar here:
306
        # print(sg.pprogress_line(counter.value, filename_length, ''))# ,
307
        ## print results, use --verbose now
308
        if verbose:
309
            print(filename.split(os.sep)[-1].ljust(20) + ' ' + results_str)
310
        
311
        ## [          ]   1 7.14 % 14 3_solution_1.pdb     {'AnalyzeGeometry': 0.0, 'eSCORE': 1.70264, 'FARNA': ['-31.498', '-11.589', '-32.7', '-123.708', '-25.514', '-271.337', '33.563', '2.957', '-36.699', '-471.864', '0.0', '0.0', '24.659', '0.0'], 'ClashScore': 2.201835, 'length': 0, 'SimRNA_0': ['0', '-1016.539381', '-599.475', '-223.162', '-3.935', '-413.129576', '-65.066', '-71.505', '-68.947', '-45.989', '-161.622', '', '-1016.539381'], 'FARNA_hires': ['0.0', '-541.374', '-0.59', '0.0', '1.85', '8.12', '-433.113', '17.811', '-229.203', '3.074', '-140.106', '13.875', '-17.245', '226.762', '7.39'], 'RNAscore': 26.7066, 'RASP': ['-9.3599', '987', '-0.00948318', '8.16333', '3.95157', '-4.4345', '-7976.88', '60547', '-0.131747', '-7274.73', '52.7448', '-13.3123', '-17537.5', '138719', '-0.126424', '-15578.4', '106.602', '-18.3777', '-34270.8', '483436', '-0.07089', '0', '0', '0'], 'RNAkb': -0.019507621989000006}
312
313
        #sys.stdout.flush()
314
        #print
315
        #sys.stdout.write(sg.pprogress_line(counter.value, filename_length))
316
        #print sg.pprogress_line(counter.value, filename_length)
317
        #sys.stdout.flush()
318
319
        ## for graphics debugging
320
        #import time
321
        #time.sleep(1)
322
323
        #format_line([filename.split(os.sep)[-1] + [all_results[m] for m in methods]])  # @todo Nice print with ShellGraphics
324
325
        cells = [counter.value, filename.split(os.sep)[-1]] # add id 
326
        for m in methods:
327
            if type(all_results[m]) == list:
328
                cells.extend(all_results[m])
329
            else:
330
                cells.append(all_results[m])
331
        csv_writer.writerow(cells)
332
333
        #print 'mqaprna::filename: %i %s' % (counter.value, filename)
334
        csv_file.flush()
335
        lock.release()
336
337
    # hack
338
    try:
339
        methods.remove('SCORE')
340
    except ValueError:
341
        pass
342
343
    try:
344
        methods.remove('rmsd')
345
    except ValueError:
346
        pass
347
348
349
def option_parser():

rna_tools/tools/mq/rna_mq_collect_tqdm.py 1 location

@@ 159-326 (lines=168) @@
156
}
157
158
159
def single_run(lst):
160
    """Start a mqaprna run for a given file
161
    with all methods (according to config file).
162
163
    [!] Use global cleanup = False to block cleaning up
164
165
    .. warning:: The function uses global variable.
166
    """
167
    filename, c, verbose, methods, opt, ref_seq = lst
168
    all_results = {}
169
170
    for m in methods:
171
172
            arguments = ''
173
            #if DEBUG_MODE: print 'method', m, arguments
174
            mfull = m
175
176
            if verbose: print(m + '...') # show method 'eSCORE...'
177
178
            if m == 'FARNA':
179
                mfull = m
180
                arguments = [filename] + [False]
181
182
            if m == 'FARNA_hires':
183
                m = 'FARNA'
184
                mfull = 'FARNA_hires'
185
                arguments = [filename] + [True]
186
187
            if m == 'FARFAR2':
188
                m = 'FARFAR2'
189
                mfull = 'FARFAR2'
190
                arguments = [filename] + [False]
191
192
            if m == 'FARFAR2_hires':
193
                m = 'FARFAR2'
194
                mfull = 'FARFAR2_hires'
195
                arguments = [filename] + [True]
196
                
197
            if m == 'RNAkb_all':
198
                m = 'RNAkb'
199
                mfull = 'RNAkb_all'
200
                arguments = [filename] + ['aa']
201
202
            if m.find('_') > -1:
203
                m, n = m.split('_')
204
                n = n.replace('n', '') # n_XXX
205
                n = n.replace('k', '000')
206
                n = n.replace('m', '000000')
207
                arguments = [filename] + [n]
208
209
            if not arguments:
210
                arguments = [filename] + Config.WRAPPER_OPTIONS[m]
211
212
            if m == 'escore':
213
                m = 'eSCORE'
214
            wrapper = getattr(MODULES[m], m)()#verbose) # ref_seq, ref_ss, verbose)  # for all wrappers but SSAgrement '','' is OK
215
216
            if m == 'NAST_pyro':
217
                lock.acquire()
218
219
            if DEBUG_MODE:
220
                result = wrapper.run(*arguments)
221
                if verbose: print(m, result) # ClashScore 12.256669
222
                all_results[mfull] = result
223
                if cleanup: wrapper.cleanup()
224
            else:
225
                try:
226
                    result = wrapper.run(*arguments)
227
                    all_results[mfull] = result
228
                    if cleanup: wrapper.cleanup()
229
                except:
230
                    all_results[mfull] = 'error'
231
                    if cleanup: wrapper.cleanup()
232
233
            # {'ClashScore': 12.256669}
234
            # {'ClashScore': 12.256669, 'AnalyzeGeometry': 32.5581}
235
            # {'ClashScore': 12.256669, 'AnalyzeGeometry': 32.5581, 'FARNA': '-20.008,-2.739,-13.175,-77.67,-10.652,-158.51,9.547,8.39,-16.246,-263.281,0.0,0.0,17.782,0.0'}
236
            #if verbose: print 'all_results:', all_results # this every each method showed
237
238
            if m == 'NAST_pyro':
239
                lock.release()
240
241
    # get rmsd
242
    if opt.native_pdb_filename:
243
        rmsd = rmsd_calc.get_rmsd(opt.native_pdb_filename,
244
                                     filename)
245
        all_results['rmsd'] = rmsd
246
        methods = methods + ['rmsd']
247
    else:
248
        methods = methods
249
250
    # length
251
    length = len(ref_seq)
252
    all_results['length'] = length
253
254
    if opt.mqapscore:
255
        # meta-score
256
        ms =  MqapScore(all_results)
257
        mqap_score = ms.get_score()
258
        methods = methods + ['SCORE']
259
        all_results['SCORE'] = mqap_score
260
261
    if True:
262
        # lock.acquire()
263
264
        global counter_lock
265
        #with counter_lock:
266
        counter.value += 1
267
268
        if counter.value != 1:
269
            # @todo does not work
270
            #sys.stdout.write('\033[F')
271
            #sys.stdout.write('\033[F')
272
            pass
273
274
        #results = [str(round(all_results[mfull],2)).strip().rjust(9) for m in methods]
275
276
        results_str = str(all_results) # "{'AnalyzeGeometry': 0.0, 'eSCORE': 0.10661, 'FARNA': ['-2.411', '0.0', '0.0', '-9.672', '0.0', '-25.678', '0.0', '1.061', '0.0', '-32.098', '0.0', '0.0', '4.601', '0.0'], 'ClashScore': 36.458333, 'length': 0, 'SimRNA_0': ['0', '67.345305', '-37.428', '-23.073', '0.248', '104.524975', '87.955', '9.938', '5.669', '1.089', '-0.126', '', '67.345305'], 'FARNA_hires': ['0.0', '-13.107', '-0.711', '0.0', '5.22', '2.734', '-30.044', '0.223', '-10.511', '-0.173', '-4.719', '1.143', '0.0', '14.371', '9.358'], 'RNAscore': 8.11007, 'RASP': ['-0.1382', '15', '-0.00921333', '-0.0845115', '0.454033', '-0.118248', '-277.666', '949', '-0.292588', '-273.37', '2.51163', '-1.71042', '-584.451', '2144', '-0.272598', '-564.143', '5.77609', '-3.51588', '-1616.08', '6700', '-0.241206', '0', '0', '0'], 'RNAkb': -1}"
277
278
        results = [all_results[mfull] for m in methods]
279
        # progress bar
280
        #sys.stdout.write('\r')
281
        #sys.stdout.flush()
282
        #sys.stdout.write('\r' + ' ' * 110 + '\r' + filename.split(os.sep)[-1].ljust(50) + ' ' + ' '.join(results))
283
284
        ########### line with resluts ######################
285
        #bar.update(counter.value)
286
        ## my old progress bar here:
287
        # print(sg.pprogress_line(counter.value, filename_length, ''))# ,
288
        ## print results, use --verbose now
289
        if verbose:
290
            print(filename.split(os.sep)[-1].ljust(20) + ' ' + results_str)
291
        
292
        ## [          ]   1 7.14 % 14 3_solution_1.pdb     {'AnalyzeGeometry': 0.0, 'eSCORE': 1.70264, 'FARNA': ['-31.498', '-11.589', '-32.7', '-123.708', '-25.514', '-271.337', '33.563', '2.957', '-36.699', '-471.864', '0.0', '0.0', '24.659', '0.0'], 'ClashScore': 2.201835, 'length': 0, 'SimRNA_0': ['0', '-1016.539381', '-599.475', '-223.162', '-3.935', '-413.129576', '-65.066', '-71.505', '-68.947', '-45.989', '-161.622', '', '-1016.539381'], 'FARNA_hires': ['0.0', '-541.374', '-0.59', '0.0', '1.85', '8.12', '-433.113', '17.811', '-229.203', '3.074', '-140.106', '13.875', '-17.245', '226.762', '7.39'], 'RNAscore': 26.7066, 'RASP': ['-9.3599', '987', '-0.00948318', '8.16333', '3.95157', '-4.4345', '-7976.88', '60547', '-0.131747', '-7274.73', '52.7448', '-13.3123', '-17537.5', '138719', '-0.126424', '-15578.4', '106.602', '-18.3777', '-34270.8', '483436', '-0.07089', '0', '0', '0'], 'RNAkb': -0.019507621989000006}
293
294
        #sys.stdout.flush()
295
        #print
296
        #sys.stdout.write(sg.pprogress_line(counter.value, filename_length))
297
        #print sg.pprogress_line(counter.value, filename_length)
298
        #sys.stdout.flush()
299
300
        ## for graphics debugging
301
        #import time
302
        #time.sleep(1)
303
304
        #format_line([filename.split(os.sep)[-1] + [all_results[m] for m in methods]])  # @todo Nice print with ShellGraphics
305
        cells = [c, filename.split(os.sep)[-1]] # add id 
306
        for m in methods:
307
            if type(all_results[m]) == list:
308
                cells.extend(all_results[m])
309
            else:
310
                cells.append(all_results[m])
311
        #csv_writer.writerow(cells)
312
        return cells
313
        #print 'mqaprna::filename: %i %s' % (counter.value, filename)
314
        #csv_file.flush()
315
        #lock.release()
316
317
    # hack
318
    try:
319
        methods.remove('SCORE')
320
    except ValueError:
321
        pass
322
323
    try:
324
        methods.remove('rmsd')
325
    except ValueError:
326
        pass
327
328
329
def option_parser():