Example #1
0
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()
Example #3
0
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)