summaryrefslogtreecommitdiff
path: root/views/predict.haml
blob: 7c25def3d0ae001954220dccd90724ca26c32b6d (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
:javascript
  function showcircle() {
    $("img.circle").show();
  };

%div.well
  %h3.help-block
    Select an endpoint:
  #tabs
    %ul.nav.nav-tabs{:id=>"modelTab", :role=>"tablist"}
      - @prediction_models.each_with_index do |m, idx|
        %li{:class => ("active" if idx == 0)}
          %a{:href => "#model_#{idx}", :id => "linkTab#{idx}", data: {toggle:"tab"}}
            = "#{idx+1}. #{m.model.feature_selection_algorithm_parameters[:category].nil? ? "P-CHEM & Proteomics" : "P-CHEM" }"
    %div.tab-content
      - @prediction_models.each_with_index do |m, idx|
        - m[:pc_model] ? example = @example_pc : example = @example_pcp
        #model.tab-pane{:id=>"#{idx}", :class => ("active" if idx == 0)}
          %b Model:
          %br
          Name:
          = m.model.name
          %br
          Type: regression
          %br
          Source:
          %a{:href=>"#{m.source}", :alt=>"source", :rel=>"external"}
            = m.source
          %br
          Species:
          = m.species
          %br
          Training nanoparticles:
          = m.model.training_dataset.nanoparticles.size
          %br
          Endpoint:
          = m.endpoint
          %br
          Unit:
          = m.unit
          %p
          - cv = OpenTox::CrossValidation.find(m.repeated_crossvalidation_id)
          %b Independent crossvalidations (log2 transformed):
          - crossvalidations =[]
          - m.repeated_crossvalidation.crossvalidation_ids.each{|cv| c = OpenTox::Validation::CrossValidation.find(cv); crossvalidations << c}
          %div.row{:id=>"validations#{m.id}", :style=>"background-color:#f5f5f5;"}
            - crossvalidations.each do |cv|
              %span.col-xs-4.col-sm-4.col-md-4.col-lg-4
                = "Num folds:\t"
                = cv.folds
                %br
                = "Num instances:\t"
                = cv.nr_instances
                %br
                = "Num unpredicted"
                = cv.nr_unpredicted
                %br
                = "Root mean squared error:\t"
                = cv.rmse.round(3) if cv.rmse
                %br
                = "Mean absolute error:\t"
                = cv.mae.round(3) if cv.mae
                %br 
                = "R square:\t"
                = cv.r_squared.round(3) if cv.r_squared
          %br
          %hr
          %form{:id=>idx, :role=>"form", :action=> to("/predict"), :method=>"post"}
            %h3.help-block
              Please characterise a nanoparticle:
            #input
            %div.form-group
              %h5 Core
              %input.input-sm.form-control{:id=>"core_name",:type=>"text",:name=>"core_name",:value=>example.core["name"], :disabled=>"true"}
            - example.physchem_descriptors.each_with_index do |v,id|
              - feature = OpenTox::Feature.find_by(:id => v[0])
              - name = feature.name
              - if feature[:conditions] && !feature[:conditions]["MEDIUM"].blank?
                - name = feature.name + " / " + feature[:conditions]["MEDIUM"]
              - else
                - name = feature.name
              - val = v[1]
              - id = id + 1
              %h5= name
              %input.form-control{:id=>id,:type=>"hidden",:name=>"input_key_#{id}",:value=>v[0]}
              %input.input-sm.form-control{:id=>id,:type=>"text",:name=>"input_value_#{id}",:value=>val[0]}
              %input.form-control{:id=>id,:type=>"hidden",:name=>"input_key_#{id}",:value=>v[0]}
              %input.input-sm.form-control{:id=>id,:type=>"hidden",:name=>"input_value_#{id}",:value=>val[0]}
              %input.form-control{:id=>"example_id",:type=>"hidden",:name=>"example_id",:value=>example.id}
              %input.form-control{:id=>"core",:type=>"hidden",:name=>"core",:value=>"#{example.core}"}
              %input.form-control{:id=>"coating",:type=>"hidden",:name=>"coating",:value=>example.coating}
              %input.form-control{:id=>"prediction_model",:type=>"hidden",:name=>"prediction_model",:value=>m.id}
              - example_pc = example.physchem_descriptors
              %input.form-control{:id=>"example_pc",:type=>"hidden",:name=>"example_pc",:value=>"#{example_pc}"}
              - size = example.physchem_descriptors.size
              %input.form-control{:id=>"size",:type=>"hidden",:name=>"size",:value=>size}
            %hr
            #predict
              %button.btn.btn-success{:id=>"submitbutton", :type=>"submit", :onclick=>"showcircle();"} 
                Find similar nano particles
                %span.glyphicon.glyphicon-chevron-right{:id=>"span"}
              %img{:src=>"/images/wait30trans.gif", :id=>"circle", :class=>"circle", :alt=>"wait", :style=>"display:none;"}