.predictions .back %h1 %img{:src=>"/images/arrow_left_float.png", :alt=>"<"} %a{:href => to('/predict')} New Prediction / displays all prediction result in first table .overview %table{:width=>"100%", :cellspacing=>"1", :id=>"overview"} %thead %tr %caption %h2 Prediction Results: %tbody %tr %td{:id=>"compound"} %a{:href => to("/prediction/#{CGI.escape(@compound.uri)}/details"), :id=>"linkCompound", :target=>"details_overview"} %img{:src=>"#{@compound.uri}/image", :alt=>"Compound image not available", :width=>"150", :height=>"150"} %p %a{:href => to("/prediction/#{CGI.escape(@compound.uri)}/details"), :id=>"linkCompound", :target=>"details_overview"} Names and synonyms %p :javascript $(function() { $("a#linkCompound").on('click', function(e) { $('#iframe_overview').bPopup(); }); }); - count=0 - @predictions.each do |pa| / unpack to single array/prediction / if p.data_entries array[0].size == 3 -> database hit / change 'result' if database hit / change 'confidence' if database hit - pa.each do |p| / prevent conversion of nil /- $logger.debug "data entries in prediction array:\t#{p.data_entries}\n" - database_hit = 0 - if p.data_entries[0].size == 3 - database_hit = 1 - c = p.data_entries[0][0] != nil ? p.data_entries[0][0] : '' - case c - when /(0|false)/ - c = "non-carcinogen" - when /(1|true)/ - c = "carcinogen" - else - c = Array.new - c[0] = (p.data_entries[0][0].class == Float) ? p.data_entries[0][0].round(3) : (p.data_entries[0][0] != nil ? p.data_entries[0][0] : "no prediction") %td %b{:class => "title"} = @prediction_models[count].title.split(" ").first - @model_uri = @prediction_models[count].uri %p / model type (classification|regression) %b Type: = @model_type[count] %p - unless database_hit > 0 %b Result: %b{:class => c[0]} - if c.class == String = (c != '' ? c : "No prediction result.") - else = (c[0] != '' ? c[0] : "No prediction result.") / title must be empty for tooltip %a{:href=>"#result", :title=>"", :id=>"result"} %img{:src=>"/images/info_white.png"} .tooltip{:style=>"font-weight: normal; font-size: 1em; width: 50%; text-align: left;"} %dt Result %dd %code lazar calculates searches the training dataset for similar compounds (neighbors) and calculates the prediction from their measured activities. lazar calculates predictions using %ul %li a majority vote (weighted by compound similarity) for %em classification ( %a{:href=>"http://www.frontiersin.org/Journal/10.3389/fphar.2013.00038/abstract", :target=>"_blank"} original publication ) %li a local QSAR model based on neighbors for %em regression ( %a{:href=>"http://www.frontiersin.org/Journal/10.3389/fphar.2013.00038/abstract", :target=>"_blank"} original publication ) Please keep in mind that predictions are based on the measured activities of neighbors. %p .confidence %b Confidence: = p.data_entries[0][1] != nil ? p.data_entries[0][1].round(3) : "-" / title must be empty for tooltip %a{:href=>"#confidence", :title=>"", :id=>"confidence"} %img{:src=>"/images/info_white.png"} .tooltip{:style=>"font-weight: normal; font-size: 1em; width: 50%; text-align: left;"} %dt Confidence %dd Indicates the applicability domain of a model. Predictions with a high confidence can be expected to be more reliable than predictions with low confidence. Confidence values may take any value between 0 and 1. For most models confidence > 0.025 is a sensible (hard) cutoff to distiguish between reliable and unreliable predictions. %p /TODO add tooltip for significant ftagments and descriptors - if @model_type[count] =~ /classification/i / Significant fragments: %a{:href => to("/prediction/#{CGI.escape(@model_uri)}/#{@model_type[count]}/#{CGI.escape(@compound.uri)}/fingerprints"), :id=>"linkPredictionSf", :target=>"details_overview"}Significant fragments :javascript $(function() { $("a#linkPredictionSf").on('click', function(e) { $('#iframe_overview').bPopup(); }); }); - if @model_type[count] =~ /regression/i / Descriptors %a{:href => to("/prediction/#{CGI.escape(@model_uri)}/#{@model_type[count]}/#{CGI.escape(@compound.uri)}/fingerprints"), :id=>"linkPredictionSf", :target=>"details_overview"} Descriptors :javascript $(function() { $("a#linkPredictionSf").on('click', function(e) { $('#iframe_overview').bPopup(); }); }); / title must be empty for tooltip -#%a{:href =>"#sfragments", :title=>"", :id=>"sfragments"} %img{:src=>"/images/info_white.png"} -#.tooltip{:style=>"font-weight: normal; font-size: 1em; width: 50%; text-align: left;"} %dt Significant fragments %dd Significant fragments are solely used to determine activity specific similarities of neighbors. %p %b Neighbors: %a{:href=> "#tabs", :id=>"link#{count}"} %img{:src=>"/images/arrow_down_float.png", :alt=>"v"} :javascript $("a#link#{count}").click(function () { $(".results").show(); document.getElementById('tabs').focus(); $("#tabs").tabs({ active: "#{count}" }); }); %p - count+=1 - else # database hit %b Database hit: %br Compound found in training dataset %p %b Measured activity: = p.data_entries[0][2] %p %b Neighbors: %a{:href=> "#tabs", :id=>"link#{count}"} %img{:src=>"/images/arrow_down_float.png", :alt=>"v"} :javascript $("a#link#{count}").click(function () { $(".results").show(); document.getElementById('tabs').focus(); $("#tabs").tabs({ active: "#{count}" }); }); - count+=1 / always show the neighbors table, message is given there = haml :neighbors, :layout => false, :model_type => @model_type %iframe{:id=>"iframe_overview", :name=>"details_overview", :height=>"95%", :width=>"95%", :style=>"display:none;border:0px"}