summaryrefslogtreecommitdiff
path: root/lib/model.rb
diff options
context:
space:
mode:
authorhelma@in-silico.ch <helma@in-silico.ch>2018-10-24 18:21:34 +0200
committerhelma@in-silico.ch <helma@in-silico.ch>2018-10-24 18:21:34 +0200
commit1652fd5df948da7ace622c73d158010add656b9f (patch)
tree49e7eef3c6cdaaaadc38742e56996aaa145ac3de /lib/model.rb
parent9d17895ab9e8cd31e0f32e8e622e13612ea5ff77 (diff)
dataset mapfeature_classes
Diffstat (limited to 'lib/model.rb')
-rw-r--r--lib/model.rb8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/model.rb b/lib/model.rb
index 7ee50fe..9858949 100644
--- a/lib/model.rb
+++ b/lib/model.rb
@@ -199,7 +199,6 @@ module OpenTox
# @return [Hash]
def predict_substance substance, threshold = self.algorithms[:similarity][:min]
- #p substance.smiles
t = Time.now
@independent_variables = Marshal.load $gridfs.find_one(_id: self.independent_variables_id).data
case algorithms[:similarity][:method]
@@ -286,7 +285,6 @@ module OpenTox
else # try again with a lower threshold
predict_substance substance, 0.2
end
- #p prediction
#p Time.now - t
prediction
end
@@ -330,11 +328,12 @@ module OpenTox
elsif object.is_a? Array
return predictions
elsif object.is_a? Dataset
+ warning_feature = InfoFeature.find_or_create_by(:name => "Warnings")
if prediction_feature.is_a? NominalBioActivity
f = NominalLazarPrediction.find_or_create_by(:name => prediction_feature.name, :accept_values => prediction_feature.accept_values, :model_id => self.id, :training_feature_id => prediction_feature.id)
probability_features = {}
prediction_feature.accept_values.each do |v|
- probability_features[v] = LazarPredictionProbability.find_or_create_by(:name => "probability(#{v})", :accept_values => prediction_feature.accept_values, :value => v, :model_id => self.id, :training_feature_id => prediction_feature.id)
+ probability_features[v] = LazarPredictionProbability.find_or_create_by(:name => v, :model_id => self.id, :training_feature_id => prediction_feature.id)
end
elsif prediction_feature.is_a? NumericBioActivity
f = NumericLazarPrediction.find_or_create_by(:name => prediction_feature.name, :unit => prediction_feature.unit, :model_id => self.id, :training_feature_id => prediction_feature.id)
@@ -344,10 +343,11 @@ module OpenTox
d = Dataset.new(:name => object.name)
# add predictions to dataset
predictions.each do |substance_id,p|
- d.warnings += p[:warnings]
+ d.add substance_id,warning_feature,p[:warnings].join(" ") if p[:warnings]
unless p[:value].nil?
d.add substance_id,f,p[:value]
p[:probabilities].each {|name,p| d.add substance_id,probability_features[name],p}
+ # TODO prediction interval
end
end
d.save