Exemplo n.º 1
0
def latex_bowtie(input, output, param):
    json_dict = json_load(input["json"])

    basic_map_table = []
    for sam in json_dict["stat"]:
        basic_map_table.append(
            [
                underline_to_space(sam),
                json_dict["stat"][sam]["total_reads"],
                json_dict["stat"][sam]["mappable_reads"],
                json_dict["stat"][sam]["mappable_rate"],
            ]
        )

    latex = JinjaTemplateCommand(
        name="mapping quality",
        template=input["template"],
        param={
            "section_name": "bowtie",
            "basic_map_table": basic_map_table,
            "mappable_ratio_graph": json_dict["output"]["pdf"],
            "render_dump": output["latex"],
        },
    )

    template_dump(latex)
Exemplo n.º 2
0
def latex_fastqc(input, output, param):
    json_dict = json_load(input["json"])

    fastqc_summary = []
    stat = json_dict["stat"]
    for sample in stat:
        fastqc_summary.append([underline_to_space(sample), stat[sample]["sequence_length"], stat[sample]["median"]])

    latex = JinjaTemplateCommand(
        template=input["template"],
        param={"section_name": "sequence_quality",
               "path": json_dict["output"]["pdf"],
               "fastqc_table": fastqc_summary,
               "fastqc_graph": json_dict["output"]["pdf"],
               'prefix_dataset_id': [ underline_to_space(i) for i in stat.keys() ],
               "render_dump": output["latex"]})
    template_dump(latex)
Exemplo n.º 3
0
def stat_fastqc(input={"db": "", "fastqc_summaries": [], "template": ""},
                output={"R": "", "json": "", "pdf": ""},
                param={"ids": [], "id": ""}):
    json_dict = {"stat": {}, "input": input, "output": output, "param": param}
    stat = json_dict["stat"]

    quality_medians = []

    for a_summary, a_id in zip(input["fastqc_summaries"], param["ids"]):
        parsed = _python_fastqc_parse(input=a_summary)

        stat[a_id] = {}
        stat[a_id]["median"] = parsed["median"]
        stat[a_id]["cutoff"] = 25
        stat[a_id]['judge'] = "Pass" if parsed["median"] > 25 else "Fail"
        stat[a_id]["sequence_length"] = parsed["sequence_length"]

        quality_medians.append(parsed["median"])

    # The table of fastqc_summary that will be used for rendering
    # Col 1: sample ID
    # Col 2: sequence length
    # Col 3: median of sequence quality

    qc_db = sqlite3.connect(input["db"]).cursor()
    qc_db.execute("SELECT median_quality FROM fastqc_info")
    history_data = [float(i[0]) for i in qc_db.fetchall()]


    fastqc_dist_r = JinjaTemplateCommand(
        template=input["template"],
        param={'historic_data': history_data,
               'current_data': quality_medians,
               'ids': [underline_to_space(i) for i in param["ids"]],
               'cutoff': 25,
               'main': 'Sequence Quality Score Cumulative Percentage',
               'xlab': 'sequence quality score',
               'ylab': 'fn(sequence quality score)',
               "need_smooth_curve": True,

               "pdf": output["pdf"],
               "render_dump": output["R"]})

    template_dump(fastqc_dist_r)
    r_exec(fastqc_dist_r)

    json_dump(json_dict)
Exemplo n.º 4
0
def latex_macs2(input, output, param):
    # TODO: qian work out the peaks_summary_result part


    json_dict = json_load(input["json"])

    summary = [underline_to_space(json_dict["param"]["id"]),
               json_dict["stat"]["qvalue"],
               json_dict["stat"]["totalpeak"],
               json_dict["stat"]["peaksge10"],
               json_dict["stat"]["shiftsize"]]

    high_confident_latex = JinjaTemplateCommand(
        name = "high confident latex",
        template = input["template"],
        param = {"section_name": "high_confident_peaks",
                 "peak_summary_table": summary,
                 "high_confident_peak_graph": json_dict["output"]["pdf"],
                 "render_dump": output["latex"]})

    template_dump(high_confident_latex)
Exemplo n.º 5
0
def _2space(id):
    return underline_to_space(id)