Ejemplo n.º 1
0
    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")
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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