Example #1
0
class TestUcscGeneDao(unittest.TestCase):
    #---------------------------------------------
    # Constants
    #---------------------------------------------

    #---------------------------------------------
    # Setup Methods
    #---------------------------------------------
    def setUp(self):
        '''Create an in-memory database.'''
        self.engine = create_engine(DEFAULT_URL)
        self.dao = GeneDao(DEFAULT_URL)
        # Base.metadata.create_all(self.engine)

    def tearDown(self):
        '''Drop the database.'''
        pass

    #---------------------------------------------
    # Test Methods
    #---------------------------------------------
    def test_num_records(self):
        '''Test getting the total # of refGene records.'''
        # As of 13-NOV-2012
        self.assertTrue(self.dao.num_records() >= 43766,
                        'Wrong row count from refGene table')

    def test_intersecting_genes(self):
        '''Test retrieving genes intersecting a base-pair position segment.'''
        # print repr(User.__table__) #@UndefinedVariable
        Session = sessionmaker(bind=self.engine)
        session = Session()

        # I believe all of the following are equivalent statements and all are prepared statements
        chrom = 1
        (start, end) = (62151773, 62516683)
        expected = [('NM_032027', 'TM2D1'), ('NM_176877', 'INADL')]

        assert_equal(
            [(gene.name, gene.name2) for gene in session.query(Gene).filter(
                and_(Gene.chrom == 'chr%s' % (chrom, ),
                     greatest(Gene.txStart, start) <= least(Gene.txEnd, end))).
             order_by(Gene.txStart)], expected)

        assert_equal([(
            gene.name, gene.name2
        ) for gene in session.query(Gene).filter(
            'chrom = :chrom and greatest(txStart, :start) <= least(txEnd, :end)'
        ).params(chrom='chr%s' %
                 (chrom, ), start=start, end=end).order_by(Gene.txStart)],
                     expected)

        assert_equal(
            [(gene.name, gene.name2)
             for gene in self.dao.intersecting_genes(chrom, start, end)],
            expected)

        session.close()
Example #2
0
class TestUcscGeneDao(unittest.TestCase):
    #---------------------------------------------
    # Constants
    #---------------------------------------------
    
    #---------------------------------------------
    # Setup Methods
    #---------------------------------------------
    def setUp(self):
        '''Create an in-memory database.'''
        self.engine = create_engine(DEFAULT_URL)
        self.dao = GeneDao(DEFAULT_URL)
        # Base.metadata.create_all(self.engine) 
        
    def tearDown(self):
        '''Drop the database.'''
        pass
    
    #---------------------------------------------
    # Test Methods
    #---------------------------------------------
    def test_num_records(self):
        '''Test getting the total # of refGene records.'''
        # As of 13-NOV-2012
        self.assertTrue(self.dao.num_records() >= 43766, 'Wrong row count from refGene table')

    def test_intersecting_genes(self):
        '''Test retrieving genes intersecting a base-pair position segment.'''
        # print repr(User.__table__) #@UndefinedVariable
        Session = sessionmaker(bind=self.engine)
        session = Session()
        
        # I believe all of the following are equivalent statements and all are prepared statements
        chrom = 1
        (start, end) = (62151773, 62516683)
        expected = [('NM_032027', 'TM2D1'), ('NM_176877', 'INADL')]
        
        assert_equal([(gene.name, gene.name2) for gene in session.query(Gene).
                      filter(and_(Gene.chrom == 'chr%s' % (chrom,),
                                  greatest(Gene.txStart, start) <= 
                                  least(Gene.txEnd, end))).
                      order_by(Gene.txStart)], expected)

        assert_equal([(gene.name, gene.name2) for gene in session.query(Gene).
                      filter('chrom = :chrom and greatest(txStart, :start) <= least(txEnd, :end)').
                      params(chrom='chr%s' % (chrom,), start=start, end=end).
                      order_by(Gene.txStart)], expected)

        assert_equal([(gene.name, gene.name2) for gene in 
                      self.dao.intersecting_genes(chrom, start, end)], expected)
        
        session.close()
Example #3
0
 def setUp(self):
     '''Create an in-memory database.'''
     self.engine = create_engine(DEFAULT_URL)
     self.dao = GeneDao(DEFAULT_URL)
Example #4
0
 def setUp(self):
     '''Create an in-memory database.'''
     self.engine = create_engine(DEFAULT_URL)
     self.dao = GeneDao(DEFAULT_URL)