summaryrefslogtreecommitdiff
path: root/views/prediction.haml
blob: f8610f53d2150ef9a62df511c7c4c327e88d06a0 (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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
%div
  %a.btn.btn-xs.btn-default{:href => to('/predict'), :style=>"margin-bottom:1em;"}
    %span.glyphicon.glyphicon-chevron-left
    New Prediction

  %h3.help-block
    Similar particles
  
  %hr  
  :javascript 
    $(document).ready(function(){
      $(".tablesorter").tablesorter({
        debug: false,
        theme: "bootstrap",
        headerTemplate: '{content} {icon}',
        widgets: ['uitheme', 'staticRow', 'stickyHeaders'],
        widgetOptions: {
          stickyHeaders_xScroll : null
        },
        sortList: [[1,1]],
        widthFixed: false,
      });
      $('#neighbors').doubleScroll();
    });


  #neighbors.table-responsive
    %table.tablesorter{:style => "max-width:100%;white-space:nowrap;"}
      %thead
        %tr
          %th
            ID  
          %th
            Similarity
          %th
            Composition  
          %th.tox
            Toxicity 
            %br 
            Net cell association [mL/ug(Mg)]
          - @input.each do |key|
            - feature = OpenTox::Feature.find_by(:id=>key[0])
            - name = feature.name
            - if !feature[:conditions]["MEDIUM"].blank?
              - name = feature.name + " / " + feature[:conditions]["MEDIUM"]
            - else
              - name = feature.name
            %th.physchem
              = name
      %tbody
        / query and match combined
        %tr.static
          / id
          %td
            - if @match
              %a{:href=> $ambit_search+@name, :rel=>"external"}
                %h5= @name
            - else
              %h5 Query
          / similarity
          %td
            - if @match
              %h5 1
            - else
              %h5 x
          / composition
          %td
            - if @match
              %h5 Core
              = "["+@nanoparticle[:core]["name"]+"]"
              %h5 Coating
              = @nanoparticle[:coating][0]["name"]
            - else
              %h5 x
          / tox
          %td.tox
            - if @prediction[:value]
              %h5 Prediction:
              = @prediction[:value].round(3)
            - if @prediction[:rmse]
              %h5 Rmse:
              = @prediction[:rmse].round(3)
            - if @prediction[:r_squared]
              %h5 R_squared:
              = @prediction[:r_squared].round(3)
            - if @prediction[:prediction_interval]
              %h5 95% Prediction interval:
              - interval = @prediction[:prediction_interval].nil? ? " - - " : @prediction[:prediction_interval].collect{|i| i.round(2)}
              = "#{interval[0]} - #{interval[1]}"
            - if @prediction[:measurements]
              %hr
              %h5 Measurement
              - @prediction[:measurements].each do |m|
                %p= m
            - if !@prediction[:value] && !@prediction[:measurements]
              %h5 not available
          / physchem
          - if @prediction[:match]
            - sorted = {}
            - @input.each{|i| sorted[i[0]]=@prediction[:match].values[0]["physchem"][i[0]]}
            - sorted.each do |k,v|
              %td.physchem
                %div{:style=>"display:inline-block;padding-right:20px;"}
                  %p= v[0].round(3)
          - else
            - @input.each do |v|
              %td.physchem
                %div{:style=>"display:inline-block;padding-right:20px;"}
                  - if v[1].nil?
                    %p x
                  - else
                    %p= v[1][0].round(3)

        / neighbors
        - if @prediction[:neighbors]
          - @prediction[:neighbors].each_with_index do |neighbor,idx|
            - nano = OpenTox::Nanoparticle.find(neighbor["_id"])
            - pc_descriptors = nano.physchem_descriptors.delete_if{|k,v| feature = OpenTox::Feature.find_by(:id => k); feature.category != "P-CHEM"}
            %tr
              / ID
              %td
                %a{:href=> $ambit_search+nano.name, :rel=>"external"}
                  %h5= nano.name
              / Similarity
              %td
                %h5= neighbor["similarity"].round(3)
              / Composition
              %td
                %h5 Core
                = "["+nano[:core]["name"]+"]"
                %h5 Coating
                = nano[:coating][0]["name"]
              / Tox
              %td.tox
                %h5 Measurement
                %p= neighbor["measurements"][0]
              / Physchem
              - @input.each do |k,v|
                %td.physchem
                  %div
                    %div{:style=>"display:inline-block;padding-right:20px;"}
                      %p= v[0].round(3) unless v.nil?