summaryrefslogtreecommitdiff
path: root/report/prediction_util.rb
blob: 5ba37166ff058c0b005c2eb78488b865c7c3b8b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45


module Reports::PredictionUtil

  # creates an Array for a table
  # * first row: header values
  # * other rows: the prediction values
  # additional attribute values of the validation that should be added to the table can be defined via validation_attributes
  # 
  # call-seq:
  #   predictions_to_array(validation_set, validation_attributes=[]) => Array
  #
  def self.predictions_to_array(validation_set, validation_attributes=[])
  
      res = []
      
      validation_set.validations.each do |v|
        (0..v.get_predictions.num_instances-1).each do |i|
          a = []
          validation_attributes.each{ |att| a.push(v.send(att).to_s) }
          
          #PENDING!
          a.push( "http://ambit.uni-plovdiv.bg:8080/ambit2/depict/cdk?search="+URI.encode(OpenTox::Compound.new(:uri=>v.get_predictions.identifier(i)).smiles) )
          
          a.push(v.get_predictions.actual_value(i).to_nice_s) 
          a.push(v.get_predictions.predicted_value(i).to_nice_s)
          a.push(v.get_predictions.classification_miss?(i)?"X":"") if validation_set.all_classification?
          a.push(v.get_predictions.confidence_value(i).to_nice_s) if v.get_predictions.confidence_values_available?
          a.push(v.get_predictions.identifier(i)) #.gsub(/[-(),=]/, '')[0,10])
          res.push(a)
        end
      end
        
      #res = res.sort{|x,y| y[3] <=> x[3] }
      header = [ "compound", "actual value", "predicted value"]
      header.push "missclassified" if validation_set.all_classification?
      header.push "confidence value" if validation_set.validations[0].get_predictions.confidence_values_available?
      header << "compound-uri"
      res.insert(0, validation_attributes + header)
      #puts res.collect{|c| c.inspect}.join("\n")
      
      return res
  end

end