def test_Interval_merge():
    l1 = Interval.from_string('chr1:10000-10967:1')
    l2 = Interval.from_string('chr1:10858-12964:-1')
    l3 = Interval.from_string('chr1:10858-10964:-1')

    merged = Interval.merge([l1,l2,l3])
    assert len(merged) == 1
    m = merged[0]
    assert m.start == 10000
    assert m.end == 12964
Beispiel #2
0
 def intervals(self):
     if self.bed_file is None:
         return {}
     if not self.bed_file.exists:
         raise ValueError(f"can not find the bed file: {self.bed_file}")
     intervals = defaultdict(list)
     with open(self.bed_file) as fp:
         for line in fp:
             chrom, start, end, *_ = line.strip().split('\t')
             intervals[chrom].append(
                 Interval(int(start), int(end), chrom=chrom))
     return {chrom: Interval.merge(intervals[chrom]) for chrom in intervals}