blob: 9bfa67e8b2fa2682b4d59d9d7d055edc0d391d97 (
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
46
47
48
49
50
51
52
53
54
55
56
57
58
|
%div.well
%a.btn.btn-warning{:href => to('/predict')}
%span.glyphicon.glyphicon-menu-left{:aria=>{:hidden=>"true"}}
New Prediction
/ displays all prediction result in first table
%div.table-responsive
%table.table.table-bordered{:id=>"batch", :style=>"background-color:white;"}
%thead
%tr
%h3.col-md-4{:style=>"padding-left:0;"} Batch Prediction Results:
%h3.col-md-8= @filename
%tr
%span.btn.btn-default
%a{:href=>"#{to("/predict/#{@filename}")}", :title=>"download"}
%span.glyphicon.glyphicon-download-alt{:aria=>{:hidden=>"true"}}
CSV
%tbody
/ key = compound, values = array of arrays with model, prediction
- @batch.each do |key, values|
- compound = key
- mw = compound.molecular_weight
%tr
%td{:style=>"vertical-align:top;"}
%p= compound.svg
%p= compound.smiles
/ array = single prediction [endpoint, result]
- values.each_with_index do |array,i|
%td{:style=>"vertical-align:top;white-space:nowrap;"}
- model = array[0]
- prediction = array[1]
%b{:class => "title"}
= "#{model.endpoint.gsub('_', ' ')} (#{model.species})"
%p
- if prediction[:confidence] == "measured"
%p
%b Measured activity:
- if prediction[:value].is_a?(Array)
= prediction[:value][0].numeric? ? prediction[:value].collect{|v| weight = compound.mmol_to_mg(v, mw); '%.2e' % v + " (#{model.unit})"+" | #{'%.2e' % weight} (mg/kg_bw/day)"}.join("</br>") : prediction[:value].join(", ")
- else
= prediction[:value].numeric? ? "#{'%.2e' % prediction[:value]} (#{model.unit}) | #{'%.2e' % compound.mmol_to_mg(prediction[:value], mw)} (mg/kg_bw/day)" : prediction[:value]
%p
%b Compound is part of the training dataset
- elsif prediction[:neighbors].size > 0
%p
/ model type (classification|regression)
%b Type:
= model.model.class.to_s.match("Classification") ? "Classification" : "Regression"
%br
%b Prediction:
= prediction[:value].numeric? ? "#{'%.2e' % prediction[:value]} (#{model.unit}) | #{'%.2e' % compound.mmol_to_mg(prediction[:value], mw)} (mg/kg_bw/day)" : prediction[:value]
%br
/ TODO probability
%b Confidence:
= prediction[:confidence].round(3)
%p
- else
%p
= "Not enough similar compounds </br>in training dataset."
|