lazar-gui 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []