ncbo_annotator 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,7 +20,6 @@ module NCBO
20
20
  def initialize(results)
21
21
  @root = "/success/data/annotatorResultBean"
22
22
  @results = parse_xml(results)
23
- @result = AnnotatorResult.new
24
23
  end
25
24
 
26
25
  def self.parse_results(results)
@@ -28,6 +27,8 @@ module NCBO
28
27
  end
29
28
 
30
29
  def parse_results
30
+ @result = AnnotatorResult.new
31
+ p @results
31
32
  @result.id = @results.find_first(@root + "/resultID").content
32
33
  @result.statistics = parse_statistics
33
34
  @result.annotations = parse_annotations
@@ -35,6 +36,28 @@ module NCBO
35
36
  @result
36
37
  end
37
38
 
39
+ def self.parse_included_ontologies(ontologies)
40
+ new(ontologies).parse_included_ontologies
41
+ end
42
+
43
+ def parse_included_ontologies
44
+ @root = "/success/data/list"
45
+ ontologies = parse_ontologies("ontologyBean")
46
+ ontologies
47
+ end
48
+
49
+ private
50
+
51
+ def parse_ontologies(ontology_location = "ontologies/ontologyUsedBean")
52
+ ontologies = []
53
+ @results.find(@root + "/#{ontology_location}").each do |ontology|
54
+ ont = {}
55
+ ontology.children.each {|child| ont[child.name.to_sym] = safe_to_i(child.content)}
56
+ ontologies << ont
57
+ end
58
+ ontologies
59
+ end
60
+
38
61
  def parse_statistics
39
62
  statistics = {}
40
63
  @results.find(@root + "/statistics/statisticsBean").each do |statistic|
@@ -55,18 +78,6 @@ module NCBO
55
78
  annotations
56
79
  end
57
80
 
58
- def parse_ontologies
59
- ontologies = []
60
- @results.find(@root + "/ontologies/ontologyUsedBean").each do |ontology|
61
- ont = {}
62
- ontology.children.each {|child| ont[child.name.to_sym] = safe_to_i(child.content)}
63
- ontologies << ont
64
- end
65
- ontologies
66
- end
67
-
68
- private
69
-
70
81
  def parse_concept(annotation, concept_location = "concept")
71
82
  a = {}
72
83
  annotation.find("#{concept_location}/*").each {|child| a[child.name.to_sym] = safe_to_i(child.content) if !child.first.nil? && !child.first.children?}
@@ -2,6 +2,7 @@ require 'rubygems'
2
2
  require 'net/http'
3
3
  require 'xml'
4
4
  require 'uri'
5
+ require 'open-uri'
5
6
  require 'ncbo_annotator/parser'
6
7
 
7
8
  module NCBO
@@ -10,7 +11,7 @@ module NCBO
10
11
  def initialize(args = {})
11
12
  @options = {}
12
13
 
13
- @options[:annotator_location] = "http://rest.bioontology.org/obs/annotator"
14
+ @options[:annotator_location] = "http://rest.bioontology.org/obs"
14
15
  @options[:filterNumber] = true
15
16
  @options[:isStopWordsCaseSensitive] = false
16
17
  @options[:isVirtualOntologyId] = true
@@ -28,6 +29,8 @@ module NCBO
28
29
  @options[:withSynonyms] = true
29
30
 
30
31
  @options.merge!(args)
32
+
33
+ @ontologies = nil
31
34
 
32
35
  raise ArgumentError, ":apikey is required, you can obtain one at http://bioportal.bioontology.org/accounts/new" if @options[:apikey].nil?
33
36
  end
@@ -43,18 +46,31 @@ module NCBO
43
46
 
44
47
  raise ArgumentError, ":textToAnnotate must be included" if @options[:textToAnnotate].nil?
45
48
 
46
- result_xml = post
49
+ result_xml = annotate_post
47
50
  Parser::Annotator.parse_results(result_xml)
48
51
  end
49
52
 
53
+ def self.ontologies(options)
54
+ new(options).ontologies
55
+ end
56
+
57
+ def ontologies
58
+ if @ontologies.nil?
59
+ ontologies_xml = open("#{@options[:annotator_location]}/ontologies?apikey=#{@options[:apikey]}").read
60
+ @ontologies = Parser::Annotator.parse_included_ontologies(ontologies_xml)
61
+ else
62
+ @ontologies
63
+ end
64
+ end
65
+
50
66
  def options
51
67
  @options
52
68
  end
53
69
 
54
70
  private
55
71
 
56
- def post
57
- url = @options[:annotator_location]
72
+ def annotate_post
73
+ url = @options[:annotator_location] + "/annotator"
58
74
  options = @options.clone
59
75
  options.each do |k,v|
60
76
  if v.kind_of?(Array)
@@ -65,4 +81,4 @@ module NCBO
65
81
  return res.body
66
82
  end
67
83
  end # end Annotator class
68
- end # end NCBO module
84
+ end # end NCBO module
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ncbo_annotator
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 1
10
- version: 1.0.1
9
+ - 3
10
+ version: 1.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Paul R Alexander