lazar-gui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -0
  3. data/FAQ.md +29 -0
  4. data/Gemfile +7 -0
  5. data/README.md +15 -0
  6. data/VERSION +1 -0
  7. data/application.rb +317 -0
  8. data/bin/lazar-start +5 -0
  9. data/bin/lazar-start.sh +8 -0
  10. data/bin/lazar-stop +6 -0
  11. data/bin/lazar-stop.sh +52 -0
  12. data/config.ru +5 -0
  13. data/helper.rb +218 -0
  14. data/lazar-gui.gemspec +29 -0
  15. data/public/css/bootstrap-theme.min.css +5 -0
  16. data/public/css/bootstrap.min.css +5 -0
  17. data/public/css/images/black-asc.gif +0 -0
  18. data/public/css/images/black-desc.gif +0 -0
  19. data/public/css/images/black-unsorted.gif +0 -0
  20. data/public/css/images/bootstrap-black-unsorted.png +0 -0
  21. data/public/css/images/bootstrap-white-unsorted.png +0 -0
  22. data/public/css/images/dragtable-handle.png +0 -0
  23. data/public/css/images/dragtable-handle.svg +7 -0
  24. data/public/css/images/dropbox-asc-hovered.png +0 -0
  25. data/public/css/images/dropbox-asc.png +0 -0
  26. data/public/css/images/dropbox-desc-hovered.png +0 -0
  27. data/public/css/images/dropbox-desc.png +0 -0
  28. data/public/css/images/first.png +0 -0
  29. data/public/css/images/green-asc.gif +0 -0
  30. data/public/css/images/green-desc.gif +0 -0
  31. data/public/css/images/green-header.gif +0 -0
  32. data/public/css/images/green-unsorted.gif +0 -0
  33. data/public/css/images/ice-asc.gif +0 -0
  34. data/public/css/images/ice-desc.gif +0 -0
  35. data/public/css/images/ice-unsorted.gif +0 -0
  36. data/public/css/images/last.png +0 -0
  37. data/public/css/images/loading.gif +0 -0
  38. data/public/css/images/metro-black-asc.png +0 -0
  39. data/public/css/images/metro-black-desc.png +0 -0
  40. data/public/css/images/metro-loading.gif +0 -0
  41. data/public/css/images/metro-unsorted.png +0 -0
  42. data/public/css/images/metro-white-asc.png +0 -0
  43. data/public/css/images/metro-white-desc.png +0 -0
  44. data/public/css/images/next.png +0 -0
  45. data/public/css/images/prev.png +0 -0
  46. data/public/css/images/white-asc.gif +0 -0
  47. data/public/css/images/white-desc.gif +0 -0
  48. data/public/css/images/white-unsorted.gif +0 -0
  49. data/public/css/jquery-ui.css +1225 -0
  50. data/public/css/jquery-ui.theme.min.css +5 -0
  51. data/public/css/theme.bootstrap.css +158 -0
  52. data/public/css/theme.bootstrap.min.css +1 -0
  53. data/public/css/theme.default.min.css +1 -0
  54. data/public/fonts/glyphicons-halflings-regular.eot +0 -0
  55. data/public/fonts/glyphicons-halflings-regular.svg +288 -0
  56. data/public/fonts/glyphicons-halflings-regular.ttf +0 -0
  57. data/public/fonts/glyphicons-halflings-regular.woff +0 -0
  58. data/public/fonts/glyphicons-halflings-regular.woff2 +0 -0
  59. data/public/images/Email.png +0 -0
  60. data/public/images/Facebook.png +0 -0
  61. data/public/images/Google+.png +0 -0
  62. data/public/images/IST_logo_s.png +0 -0
  63. data/public/images/LinkedIn.png +0 -0
  64. data/public/images/OpenToxEuro2013_small.png +0 -0
  65. data/public/images/Twitter.png +0 -0
  66. data/public/images/arrow_down_float.png +0 -0
  67. data/public/images/arrow_left_float.png +0 -0
  68. data/public/images/arrow_right_float.png +0 -0
  69. data/public/images/arrow_up_float.png +0 -0
  70. data/public/images/asc.gif +0 -0
  71. data/public/images/bfr_logo.gif +0 -0
  72. data/public/images/bg.gif +0 -0
  73. data/public/images/blind.png +0 -0
  74. data/public/images/desc.gif +0 -0
  75. data/public/images/enm_logo.png +0 -0
  76. data/public/images/favicon.ico +0 -0
  77. data/public/images/gray_jean.png +0 -0
  78. data/public/images/info_white.png +0 -0
  79. data/public/images/ist_logo.png +0 -0
  80. data/public/images/nestec.jpg +0 -0
  81. data/public/images/ot_logo.png +0 -0
  82. data/public/images/wait30trans.gif +0 -0
  83. data/public/javascripts/bootstrap.min.js +7 -0
  84. data/public/javascripts/jquery-1.11.2.min.js +4 -0
  85. data/public/javascripts/jquery-1.8.3.min.js +2 -0
  86. data/public/javascripts/jquery-ui-1.10.3.custom.min.js +6 -0
  87. data/public/javascripts/jquery.bpopup.min.js +7 -0
  88. data/public/javascripts/jquery.tablesorter.min.js +2 -0
  89. data/public/javascripts/jquery.tablesorter.widgets.js +2678 -0
  90. data/public/javascripts/jquery.tools.min.js +5 -0
  91. data/public/javascripts/lazar-gui.js +11 -0
  92. data/public/jsme/057C029061D565E59B91BCF8D80FA08E.cache.html +651 -0
  93. data/public/jsme/05B63F17C4ECC632F0004998FE93F0D9.cache.png +0 -0
  94. data/public/jsme/0D71BA88E8DB59E613D3BD042277F3CA.cache.html +636 -0
  95. data/public/jsme/143B86F220A77EA4A06DF2CE62EF455A.cache.html +636 -0
  96. data/public/jsme/1AFB129BECD672F835F8C27B14A9D8F2.cache.html +619 -0
  97. data/public/jsme/20865588BA1E58170CC8C13CEAD50C3C.cache.html +615 -0
  98. data/public/jsme/20B12D7884BFE17E1879B157A966B4D0.cache.html +631 -0
  99. data/public/jsme/222DCE3CD01E8F29C3D81A37CE3EC2B8.cache.html +626 -0
  100. data/public/jsme/230043C4988F4EECEF225437640D792F.cache.html +625 -0
  101. data/public/jsme/3014E46F5C6FB35E6CF0D7870071174B.cache.html +615 -0
  102. data/public/jsme/396F806CD63ABD414BFBB9D57429F05B.cache.png +0 -0
  103. data/public/jsme/3F57AECC67986E796A3148265F038FF1.cache.html +639 -0
  104. data/public/jsme/40BAF81124143A595056A9CCA0E9DBBA.cache.png +0 -0
  105. data/public/jsme/469A5B5AE16905A2CD712E25B9517A14.cache.html +644 -0
  106. data/public/jsme/4722AB194B521805C997130865A7EE3D.cache.html +638 -0
  107. data/public/jsme/4841BDE9DC293BA35F7762B4D8EFD236.cache.png +0 -0
  108. data/public/jsme/497588C27DED1A6E8FE1E0AB8417B414.cache.html +626 -0
  109. data/public/jsme/571D27D70DEF8240841DA5CAFC363CFF.cache.html +619 -0
  110. data/public/jsme/5F7FD5A5750634DF9F5480F2778D9CD7.cache.html +651 -0
  111. data/public/jsme/6187B195CC6073B1DB0A30F6CD64ACA3.cache.html +620 -0
  112. data/public/jsme/6DED0C7A48F0BB72DDB1FDE5C05E60B5.cache.html +642 -0
  113. data/public/jsme/73F66F1A578E65144682885B3DC28556.cache.html +620 -0
  114. data/public/jsme/76252DEA9FB0A670947525C4C89E2530.cache.html +657 -0
  115. data/public/jsme/84DE2DAB8AD49C4E122A548C4B072500.cache.html +625 -0
  116. data/public/jsme/98150D1CD230B36339E35812F0BD3D0E.cache.html +629 -0
  117. data/public/jsme/9BA3A5A02DFF97BADFD3F9FE3817341B.cache.html +636 -0
  118. data/public/jsme/9D58CD61900096C805154C0AC693DCE7.cache.html +639 -0
  119. data/public/jsme/A3D2B7C95C4FC47DB0996CBDF930EA17.cache.html +657 -0
  120. data/public/jsme/A6DF9CFFF55769DE62DA6868C558B3F2.cache.html +629 -0
  121. data/public/jsme/B70D7DA2E93A6B0FB7E5BC15540F7B15.cache.html +645 -0
  122. data/public/jsme/DF7764EEC1903CD03C9545B354D8D8E4.cache.png +0 -0
  123. data/public/jsme/E07214401017B41AF0BDAB1EB811CC83.cache.html +645 -0
  124. data/public/jsme/E45DF2A61DB551567FA3454B1A00412D.cache.html +631 -0
  125. data/public/jsme/E97CDFD075EEB4D0578A219C5564A988.cache.html +642 -0
  126. data/public/jsme/EBCDA5C12B4318C17A4741474FB9D7CA.cache.html +643 -0
  127. data/public/jsme/clear.cache.gif +0 -0
  128. data/public/jsme/gwt/chrome/chrome.css +1155 -0
  129. data/public/jsme/gwt/chrome/chrome_rtl.css +1155 -0
  130. data/public/jsme/gwt/chrome/images/button/menu-button-arrow-disabled.png +0 -0
  131. data/public/jsme/gwt/chrome/images/button/menu-button-arrow.png +0 -0
  132. data/public/jsme/gwt/chrome/images/button/split-button-arrow-active.png +0 -0
  133. data/public/jsme/gwt/chrome/images/button/split-button-arrow-disabled.png +0 -0
  134. data/public/jsme/gwt/chrome/images/button/split-button-arrow-focus.png +0 -0
  135. data/public/jsme/gwt/chrome/images/button/split-button-arrow-hover.png +0 -0
  136. data/public/jsme/gwt/chrome/images/button/split-button-arrow.png +0 -0
  137. data/public/jsme/gwt/chrome/images/combobox/arrow-down-disabled.png +0 -0
  138. data/public/jsme/gwt/chrome/images/combobox/arrow-down.png +0 -0
  139. data/public/jsme/gwt/chrome/images/combobox/ellipsis-disabled.png +0 -0
  140. data/public/jsme/gwt/chrome/images/combobox/ellipsis.png +0 -0
  141. data/public/jsme/gwt/chrome/images/corner.png +0 -0
  142. data/public/jsme/gwt/chrome/images/corner_ie6.png +0 -0
  143. data/public/jsme/gwt/chrome/images/fastree/selectionBar.gif +0 -0
  144. data/public/jsme/gwt/chrome/images/fastree/treeClosed.gif +0 -0
  145. data/public/jsme/gwt/chrome/images/fastree/treeLoading.gif +0 -0
  146. data/public/jsme/gwt/chrome/images/fastree/treeOpen.gif +0 -0
  147. data/public/jsme/gwt/chrome/images/glasspanel/blue_ridge.png +0 -0
  148. data/public/jsme/gwt/chrome/images/hborder.png +0 -0
  149. data/public/jsme/gwt/chrome/images/hborder_ie6.png +0 -0
  150. data/public/jsme/gwt/chrome/images/ie6/corner_dialog_topleft.png +0 -0
  151. data/public/jsme/gwt/chrome/images/ie6/corner_dialog_topright.png +0 -0
  152. data/public/jsme/gwt/chrome/images/ie6/hborder_blue_shadow.png +0 -0
  153. data/public/jsme/gwt/chrome/images/ie6/hborder_gray_shadow.png +0 -0
  154. data/public/jsme/gwt/chrome/images/ie6/vborder_blue_shadow.png +0 -0
  155. data/public/jsme/gwt/chrome/images/ie6/vborder_gray_shadow.png +0 -0
  156. data/public/jsme/gwt/chrome/images/scrolltable/bg_header_gradient.gif +0 -0
  157. data/public/jsme/gwt/chrome/images/splitPanelThumb.png +0 -0
  158. data/public/jsme/gwt/chrome/images/valuespinner/bg_textbox.png +0 -0
  159. data/public/jsme/gwt/chrome/images/vborder.png +0 -0
  160. data/public/jsme/gwt/chrome/images/vborder_ie6.png +0 -0
  161. data/public/jsme/gwt/chrome/mosaic.css +1252 -0
  162. data/public/jsme/gwt/chrome/mosaic_rtl.css +1252 -0
  163. data/public/jsme/hosted.html +365 -0
  164. data/public/jsme/jsa.css +175 -0
  165. data/public/jsme/jsme.nocache.js +18 -0
  166. data/public/rect.png +0 -0
  167. data/public/stylesheets/jquery-ui.css +1186 -0
  168. data/test/lazarweb.rb +193 -0
  169. data/test/setup.rb +7 -0
  170. data/unicorn.rb +7 -0
  171. data/views/batch.haml +58 -0
  172. data/views/details.haml +24 -0
  173. data/views/error.haml +8 -0
  174. data/views/faq.haml +2 -0
  175. data/views/faq_layout.haml +67 -0
  176. data/views/info.haml +2 -0
  177. data/views/jme_help.html +197 -0
  178. data/views/js_link.haml +5 -0
  179. data/views/layout.haml +113 -0
  180. data/views/model_details.haml +117 -0
  181. data/views/neighbors.haml +104 -0
  182. data/views/predict.haml +175 -0
  183. data/views/prediction.haml +84 -0
  184. data/views/significant_fragments.haml +66 -0
  185. data/views/style.scss +70 -0
  186. data/views/validation.haml +16 -0
  187. metadata +373 -0
