def run(self, input_files, metadata, output_files): # pylint: disable=no-self-use """ Main run function for the validation of FASTQ files. The pipeline uses FastQC Parameters ---------- input_files : dict fastq : str List of file locations metadata : dict fastq : dict Required meta data output_files : dict report : str Location of the HTML Returns ------- outputfiles : dict List of locations for the output index files output_metadata : dict Metadata about each of the files """ output_files_generated = {} output_metadata = {} # FastQC Validation logger.info("Generating validation report for FastQ file") fastqc_handle = fastqcTool() bti, btm = fastqc_handle.run( input_files, metadata, {'report': output_files['report']} ) try: output_files_generated['report'] = bti["report"] output_metadata['report'] = btm['report'] tool_name = output_metadata['report'].meta_data['tool'] output_metadata['report'].meta_data['tool_description'] = tool_name output_metadata['report'].meta_data['tool'] = "process_fastqc" except KeyError: logger.fatal("FastQ validation process failed") return (output_files_generated, output_metadata)
def test_fastqc_hic_1(): """ Test case to ensure that the GEM indexer works. """ resource_path = os.path.join(os.path.dirname(__file__), "data/") input_files = {"fastq": resource_path + "tb.Human.SRR1658573_2.fastq.gz"} output_files = { "report": resource_path + "tb.Human.SRR1658573_2.report", } metadata = { "fastq": Metadata("data_rnaseq", "fastq", [], None, {'assembly': 'test'}) } fastqc_handle = fastqcTool() fastqc_handle.run(input_files, metadata, output_files) assert os.path.isfile(output_files["report"]) is True assert os.path.getsize(output_files["report"]) > 0