def df_as_bins(cls, df, gap_file): ''' converts a already scored df to an object containing a dict of bins per chromosome, separated by gaps. ''' chromd = collections.defaultdict(list) for _, x in df.iterrows(): b = util.bed(x['chrom'], x['start'], x['end'], x['score']) chromd[b.chrom].append(b) return cls.with_unalignable_regions_masked(chromd, gap_file)
def scale_neg_scores(self, scale): return GenomeBins( {k:[util.bed(x.chrom, x.start, x.end, x.score if x.score > 0 else x.score * scale) for x in xs] for k, xs in self.chrom_bins.items()})
def chrom_max(chrom): xs = max_segments(self.chrom_scores[chrom]) bins = self.chrom_bins[chrom] return [util.bed(bins[x.from_idx].chrom, bins[x.from_idx].start, bins[x.to_idx].end, x.score) for x in xs]