def doCoverage(self): if self._state != "DO_COVERAGE": raise Exception("Invalid state transition") bamFname = self.bamUrl.toLocalFile() self.logMessage.emit("Invoking cnvlib.do_coverage(" + self._target_path() + ", " + bamFname + ")") self._target_coverage = cnvlib.do_coverage(self._target_path(), bamFname) self.logMessage.emit("Invoking cnvlib.do_coverage(" + self._antitarget_path() + ", " + bamFname + ")") self._antitarget_coverage = cnvlib.do_coverage(self._antitarget_path(), bamFname) self.logMessage.emit("Saving target coverage file to " + self._target_coverage_path()) skgenome.tabio.write(self._target_covegae, self._target_coverage_path()) self.logMessage.emit("Saving antitarget coverage file to " + self._antitarget_coverage_path()) skgenome.tabio.write(self._antitarget_coverage, self._antitarget_coverage_path()) self._set_state("DO_REFERENCE")
def filter_targets(target_bed, sample_bams, procs): """Check if each potential target has significant coverage.""" baits = tabio.read_auto(target_bed) # Loop over BAMs to calculate weighted averages of bin coverage depths total_depths = np.zeros(len(baits), dtype=np.float_) for bam_fname in sample_bams: logging.info("Evaluating targets in %s", bam_fname) sample = cnvlib.do_coverage(target_bed, bam_fname, processes=procs) total_depths += sample['depth'].values baits['depth'] = total_depths / len(sample_bams) return baits
def filter_targets(target_bed, sample_bams, procs): """Check if each potential target has significant coverage.""" try: baits = tabio.read(target_bed, 'bed4') except: raise RuntimeError("Targets must be in BED format; try skg_convert.py") logging.info("Loaded %d candidate regions from %s", len(baits), target_bed) # Loop over BAMs to calculate weighted averages of bin coverage depths total_depths = np.zeros(len(baits), dtype=np.float_) for bam_fname in sample_bams: logging.info("Evaluating targets in %s", bam_fname) sample = cnvlib.do_coverage(target_bed, bam_fname, processes=procs) assert len(sample) == len(baits), \ "%d != %d" % (len(sample), len(baits)) total_depths += sample['depth'].values baits['depth'] = total_depths / len(sample_bams) logging.info("Average candidate-target depth:\n%s", baits['depth'].describe()) return baits