%div.well %a.btn.btn-warning{:href => to('/predict')} %span.glyphicon.glyphicon-menu-left{:aria=>{:hidden=>"true"}} New Prediction %a.btn.btn-success{:id => "downbutton", :href=>"#{to("/predict/#{@tmppath}/#{@filename}")}", :title=>"download"} %span.glyphicon.glyphicon-download-alt Download CSV / show file name %topline %div.row %div.col-md-4 %h3 Batch Prediction Results: %div.col-md-8 %h3= @filename / displays all prediction result in one table %div.table-responsive %table.table.table-bordered{:id=>"batch", :style=>"background-color:white;"} %tbody - if @warnings - @warnings.each do |warning| %tr %td %b Warning %td = warning.sub(/\b(tmp\/)\b/,"") - @view.each do |compound, array| %tr %td{:style=>"vertical-align:top;"} %p= compound.svg %p= compound.smiles - array.each do |model,prediction| %td{:style=>"vertical-align:top;white-space:nowrap;"} - model.model.class.to_s.match("Classification") ? type = "Classification" : type = "Regression" - unit = model.unit %b{:class => "title"} = "#{model.endpoint.gsub('_', ' ')} (#{model.species})" / check for prediction - if prediction[:value] %p / show model type (classification|regression) %b Type: = type %p / check for database hit - if prediction[:info] =~ /\b(identical)\b/i / show message about dbhit and measurements %p %b Compound is part of the training dataset %p %b Measured activity: %br - if prediction[:measurements].is_a?(Array) = (type == "Regression") ? prediction[:measurements].collect{|value| "#{value.delog10.signif(3)} (#{unit})
#{compound.mmol_to_mg(value.delog10).signif(3)} #{unit =~ /mmol\/L/ ? "(mg/L)" : "(mg/kg_bw/day)"}"}.join("
") : prediction[:measurements].join(", ") - else = (type == "Regression") ? "#{prediction[:measurements].delog10.signif(3)} (#{unit})
#{compound.mmol_to_mg(prediction[:measurements].delog10).signif(3)} #{(unit =~ /\b(mmol\/L)\b/) ? "(mg/L)" : "(mg/kg_bw/day)"}" : prediction[:measurements] / show prediction %p %b Prediction: %br = (type == "Regression") ? "#{prediction[:value].delog10.signif(3)} (#{unit})
#{compound.mmol_to_mg(prediction[:value].delog10).signif(3)} #{(unit =~ /\b(mmol\/L)\b/) ? "(mg/L)" : "(mg/kg_bw/day)"}" : prediction[:value] / show prediction interval or probability %p - if type == "Regression" %b 95% Prediction interval: - interval = (prediction[:prediction_interval].nil? ? nil : prediction[:prediction_interval]) %br = interval.nil? ? "" : "#{interval[1].delog10.signif(3)} - #{interval[0].delog10.signif(3)} (#{unit})" %br = "#{compound.mmol_to_mg(interval[1].delog10).signif(3)} - #{compound.mmol_to_mg(interval[0].delog10).signif(3)} #{(unit =~ /\b(mmol\/L)\b/) ? "(mg/L)" : "(mg/kg_bw/day)"}" if !prediction[:prediction_interval].nil? - else %b Probability: - unless prediction[:probabilities].nil? - probabilities = "" - prediction[:probabilities].each{|k,v| probabilities += "#{k}: #{v.signif(3)}
"} %br = probabilities / show warnings %p - if !prediction[:info].blank? %b Info: %br %p=prediction[:info].sub(/\'.*\'/,"").sub(/,/, ",
") - if !prediction[:warnings].blank? %b Warnings: - prediction[:warnings].uniq.each do |warning| %br %p=warning.sub(/substances/, "substances
").sub(/prediction\:/, "prediction\:
") / no prediction - else %br - if !prediction[:info].blank? %b Info: %br %p=prediction[:info].sub(/\'.*\'/,"").sub(/,/, ",
") - if !prediction[:warnings].blank? %b Warnings: - prediction[:warnings].uniq.each do |warning| %br %p=warning.sub(/substances/, "substances
").sub(/prediction\:/, "prediction\:
") %tr