@@ -0,0 +1,84 @@
1
+ :javascript
2
+ $(document).ready(function(){
3
+ $('[data-toggle="popover"]').popover();
4
+ $('.modal').on('hidden.bs.modal', function () {
5
+ $(this).removeData('bs.modal');
6
+ });
7
+ });
8
+ %div.well
9
+ %a.btn.btn-warning{:href => to('/predict')}
10
+ %i.glyphicon.glyphicon-menu-left
11
+ New Prediction
12
+ / displays all prediction result in first table
13
+ %h3 Prediction Results:
14
+ %div.table-responsive
15
+ %table.table.table-bordered{:id=>"overview"}
16
+ %tbody
17
+ %tr
18
+ %td{:id=>"compound", :style=>"vertical-align:top;"}
19
+ %p= @compound.svg
20
+ %p= @compound.smiles
21
+ - mw = @compound.molecular_weight
22
+ - @model_types = {}
23
+ - @dbhit = {}
24
+ - @predictions.each_with_index do |prediction,i|
25
+ - type = @models[i].model.class.to_s.match("Classification") ? "Classification" : "Regression"
26
+ - @model_types[i] = type
27
+ - unit = @models[i].unit
28
+ %td{:style=>"vertical-align:top;white-space:nowrap;"}
29
+ %b{:class => "title"}
30
+ = "#{@models[i].endpoint.gsub('_', ' ')} (#{@models[i].species})"
31
+ %p
32
+ - if prediction[:confidence] == "measured"
33
+ - @dbhit[i] = true
34
+ %p
35
+ %b Measured activity:
36
+ - p prediction[:value]
37
+ - if prediction[:value].is_a?(Array)
38
+ = (type == "Regression") ? prediction[:value].collect{|v| weight = Compound.from_smiles(@compound.smiles).mmol_to_mg(v); '%.2e' % v + " (#{unit})"+", #{'%.2e' % weight} #{unit == "mmol/L" ? "(mg/L)" : "(mg/kg_bw/day)"}"}.join("</br>") : prediction[:value].join(", ")
39
+ - else
40
+ = (type == "Regression") ? "#{"%.2e" % prediction[:value]} (#{unit}), #{'%.2e' % @compound.mmol_to_mg(prediction[:value])} #{(unit == "mmol/L") ? "(mg/L)" : "(mg/kg_bw/day)"}" : prediction[:value]
41
+ %p
42
+ %b Compound is part of the training dataset
43
+ - elsif prediction[:neighbors].size > 0
44
+ %p
45
+ / model type (classification|regression)
46
+ %b Type:
47
+ = type
48
+ %br
49
+ %b Prediction:
50
+ = (type == "Regression") ? "#{'%.2e' % prediction[:value]} (#{unit}) , #{'%.2e' % @compound.mmol_to_mg(prediction[:value])} #{(unit == "mmol/L") ? "(mg/L)" : "(mg/kg_bw/day)"}" : prediction[:value]
51
+ / tabindex=0 seems the best fix for FF|S browsers on OSX better than trigger="click focus" which ends up in double click for FF.
52
+ / prediction popover
53
+ %a.btn.glyphicon.glyphicon-info-sign{:href=>"#", :title=>"Prediction", :tabindex=>"0", data: {trigger:"focus", toggle:"popover", placement:"left", html:"true", content:"<p>lazar searches the training dataset for similar compounds (neighbors) and calculates the prediction from their experimental activities.<p><b>Classification:</b></br>Majority vote of neighbor activities weighted by similarity.<p><b>Regression:</b></br>Prediction from a local partial least squares regression model with neighbor activities weighted by similarity.<p><a href=\"http://www.frontiersin.org/Journal/10.3389/fphar.2013.00038/abstract\", target=\"_blank\"> Original publication</a>."}}
54
+ %br
55
+ - if type == "Regression"
56
+ %b 95% Prediction interval:
57
+ - interval = prediction[:prediction_interval].nil? ? " - - " : prediction[:prediction_interval].collect{|i| i.round(2)}
58
+ %br
59
+ = "#{interval[0]} - #{interval[1]} (#{unit}), #{'%.2e' % @compound.mmol_to_mg(interval[0])} - #{'%.2e' % @compound.mmol_to_mg(interval[1])} #{(unit == "mmol/L") ? "(mg/L)" : "(mg/kg_bw/day)"}"
60
+ / prediction intervall popover
61
+ %a.btn.glyphicon.glyphicon-info-sign{:href=>"#", :title=>"Prediction intervall", :tabindex=>"0", data: {trigger:"focus", toggle:"popover", placement:"left", html:"true", content:"An estimate of prediction uncertainty. The \"real\" value should be with 95% probability within the prediction interval."}}
62
+ - else
63
+ %b Confidence:
64
+ = prediction[:confidence].round(2) unless prediction[:confidence].nil?
65
+ / confidence popover
66
+ %a.btn.glyphicon.glyphicon-info-sign{:href=>"#", :title=>"Confidence", :tabindex=>"0", data: {trigger:"focus", toggle:"popover", placement:"left", html:"true", content:"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 distinguish between reliable and unreliable predictions."}}
67
+ %p
68
+ /TODO add tooltip for significant ftagments and descriptors
69
+ / - if @model_type[i] =~ /classification/i && (p.data_entries[0][1] != nil && p.data_entries[0][1] != 0.0)
70
+ / Significant fragments:
71
+ / %a.btn.btn-default.btn-sm{:id=>"linkSigFragments", :href => "#detailsTop", :tabindex=>"0", data: { toggle: "modal", remote: to("/prediction/#{CGI.escape(@model_uri)}/#{@model_type[i]}/#{CGI.escape(@compound.uri)}/fingerprints")}} Significant fragments
72
+ / - if @model_type[i] =~ /regression/i && (p.data_entries[0][1] != nil && p.data_entries[0][1] != 0.0)
73
+ / Descriptors
74
+ / %a.btn.btn-default.btn-sm{:id=>"linkDescriptors", :href => "#detailsTop", :tabindex=>"0", data: { toggle: "modal", remote: to("/prediction/#{CGI.escape(@model_uri)}/#{@model_type[i]}/#{CGI.escape(@compound.uri)}/fingerprints")}} Descriptors
75
+ / %p
76
+ %p
77
+ - else
78
+ - @dbhit[i] = false
79
+ %p
80
+ = "Not enough similar compounds </br>in training dataset."
81
+
82
+ / always show the neighbors table, message is given there
83
+ = haml :neighbors, :layout => false, :model_type => @model_types, :dbhit => @dbhit
84
+
@@ -0,0 +1,66 @@
1
+ %div.modal-body{:style=>"padding:10px;"}
2
+ %button.close{ :type=>" button", data: { dismiss:"modal"}} &times;
3
+ - if @type =~ /classification/i
4
+ %div.row
5
+ %div.col-md-4
6
+ %h3{:style=>"margin-left:8px;"}
7
+ Significant fragments:
8
+ %img{:src=>"#{@compound.uri}/image", :alt=>"#{@compound.smiles}", :title=>"#{@compound.smiles}", :width=>"300px", :heigth=>"300px"}
9
+ - if !@significant_fragments.empty?
10
+ %div.col-md-8
11
+ %table{:id => "sf"}
12
+ %tr
13
+ / @value_map => hash; interpret the effect
14
+ %th{:style=>"border:2px solid #E6E6E6;"}
15
+ Predominantly in compounds with activity "inactive"
16
+ %th{:style=>"border:2px solid #E6E6E6;"}
17
+ p value
18
+ - @significant_fragments.each do |fragments|
19
+ / fragments == [effect, smarts, pValue]
20
+ / fragments[0] = effect
21
+ /- $logger.debug "effect:\t#{fragments[0]}\n"
22
+ - if fragments[0] == @value_map.index("inactive")
23
+ %tr
24
+ %td
25
+ / fragments[1] = smarts
26
+ = fragments[1]
27
+ -#%img{:src => "http://smartsview.de/smartsview/auto/png/1/both/#{CGI.escape(fragments[1])}", :class => "smarts"}
28
+ %td
29
+ /fragments[2] = pValue
30
+ = fragments[2]
31
+ %tr
32
+ %th{:style=>"border:2px solid #E6E6E6;"}
33
+ Predominantly in compounds with activity "active"
34
+ %th{:style=>"border:2px solid #E6E6E6;"}
35
+ p value
36
+ - @significant_fragments.each do |fragments|
37
+ / fragments == [effect, smarts, pValue]
38
+ - if fragments[0] == @value_map.index("active")
39
+ %tr
40
+ %td
41
+ -#%img{:src => "http://smartsview.de/smartsview/auto/png/1/both/#{CGI.escape(fragments[1])}", :class => "smarts"}
42
+ = fragments[1]
43
+ %td
44
+ = fragments[2]
45
+ %br
46
+ - if @type =~ /regression/i
47
+ %div.row
48
+ %div.col-md-4
49
+ %h3
50
+ Descriptors:
51
+ %img{:src=>"#{@compound.uri}/image", :alt=>"#{@compound.smiles}", :title=>"#{@compound.smiles}", :width=>"300px", :heigth=>"300px"}
52
+ - if !@significant_fragments.empty?
53
+ %div.col-md-8
54
+ %table{:id =>"de"}
55
+ %tr
56
+ %th{:style=>"border:2px solid #E6E6E6;"}
57
+ Descriptor
58
+ %th{:style=>"border:2px solid #E6E6E6;"}
59
+ value
60
+ - @significant_fragments.each do |fragments|
61
+ %tr
62
+ %td
63
+ = fragments[0]
64
+ %td
65
+ = fragments[1][0].round(3)
66
+ %br
data/views/style.scss ADDED
@@ -0,0 +1,70 @@
1
+ body {
2
+ background-color:#E7E7E7;
3
+ }
4
+ table.table-borderless tbody tr td{
5
+ border-top: none;
6
+ }
7
+ h4.head-back, h5.head-back{
8
+ background-color: #E7E7E7;
9
+ }
10
+ .nav-tabs {
11
+ background-color: #E7E7E7;
12
+ margin-bottom: 0;
13
+
14
+ li.active a:hover {
15
+ background-color: #f5f5f5;
16
+ }
17
+
18
+ li a {
19
+ height: 5em;
20
+ }
21
+ }
22
+ img {
23
+ max-width: 100%;
24
+ max-height: 100%;
25
+ }
26
+
27
+ .plot {
28
+ height: 300px;
29
+ width: 300px;
30
+ }
31
+ .faq {
32
+ text-align: block;
33
+ margin-left:15%;
34
+ margin-right:15%;
35
+ margin-top:2%;
36
+ }
37
+ .faq h1 {
38
+ text-align: center;
39
+ }
40
+ .tablesorter-bootstrap thead .sorter-false {
41
+ cursor: default;
42
+ }
43
+ ul.share-buttons{
44
+ list-style: none;
45
+ }
46
+ .dropdown-menu {
47
+ min-width: 0px !important;
48
+ width:60px;
49
+ }
50
+ .dropdown-menu a {
51
+ padding: 0 2px 1px 2px !important;
52
+ }
53
+ .page-header{
54
+ margin:20px 0 20px;
55
+ text-align:justify;
56
+ display:inline-block;
57
+ width:98.5%;
58
+ }
59
+ .share{
60
+ width: 30px;
61
+ padding-right: 5px;
62
+ }
63
+ supporters{
64
+ background-color: white;
65
+
66
+ img{
67
+ width: 200px;
68
+ margin-right: 1em;
69
+ }
70
+ }
@@ -0,0 +1,16 @@
1
+ - case @model_type
2
+ - when "classification"
3
+ - prediction = @cv.metadata["http://www.opentox.org/api/1.2#classificationStatistics"]["http://www.opentox.org/api/1.2#numCorrect"] + @cv.metadata["http://www.opentox.org/api/1.2#classificationStatistics"]["http://www.opentox.org/api/1.2#numIncorrect"]
4
+ %p= "Number of predictions: #{prediction}"
5
+ - percent = @cv.metadata["http://www.opentox.org/api/1.2#classificationStatistics"]["http://www.opentox.org/api/1.2#percentCorrect"]
6
+ %p= "Correct predictions: #{percent.round(2)} %"
7
+ - when "regression"
8
+ - prediction = @cv.metadata["http://www.opentox.org/api/1.2#numInstances"].to_i - @cv.metadata["http://www.opentox.org/api/1.2#numUnpredicted"].to_i
9
+ %p= "Number of predictions: #{prediction}"
10
+ - rSquare = @cv.metadata["http://www.opentox.org/api/1.2#regressionStatistics"]["http://www.opentox.org/api/1.2#rSquare"]
11
+ %p= "R-squared: #{rSquare.round(2)} %"
12
+ - rootMeanSquaredError = @cv.metadata["http://www.opentox.org/api/1.2#regressionStatistics"]["http://www.opentox.org/api/1.2#rootMeanSquaredError"]
13
+ %p= "Root Mean Square Error: #{rootMeanSquaredError.round(2)} %"
14
+ - meanAbsoluteError = @cv.metadata["http://www.opentox.org/api/1.2#regressionStatistics"]["http://www.opentox.org/api/1.2#meanAbsoluteError"]
15
+ %p= "Mean Absolute Error: #{meanAbsoluteError.round(2)} %"
16
+
metadata ADDED
@@ -0,0 +1,373 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lazar-gui
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Christoph Helma
8
+ - Denis Gebele
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2016-06-08 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: lazar
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: 0.9.3
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.9.3
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - "~>"
29
+ - !ruby/object:Gem::Version
30
+ version: 0.9.3
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.9.3
34
+ - !ruby/object:Gem::Dependency
35
+ name: gem-path
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.6.1
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.6.1
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: 0.6.1
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 0.6.1
54
+ - !ruby/object:Gem::Dependency
55
+ name: sinatra
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 1.4.0
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 1.4.0
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: 1.4.0
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 1.4.0
74
+ - !ruby/object:Gem::Dependency
75
+ name: rdiscount
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: 2.1.0
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 2.1.0
84
+ type: :runtime
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: 2.1.0
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: 2.1.0
94
+ - !ruby/object:Gem::Dependency
95
+ name: haml
96
+ requirement: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: 4.0.0
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: 4.0.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 4.0.0
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: 4.0.0
114
+ - !ruby/object:Gem::Dependency
115
+ name: sass
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: 3.4.0
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: 3.4.0
124
+ type: :runtime
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: 3.4.0
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: 3.4.0
134
+ - !ruby/object:Gem::Dependency
135
+ name: unicorn
136
+ requirement: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: 5.1.0
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: 5.1.0
144
+ type: :runtime
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - "~>"
149
+ - !ruby/object:Gem::Version
150
+ version: 5.1.0
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: 5.1.0
154
+ description: Graphical User Interface for Lazar Toxicology Predictions
155
+ email:
156
+ - helma@in-silico.ch
157
+ - gebele@in-silico.ch
158
+ executables:
159
+ - lazar-start
160
+ - lazar-stop
161
+ extensions: []
162
+ extra_rdoc_files: []
163
+ files:
164
+ - ".gitignore"
165
+ - FAQ.md
166
+ - Gemfile
167
+ - README.md
168
+ - VERSION
169
+ - application.rb
170
+ - bin/lazar-start
171
+ - bin/lazar-start.sh
172
+ - bin/lazar-stop
173
+ - bin/lazar-stop.sh
174
+ - config.ru
175
+ - helper.rb
176
+ - lazar-gui.gemspec
177
+ - public/css/bootstrap-theme.min.css
178
+ - public/css/bootstrap.min.css
179
+ - public/css/images/black-asc.gif
180
+ - public/css/images/black-desc.gif
181
+ - public/css/images/black-unsorted.gif
182
+ - public/css/images/bootstrap-black-unsorted.png
183
+ - public/css/images/bootstrap-white-unsorted.png
184
+ - public/css/images/dragtable-handle.png
185
+ - public/css/images/dragtable-handle.svg
186
+ - public/css/images/dropbox-asc-hovered.png
187
+ - public/css/images/dropbox-asc.png
188
+ - public/css/images/dropbox-desc-hovered.png
189
+ - public/css/images/dropbox-desc.png
190
+ - public/css/images/first.png
191
+ - public/css/images/green-asc.gif
192
+ - public/css/images/green-desc.gif
193
+ - public/css/images/green-header.gif
194
+ - public/css/images/green-unsorted.gif
195
+ - public/css/images/ice-asc.gif
196
+ - public/css/images/ice-desc.gif
197
+ - public/css/images/ice-unsorted.gif
198
+ - public/css/images/last.png
199
+ - public/css/images/loading.gif
200
+ - public/css/images/metro-black-asc.png
201
+ - public/css/images/metro-black-desc.png
202
+ - public/css/images/metro-loading.gif
203
+ - public/css/images/metro-unsorted.png
204
+ - public/css/images/metro-white-asc.png
205
+ - public/css/images/metro-white-desc.png
206
+ - public/css/images/next.png
207
+ - public/css/images/prev.png
208
+ - public/css/images/white-asc.gif
209
+ - public/css/images/white-desc.gif
210
+ - public/css/images/white-unsorted.gif
211
+ - public/css/jquery-ui.css
212
+ - public/css/jquery-ui.theme.min.css
213
+ - public/css/theme.bootstrap.css
214
+ - public/css/theme.bootstrap.min.css
215
+ - public/css/theme.default.min.css
216
+ - public/fonts/glyphicons-halflings-regular.eot
217
+ - public/fonts/glyphicons-halflings-regular.svg
218
+ - public/fonts/glyphicons-halflings-regular.ttf
219
+ - public/fonts/glyphicons-halflings-regular.woff
220
+ - public/fonts/glyphicons-halflings-regular.woff2
221
+ - public/images/Email.png
222
+ - public/images/Facebook.png
223
+ - public/images/Google+.png
224
+ - public/images/IST_logo_s.png
225
+ - public/images/LinkedIn.png
226
+ - public/images/OpenToxEuro2013_small.png
227
+ - public/images/Twitter.png
228
+ - public/images/arrow_down_float.png
229
+ - public/images/arrow_left_float.png
230
+ - public/images/arrow_right_float.png
231
+ - public/images/arrow_up_float.png
232
+ - public/images/asc.gif
233
+ - public/images/bfr_logo.gif
234
+ - public/images/bg.gif
235
+ - public/images/blind.png
236
+ - public/images/desc.gif
237
+ - public/images/enm_logo.png
238
+ - public/images/favicon.ico
239
+ - public/images/gray_jean.png
240
+ - public/images/info_white.png
241
+ - public/images/ist_logo.png
242
+ - public/images/nestec.jpg
243
+ - public/images/ot_logo.png
244
+ - public/images/wait30trans.gif
245
+ - public/javascripts/bootstrap.min.js
246
+ - public/javascripts/jquery-1.11.2.min.js
247
+ - public/javascripts/jquery-1.8.3.min.js
248
+ - public/javascripts/jquery-ui-1.10.3.custom.min.js
249
+ - public/javascripts/jquery.bpopup.min.js
250
+ - public/javascripts/jquery.tablesorter.min.js
251
+ - public/javascripts/jquery.tablesorter.widgets.js
252
+ - public/javascripts/jquery.tools.min.js
253
+ - public/javascripts/lazar-gui.js
254
+ - public/jsme/057C029061D565E59B91BCF8D80FA08E.cache.html
255
+ - public/jsme/05B63F17C4ECC632F0004998FE93F0D9.cache.png
256
+ - public/jsme/0D71BA88E8DB59E613D3BD042277F3CA.cache.html
257
+ - public/jsme/143B86F220A77EA4A06DF2CE62EF455A.cache.html
258
+ - public/jsme/1AFB129BECD672F835F8C27B14A9D8F2.cache.html
259
+ - public/jsme/20865588BA1E58170CC8C13CEAD50C3C.cache.html
260
+ - public/jsme/20B12D7884BFE17E1879B157A966B4D0.cache.html
261
+ - public/jsme/222DCE3CD01E8F29C3D81A37CE3EC2B8.cache.html
262
+ - public/jsme/230043C4988F4EECEF225437640D792F.cache.html
263
+ - public/jsme/3014E46F5C6FB35E6CF0D7870071174B.cache.html
264
+ - public/jsme/396F806CD63ABD414BFBB9D57429F05B.cache.png
265
+ - public/jsme/3F57AECC67986E796A3148265F038FF1.cache.html
266
+ - public/jsme/40BAF81124143A595056A9CCA0E9DBBA.cache.png
267
+ - public/jsme/469A5B5AE16905A2CD712E25B9517A14.cache.html
268
+ - public/jsme/4722AB194B521805C997130865A7EE3D.cache.html
269
+ - public/jsme/4841BDE9DC293BA35F7762B4D8EFD236.cache.png
270
+ - public/jsme/497588C27DED1A6E8FE1E0AB8417B414.cache.html
271
+ - public/jsme/571D27D70DEF8240841DA5CAFC363CFF.cache.html
272
+ - public/jsme/5F7FD5A5750634DF9F5480F2778D9CD7.cache.html
273
+ - public/jsme/6187B195CC6073B1DB0A30F6CD64ACA3.cache.html
274
+ - public/jsme/6DED0C7A48F0BB72DDB1FDE5C05E60B5.cache.html
275
+ - public/jsme/73F66F1A578E65144682885B3DC28556.cache.html
276
+ - public/jsme/76252DEA9FB0A670947525C4C89E2530.cache.html
277
+ - public/jsme/84DE2DAB8AD49C4E122A548C4B072500.cache.html
278
+ - public/jsme/98150D1CD230B36339E35812F0BD3D0E.cache.html
279
+ - public/jsme/9BA3A5A02DFF97BADFD3F9FE3817341B.cache.html
280
+ - public/jsme/9D58CD61900096C805154C0AC693DCE7.cache.html
281
+ - public/jsme/A3D2B7C95C4FC47DB0996CBDF930EA17.cache.html
282
+ - public/jsme/A6DF9CFFF55769DE62DA6868C558B3F2.cache.html
283
+ - public/jsme/B70D7DA2E93A6B0FB7E5BC15540F7B15.cache.html
284
+ - public/jsme/DF7764EEC1903CD03C9545B354D8D8E4.cache.png
285
+ - public/jsme/E07214401017B41AF0BDAB1EB811CC83.cache.html
286
+ - public/jsme/E45DF2A61DB551567FA3454B1A00412D.cache.html
287
+ - public/jsme/E97CDFD075EEB4D0578A219C5564A988.cache.html
288
+ - public/jsme/EBCDA5C12B4318C17A4741474FB9D7CA.cache.html
289
+ - public/jsme/clear.cache.gif
290
+ - public/jsme/gwt/chrome/chrome.css
291
+ - public/jsme/gwt/chrome/chrome_rtl.css
292
+ - public/jsme/gwt/chrome/images/button/menu-button-arrow-disabled.png
293
+ - public/jsme/gwt/chrome/images/button/menu-button-arrow.png
294
+ - public/jsme/gwt/chrome/images/button/split-button-arrow-active.png
295
+ - public/jsme/gwt/chrome/images/button/split-button-arrow-disabled.png
296
+ - public/jsme/gwt/chrome/images/button/split-button-arrow-focus.png
297
+ - public/jsme/gwt/chrome/images/button/split-button-arrow-hover.png
298
+ - public/jsme/gwt/chrome/images/button/split-button-arrow.png
299
+ - public/jsme/gwt/chrome/images/combobox/arrow-down-disabled.png
300
+ - public/jsme/gwt/chrome/images/combobox/arrow-down.png
301
+ - public/jsme/gwt/chrome/images/combobox/ellipsis-disabled.png
302
+ - public/jsme/gwt/chrome/images/combobox/ellipsis.png
303
+ - public/jsme/gwt/chrome/images/corner.png
304
+ - public/jsme/gwt/chrome/images/corner_ie6.png
305
+ - public/jsme/gwt/chrome/images/fastree/selectionBar.gif
306
+ - public/jsme/gwt/chrome/images/fastree/treeClosed.gif
307
+ - public/jsme/gwt/chrome/images/fastree/treeLoading.gif
308
+ - public/jsme/gwt/chrome/images/fastree/treeOpen.gif
309
+ - public/jsme/gwt/chrome/images/glasspanel/blue_ridge.png
310
+ - public/jsme/gwt/chrome/images/hborder.png
311
+ - public/jsme/gwt/chrome/images/hborder_ie6.png
312
+ - public/jsme/gwt/chrome/images/ie6/corner_dialog_topleft.png
313
+ - public/jsme/gwt/chrome/images/ie6/corner_dialog_topright.png
314
+ - public/jsme/gwt/chrome/images/ie6/hborder_blue_shadow.png
315
+ - public/jsme/gwt/chrome/images/ie6/hborder_gray_shadow.png
316
+ - public/jsme/gwt/chrome/images/ie6/vborder_blue_shadow.png
317
+ - public/jsme/gwt/chrome/images/ie6/vborder_gray_shadow.png
318
+ - public/jsme/gwt/chrome/images/scrolltable/bg_header_gradient.gif
319
+ - public/jsme/gwt/chrome/images/splitPanelThumb.png
320
+ - public/jsme/gwt/chrome/images/valuespinner/bg_textbox.png
321
+ - public/jsme/gwt/chrome/images/vborder.png
322
+ - public/jsme/gwt/chrome/images/vborder_ie6.png
323
+ - public/jsme/gwt/chrome/mosaic.css
324
+ - public/jsme/gwt/chrome/mosaic_rtl.css
325
+ - public/jsme/hosted.html
326
+ - public/jsme/jsa.css
327
+ - public/jsme/jsme.nocache.js
328
+ - public/rect.png
329
+ - public/stylesheets/jquery-ui.css
330
+ - test/lazarweb.rb
331
+ - test/setup.rb
332
+ - unicorn.rb
333
+ - views/batch.haml
334
+ - views/details.haml
335
+ - views/error.haml
336
+ - views/faq.haml
337
+ - views/faq_layout.haml
338
+ - views/info.haml
339
+ - views/jme_help.html
340
+ - views/js_link.haml
341
+ - views/layout.haml
342
+ - views/model_details.haml
343
+ - views/neighbors.haml
344
+ - views/predict.haml
345
+ - views/prediction.haml
346
+ - views/significant_fragments.haml
347
+ - views/style.scss
348
+ - views/validation.haml
349
+ homepage: http://github.com/opentox/lazar-gui
350
+ licenses:
351
+ - GPL-3.0
352
+ metadata: {}
353
+ post_install_message: "\n Service cmds:\n lazar-start &\n lazar-stop\n "
354
+ rdoc_options: []
355
+ require_paths:
356
+ - lib
357
+ required_ruby_version: !ruby/object:Gem::Requirement
358
+ requirements:
359
+ - - ">="
360
+ - !ruby/object:Gem::Version
361
+ version: '0'
362
+ required_rubygems_version: !ruby/object:Gem::Requirement
363
+ requirements:
364
+ - - ">="
365
+ - !ruby/object:Gem::Version
366
+ version: '0'
367
+ requirements: []
368
+ rubyforge_project: lazar-gui
369
+ rubygems_version: 2.5.1
370
+ signing_key:
371
+ specification_version: 4
372
+ summary: lazar-gui
373
+ test_files: []