예제 #1
0
 def getNucSignal(self):
     """Gets Nucleosome Signal Track"""
     self.nuc_cov = CoverageTrack(self.chrom, self.start, self.end)
     self.nuc_cov.calculateCoverage(self.mat, self.params.lower,
                                    self.params.upper, self.params.window)
     self.bias = BiasTrack(self.chrom, self.start, self.end)
     self.bias.calculateBackgroundSignal(self.bias_mat, self.params.vmat,
                                         self.nuc_cov)
     self.nuc_signal = SignalTrack(self.chrom, self.start, self.end)
     self.nuc_signal.calculateSignal(self.mat, self.params.vmat)
     self.norm_signal = NormSignalTrack(self.chrom, self.start, self.end)
     self.norm_signal.calculateNormSignal(self.nuc_signal, self.bias)
예제 #2
0
 def calculateBackgroundSignal(self, mat, vmat, nuc_cov):
     offset=self.start-mat.start-vmat.w
     if offset<0:
         raise Exception("Insufficient flanking region on \
                 mat to calculate signal")
     self.vmat = vmat
     self.bias_mat = mat
     self.cov = CoverageTrack(self.chrom, self.start, self.end)
     self.cov.calculateCoverage(self.bias_mat, vmat.lower,
                                vmat.upper, vmat.w*2+1)
     self.nuc_cov = nuc_cov.vals
     self.vals = signal.correlate(self.bias_mat.get(vmat.lower,vmat.upper,
                                                      self.bias_mat.start + offset,
                                                      self.bias_mat.end - offset),
                                    vmat.mat,mode = 'valid')[0]
     self.vals = self.vals * self.nuc_cov/ self.cov.vals
예제 #3
0
def _covHelper(arg):
    """Computes coverage track for a particular set of bed regions"""
    (chunk, args) = arg
    try:
        offset = args.window // 2
        mat = FragmentMat2D(chunk.chrom, chunk.start - offset,
                            chunk.end + offset, args.lower, args.upper,
                            args.atac)
        mat.makeFragmentMat(args.bam)
        cov = CoverageTrack(chunk.chrom, chunk.start, chunk.end)
        cov.calculateCoverage(mat,
                              lower=args.lower,
                              upper=args.upper,
                              window_len=args.window)
        cov.vals *= args.scale / float(args.window)
    except Exception as e:
        print(('Caught exception when processing:\n' + chunk.asBed() + "\n"))
        traceback.print_exc()
        print()
        raise e
    return cov
예제 #4
0
 def getCov(self):
     """Get read coverage for regions"""
     self.cov = CoverageTrack(self.chrom, self.start, self.end)
     self.cov.calculateCoverage(self.mat, 0, self.params.upper, self.params.window)
예제 #5
0
 def getNFR(self):
     """get number of reads of sub-nucleosomal length"""
     self.nfr_cov = CoverageTrack(self.chrom, self.start, self.end)
     self.nfr_cov.calculateCoverage(self.mat, 0, self.params.lower,
                                    self.params.window)