summaryrefslogtreecommitdiff
path: root/lib/model.rb
diff options
context:
space:
mode:
authorMartin Gütlein <martin.guetlein@gmail.com>2010-04-19 13:55:15 +0200
committerMartin Gütlein <martin.guetlein@gmail.com>2010-04-19 13:55:15 +0200
commit7386c1b50448ad338b84628e1d585cefb05006f1 (patch)
tree91017789dcda1c4606755c10c87e8c6bddb3aa13 /lib/model.rb
parent3c52741e6c304ee48881ea67aa79039de8a9849a (diff)
lib/owl.rb
Diffstat (limited to 'lib/model.rb')
-rw-r--r--lib/model.rb67
1 files changed, 17 insertions, 50 deletions
diff --git a/lib/model.rb b/lib/model.rb
index 5ca3914..8674311 100644
--- a/lib/model.rb
+++ b/lib/model.rb
@@ -21,8 +21,10 @@ 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 if ENV['RACK_ENV'] =~ /test|debug/
+ 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
@@ -31,61 +33,24 @@ module OpenTox
def self.build( algorithm_uri, algorithm_params )
- 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
-
- 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
+ if algorithm_uri =~ /ambit2/
+ LOGGER.warn "Ambit hack, replacing 'prediction_feature' with 'target'"
+ algorithm_params[:target] = algorithm_params[:prediction_feature]
+ algorithm_params.delete(:prediction_feature)
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
- raise "TASK ERROR" if $?!=0
- sleep 0.3
- end
- uri = redirect
- LOGGER.debug "REDIRECT TO: "+uri.to_s
- end
- return uri
+ 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, nil, true).to_s
+ raise "Invalid build model result: "+uri.to_s unless uri =~ /model/
+ return PredictionModel.find(uri)
end
def predict_dataset( dataset_uri )
LOGGER.debug "Predict dataset: "+dataset_uri.to_s+" with model "+@uri.to_s
-
- #HACK using curl
- uri = ""
- IO.popen("curl -X POST -d dataset_uri='"+dataset_uri+"' "+@uri.to_s+" 2> /dev/null") do |f|
- while line = f.gets
- uri += line
- end
- end
-
- 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)
- return uri if Utils.dataset_uri?(uri)
- raise "not sure about prediction result: "+uri.to_s
- end
+ uri = RestClientWrapper.post(@uri, {:dataset_uri=>dataset_uri}, nil, true)
+ raise "Prediciton result no dataset uri: "+uri.to_s unless Utils.dataset_uri?(uri)
+ uri
end
def classification?
@@ -96,6 +61,8 @@ module OpenTox
return false
elsif @uri =~/tu-muenchen/ and @title =~ /regression|M5P|GaussP/
return false
+ elsif @uri =~/ambit2/ and @title =~ /pKa/
+ return false
else
raise "unknown model, uri:'"+@uri.to_s+"' title:'"+@title.to_s+"'"
end