summaryrefslogtreecommitdiff
path: root/lib/dataset.rb
diff options
context:
space:
mode:
authorhelma@in-silico.ch <helma@in-silico.ch>2018-10-29 20:34:39 +0100
committerhelma@in-silico.ch <helma@in-silico.ch>2018-10-29 20:34:39 +0100
commitd9c9d78e49d886ea91386adbbd2b523347df226e (patch)
tree6f728c82ca01b6a19d8e4aa1905e26bea9253f33 /lib/dataset.rb
parent5e9a08c0b534fa96179fb5c81a9b4193e7b0aad8 (diff)
dataset predictions fixed
Diffstat (limited to 'lib/dataset.rb')
-rw-r--r--lib/dataset.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/dataset.rb b/lib/dataset.rb
index 41d7b5c..78f5633 100644
--- a/lib/dataset.rb
+++ b/lib/dataset.rb
@@ -86,6 +86,10 @@ module OpenTox
features.select{|f| f._type.match("SubstanceProperty")}
end
+ def prediction_features
+ features.select{|f| f._type.match("Prediction")}
+ end
+
# Writers
# Add a value for a given substance and feature
@@ -352,6 +356,25 @@ module OpenTox
sdf
end
+ def predictions
+ predictions = {}
+ substances.each do |s|
+ predictions[s] ||= {}
+ prediction_feature = prediction_features.first
+ predictions[s][:value] = values(s,prediction_feature).first
+ predictions[s][:warnings] = []
+ warnings_features.each { |w| predictions[s][:warnings] += values(s,w) }
+ if predictions[s][:value] and prediction_feature.is_a? NominalLazarPrediction
+ prediction_feature.accept_values.each do |v|
+ f = LazarPredictionProbability.find_by(:name => v, :model_id => prediction_feature.model_id, :training_feature_id => prediction_feature.training_feature_id)
+ predictions[s][:probabilities] ||= {}
+ predictions[s][:probabilities][v] = values(s,f).first
+ end
+ end
+ end
+ predictions
+ end
+
# Dataset operations
# Merge an array of datasets