diff options
author | Martin Gütlein <martin.guetlein@gmail.com> | 2010-03-29 11:44:47 +0200 |
---|---|---|
committer | Martin Gütlein <martin.guetlein@gmail.com> | 2010-03-29 11:44:47 +0200 |
commit | f93e03baaa9833cb3f329c9b342825b7527e1b48 (patch) | |
tree | a7e2e0730bea4479d9dc0e6bd902a4e232ed8daf /lib/model.rb | |
parent | cd299b6508c0a83463c1f8f00ccaff45b6b8a476 (diff) |
added tum models
Diffstat (limited to 'lib/model.rb')
-rw-r--r-- | lib/model.rb | 55 |
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 |