diff --git a/barrOs.py b/barrOs.py index 3d20bf738c8eaf8d51346c5d877d5ae252083878..f9e28751be4441e7139f1e93637f44b3bbb8dc81 100644 --- a/barrOs.py +++ b/barrOs.py @@ -9,7 +9,7 @@ number_of_jobs = 1 barros.print_hello() # Get inputs -input_files, input_types, input_mode, outf, complexes_only, multimer_only, delete = barros.get_inputs(sys.argv) +input_files, input_types, input_mode, outf, complexes_only, multimer_only, delete, distance_threshold = barros.get_inputs(sys.argv) # Check if inputs are correct in case we are not dealing with a 'help' check @@ -36,7 +36,7 @@ if __name__ == '__main__': # Prepare all parallel jobs and run the main barrOs method for each pdbid separated_jobs = barros.chunk_list(pdbIDs, number_of_jobs) - list_arguments = [i for i in zip(range(number_of_jobs), [input_mode for job in separated_jobs],[complexes_only for job in separated_jobs],[multimer_only for job in separated_jobs],[delete for job in separated_jobs], separated_jobs)] + list_arguments = [i for i in zip(range(number_of_jobs), [input_mode for job in separated_jobs],[complexes_only for job in separated_jobs],[multimer_only for job in separated_jobs],[delete for job in separated_jobs],[distance_threshold for job in separated_jobs], separated_jobs)] pool = mp.Pool(number_of_jobs) data = pool.map(barros.run_barros, list_arguments) diff --git a/barrOs_library.py b/barrOs_library.py index 44a3feb9d951bf6de1d2a6062e72a99ab3f81242..2747e8c6cb085d43c21ad74e02b7f0307fe6ee5e 100644 --- a/barrOs_library.py +++ b/barrOs_library.py @@ -69,7 +69,11 @@ def print_help(): print(" \tvalues accepted: {}".format(accepted_modes)) print(" -outputf: \tdefines the name of the output file") print(" \tit is not mandatory. Default: BARRoS_results.csv") - print(" -nodelete: \tflag to define if files downloaded but without detected barrels should not be deleted. Default: False") + print(" -nodelete: \tflag to define if files downloaded but without ") + print(" \tdetected barrels should not be deleted. Default: False") + print(" -strandist: \tmaximum distance between strands for a contact") + print(" \tto be considered. Default: 5 Ang") + def print_summary(input_files, input_types, input_mode): @@ -90,6 +94,7 @@ def get_inputs(argv): input_types = [] input_type = 'nan' input_mode = 'nan' + distance_threshold = 5 output_file = 'BARRoS_results.csv' if len(argv) > 1: @@ -115,6 +120,8 @@ def get_inputs(argv): multimer_only = True elif '-nodelete' in arg: delete = False + elif '-strandist' in arg: + distance_threshold = int(arg.split(':')[1]) if found_input and not found_mode: if input_type in accepted_input_types: @@ -126,7 +133,7 @@ def get_inputs(argv): elif not found_input and found_mode: input_mode = tmp_mode - return input_files, input_types, input_mode, output_file, complexes_only, multimer_only, delete + return input_files, input_types, input_mode, output_file, complexes_only, multimer_only, delete, distance_threshold ## 1.3. Functions to check if the inputs are correct @@ -2241,9 +2248,9 @@ def plot_parameter(x_col, y_col, df, saveto, fit_line = False): #### THE MAIN BARROS METHOD #### -def run_barros(arguments, offset = 1, step = 2, local_angle_threshold = 25, distance_threshold = 5, max_loop_size = 0): +def run_barros(arguments, offset = 1, step = 2, local_angle_threshold = 25, max_loop_size = 0): - job_number, input_mode, complexes_only, multimer_only, delete, in_queue = arguments + job_number, input_mode, complexes_only, multimer_only, delete, distance_threshold, in_queue = arguments # create output files to save the sequences outfasta = "full_sequences_matched_pdbs_job{}.fasta".format(job_number)