summaryrefslogtreecommitdiff
path: root/lib/model.rb
diff options
context:
space:
mode:
authorMartin Gütlein <martin.guetlein@gmail.com>2010-03-29 11:44:47 +0200
committerMartin Gütlein <martin.guetlein@gmail.com>2010-03-29 11:44:47 +0200
commitf93e03baaa9833cb3f329c9b342825b7527e1b48 (patch)
treea7e2e0730bea4479d9dc0e6bd902a4e232ed8daf /lib/model.rb
parentcd299b6508c0a83463c1f8f00ccaff45b6b8a476 (diff)
added tum models
Diffstat (limited to 'lib/model.rb')
-rw-r--r--lib/model.rb55
1 files changed, 37 insertions, 18 deletions
diff --git a/lib/model.rb b/lib/model.rb
index d8d751b..1f5f27d 100644
--- a/lib/model.rb
+++ b/lib/model.rb
@@ -21,7 +21,8 @@ module OpenTox
@independent_variables = owl.independentVariables
@predicted_variables = owl.predictedVariables
- raise "invalid model:\n"+self.to_yaml+"\n" unless Utils.is_uri?(@uri) && @dependent_variables.to_s.size>0 && @independent_variables.to_s.size>0 && @predicted_variables.to_s.size>0
+ raise "invalid model:\n"+self.to_yaml+"\n" unless Utils.is_uri?(@uri) && @dependent_variables.to_s.size>0 &&
+ @independent_variables.to_s.size>0 && @predicted_variables.to_s.size>0 if ENV['RACK_ENV'] =~ /test|debug/
end
end
@@ -32,9 +33,36 @@ module OpenTox
LOGGER.debug "Build model, algorithm_uri:"+algorithm_uri.to_s+", algorithm_parms: "+algorithm_params.inspect.to_s
uri = OpenTox::RestClientWrapper.post(algorithm_uri,algorithm_params).to_s
- uri = OpenTox::Task.find(uri).wait_for_resource.to_s if Utils.task_uri?(uri)
+
+ if uri.to_s =~ /ambit.*task|tu-muenchen.*task/
+ uri = PredictionModel.redirect_task(uri)
+ elsif Utils.task_uri?(uri)
+ uri = OpenTox::Task.find(uri).wait_for_resource.to_s
+ end
+ raise "invalid build model result: "+uri.to_s unless uri =~ /model/
return PredictionModel.find(uri)
end
+
+ def self.redirect_task( uri )
+ raise "no redirect task uri: "+uri.to_s unless uri.to_s =~ /ambit.*task|tu-muenchen.*task/
+
+ while (uri.to_s =~ /ambit.*task|tu-muenchen.*task/)
+ #HACK handle redirect
+ LOGGER.debug "REDIRECT TASK: "+uri.to_s
+ redirect = ""
+ while (redirect.size == 0)
+ IO.popen("bin/redirect.sh "+uri.to_s) do |f|
+ while line = f.gets
+ redirect += line.chomp
+ end
+ end
+ sleep 0.3
+ end
+ uri = redirect
+ LOGGER.debug "REDIRECT TO: "+uri.to_s
+ end
+ return uri
+ end
def predict_dataset( dataset_uri )
@@ -47,21 +75,10 @@ module OpenTox
uri += line
end
end
-
- if uri.to_s =~ /ambit.*task/
- #HACK handle redirect
- LOGGER.debug "AMBIT TASK "+uri.to_s
- redirect = ""
- while (redirect.size == 0)
- IO.popen("bin/redirect.sh "+uri.to_s) do |f|
- while line = f.gets
- redirect += line.chomp
- end
- end
- sleep 0.3
- end
- LOGGER.debug "REDIRECT to: "+redirect.to_s
- raise "invalid redirect result" unless redirect =~ /ambit.*dataset/
+
+ if uri.to_s =~ /ambit.*task|tu-muenchen.*task/
+ uri = PredictionModel.redirect_task(uri)
+ raise "invalid redirect result: " unless uri =~ /ambit.*dataset/
return uri
else
uri = OpenTox::Task.find(uri).wait_for_resource.to_s if Utils.task_uri?(uri)
@@ -76,8 +93,10 @@ module OpenTox
return true
elsif @uri =~/ntua/ and @title =~ /mlr/
return false
+ elsif @uri =~/tu-muenchen/ and @title =~ /regression/
+ return false
else
- raise "unknown model, uri:"+@uri.to_s+" title:"+@title.to_s
+ raise "unknown model, uri:'"+@uri.to_s+"' title:'"+@title.to_s+"'"
end
end
end