Пример #1
0
def test_merge_records__complex_example__unsorted():
    assert merge_bed_records(
        [
            _new_bed_record("chr2", 100, 200),
            _new_bed_record("chr1", 1234, 5678),
            _new_bed_record("chr2", 150, 250),
            _new_bed_record("chr2", 1, 20),
            _new_bed_record("chr1", 5678, 9012),
        ]
    ) == [
        _new_bed_record("chr1", 1234, 9012),
        _new_bed_record("chr2", 1, 20),
        _new_bed_record("chr2", 100, 250),
    ]
Пример #2
0
    def _run(self, config, temp):
        contigs = {}
        with open(self._fai_file) as handle:
            for line in handle:
                name, length, _ = line.split("\t", 2)
                if name in contigs:
                    raise NodeError("Reference genome contains multiple "
                                    "identically named contigs (%r)!" %
                                    (name, ))

                contigs[name] = int(length)

        with open(reroot_path(temp, self._outfile), "w") as handle:
            records = list(read_bed_file(self._infile, contigs=contigs))
            pad_bed_records(records=records,
                            padding=self._amount,
                            max_sizes=contigs)

            for record in merge_bed_records(records):
                handle.write("%s\n" % (record, ))
Пример #3
0
def test_merge_records__non_overlapping_records_2():
    assert merge_bed_records(
        [_new_bed_record("chr1", 1234, 5678), _new_bed_record("chr1", 5680, 9012)]
    ) == [_new_bed_record("chr1", 1234, 5678), _new_bed_record("chr1", 5680, 9012)]
Пример #4
0
def test_merge_records__minimal_fields_only():
    assert merge_bed_records([_new_bed_record("chr1", 1234, 5678, "foo", 1, "-")]) == [
        _new_bed_record("chr1", 1234, 5678)
    ]
Пример #5
0
def test_merge_records__single_record():
    assert merge_bed_records([_new_bed_record("chr1", 1234, 5678)]) == [
        _new_bed_record("chr1", 1234, 5678)
    ]
Пример #6
0
def test_merge_records__empty_sequences():
    assert merge_bed_records(()) == []
    assert merge_bed_records([]) == []