Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
    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()
Exemplo n.º 3
0
 def intersecting_genes(self, chrom, start, end):
     '''Return a collection of Gene entities that overlap the base-pair [start,end] on chromosome
     chrom.'''
     # print 'intersecting_genes', chrom, start, end
     session = self.Session()
     result = list(session.query(Gene).filter(and_(Gene.chrom == 'chr%s' % (chrom,),
                                                   greatest(Gene.txStart, start) <= least(Gene.txEnd, end))).\
                                                   order_by(Gene.txStart))
     session.close()
     return result
Exemplo n.º 4
0
 def intersecting_genes(self, chrom, start, end):
     '''Return a collection of Gene entities that overlap the base-pair [start,end] on chromosome
     chrom.'''
     # print 'intersecting_genes', chrom, start, end
     session = self.Session()
     result = list(session.query(Gene).filter(and_(Gene.chrom == 'chr%s' % (chrom,),
                                                   greatest(Gene.txStart, start) <= least(Gene.txEnd, end))).\
                                                   order_by(Gene.txStart))
     session.close()
     return result