def getOcc(self): """gets occupancy track-- reads in from bedgraph""" self.occ = Track(self.chrom, self.start, self.end, "Occupancy") self.occ.read_track(self.params.occ_track) #lower_file = self.params.occ_track[:-11] + 'lower_bound.bedgraph.gz' #self.occ_lower = Track(self.chrom,self.start,self.end,"Occupancy") #self.occ_lower.read_track(lower_file) upper_file = self.params.occ_track[:-11] + 'upper_bound.bedgraph.gz' self.occ_upper = Track(self.chrom, self.start, self.end, "Occupancy") self.occ_upper.read_track(upper_file)
def getOcc(self): """gets occupancy track-- either reads in from bw handle given, or makes new""" self.occ = Track(self.chrom, self.start, self.end, "Occupancy") self.occ.read_track(self.params.occ_track) lower_file = self.params.occ_track[:-11] + 'lower_bound.bedgraph.gz' self.occ_lower = Track(self.chrom, self.start, self.end, "Occupancy") self.occ_lower.read_track(lower_file) upper_file = self.params.occ_track[:-11] + 'upper_bound.bedgraph.gz' self.occ_upper = Track(self.chrom, self.start, self.end, "Occupancy") self.occ_upper.read_track(upper_file)
def getIns(self): """gets insertion track-- reads in from bedgraph""" if self.params.ins_track is None: self.ins = InsertionTrack(self.chrom, self.start, self.end) self.ins.calculateInsertions(self.params.bam) else: self.ins = Track(self.chrom, self.start, self.end, "Insertion") self.ins.read_track(self.params.ins_track)
def fit(self): x = np.linspace(0,self.length() -1, self.length()) fit = np.zeros(self.length()) for nuc in self.sorted_nuc_keys: self.nuc_collection[nuc].getFuzz(self) fit += norm(x,self.nuc_collection[nuc].fuzz**2, self.nuc_collection[nuc].weight, self.nuc_collection[nuc].fit_pos) self.fitted = Track(self.chrom, self.start, self.end, "Fitted Nucleosome Signal") self.fitted.assign_track(fit)
def smoothSignal(self): """Smooth thenormalized signal track""" window_len = 6 * self.params.smooth_sd + 1 self.smoothed = Track(self.chrom,self.start,self.end, "Smooth Signal") tmp = copy(self.norm_signal.vals) self.smoothed.assign_track(tmp) self.smoothed.vals[ self.smoothed.vals < 0] = 0 self.smoothed.smooth_track(window_len, window = "gaussian", sd = self.params.smooth_sd, mode = 'same', norm = True)
def test_read_and_get(self): """test the read and get functionality of track class""" track = Track(self.chunk.chrom, self.chunk.start, self.chunk.end) track.read_track('example/example.Scores.bedgraph.gz') val = 1.35994655714 self.assertTrue(abs(val - track.get(pos=706661)) < 0.001)