def __init__(self): self.guided_ends = False self.guided_assembly = False self.transfrags = [] self.ref_transfrags = [] self.chrom = None self.start = None self.end = None self.strand = None self.tree_starts = IntervalTree() self.tree_ends = IntervalTree() self.ref_start_sites = set() self.ref_stop_sites = set() self.start_sites = set() self.stop_sites = set() self.expr_data = None self.node_bounds = None self.G = None
def _add_transfrags(self, transfrags): self.transfrags = [] self.ref_transfrags = [] self.chrom = None self.start = None self.end = None self.strand = None self.ref_start_sites = set() self.ref_stop_sites = set() self.tree_starts = IntervalTree() self.tree_ends = IntervalTree() for t in transfrags: if self.chrom is None: self.chrom = t.chrom elif self.chrom != t.chrom: raise TacoError('chrom mismatch') if self.strand is None: self.strand = t.strand elif self.strand != t.strand: raise TacoError('strand mismatch') if self.start is None: self.start = t.start else: self.start = min(t.start, self.start) if self.end is None: self.end = t.end else: self.end = max(t.end, self.end) if t.is_ref: self.ref_start_sites.add(t.txstart) self.ref_stop_sites.add(t.txstop) self.ref_transfrags.append(t) else: self._add_to_interval_trees(t) self.transfrags.append(t) self.ref_start_sites = sorted(self.ref_start_sites) self.ref_stop_sites = sorted(self.ref_stop_sites)