Exemplo n.º 1
0
def test_builder_pipeline():
  """Test the entire builder pipeline."""
  chanjo_db = Store(':memory:')
  chanjo_db.set_up()

  # test with minimal BED "file"
  bed_stream = io.open('tests/fixtures/CCDS.mini.bed', 'r', encoding='utf-8')
  init_db(chanjo_db, bed_stream)

  block = chanjo_db.get('block', 'CCDS2.2')
  assert block.start == 12
  assert block.end == 35

  superblock = chanjo_db.get('superblock', 'RFPL2')
  assert superblock.start == 32586759
  assert superblock.end == 32589260

  block_ids = [block_.id for block_ in superblock.blocks]
  assert set(block_ids) == set(['CCDS46694.1', 'CCDS54521.1'])

  assert len(chanjo_db.find('block')) == 5
  assert len(chanjo_db.find('superblock')) == 4
Exemplo n.º 2
0
class TestBuildElement(object):
    def setup(self):
        self.store = Store(':memory:')
        self.store.set_up()

        self.interval = BaseInterval('1',
                                     10,
                                     100,
                                     name='int1',
                                     block_ids=['block1', 'block2'],
                                     superblock_ids=['sblock1', 'sblock1'])

        self.db_interval = StoreInterval(interval_id=self.interval.name,
                                         contig=self.interval.contig,
                                         start=self.interval.start,
                                         end=self.interval.end,
                                         strand=self.interval.strand)
        self.interval_group = [('block2', self.db_interval, 'sblock1')]

    def test_build_interval(self):
        intervals = list(build_interval(self.store, self.interval))
        self.store.save()
        new_interval = self.store.get('interval', self.interval.name)

        assert new_interval.id == self.interval.name
        assert new_interval.start == self.interval.start

        assert len(intervals) == 2

    def test_build_block(self):
        superblock_id, new_block = build_block(self.store, self.interval_group)
        self.store.save()
        db_block = self.store.get('block', self.interval_group[0][0])

        assert superblock_id == 'sblock1'
        assert new_block.id == db_block.id == self.interval_group[0][0]
        assert new_block.start == db_block.start == self.interval_group[0][
            1].start
Exemplo n.º 3
0
class TestBuildElement(object):
    def setup(self):
        self.store = Store(":memory:")
        self.store.set_up()

        self.interval = BaseInterval(
            "1", 10, 100, name="int1", block_ids=["block1", "block2"], superblock_ids=["sblock1", "sblock1"]
        )

        self.db_interval = StoreInterval(
            interval_id=self.interval.name,
            contig=self.interval.contig,
            start=self.interval.start,
            end=self.interval.end,
            strand=self.interval.strand,
        )
        self.interval_group = [("block2", self.db_interval, "sblock1")]

    def test_build_interval(self):
        intervals = list(build_interval(self.store, self.interval))
        self.store.save()
        new_interval = self.store.get("interval", self.interval.name)

        assert new_interval.id == self.interval.name
        assert new_interval.start == self.interval.start

        assert len(intervals) == 2

    def test_build_block(self):
        superblock_id, new_block = build_block(self.store, self.interval_group)
        self.store.save()
        db_block = self.store.get("block", self.interval_group[0][0])

        assert superblock_id == "sblock1"
        assert new_block.id == db_block.id == self.interval_group[0][0]
        assert new_block.start == db_block.start == self.interval_group[0][1].start