def test_schema(self): "Test schema" sp_hbb1 = testutil.datafile('sp_hbb1') sp2 = seqdb.BlastDB(sp_hbb1) sp2.__doc__ = 'another sp' worldbase.Bio.Seq.sp2 = sp2 sp = worldbase.Bio.Seq.Swissprot.sp42() m = mapping.Mapping(sourceDB=sp,targetDB=sp2) m.__doc__ = 'sp -> sp2' worldbase.Bio.Seq.testmap = m worldbaseSchema.Bio.Seq.testmap = metabase.OneToManyRelation(sp, sp2) worldbase.commit() worldbase.clear_cache() sp3 = seqdb.BlastDB(sp_hbb1) sp3.__doc__ = 'sp number 3' worldbase.Bio.Seq.sp3 = sp3 sp2 = worldbase.Bio.Seq.sp2() m = mapping.Mapping(sourceDB=sp3,targetDB=sp2) m.__doc__ = 'sp3 -> sp2' worldbase.Bio.Seq.testmap2 = m worldbaseSchema.Bio.Seq.testmap2 = metabase.OneToManyRelation(sp3, sp2) l = worldbase._mdb.resourceCache.keys() l.sort() assert l == ['Bio.Seq.sp2', 'Bio.Seq.sp3', 'Bio.Seq.testmap2'] worldbase.commit() g = worldbase._mdb.writer.storage.graph expected = set(['Bio.Annotation.annoDB', 'Bio.Seq.Swissprot.sp42', 'Bio.Seq.sp2', 'Bio.Seq.sp3']) found = set(g.keys()) self.EQ(len(expected - found), 0)
def setUp(self,**kwargs): TestBase.setUp(self) dnaseq = testutil.datafile('dnaseq.fasta') tryannot = testutil.tempdatafile('tryannot') db = seqdb.BlastDB(dnaseq) try: db.__doc__ = 'little dna' worldbase.Bio.Test.dna = db annoDB = seqdb.AnnotationDB({1:('seq1',5,10,'fred'), 2:('seq1',-60,-50,'bob'), 3:('seq2',-20,-10,'mary')}, db, sliceAttrDict=dict(id=0, start=1, stop=2, name=3)) annoDB.__doc__ = 'trivial annotation' worldbase.Bio.Test.annoDB = annoDB nlmsa = cnestedlist.NLMSA(tryannot,'w',pairwiseMode=True, bidirectional=False) try: for annID in annoDB: nlmsa.addAnnotation(annoDB[annID]) nlmsa.build(verbose=False) nlmsa.__doc__ = 'trivial map' worldbase.Bio.Test.map = nlmsa worldbaseSchema.Bio.Test.map = metabase.ManyToManyRelation(db, annoDB,bindAttrs=('exons',)) worldbase.commit() worldbase.clear_cache() finally: nlmsa.close() finally: db.close()
def test_schema(self): "Test schema" sp_hbb1 = testutil.datafile('sp_hbb1') sp2 = seqdb.BlastDB(sp_hbb1) sp2.__doc__ = 'another sp' worldbase.Bio.Seq.sp2 = sp2 sp = worldbase.Bio.Seq.Swissprot.sp42() m = mapping.Mapping(sourceDB=sp, targetDB=sp2) m.__doc__ = 'sp -> sp2' worldbase.Bio.Seq.testmap = m worldbase.schema.Bio.Seq.testmap = metabase.OneToManyRelation(sp, sp2) worldbase.commit() worldbase.clear_cache() sp3 = seqdb.BlastDB(sp_hbb1) sp3.__doc__ = 'sp number 3' worldbase.Bio.Seq.sp3 = sp3 sp2 = worldbase.Bio.Seq.sp2() m = mapping.Mapping(sourceDB=sp3, targetDB=sp2) m.__doc__ = 'sp3 -> sp2' worldbase.Bio.Seq.testmap2 = m worldbase.schema.Bio.Seq.testmap2 = metabase.OneToManyRelation( sp3, sp2) l = worldbase._mdb.resourceCache.keys() l.sort() assert l == ['Bio.Seq.sp2', 'Bio.Seq.sp3', 'Bio.Seq.testmap2'] worldbase.commit() g = worldbase._mdb.writer.storage.graph expected = set([ 'Bio.Annotation.annoDB', 'Bio.Seq.Swissprot.sp42', 'Bio.Seq.sp2', 'Bio.Seq.sp3' ]) found = set(g.keys()) self.EQ(len(expected - found), 0)
def test_mapping_FR(self): """Test the forward mapping. >>> from pygr import worldbase >>> adb = worldbase('Test.Annotations.annodb1_db') >>> a1 = adb['A1'] >>> adb2 = worldbase('Test.Annotations.annodb2_db') >>> a2 = adb2['E2'] >>> a1 == a2.annotdb1[0] True """ print '# Create mapping' M = PygrUtils.AnnotationDBMapping(self.annodb1,self.annodb2,'test.mapping','test.mapping','annotdb2','annotdb1',mode='nr') M[self.annot1]=self.annot10 M.close(commitData=True) print '# Reload recently committed data, eg, mapping' worldbase.clear_cache() print '# Test forward mapping' annodb2 = worldbase('Test.Annotations.annodb2_db') a10 = annodb2['E2'] self.assertEqual(repr(self.annot1), repr(a10.annotdb1[0])) print '# Test reverse mapping' annodb1 = worldbase('Test.Annotations.annodb1_db') a1 = annodb1['A1'] self.assertEqual(repr(self.annot10), repr(a1.annotdb2[0]))
def setUp(self): TestBase.setUp(self) populate_swissprot() # save some data worldbase.commit() # finally save everything to metabase worldbase.clear_cache() # force all requests to reload res = [ 'Bio.Seq.Swissprot.sp42', 'Bio.Seq.frag', 'Bio.Seq.spmap', 'Bio.Annotation.annoDB', 'Bio.Annotation.map' ] self.server = testutil.TestXMLRPCServer(res, self.tempdir.path)
def setUp(self, **kwargs): TestBase.setUp(self) dnaseq = testutil.datafile('dnaseq.fasta') tryannot = testutil.tempdatafile('tryannot') db = seqdb.BlastDB(dnaseq) try: db.__doc__ = 'little dna' worldbase.Bio.Test.dna = db annoDB = seqdb.AnnotationDB( { 1: ('seq1', 5, 10, 'fred'), 2: ('seq1', -60, -50, 'bob'), 3: ('seq2', -20, -10, 'mary') }, db, sliceAttrDict=dict(id=0, start=1, stop=2, name=3)) annoDB.__doc__ = 'trivial annotation' worldbase.Bio.Test.annoDB = annoDB nlmsa = cnestedlist.NLMSA(tryannot, 'w', pairwiseMode=True, bidirectional=False) try: for annID in annoDB: nlmsa.addAnnotation(annoDB[annID]) nlmsa.build() nlmsa.__doc__ = 'trivial map' worldbase.Bio.Test.map = nlmsa worldbase.schema.Bio.Test.map = metabase.ManyToManyRelation( db, annoDB, bindAttrs=('exons', )) worldbase.commit() worldbase.clear_cache() finally: nlmsa.close() finally: db.close()
def test_xmlrpc(self): "Test XMLRPC" worldbase.clear_cache() # force all future requests to reload worldbase.update("http://localhost:%s" % self.server.port) # from XMLRPC check_match(self) # run all our tests check_dir(self) check_dir_noargs(self) check_dir_download(self) check_dir_re(self) check_bind(self) check_bind2(self) sb_hbb1 = testutil.datafile('sp_hbb1') # test readonly checks sp2 = seqdb.BlastDB(sb_hbb1) sp2.__doc__ = 'another sp' try: worldbase.Bio.Seq.sp2 = sp2 worldbase.commit() msg = 'failed to catch bad attempt to write to XMLRPC server' raise KeyError(msg) except ValueError: pass
def test_xmlrpc(self): "Test XMLRPC" worldbase.clear_cache() # force all future requests to reload # Add our test XMLRPC resource. worldbase.update("http://localhost:%s" % self.server.port) check_match(self) # run all our tests check_dir(self) check_dir_noargs(self) check_dir_download(self) check_dir_re(self) check_bind(self) check_bind2(self) sb_hbb1 = testutil.datafile('sp_hbb1') # test readonly checks sp2 = seqdb.BlastDB(sb_hbb1) sp2.__doc__ = 'another sp' try: worldbase.Bio.Seq.sp2 = sp2 worldbase.commit() msg = 'failed to catch bad attempt to write to XMLRPC server' raise KeyError(msg) except ValueError: pass
def setUp(self, *args, **kwargs): TestBase.setUp(self, *args, **kwargs) populate_swissprot() worldbase.commit() # finally save everything worldbase.clear_cache() # force all requests to reload