def trim_lane(item): """ if trim_reads is set with no trimmer specified, default to B-run trimming only. if trimmer is set to a supported type, perform that trimming instead. """ to_trim = [x for x in item["files"] if x is not None] dirs = item["dirs"] config = item["config"] # this block is to maintain legacy configuration files trim_reads = config["algorithm"].get("trim_reads", False) if not trim_reads: logger.info("Skipping trimming of %s." % (", ".join(to_trim))) return item # swap the default to None if trim_reads gets deprecated if trim_reads == "low_quality" or trim_reads == "true": logger.info("Trimming low quality ends from %s." % (", ".join(to_trim))) out_files = brun_trim_fastq(to_trim, dirs, config) if trim_reads == "read_through": logger.info("Trimming low quality ends and read through adapter " "sequence from %s." % (", ".join(to_trim))) out_files = trim_read_through(to_trim, dirs, config) else: logger.info("Trimming low quality ends from %s." % (", ".join(to_trim))) out_files = brun_trim_fastq(to_trim, dirs, config) item["files"] = out_files return [[item]]
def trim_lane(fastq1, fastq2, info, lane_name, lane_desc, dirs, config): """ if trim_reads is set with no trimmer specified, default to B-run trimming only. if trimmer is set to a supported type, perform that trimming instead. """ to_trim = [x for x in [fastq1, fastq2] if x is not None] # this block is to maintain legacy configuration files trim_reads = config["algorithm"].get("trim_reads", False) if not trim_reads: logger.info("Skipping trimming of %s." % (", ".join(to_trim))) return [(fastq1, fastq2, info, lane_name, lane_desc, dirs, config)] # swap the default to None if trim_reads gets deprecated if trim_reads == "low_quality" or trim_reads == "true": logger.info("Trimming low quality ends from %s." % (", ".join(to_trim))) out_files = brun_trim_fastq(to_trim, dirs, config) if trim_reads == "read_through": logger.info("Trimming low quality ends and read through adapter " "sequence from %s." % (", ".join(to_trim))) out_files = trim_read_through(to_trim, dirs, config) else: logger.info("Trimming low quality ends from %s." % (", ".join(to_trim))) out_files = brun_trim_fastq(to_trim, dirs, config) fastq1 = out_files[0] if fastq2 is not None: fastq2 = out_files[1] return [(fastq1, fastq2, info, lane_name, lane_desc, dirs, config)]
def test_single(self): single = self.config["input_single"] out_file = trim_read_through(single, self.config["dir"], self.config) correct_file = self._trim_single_correct(out_file) self.assertTrue(filecmp.cmp(correct_file, out_file)) shutil.rmtree(self.root_work)
def test_pairedend(self): paired = self.config["input_paired"] out_files = trim_read_through(paired, self.config["dir"], self.config) correct_files = map(self._trim_paired_correct, out_files) self.assertTrue(all(map(filecmp.cmp, correct_files, out_files))) shutil.rmtree(self.root_work)