summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.de>2010-03-10 19:17:46 +0100
committerChristoph Helma <helma@in-silico.de>2010-03-10 19:17:46 +0100
commite1cb8e39ca0331ea2db7e633c3bc708aa691b0b3 (patch)
tree7cc0efea1b83c1455b375ac57d800f385d284237 /lib
parent711234e3f7926231550e9f05cf35921b54056a06 (diff)
owl-dl (temporarily) removed, switched to YAML representation
Diffstat (limited to 'lib')
-rw-r--r--lib/algorithm.rb2
-rw-r--r--lib/dataset.rb79
-rw-r--r--lib/model.rb24
-rw-r--r--lib/owl.rb2
-rw-r--r--lib/task.rb9
5 files changed, 70 insertions, 46 deletions
diff --git a/lib/algorithm.rb b/lib/algorithm.rb
index 817340f..c17159e 100644
--- a/lib/algorithm.rb
+++ b/lib/algorithm.rb
@@ -51,7 +51,7 @@ module OpenTox
LOGGER.debug File.basename(__FILE__) + ": creating model"
#@uri = RestClient.post File.join(@@config[:services]["opentox-algorithm"], "lazar"), :dataset_uri => params[:dataset_uri], :feature_uri => params[:feature_uri], :feature_generation_uri => File.join(@@config[:services]["opentox-algorithm"], "fminer")
resource = RestClient::Resource.new(File.join(@@config[:services]["opentox-algorithm"], "lazar"), :user => @@users[:users].keys[0], :password => @@users[:users].values[0])
- @uri = resource.post :dataset_uri => params[:dataset_uri], :feature_uri => params[:feature_uri], :feature_generation_uri => File.join(@@config[:services]["opentox-algorithm"], "fminer")
+ @uri = resource.post :dataset_uri => params[:dataset_uri], :feature_uri => params[:feature_uri], :feature_generation_uri => File.join(@@config[:services]["opentox-algorithm"], "fminer").chomp
end
def self.uri
diff --git a/lib/dataset.rb b/lib/dataset.rb
index b5b2e06..5caaa2c 100644
--- a/lib/dataset.rb
+++ b/lib/dataset.rb
@@ -3,12 +3,47 @@ LOGGER.progname = File.expand_path(__FILE__)
module OpenTox
class Dataset
- include Owl
+ #include Owl
+
+ attr_accessor :uri, :title, :source, :identifier, :data, :features, :compounds
def initialize
- super
+ @data = {}
+ @features = []
+ @compounds = []
+ #super
+ end
+
+ def self.find(uri)
+ #dataset = Dataset.new
+ LOGGER.debug "Getting data from #{uri}"
+ YAML.load RestClient.get(uri, :accept => 'application/x-yaml').to_s # unclear why this does not work for complex uris, Dataset.find works from irb
+ #data = `curl "#{uri}"`
+ #LOGGER.debug data
+ #dataset.rdf = data
+ #dataset
+ end
+
+
+ def save
+ LOGGER.debug "Saving dataset"
+ @features.uniq!
+ @compounds.uniq!
+ #task_uri = RestClient.post(@@config[:services]["opentox-dataset"], self.rdf, :content_type => "application/rdf+xml").to_s
+ task_uri = RestClient::Resource.new(@@config[:services]["opentox-dataset"], :user => @@users[:users].keys[0], :password => @@users[:users].values[0]).post(self.to_yaml, :content_type => "application/x-yaml").chomp.to_s
+ task = OpenTox::Task.find(task_uri)
+ LOGGER.debug "Waiting for task #{task_uri}"
+ task.wait_for_completion
+ LOGGER.debug "Dataset task #{task_uri} completed"
+ if task.failed?
+ LOGGER.error "Saving dataset failed"
+ task.failed
+ exit
+ end
+ task.resource
end
+=begin
# create/add to entry from uris or Redland::Resources
def add(compound,feature,value)
compound = self.find_or_create_compound compound unless compound.class == Redland::Resource
@@ -87,17 +122,7 @@ module OpenTox
resource = RestClient::Resource.new(@@config[:services]["opentox-dataset"], :user => @@users[:users].keys[0], :password => @@users[:users].values[0])
uri = resource.post data, :content_type => content_type
dataset = Dataset.new
- dataset.read uri.to_s
- dataset
- end
-
- def self.find(uri)
- dataset = Dataset.new
- LOGGER.debug "Getting data from #{uri}"
- data = `curl "#{uri}"`
- #LOGGER.debug data
- #data = RestClient.get(uri, :accept => 'application/rdf+xml') # unclear why this does not work for complex uris, Dataset.find works from irb
- dataset.rdf = data
+ dataset.read uri.chomp.to_s
dataset
end
@@ -165,35 +190,13 @@ module OpenTox
resource.delete
end
- def save
- LOGGER.debug "Saving dataset"
- #task_uri = RestClient.post(@@config[:services]["opentox-dataset"], self.rdf, :content_type => "application/rdf+xml").to_s
- task_uri = RestClient::Resource.new(@@config[:services]["opentox-dataset"], :user => @@users[:users].keys[0], :password => @@users[:users].values[0]).post(self.rdf, :content_type => "application/rdf+xml").to_s
- task = OpenTox::Task.find(task_uri)
- LOGGER.debug "Waiting for task #{task_uri}"
- task.wait_for_completion
- LOGGER.debug "Dataset task #{task_uri} completed"
- if task.failed?
- LOGGER.error "Saving dataset failed"
- task.failed
- exit
- end
- task.resource
+ def to_owl
end
- def to_yaml
- {
- :uri => self.uri,
- :opentox_class => self.owl_class,
- :title => self.title,
- :source => self.source,
- :identifier => self.identifier,
- :compounds => self.compounds.collect{|c| c.to_s.to_s.sub(/^\[(.*)\]$/,'\1')},
- :features => self.features.collect{|f| f.to_s },
- :data => self.data
- }.to_yaml
+ def from_owl
end
+=end
end
end
diff --git a/lib/model.rb b/lib/model.rb
index b5129d7..5dcc462 100644
--- a/lib/model.rb
+++ b/lib/model.rb
@@ -2,6 +2,27 @@ module OpenTox
module Model
class Lazar
+
+ attr_accessor :dependent_variable, :activity_dataset_uri, :feature_dataset_uri, :effects, :activities, :p_values, :fingerprints, :features
+
+ def initialize
+ @source = "http://github.com/helma/opentox-model"
+ @algorithm = File.join(@@config[:services]["opentox-algorithm"],"lazar")
+ #@independent_variables = File.join(@@config[:services]["opentox-algorithm"],"fminer#BBRC_representative")
+ @features = []
+ @effects = {}
+ @activities = {}
+ @p_values = {}
+ @fingerprints = {}
+ end
+
+ def save
+ @features.uniq!
+ resource = RestClient::Resource.new(@@config[:services]["opentox-model"], :user => @@users[:users].keys[0], :password => @@users[:users].values[0])
+ resource.post(self.to_yaml, :content_type => "application/x-yaml").chomp.to_s
+ end
+
+=begin
include Owl
# Create a new prediction model from a dataset
@@ -50,7 +71,7 @@ module OpenTox
def self.create(data)
resource = RestClient::Resource.new(@@config[:services]["opentox-model"], :user => @@users[:users].keys[0], :password => @@users[:users].values[0])
- resource.post(data, :content_type => "application/x-yaml").to_s
+ resource.post(data, :content_type => "application/x-yaml").chomp.to_s
end
def delete
@@ -101,6 +122,7 @@ module OpenTox
@model.add me, OT['predictedVariables'], Redland::Uri.new(predictedVariables) # untyped individual comes from this line, why??
@model.add Redland::Uri.new(predictedVariables), RDF['type'], OT['Feature']
end
+=end
end
end
end
diff --git a/lib/owl.rb b/lib/owl.rb
index 82d6e0e..f8958cd 100644
--- a/lib/owl.rb
+++ b/lib/owl.rb
@@ -20,7 +20,7 @@ module OpenTox
end
def uri=(uri)
- @uri = uri
+ @uri = uri.chomp
uri = Redland::Uri.new(uri)
# rewrite uri
@model.subjects(RDF['type'],OT[self.owl_class]).each do |me|
diff --git a/lib/task.rb b/lib/task.rb
index a6a54d5..6a80d1a 100644
--- a/lib/task.rb
+++ b/lib/task.rb
@@ -7,16 +7,15 @@ module OpenTox
attr_accessor :uri
def initialize(uri)
- #super()
- @uri = uri
+ @uri = uri.chomp
end
def self.create
#uri = RestClient.post @@config[:services]["opentox-task"], {}
resource = RestClient::Resource.new(@@config[:services]["opentox-task"], :user => @@users[:users].keys[0], :password => @@users[:users].values[0])
#uri = resource.post(nil)
- uri = resource.post({})
- Task.new(uri)
+ uri = resource.post({}).chomp
+ Task.new(uri.chomp)
end
def self.find(uri)
@@ -28,7 +27,7 @@ module OpenTox
end
def self.all
- task_uris = RestClient.get(@@config[:services]["opentox-task"]).split(/\n/)
+ task_uris = RestClient.get(@@config[:services]["opentox-task"]).chomp.split(/\n/)
task_uris.collect{|uri| Task.new(uri)}
end