diff options
author | helma@in-silico.ch <helma@in-silico.ch> | 2018-10-29 20:34:39 +0100 |
---|---|---|
committer | helma@in-silico.ch <helma@in-silico.ch> | 2018-10-29 20:34:39 +0100 |
commit | d9c9d78e49d886ea91386adbbd2b523347df226e (patch) | |
tree | 6f728c82ca01b6a19d8e4aa1905e26bea9253f33 /lib/dataset.rb | |
parent | 5e9a08c0b534fa96179fb5c81a9b4193e7b0aad8 (diff) |
dataset predictions fixed
Diffstat (limited to 'lib/dataset.rb')
-rw-r--r-- | lib/dataset.rb | 23 |
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 |