flowcraft/templates/assembly_report.py
def main(sample_id, assembly_file, coverage_bp_file=None):
    """Main executor of the assembly_report template.

    Parameters
    ----------
    sample_id : str
        Sample Identification string.
    assembly_file : str
        Path to assembly file in Fasta format.

    """

    logger.info("Starting assembly report")
    assembly_obj = Assembly(assembly_file, sample_id)

    logger.info("Retrieving summary statistics for assembly")
    assembly_obj.get_summary_stats("{}_assembly_report.csv".format(sample_id))

    size_dist = [len(x) for x in assembly_obj.contigs.values()]
    json_dic = {
        "tableRow": [{
            "sample": sample_id,
            "data": [
                {"header": "Contigs",
                 "value": assembly_obj.summary_info["ncontigs"],
                 "table": "assembly",
                 "columnBar": True},
                {"header": "Assembled BP",
                 "value": assembly_obj.summary_info["total_len"],
                 "table": "assembly",
                 "columnBar": True},
            ]
        }],
        "plotData": [{
            "sample": sample_id,
            "data": {
                "size_dist": size_dist
            }
        }]
    }

    if coverage_bp_file:
        try:
            window = 2000
            gc_sliding_data = assembly_obj.get_gc_sliding(window=window)
            cov_sliding_data = \
                assembly_obj.get_coverage_sliding(coverage_bp_file,
                                                  window=window)

            # Get total basepairs based on the individual coverage of each
            # contig bpx
            total_bp = sum(
                [sum(x) for x in assembly_obj.contig_coverage.values()]
            )

            # Add data to json report
            json_dic["plotData"][0]["data"]["genomeSliding"] = {
                "gcData": gc_sliding_data,
                "covData": cov_sliding_data,
                "window": window,
                "xbars": assembly_obj._get_window_labels(window),
                "assemblyFile": os.path.basename(assembly_file)
            }
            json_dic["plotData"][0]["data"]["sparkline"] = total_bp

        except:
            logger.error("Unexpected error creating sliding window data:\\n"
                         "{}".format(traceback.format_exc()))

    # Write json report
    with open(".report.json", "w") as json_report:

        json_report.write(json.dumps(json_dic, separators=(",", ":")))

    with open(".status", "w") as status_fh:
        status_fh.write("pass")
def main(sample_id, assembly_file, coverage_bp_file=None):
    logger.info("Starting assembly report")
    assembly_obj = Assembly(assembly_file, sample_id)

    logger.info("Retrieving summary statistics for assembly")
    assembly_obj.get_summary_stats("{}_assembly_report.csv".format(sample_id))

    size_dist = [len(x) for x in assembly_obj.contigs.values()]
    json_dic = {
        "tableRow": [{
            "sample": sample_id,
            "data": [
                {"header": "Contigs",
                 "value": assembly_obj.summary_info["ncontigs"],
                 "table": "assembly",
                 "columnBar": True},
                {"header": "Assembled BP",
                 "value": assembly_obj.summary_info["total_len"],
                 "table": "assembly",
                 "columnBar": True},
            ]
        }],
        "plotData": [{
            "sample": sample_id,
            "data": {
                "size_dist": size_dist
            }
        }]
    }

    if coverage_bp_file:
        try:
            window = 2000
            gc_sliding_data = assembly_obj.get_gc_sliding(window=window)
            cov_sliding_data = \
                assembly_obj.get_coverage_sliding(coverage_bp_file,
                                                  window=window)

            # Get total basepairs based on the individual coverage of each
            # contig bpx
            total_bp = sum(
                [sum(x) for x in assembly_obj.contig_coverage.values()]
            )

            # Add data to json report
            json_dic["plotData"][0]["data"]["genomeSliding"] = {
                "gcData": gc_sliding_data,
                "covData": cov_sliding_data,
                "window": window,
                "xbars": assembly_obj._get_window_labels(window),
                "assemblyFile": os.path.basename(assembly_file)
            }
            json_dic["plotData"][0]["data"]["sparkline"] = total_bp

        except:
            logger.error("Unexpected error creating sliding window data:\\n"
                         "{}".format(traceback.format_exc()))

    # Write json report
    with open(".report.json", "w") as json_report:

        json_report.write(json.dumps(json_dic, separators=(",", ":")))

    with open(".status", "w") as status_fh:
        status_fh.write("pass")
def main ( sample_id , assembly_file , coverage_bp_file = None ) : logger . info ( "Starting assembly report" ) assembly_obj = Assembly ( assembly_file , sample_id ) logger . info ( "Retrieving summary statistics for assembly" ) assembly_obj . get_summary_stats ( "{}_assembly_report.csv" . format ( sample_id ) ) size_dist = [ len ( x ) for x in assembly_obj . contigs . values ( ) ] json_dic = { "tableRow" : [ { "sample" : sample_id , "data" : [ { "header" : "Contigs" , "value" : assembly_obj . summary_info [ "ncontigs" ] , "table" : "assembly" , "columnBar" : True } , { "header" : "Assembled BP" , "value" : assembly_obj . summary_info [ "total_len" ] , "table" : "assembly" , "columnBar" : True } , ] } ] , "plotData" : [ { "sample" : sample_id , "data" : { "size_dist" : size_dist } } ] } if coverage_bp_file : try : window = 2000 gc_sliding_data = assembly_obj . get_gc_sliding ( window = window ) cov_sliding_data = assembly_obj . get_coverage_sliding ( coverage_bp_file , window = window ) # Get total basepairs based on the individual coverage of each # contig bpx total_bp = sum ( [ sum ( x ) for x in assembly_obj . contig_coverage . values ( ) ] ) # Add data to json report json_dic [ "plotData" ] [ 0 ] [ "data" ] [ "genomeSliding" ] = { "gcData" : gc_sliding_data , "covData" : cov_sliding_data , "window" : window , "xbars" : assembly_obj . _get_window_labels ( window ) , "assemblyFile" : os . path . basename ( assembly_file ) } json_dic [ "plotData" ] [ 0 ] [ "data" ] [ "sparkline" ] = total_bp except : logger . error ( "Unexpected error creating sliding window data:\\n" "{}" . format ( traceback . format_exc ( ) ) ) # Write json report with open ( ".report.json" , "w" ) as json_report : json_report . write ( json . dumps ( json_dic , separators = ( "," , ":" ) ) ) with open ( ".status" , "w" ) as status_fh : status_fh . write ( "pass" )
Main executor of the assembly_report template.

    Parameters
    ----------
    sample_id : str
        Sample Identification string.
    assembly_file : str
        Path to assembly file in Fasta format.
Main executor of the assembly_report template .