$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '../..', 'lib')) $LOAD_PATH.unshift(File.dirname(__FILE__)) require 'test/unit' require 'rbbt/knowledge_base' gem 'rbbt-sources' gem 'rbbt-phgx' gem 'rest-client' require 'rbbt/sources/pina' require 'rbbt/workflow' Workflow.require_workflow "Genomics" require 'genomics_kb' class TestKnowledgeBase < Test::Unit::TestCase def setup KnowledgeBase.knowledge_base_dir = Rbbt.tmp.knowledge_base_test.find @kb = Genomics.knowledge_base end def test_register require 'rbbt/sources/pina' TmpFile.with_file do |dir| kb = KnowledgeBase.new dir kb.register :pina, Pina.protein_protein, :target => "Interactor UniProt/SwissProt Accession=~UniProt/SwissProt Accession" assert_equal [Gene], kb.entity_types assert kb.all_databases.include? :pina end end def test_format_Gene TmpFile.with_file do |dir| kb = KnowledgeBase.new dir, "Hsa/jan2013" kb.format["Gene"] = "Ensembl Gene ID" kb.register 'nature', NCI.nature_pathways, :merge => true, :target => "UniProt/SwissProt Accession", :key_field => 0 assert kb.get_database('nature', :persist => false).slice("Ensembl Gene ID").values.flatten.uniq.length > 10 end end def test_fields TmpFile.with_file do |dir| kb = KnowledgeBase.new dir, "Hsa/jan2013" kb.format["Gene"] = "Ensembl Gene ID" kb.register 'nature', NCI.nature_pathways, :merge => true, :fields => [2], :key_field => 0 assert kb.get_database('nature', :persist => false).slice("Ensembl Gene ID").values.flatten.uniq.length > 10 end end def test_global assert @kb.all_databases.include? "pina" end def test_items tp53 = Gene.setup("TP53", "Associated Gene Name", "Hsa/jan2013").ensembl kb = KnowledgeBase.new Rbbt.tmp.test.kb2, "Hsa/jan2013" kb.index('g2t', Organism.gene_transcripts("Hsa/jan2013"), :target => "Ensembl Transcript ID") end def __test_subset gene = "TP53" found = Genomics.knowledge_base.identify :pina, gene p53_interactors = Misc.profile{ Genomics.knowledge_base.children(:pina, found).target_entity } Misc.profile do puts Genomics.knowledge_base.subset(:pina,{"Gene" => p53_interactors}).length end ddd 2 #assert Genomics.knowledge_base.subset(:pina,{"Gene" => p53_interactors}).target_entities.name.include? "MDM2" end def test_benchmark tp53 = Gene.setup("TP53", "Associated Gene Name", "Hsa/jan2013").ensembl kb = KnowledgeBase.new Rbbt.tmp.test.kb2 kb.namespace = "Hsa/jan2013" require 'rbbt/sources/COSMIC' require 'rbbt/entity/genomic_mutation' mutations = tp53.COSMIC_mutations Misc.benchmark(10) do name = "mutations" kb.add_index name, "Ensembl Gene ID", "Genomic Mutation", "Change" kb.write name do mutations.each do |gm| kb.add name, tp53, gm, gm.base end end end end def test_benchmark2 tp53 = Gene.setup("TP53", "Associated Gene Name", "Hsa/jan2013").ensembl kb = KnowledgeBase.new Rbbt.tmp.test.kb2, "Hsa/jan2013" kb.index('g2t', Organism.gene_transcripts("Hsa/jan2013"), :target => "Ensembl Transcript ID") l = nil Misc.benchmark(1000) do l = tp53.transcripts.length end assert l > 0 end def test_syndication kb = KnowledgeBase.new Rbbt.tmp.test.kb2, "Hsa/jan2013" kb.syndicate @kb, :genomics gene = "TP53" found = kb.identify "pina@genomics", gene assert found =~ /ENSG/ end end