summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordv <dv@dv.de>2011-08-03 16:43:38 +0200
committerdv <dv@dv.de>2011-08-03 16:43:38 +0200
commit3282ef4f902e2d5d40b715d0642a1901f5e558e5 (patch)
treefbdc83dfa27ee00d2a82ccf699a55ed030f4142a
parent8831f981cc246f00d39689843698f6c70475bf26 (diff)
parent3fddd473ee16757ac5ae98b5ebcdca2834439ded (diff)
Merge branch 'development' into reg_min_max
-rw-r--r--lib/algorithm.rb6
-rw-r--r--lib/model.rb5
-rw-r--r--lib/task.rb6
3 files changed, 11 insertions, 6 deletions
diff --git a/lib/algorithm.rb b/lib/algorithm.rb
index 092205b..0ba6a83 100644
--- a/lib/algorithm.rb
+++ b/lib/algorithm.rb
@@ -52,11 +52,11 @@ module OpenTox
include Algorithm
attr_accessor :prediction_feature, :training_dataset, :minfreq, :compounds, :db_class_sizes, :all_activities, :smi
- def check_params(params,per_mil)
+ def check_params(params,per_mil,subjectid=nil)
raise OpenTox::NotFoundError.new "Please submit a dataset_uri." unless params[:dataset_uri] and !params[:dataset_uri].nil?
raise OpenTox::NotFoundError.new "Please submit a prediction_feature." unless params[:prediction_feature] and !params[:prediction_feature].nil?
- @prediction_feature = OpenTox::Feature.find params[:prediction_feature], @subjectid
- @training_dataset = OpenTox::Dataset.find "#{params[:dataset_uri]}", @subjectid
+ @prediction_feature = OpenTox::Feature.find params[:prediction_feature], subjectid
+ @training_dataset = OpenTox::Dataset.find "#{params[:dataset_uri]}", subjectid
raise OpenTox::NotFoundError.new "No feature #{params[:prediction_feature]} in dataset #{params[:dataset_uri]}" unless @training_dataset.features and @training_dataset.features.include?(params[:prediction_feature])
unless params[:min_frequency].nil?
diff --git a/lib/model.rb b/lib/model.rb
index d69a827..ff0ce0e 100644
--- a/lib/model.rb
+++ b/lib/model.rb
@@ -73,7 +73,7 @@ module OpenTox
if use_confidence
conf_index = -1
predictedVariables.size.times do |i|
- f = OpenTox::Feature.find(predictedVariables[i])
+ f = OpenTox::Feature.find(predictedVariables[i], subjectid)
conf_index = i if f.metadata[DC.title]=~/(?i)confidence/
end
raise "could not estimate predicted variable from model: '"+uri.to_s+
@@ -182,6 +182,7 @@ module OpenTox
# @param [optional,OpenTox::Task] waiting_task (can be a OpenTox::Subtask as well), progress is updated accordingly
# @return [OpenTox::Dataset] Dataset with predictions
def predict_dataset(dataset_uri, subjectid=nil, waiting_task=nil)
+
@prediction_dataset = Dataset.create(CONFIG[:services]["opentox-dataset"], subjectid)
@prediction_dataset.add_metadata({
OT.hasSource => @uri,
@@ -253,7 +254,7 @@ module OpenTox
@prediction_dataset.metadata[OT.dependentVariables] = @metadata[OT.dependentVariables] unless @prediction_dataset.metadata[OT.dependentVariables]
@prediction_dataset.metadata[OT.predictedVariables] = [value_feature_uri, confidence_feature_uri] unless @prediction_dataset.metadata[OT.predictedVariables]
- if OpenTox::Feature.find(metadata[OT.dependentVariables]).feature_type == "classification"
+ if OpenTox::Feature.find(metadata[OT.dependentVariables], subjectid).feature_type == "classification"
@prediction_dataset.add @compound.uri, value_feature_uri, @value_map[prediction[:prediction]]
else
@prediction_dataset.add @compound.uri, value_feature_uri, prediction[:prediction]
diff --git a/lib/task.rb b/lib/task.rb
index 146a756..00499fa 100644
--- a/lib/task.rb
+++ b/lib/task.rb
@@ -169,6 +169,10 @@ module OpenTox
@metadata[OT.hasStatus] == 'Running'
end
+ def queued?
+ @metadata[OT.hasStatus] == 'Queued'
+ end
+
def completed?
@metadata[OT.hasStatus] == 'Completed'
end
@@ -286,7 +290,7 @@ module OpenTox
raise "illegal task state, task is completed, resultURI is no URI: '"+@metadata[OT.resultURI].to_s+
"'" unless @metadata[OT.resultURI] and @metadata[OT.resultURI].to_s.uri? if completed?
if @http_code == 202
- raise "#{@uri}: illegal task state, code is 202, but hasStatus is not Running: '"+@metadata[OT.hasStatus]+"'" unless running?
+ raise "#{@uri}: illegal task state, code is 202, but hasStatus is not Running or Queued: '"+@metadata[OT.hasStatus]+"'" unless running? or queued?
elsif @http_code == 201
# ignore hasStatus
# raise "#{@uri}: illegal task state, code is 201, but hasStatus is not Completed: '"+@metadata[OT.hasStatus]+"'" unless completed?