diff options
Diffstat (limited to 'views/neighbors.haml')
-rw-r--r-- | views/neighbors.haml | 197 |
1 files changed, 94 insertions, 103 deletions
diff --git a/views/neighbors.haml b/views/neighbors.haml index db32c88..22dff56 100644 --- a/views/neighbors.haml +++ b/views/neighbors.haml @@ -1,11 +1,3 @@ -:javascript - $(function() { - $("#deatils.modal").on('show.bs.modal', function() { - alert("alert"); - //$(this).removeData('bs.modal'); - }); - }); - / unpacks multi prediction array ; / prepare it for neighbors ; / align single prediction to endpoint ; @@ -13,110 +5,109 @@ %div.results{:style=>"display:none"} - count_m = 0 - / tabs div ; + %h3 Neighbors: + / tabs div #tabs - %ul + %ul.nav.nav-tabs.nav-justified{:id=>"neighborTabs", :role=>"tablist"} / each model a tab head ; - @prediction_models.each do |m| - count_m += 1 - m_title = m.title.split("_").last(2)[0] %li - %a{:href => "#results_#{count_m}", :id => "link#{m_title}"} + %a{:href => "#results_#{count_m}", :id => "linkTab#{count_m}", data: {toggle:"tab"}} = m_title - count_rs = 0 - / unpack to single arrays - - @predictions.each do |pa| - / pass model type for significant fragments view - - @type = @model_type[count_rs] - - count_rs += 1 - #results{:id=>"#{count_rs}"} - - pa.each do |p| - / prepare dataset for neighbors table ; - / delete first array which contains prediction ; - / following arrays are the neighbor predictions ; - - @model_uri = p.metadata[RDF::OT.hasSource][0] - - p.data_entries.shift - - p.compounds.shift - - / call the tablesorter plugin ; - / presort by similarity ; - :javascript - $(document).ready(function(){ - $("table##{count_rs}").tablesorter({ - debug: false, - table: 'ui-widget ui-widget-content ui-corner-all', - header: 'ui-widget-header ui-corner-all ui-state-default', - theme: "bootstrap", - widthFixed: true, - hover: 'ui-state-hover', - even: 'ui-widget-content', - odd: 'ui-state-default', - headerTemplate: '{content} {icon}', - widgets: ['zebra', 'columns', 'uitheme'], - headers: {0: {sorter: false}, 3: {sorter: false}}, - sortList: [[2,1]] + %div.tab-content + / unpack to single arrays + - @predictions.each do |pa| + / pass model type for significant fragments view + - @type = @model_type[count_rs] + - count_rs += 1 + #results.tab-pane.fade{:id=>"#{count_rs}"} + - pa.each do |p| + / prepare dataset for neighbors table ; + / delete first array which contains prediction ; + / following arrays are the neighbor predictions ; + - @model_uri = p.metadata[RDF::OT.hasSource][0] + - p.data_entries.shift + - p.compounds.shift + + / call the tablesorter plugin ; + / presort by similarity ; + :javascript + $(document).ready(function(){ + $("table##{count_rs}").tablesorter({ + debug: false, + //table: 'ui-widget ui-widget-content ui-corner-all', + //header: 'ui-widget-header ui-corner-all ui-state-default', + theme: "bootstrap", + //widthFixed: true, + //hover: 'ui-state-hover', + //even: 'ui-widget-content', + //odd: 'ui-state-default', + headerTemplate: '{content} {icon}', + widgets: ['zebra', 'columns', 'uitheme'], + headers: {0: {sorter: false}, 3: {sorter: false}}, + sortList: [[2,1]] + }); }); - }); - - $logger.debug "neighbors compounds:\t#{p.data_entries[0]}\n" - - if p.data_entries[0][2] != nil && p.data_entries[0].size != 3 - %h2= "Neighbors: " - - %div.table-responsive - %table.tablesorter{:id=>"#{count_rs}", :style=>"border-style: solid;"} - %thead - %tr - %th{:style =>"vertical-align:middle;"} - Compound - %th{:style =>"vertical-align:middle;"} - Measured Activity - -#%a.btn.glyphicon.glyphicon-info-sign{:href=>"#neighbors", :title=>"Measured Activity", data: {toggle:"popover", placement:"auto", trigger:"focus", html:"true", content:"Experimental result(s) from the training dataset."}, :style=>"z-index:auto+10;"} - %th{:style =>"vertical-align:middle;"} - Similarity - -#%a.btn.glyphicon.glyphicon-info-sign{:href=>"#neighbors", :title=>"Similarity", data: {toggle:"popover", placement:"auto", trigger:"focus", html:"true", content:"LAZAR calculates activity specific similarities based on the presence of statistically significant fragments. This procedure will <ul><li>consider only those parts of a chemical structure that are relevant for a particular endpoint</li><li>ignore inert parts of the structure</li><li>lead to different similarities, depending on the toxic endpoint Similarities of 1 may be encountered even for structurally dissimilar compounds, because inert parts are ignored.</li></ul>"}, :style=>"z-index:auto+10;"} - %th{:style =>"vertical-align:middle;"} - Supporting Information - %info - %tr - %td - %td{:style=>"font-size:x-small;padding:0px;"} - %a.btn.glyphicon.glyphicon-info-sign{:href=>"#neighbors", :title=>"Measured Activity", data: {toggle:"popover", placement:"auto", trigger:"focus", html:"true", content:"Experimental result(s) from the training dataset."}, :style=>"z-index:auto+10;"} - %td{:style=>"font-size:x-small;padding:0px;"} - %a.btn.glyphicon.glyphicon-info-sign{:href=>"#neighbors", :title=>"Similarity", data: {toggle:"popover", placement:"auto", trigger:"focus", html:"true", content:"LAZAR calculates activity specific similarities based on the presence of statistically significant fragments. This procedure will <ul><li>consider only those parts of a chemical structure that are relevant for a particular endpoint</li><li>ignore inert parts of the structure</li><li>lead to different similarities, depending on the toxic endpoint Similarities of 1 may be encountered even for structurally dissimilar compounds, because inert parts are ignored.</li></ul>"}, :style=>"z-index:auto+10;"} - %tbody - - count = 0 - - p.compounds.each do |neighbor_compound| - / prevent conversion of nil - - c = p.data_entries[count][2] != nil ? p.data_entries[count][2] : '' - - case c - - when /(false|true|inactive|active)/i - - c = c - - else - /- c = Array.new - - c = p.data_entries[count][2].to_f.round(3) - %tr - %td{:style =>"vertical-align:middle;padding-left:1em;"} - %a.btn.btn-link{:href => to("/prediction/#{CGI.escape(neighbor_compound.uri)}/details"), :id=>"link#{count_rs}#{count}", data: { toggle: "modal", target:"#details"}} - %img.blind{:src=>"#{neighbor_compound.uri}/image", :alt=>"no image", :onError=>"this.onerror=null;", :title=>"#{neighbor_compound.smiles}", :width=>"150px"} - %td{:style =>"vertical-align:middle;padding-left:1em;"} - - if c.class == String - = c + - $logger.debug "neighbors compounds:\t#{p.data_entries[0]}\n" + - if p.data_entries[0][2] != nil && p.data_entries[0].size != 3 + -#%h2= "Neighbors: " + + %div.table-responsive + %table.tablesorter{:id=>"#{count_rs}", :style=>"border-style: solid;"} + %thead + %tr + %th{:style =>"vertical-align:middle;"} + Compound + %th{:style =>"vertical-align:middle;"} + Measured Activity + %th{:style =>"vertical-align:middle;"} + Similarity + %th{:style =>"vertical-align:middle;"} + Supporting Information + %info + %tr + %td + %td{:style=>"font-size:x-small;padding:0px;"} + %a.btn.glyphicon.glyphicon-info-sign{:href=>"#neighbors", :title=>"Measured Activity", data: {toggle:"popover", placement:"auto", html:"true", content:"Experimental result(s) from the training dataset."}, :style=>"z-index:auto+10;"} + %td{:style=>"font-size:x-small;padding:0px;"} + %a.btn.glyphicon.glyphicon-info-sign{:href=>"#neighbors", :title=>"Similarity", data: {toggle:"popover", placement:"auto", html:"true", content:"LAZAR calculates activity specific similarities based on the presence of statistically significant fragments. This procedure will <ul><li>consider only those parts of a chemical structure that are relevant for a particular endpoint</li><li>ignore inert parts of the structure</li><li>lead to different similarities, depending on the toxic endpoint Similarities of 1 may be encountered even for structurally dissimilar compounds, because inert parts are ignored.</li></ul>"}, :style=>"z-index:auto+10;"} + %tbody + - count = 0 + - p.compounds.each do |neighbor_compound| + / prevent conversion of nil + - c = p.data_entries[count][2] != nil ? p.data_entries[count][2] : '' + - case c + - when /(false|true|inactive|active)/i + - c = c - else - = c - %td{:style =>"vertical-align:middle;padding-left:1em;"} - = p.data_entries[count][3] != nil ? p.data_entries[count][3].round(3) : "Not enough similar compounds in training dataset." - %td{:style =>"vertical-align:middle;padding-left:1em;"} - - if @type =~ /classification/i - - if p.data_entries[count][3] != nil - %a.btn.btn-primary{:href => to("/prediction/#{CGI.escape(@model_uri)}/#{@type}/#{CGI.escape(neighbor_compound.uri)}/significant_fragments"), :id=>"link#{count_rs}#{count}sf", data: { toggle: "modal", target:"#details"}} Significant fragments - - if @type =~ /regression/i - - if p.data_entries[count][3] != nil - %a.btn.btn-primary{:href => to("/prediction/#{CGI.escape(@model_uri)}/#{@type}/#{CGI.escape(neighbor_compound.uri)}/significant_fragments"), :id=>"link#{count_rs}#{count}sf", data: { toggle: "modal", target:"#details"}} Descriptors - - count += 1 - -#- else - %h3 - Not enough similar compounds in training dataset + /- c = Array.new + - c = p.data_entries[count][2].to_f.round(3) + %tr + %td{:style =>"vertical-align:middle;padding-left:1em;"} + %a.btn.btn-link{:href => "#details#{count_rs}", data: { toggle: "modal", remote: to("/prediction/#{CGI.escape(neighbor_compound.uri)}/details"), :id=>"link#{count_rs}#{count}"}} + %img.blind{:src=>"#{neighbor_compound.uri}/image", :alt=>"no image", :onError=>"this.onerror=null;", :title=>"#{neighbor_compound.smiles}", :width=>"150px"} + %td{:style =>"vertical-align:middle;padding-left:1em;"} + - if c.class == String + = c + - else + = c + %td{:style =>"vertical-align:middle;padding-left:1em;"} + = p.data_entries[count][3] != nil ? p.data_entries[count][3].round(3) : "Not enough similar compounds in training dataset." + %td{:style =>"vertical-align:middle;padding-left:1em;"} + - if @type =~ /classification/i + - if p.data_entries[count][3] != nil + %a.btn.btn-default{:href => "#details#{count_rs}", :id=>"link#{count_rs}#{count}sf", data: { toggle: "modal", remote: to("/prediction/#{CGI.escape(@model_uri)}/#{@type}/#{CGI.escape(neighbor_compound.uri)}/significant_fragments")}} Significant Fragments + - if @type =~ /regression/i + - if p.data_entries[count][3] != nil + %a.btn.btn-default{:href => "#details#{count_rs}", :id=>"link#{count_rs}#{count}sf", data: { toggle: "modal", remote: to("/prediction/#{CGI.escape(@model_uri)}/#{@type}/#{CGI.escape(neighbor_compound.uri)}/significant_fragments")}} Descriptors + - count += 1 + - else + %span.btn.btn-default.disabled Not enough similar compounds in training dataset -%div.modal.fade{:id=>"details", :role=>"dialog"} - %div.modal-dialog.modal-lg - %div.modal-content + %div.modal.fade{:id=>"details#{count_rs}", :role=>"dialog"} + %div.modal-dialog.modal-lg + %div.modal-content |