def launch_GNPS_librarysearchworkflow(files_list, job_description, username, password, email): invokeParameters = {} invokeParameters["workflow"] = "MOLECULAR-LIBRARYSEARCH-V2" invokeParameters["protocol"] = "None" invokeParameters["desc"] = job_description invokeParameters["library_on_server"] = "d.speclibs;" invokeParameters["spec_on_server"] = ";".join(files_list) invokeParameters["tolerance.PM_tolerance"] = "2.0" invokeParameters["tolerance.Ion_tolerance"] = "0.5" invokeParameters["MIN_MATCHED_PEAKS"] = "6" invokeParameters["TOP_K_RESULTS"] = "1" invokeParameters["FILTER_STDDEV_PEAK_datasetsINT"] = "0.0" invokeParameters["MIN_PEAK_INT"] = "0.0" invokeParameters["FILTER_PRECURSOR_WINDOW"] = "1" invokeParameters["FILTER_LIBRARY"] = "1" invokeParameters["WINDOW_FILTER"] = "1" invokeParameters["SEARCH_LIBQUALITY"] = "3" invokeParameters["MAX_SHIFT_MASS"] = "100.0" invokeParameters["ANALOG_SEARCH"] = "0" invokeParameters["SCORE_THRESHOLD"] = "0.7" invokeParameters["email"] = email invokeParameters["uuid"] = "1DCE40F7-1211-0001-979D-15DAB2D0B500" task_id = ming_proteosafe_library.invoke_workflow("gnps.ucsd.edu", invokeParameters, username, password) return task_id
def main(): parser = argparse.ArgumentParser(description='Invoking new workflow with parameters of given workflow') parser.add_argument('workflowparamters', help='workflowparamters') parser.add_argument('credentials', help='credentials.json') parser.add_argument('outputhtml', default='output.html', help='output html with a url') parser.add_argument('--serverurl', default='proteomics2.ucsd.edu', help='Server URL, default is proteomics2.ucsd.edu, other options are massive.ucsd.edu and gnps.ucsd.edu') parser.add_argument('--parametermapping', action='append', help='mapping of current workflow parameters to new parameters in the format: <old parameter>:<new parameter>') parser.add_argument('--newparameters', action='append', help='parameter key: <param name>:<parameter value>') parser.add_argument('--runparameter', default='NONE', help='Workflow xml parameter to check if this parameter is equal to "1" to actually invoke the workflow') args = parser.parse_args() credentials = json.loads(open(args.credentials).read()) workflow_parameters_map = ming_proteosafe_library.parse_xml_file(open(args.workflowparamters)) if args.runparameter != "NONE": if workflow_parameters_map[args.runparameter][0] == "0": output_html_file = open(args.outputhtml, "w") output_html_file.write("User chose not to run tool\n") output_html_file.close() exit(0) new_parameters = {} new_parameters["desc"] = "Analysis subroutine from ProteoSAFe job %s" % (workflow_parameters_map["task"][0]) if args.newparameters != None: for parameter_string in args.newparameters: parameter_key = parameter_string.split(":")[0] parameter_value = parameter_string.split(":")[1] new_parameters[parameter_key] = parameter_value if args.parametermapping != None: for parameter_string in args.parametermapping: parameter_old_key = parameter_string.split(":")[0] parameter_new_key = parameter_string.split(":")[1] new_parameters[parameter_new_key] = workflow_parameters_map[parameter_old_key][0] task_id = ming_proteosafe_library.invoke_workflow(args.serverurl, new_parameters, credentials["username"], credentials["password"]) if task_id == None: exit(1) ming_proteosafe_library.wait_for_workflow_finish(args.serverurl, task_id) """Writing HTML output""" output_html_file = open(args.outputhtml, "w") output_html_file.write("<script>\n") output_html_file.write('window.open("https://%s/ProteoSAFe/status.jsp?task=%s", "_blank")\n' % (args.serverurl, task_id)) output_html_file.write("</script>\n") output_html_file.close()
def main(): parser = argparse.ArgumentParser(description='Invoking new workflow with parameters of given workflow') parser.add_argument('workflowparamters', help='workflowparamters') parser.add_argument('credentials', help='credentials.json') parser.add_argument('outputresults', help='output params') args = parser.parse_args() workflow_parameters_map = ming_proteosafe_library.parse_xml_file(open(args.workflowparamters)) usi_list = workflow_parameters_map["usi_string"][0].split("\n") usi_list = [usi for usi in usi_list if len(usi) > 5] all_tasks = [] for usi in usi_list: invokeParameters = {} invokeParameters["desc"] = "Analysis subroutine from ProteoSAFe job %s" % (workflow_parameters_map["task"][0]) invokeParameters["workflow"] = "SEARCH_SINGLE_SPECTRUM" invokeParameters["workflow_version"] = "release_25" invokeParameters["protocol"] = "None" invokeParameters["library_on_server"] = workflow_parameters_map["library_on_server"][0] #Search Parameters invokeParameters["tolerance.PM_tolerance"] = workflow_parameters_map["tolerance.PM_tolerance"][0] invokeParameters["tolerance.Ion_tolerance"] = workflow_parameters_map["tolerance.Ion_tolerance"][0] invokeParameters["ANALOG_SEARCH"] = workflow_parameters_map["ANALOG_SEARCH"][0] invokeParameters["FIND_MATCHES_IN_PUBLIC_DATA"] = "1" invokeParameters["MAX_SHIFT_MASS"] = "100" invokeParameters["MIN_MATCHED_PEAKS"] = workflow_parameters_map["MIN_MATCHED_PEAKS"][0] invokeParameters["SCORE_THRESHOLD"] = workflow_parameters_map["SCORE_THRESHOLD"][0] invokeParameters["SEARCH_LIBQUALITY"] = "3" invokeParameters["SEARCH_RAW"] = "0" invokeParameters["TOP_K_RESULTS"] = "1" invokeParameters["DATABASES"] = workflow_parameters_map["DATABASES"][0] #Filter Parameters invokeParameters["FILTER_LIBRARY"] = workflow_parameters_map["FILTER_LIBRARY"][0] invokeParameters["FILTER_PRECURSOR_WINDOW"] = workflow_parameters_map["FILTER_PRECURSOR_WINDOW"][0] invokeParameters["FILTER_SNR_PEAK_INT"] = workflow_parameters_map["FILTER_SNR_PEAK_INT"][0] invokeParameters["FILTER_STDDEV_PEAK_INT"] = workflow_parameters_map["FILTER_STDDEV_PEAK_INT"][0] invokeParameters["MIN_PEAK_INT"] = workflow_parameters_map["MIN_PEAK_INT"][0] invokeParameters["WINDOW_FILTER"] = workflow_parameters_map["WINDOW_FILTER"][0] #Spectrum precursor_mz, peaks = _get_spectrum(usi) if precursor_mz == None: continue invokeParameters["precursor_mz"] = precursor_mz invokeParameters["spectrum_string"] = "\n".join(["{}\t{}".format(peak[0], peak[1]) for peak in peaks]) invokeParameters["email"] = "*****@*****.**" invokeParameters["uuid"] = "1DCE40F7-1211-0001-979D-15DAB2D0B500" credentials = json.loads(open(args.credentials).read()) task_id = ming_proteosafe_library.invoke_workflow("gnps.ucsd.edu", invokeParameters, credentials["username"], credentials["password"]) if task_id == None: continue all_tasks.append({"usi" : usi, "task_id" : task_id}) time.sleep(60) for task in all_tasks: ming_proteosafe_library.wait_for_workflow_finish("gnps.ucsd.edu", task["task_id"]) tasks_df = pd.DataFrame(all_tasks) tasks_df.to_csv(args.outputresults, sep="\t", index=False)