Esempio n. 1
0
def from_sirna_result(task_id):
    """Gets sh-miR result created from siRNA via task_id

    Args:
        task_id: Id of task which was given by RESTful API

    Returns:
        None
    """
    data = get_json("from_sirna_result", task_id)["data"]
    path = "./results/sirna/{}/".format(task_id)

    if data["result"]:
        print("Results in: {}/".format(path))

        if not os.path.exists(path):
            os.makedirs(path)

        columns = [
            "scaffold name",
            "first sequence",
            "second sequence",
            "sh-miR",
            "overall score",
            "structure score",
            "homogenity score",
            "same ends score",
            "pdf",
        ]

        # parsing results into csv
        with open(path + "result.csv", "w") as fp:
            writer = csv.writer(fp)
            writer.writerow(columns)
            for no, result in enumerate(data["result"]):
                mfold_result(result["pdf_reference"], path=path, verbose=False)
                new_path = "{}{}/{}".format(path, result["scaffold_name"], no + 1)

                if not os.path.exists(new_path):
                    os.makedirs(new_path)

                os.rename(path + result["pdf_reference"], new_path)

                parsed = [
                    result["scaffold_name"],
                    result["sequences"][0],
                    result["sequences"][1],
                    result["shmir"],
                    result["score"]["all"],
                    result["score"]["structure"],
                    result["score"]["homogeneity"],
                    result["score"]["same_ends"],
                    new_path,
                ]
                writer.writerow(parsed)
                print_parsed_result(no, columns, parsed)
    else:
        print("No sh-miR found")
Esempio n. 2
0
def from_transcript_result(task_id):
    """Gets sh-miR result created from transcript via task_id
        * creates task
        * wait until it's done
        * gets result(s)

    Args:
        task_id: Id of task which was given by RESTful API

    Returns:
        None
    """
    data = get_json("from_transcript_result", task_id)["data"]
    path = "./results/transcript/{}/".format(task_id)

    if data["result"]:
        print("Results in: {}/".format(path))

        if not os.path.exists(path):
            os.makedirs(path)

        columns = [
            "scaffold name",
            "sequence",
            "sh-miR",
            "overall score",
            "structure score",
            "offtarget score",
            "regexp score",
            "pdf",
        ]

        # parsing results into csv
        with open(path + "result.csv", "w") as fp:
            writer = csv.writer(fp)
            writer.writerow(columns)
            for no, result in enumerate(data["result"]):
                mfold_result(result["pdf_reference"], path=path, verbose=False)
                new_path = "{}{}/{}".format(path, result["scaffold_name"], no + 1)

                if not os.path.exists(new_path):
                    os.makedirs(new_path)

                subtask_id = result["pdf_reference"].split("/")[-1]
                os.rename(path + subtask_id + "/", new_path)

                parsed = [
                    result["scaffold_name"],
                    result["sequence"],
                    result["shmir"],
                    result["score"]["all"],
                    result["score"]["structure"],
                    result["score"]["offtarget"],
                    result["score"]["regexp"],
                    new_path,
                ]

                writer.writerow(parsed)
                print_parsed_result(no, columns, parsed)

    else:
        print("No sh-miR found")