Module: KnowledgeBaseRESTHelpers
- Defined in:
- lib/rbbt/rest/knowledge_base/helpers.rb
Class Attribute Summary collapse
-
.knowledge_base_dir ⇒ Object
Returns the value of attribute knowledge_base_dir.
-
.knowledge_bases ⇒ Object
Returns the value of attribute knowledge_bases.
Instance Method Summary collapse
- #get_kb(name) ⇒ Object
- #get_knowledge_base(name, namespace = nil) ⇒ Object
- #prepare_entities_for_json(entities) ⇒ Object
- #user_kb(user) ⇒ Object
Class Attribute Details
.knowledge_base_dir ⇒ Object
Returns the value of attribute knowledge_base_dir.
6 7 8 |
# File 'lib/rbbt/rest/knowledge_base/helpers.rb', line 6 def knowledge_base_dir @knowledge_base_dir end |
.knowledge_bases ⇒ Object
Returns the value of attribute knowledge_bases.
6 7 8 |
# File 'lib/rbbt/rest/knowledge_base/helpers.rb', line 6 def knowledge_bases @knowledge_bases end |
Instance Method Details
#get_kb(name) ⇒ Object
28 29 30 31 32 33 34 35 36 |
# File 'lib/rbbt/rest/knowledge_base/helpers.rb', line 28 def get_kb(name) @@knowledge_bases ||= IndiferentHash.setup({}) case name when :genomics, "genomics" @@knowledge_bases[name] ||= Genomics.knowledge_base else @@knowledge_bases[name] ||= KnowledgeBase.new File.join(KnowledgeBaseRESTHelpers.knowledge_base_dir, name) end end |
#get_knowledge_base(name, namespace = nil) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/rbbt/rest/knowledge_base/helpers.rb', line 61 def get_knowledge_base(name, namespace = nil) @@knowledge_bases ||= IndiferentHash.setup({}) @@knowledge_bases[name] ||= begin begin mod = Kernel.const_get name return mod.knowledge_base if mod.respond_to? :knowledge_base rescue Exception end kb = case when [:genomics, "genomics"].include?(name) Genomics.knowledge_base when (Misc.path_relative_to(settings.cache_dir, name) and File.exists?(name)) KnowledgeBase.new name when KnowledgeBase.registry.include?(name) KnowledgeBase.registry[name] when (defined? Study and Study.studies.include?(name)) Study.setup(name).knowledge_base when name.to_s == "user" user_kb(user) else KnowledgeBase.new File.join(KnowledgeBaseRESTHelpers.knowledge_base_dir, name) end namespace ? kb.version(namespace) : kb end end |
#prepare_entities_for_json(entities) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/rbbt/rest/knowledge_base/helpers.rb', line 11 def prepare_entities_for_json(entities) case entities when AnnotatedArray list_hash(entities) when Array entities.inject([]){|acc,e| acc << prepare_entities_for_json(e); acc } when Hash hash = {} entities.each do |key,values| hash[key] = prepare_entities_for_json(values) end hash when String entities end end |
#user_kb(user) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/rbbt/rest/knowledge_base/helpers.rb', line 38 def user_kb(user) user = "guest" if user.nil? @@user_knowledge_bases ||= IndiferentHash.setup({}) @@user_knowledge_bases[user] ||= begin kb = KnowledgeBase.new File.join(KnowledgeBaseRESTHelpers.knowledge_base_dir, File.join('user', user)), "Hsa/jan2013" kb.format["Gene"] = "Ensembl Gene ID" kb.syndicate Genomics.knowledge_base, :genomics TSV.traverse user_studies[user], :cpus => 10 do |study| Study.setup(study) study.sample_genes if study.has_genotypes? end user_studies[user].each do |study| Study.setup(study) kb.syndicate study.knowledge_base, study end kb end end |