summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormr <mr@mrautenberg.de>2011-05-25 13:36:36 +0200
committermr <mr@mrautenberg.de>2011-05-25 13:36:36 +0200
commit796ef9b86fcdcf5f9520b958c09cb37ae1374bf4 (patch)
tree9171e9be466efe88136adf6b0341e715f9f0d599
parenta222e4b7235633c61e2c185d5b3e3d5467453d57 (diff)
parent153c740268c1bf6255f14f80550f690179a72fd9 (diff)
Merge branch 'hotfix/uri_available' into development
-rw-r--r--lib/dataset.rb10
-rw-r--r--lib/helper.rb3
-rw-r--r--lib/parser.rb66
-rw-r--r--opentox-ruby.gemspec36
4 files changed, 91 insertions, 24 deletions
diff --git a/lib/dataset.rb b/lib/dataset.rb
index 2b5759e..4005c1c 100644
--- a/lib/dataset.rb
+++ b/lib/dataset.rb
@@ -74,7 +74,7 @@ module OpenTox
# @param [optional,String] uri URI of the dataset service, defaults to service specified in configuration
# @return [Array] Array of dataset object without data (use one of the load_* methods to pull data from the server)
def self.all(uri=CONFIG[:services]["opentox-dataset"], subjectid=nil)
- RestClientWrapper.get(uri,{:accept => "text/uri-list",:subjectid => subjectid}).to_s.each_line.collect{|u| Dataset.new(u, subjectid)}
+ RestClientWrapper.get(uri,{:accept => "text/uri-list",:subjectid => subjectid}).to_s.each_line.collect{|u| Dataset.new(u.chomp, subjectid)}
end
# Load YAML representation into the dataset
@@ -158,8 +158,12 @@ module OpenTox
# Load and return only features from the dataset service
# @return [Hash] Features of the dataset
def load_features(subjectid=nil)
- parser = Parser::Owl::Dataset.new(@uri, subjectid)
- @features = parser.load_features(subjectid)
+ if (CONFIG[:yaml_hosts].include?(URI.parse(@uri).host))
+ @features = YAML.load(RestClientWrapper.get(File.join(@uri,"features"), {:accept => "application/x-yaml", :subjectid => subjectid}))
+ else
+ parser = Parser::Owl::Dataset.new(@uri, subjectid)
+ @features = parser.load_features(subjectid)
+ end
@features
end
diff --git a/lib/helper.rb b/lib/helper.rb
index 3a6126a..995f3e9 100644
--- a/lib/helper.rb
+++ b/lib/helper.rb
@@ -44,8 +44,9 @@ helpers do
def uri_available?(urlStr)
url = URI.parse(urlStr)
+ subjectidstr = @subjectid ? "?subjectid=#{CGI.escape @subjectid}" : ""
Net::HTTP.start(url.host, url.port) do |http|
- return http.head("#{url.request_uri}?subjectid=#{CGI.escape @subjectid}").code == "200"
+ return http.head("#{url.request_uri}#{subjectidstr}").code == "200"
end
end
diff --git a/lib/parser.rb b/lib/parser.rb
index 7bdee95..5f847c3 100644
--- a/lib/parser.rb
+++ b/lib/parser.rb
@@ -277,7 +277,16 @@ module OpenTox
def load_spreadsheet(book)
book.default_sheet = 0
add_features book.row(1)
- 2.upto(book.last_row) { |i| add_values book.row(i) }
+
+ # AM: fix mixed read in
+ regression_features=false
+ 2.upto(book.last_row) { |i|
+ row = book.row(i)
+ regression_features = detect_regression_features row
+ break if regression_features==true
+ }
+
+ 2.upto(book.last_row) { |i| add_values book.row(i),regression_features }
warnings
@dataset
end
@@ -289,11 +298,21 @@ module OpenTox
row = 0
input = csv.split("\n")
add_features split_row(input.shift)
- input.each { |row| add_values split_row(row) }
+
+
+ # AM: fix mixed read in
+ regression_features=false
+ input.each { |row|
+ row = split_row(row)
+ regression_features = detect_regression_features row
+ break if regression_features==true
+ }
+ input.each { |row| add_values split_row(row),regression_features }
warnings
@dataset
end
+
private
def warnings
@@ -335,7 +354,20 @@ module OpenTox
end
end
- def add_values(row)
+ def detect_regression_features row
+ row.shift
+ regression_features=false
+ row.each_index do |i|
+ value = row[i]
+ type = feature_type(value)
+ if type == OT.NumericFeature
+ regression_features=true
+ end
+ end
+ regression_features
+ end
+
+ def add_values(row, regression_features=false)
smiles = row.shift
compound = Compound.from_smiles(smiles)
@@ -353,19 +385,23 @@ module OpenTox
@feature_types[feature] << type
- case type
- when OT.NominalFeature
- case value.to_s
- when TRUE_REGEXP
- val = true
- when FALSE_REGEXP
- val = false
- end
- when OT.NumericFeature
+ if (regression_features)
val = value.to_f
- when OT.StringFeature
- val = value.to_s
- @activity_errors << smiles+", "+row.join(", ")
+ else
+ case type
+ when OT.NominalFeature
+ case value.to_s
+ when TRUE_REGEXP
+ val = true
+ when FALSE_REGEXP
+ val = false
+ end
+ when OT.NumericFeature
+ val = value.to_f
+ when OT.StringFeature
+ val = value.to_s
+ @activity_errors << smiles+", "+row.join(", ")
+ end
end
if val!=nil
@dataset.add(compound.uri, feature, val)
diff --git a/opentox-ruby.gemspec b/opentox-ruby.gemspec
index 289dacd..e62eec5 100644
--- a/opentox-ruby.gemspec
+++ b/opentox-ruby.gemspec
@@ -5,11 +5,11 @@
Gem::Specification.new do |s|
s.name = %q{opentox-ruby}
- s.version = "1.0.2"
+ s.version = "2.0.0"
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
s.authors = ["Christoph Helma, Martin Guetlein, Andreas Maunz, Micha Rautenberg, David Vorgrimmler"]
- s.date = %q{2011-03-16}
+ s.date = %q{2011-05-23}
s.description = %q{Ruby wrapper for the OpenTox REST API (http://www.opentox.org)}
s.email = %q{helma@in-silico.ch}
s.executables = ["opentox-install-debian.sh", "opentox-install-ubuntu.sh"]
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
"lib/feature.rb",
"lib/helper.rb",
"lib/model.rb",
- "lib/ontology_service.rb",
+ "lib/ontology.rb",
"lib/opentox-ruby.rb",
"lib/opentox.owl",
"lib/opentox.rb",
@@ -45,7 +45,6 @@ Gem::Specification.new do |s|
"lib/serializer.rb",
"lib/spork.rb",
"lib/task.rb",
- "lib/templates/config.yaml",
"lib/templates/default_guest_policy.xml",
"lib/templates/default_policy.xml",
"lib/to-html.rb",
@@ -53,7 +52,7 @@ Gem::Specification.new do |s|
]
s.homepage = %q{http://github.com/helma/opentox-ruby}
s.require_paths = ["lib"]
- s.rubygems_version = %q{1.4.2}
+ s.rubygems_version = %q{1.5.2}
s.summary = %q{Ruby wrapper for the OpenTox REST API}
if s.respond_to? :specification_version then
@@ -77,9 +76,18 @@ Gem::Specification.new do |s|
s.add_runtime_dependency(%q<tmail>, [">= 0"])
s.add_runtime_dependency(%q<rinruby>, [">= 0"])
s.add_runtime_dependency(%q<ohm>, [">= 0"])
+ s.add_runtime_dependency(%q<ohm-contrib>, [">= 0"])
s.add_runtime_dependency(%q<SystemTimer>, [">= 0"])
s.add_runtime_dependency(%q<rjb>, [">= 0"])
+ s.add_runtime_dependency(%q<dm-core>, [">= 0"])
+ s.add_runtime_dependency(%q<dm-serializer>, [">= 0"])
+ s.add_runtime_dependency(%q<dm-timestamps>, [">= 0"])
+ s.add_runtime_dependency(%q<dm-types>, [">= 0"])
+ s.add_runtime_dependency(%q<dm-migrations>, [">= 0"])
+ s.add_runtime_dependency(%q<dm-validations>, [">= 0"])
+ s.add_runtime_dependency(%q<dm-sqlite-adapter>, [">= 0"])
s.add_runtime_dependency(%q<haml>, [">= 3"])
+ s.add_runtime_dependency(%q<ruby-plot>, ["~> 0.4.0"])
s.add_development_dependency(%q<jeweler>, [">= 0"])
else
s.add_dependency(%q<sinatra>, [">= 0"])
@@ -99,9 +107,18 @@ Gem::Specification.new do |s|
s.add_dependency(%q<tmail>, [">= 0"])
s.add_dependency(%q<rinruby>, [">= 0"])
s.add_dependency(%q<ohm>, [">= 0"])
+ s.add_dependency(%q<ohm-contrib>, [">= 0"])
s.add_dependency(%q<SystemTimer>, [">= 0"])
s.add_dependency(%q<rjb>, [">= 0"])
+ s.add_dependency(%q<dm-core>, [">= 0"])
+ s.add_dependency(%q<dm-serializer>, [">= 0"])
+ s.add_dependency(%q<dm-timestamps>, [">= 0"])
+ s.add_dependency(%q<dm-types>, [">= 0"])
+ s.add_dependency(%q<dm-migrations>, [">= 0"])
+ s.add_dependency(%q<dm-validations>, [">= 0"])
+ s.add_dependency(%q<dm-sqlite-adapter>, [">= 0"])
s.add_dependency(%q<haml>, [">= 3"])
+ s.add_dependency(%q<ruby-plot>, ["~> 0.4.0"])
s.add_dependency(%q<jeweler>, [">= 0"])
end
else
@@ -122,9 +139,18 @@ Gem::Specification.new do |s|
s.add_dependency(%q<tmail>, [">= 0"])
s.add_dependency(%q<rinruby>, [">= 0"])
s.add_dependency(%q<ohm>, [">= 0"])
+ s.add_dependency(%q<ohm-contrib>, [">= 0"])
s.add_dependency(%q<SystemTimer>, [">= 0"])
s.add_dependency(%q<rjb>, [">= 0"])
+ s.add_dependency(%q<dm-core>, [">= 0"])
+ s.add_dependency(%q<dm-serializer>, [">= 0"])
+ s.add_dependency(%q<dm-timestamps>, [">= 0"])
+ s.add_dependency(%q<dm-types>, [">= 0"])
+ s.add_dependency(%q<dm-migrations>, [">= 0"])
+ s.add_dependency(%q<dm-validations>, [">= 0"])
+ s.add_dependency(%q<dm-sqlite-adapter>, [">= 0"])
s.add_dependency(%q<haml>, [">= 3"])
+ s.add_dependency(%q<ruby-plot>, ["~> 0.4.0"])
s.add_dependency(%q<jeweler>, [">= 0"])
end
end