determinations_comparison 1.0.2 → 2.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.
- data/Gemfile.lock +1 -1
- data/lib/determinations_comparison.rb +66 -41
- data/lib/determinations_comparison/version.rb +1 -1
- data/lib/jquery_accordian.rb +60 -0
- data/lib/jquery_tabs.rb +65 -0
- data/spec/determinations_comparison_spec.rb +4 -6
- metadata +4 -2
data/Gemfile.lock
CHANGED
@@ -7,6 +7,7 @@ require 'uuidtools'
|
|
7
7
|
require 'htmlentities/encoder'
|
8
8
|
require 'html_table_of_property_differences'
|
9
9
|
require 'html_table_of_peak_picking_log'
|
10
|
+
require 'jquery_tabs'
|
10
11
|
require 'exe_comparedeterminations'
|
11
12
|
|
12
13
|
LIB_FOLDER = File.dirname(__FILE__)
|
@@ -51,76 +52,99 @@ module DeterminationsComparison
|
|
51
52
|
baseline_filepath = File.join folderpath_output, "#{@uuid}_baseline.json"
|
52
53
|
undertest_filepath = File.join folderpath_output, "#{@uuid}_undertest.json"
|
53
54
|
|
54
|
-
@plotter = Exe_CompareDeterminations.new @filepath_baseline_origin, @filepath_undertest_origin, @filepath_comparedeterminations
|
55
|
-
|
56
55
|
# these are necessary for cpplogreader
|
57
56
|
@sample_index = hashCompoundBaseLine['Sample_Index']
|
58
57
|
@analyte_name = hashCompoundBaseLine['Analyte']
|
59
58
|
|
60
|
-
|
61
|
-
str = ""
|
62
|
-
arr = Array.new
|
63
|
-
|
64
59
|
begin
|
65
|
-
|
66
|
-
|
60
|
+
|
61
|
+
#coder = HTMLEntities.new
|
67
62
|
|
68
63
|
FileUtils.copy_file @filepath_baseline_origin, baseline_filepath
|
69
64
|
FileUtils.copy_file @filepath_undertest_origin, undertest_filepath
|
70
65
|
|
71
|
-
|
72
|
-
|
66
|
+
# html for file links
|
67
|
+
strFiles = "<p>baseline file: <a href=#{File.basename(baseline_filepath)}>#{File.basename(@filepath_baseline_origin)}</a></p>"
|
68
|
+
strFiles += "<p>undertest file: <a href=#{File.basename(undertest_filepath)}>#{File.basename(@filepath_undertest_origin)}</a></p>"
|
73
69
|
|
74
|
-
|
75
|
-
|
76
|
-
|
70
|
+
# html for plot
|
71
|
+
strPlot = nil
|
72
|
+
@plotter = Exe_CompareDeterminations.new @filepath_baseline_origin, @filepath_undertest_origin, @filepath_comparedeterminations
|
73
|
+
retcodePNG,rundetailsPNG = @plotter.generate_png png_filepath
|
74
|
+
if retcodePNG
|
75
|
+
strPlot = "<img src='#{File.basename(png_filepath)}' alt='chromatogram' height='500' width='800' align='top'>"
|
76
|
+
end
|
77
77
|
|
78
|
-
|
78
|
+
# html for peak picking logs
|
79
|
+
hashChromHTML = Hash.new
|
79
80
|
|
80
|
-
|
81
|
+
@hashDiffs.each_pair do |k,v|
|
81
82
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
83
|
+
chrom_type = k
|
84
|
+
|
85
|
+
ht = HTML_Table_of_Peak_Picking_Log.new(@folderpath_with_log,@sample_index,@analyte_name,k)
|
86
|
+
str_pp = ht.render
|
87
|
+
unless str_pp.nil?
|
88
|
+
|
89
|
+
peak_picked = "unknown"
|
90
|
+
arrPP = v.select { |h| h['peak_picked'] }
|
91
|
+
unless arrPP.empty?
|
92
|
+
peak_picked = "#{arrPP.first[0]} #{arrPP.first[1]}"
|
90
93
|
end
|
94
|
+
|
95
|
+
strChrom = "<p><b>#{chrom_type}</b> - #{peak_picked}</p>"
|
96
|
+
strChrom += str_pp
|
91
97
|
end
|
92
98
|
|
93
|
-
|
99
|
+
hashChromHTML[k] = strChrom
|
94
100
|
|
95
|
-
peak_picked = "unknown"
|
96
|
-
arrPP = v.select { |h| h['peak_picked'] }
|
97
|
-
unless arrPP.empty?
|
98
|
-
peak_picked = "#{arrPP.first[0]} #{arrPP.first[1]}"
|
99
101
|
end
|
100
102
|
|
101
|
-
|
102
|
-
|
103
|
+
# html for property differences
|
104
|
+
arr = Array.new
|
105
|
+
|
106
|
+
@hashDiffs.each_pair do |k,v|
|
107
|
+
|
108
|
+
chrom_type = k
|
109
|
+
|
110
|
+
v.each_pair do |k,v|
|
111
|
+
if k == 'peak'
|
112
|
+
v.each_pair do |k,v|
|
113
|
+
arr << property_diff_to_hash(chrom_type,k,v)
|
114
|
+
end
|
115
|
+
else
|
116
|
+
unless k == 'peak_picked'
|
117
|
+
arr << property_diff_to_hash(chrom_type,k,v)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
103
122
|
|
104
|
-
ht = HTML_Table_of_Peak_Picking_Log.new(@folderpath_with_log,@sample_index,@analyte_name,k)
|
105
|
-
str_pp = ht.render
|
106
|
-
unless str_pp.nil?
|
107
|
-
str += "<p><p>"
|
108
|
-
str += str_pp
|
109
|
-
str += "</p>"
|
110
123
|
end
|
111
124
|
|
112
|
-
|
125
|
+
strProps = nil
|
113
126
|
|
114
127
|
ht = HTML_Table_of_Property_Differences.new(arr)
|
115
128
|
str_p = ht.render
|
116
129
|
unless str_p.nil?
|
117
|
-
|
118
|
-
str += str_p
|
119
|
-
str += "</p>"
|
130
|
+
strProps = str_p
|
120
131
|
end
|
121
132
|
|
133
|
+
strFull = strFiles
|
134
|
+
strFull += strPlot unless strPlot.nil?
|
135
|
+
|
136
|
+
hashGroups = Hash.new
|
137
|
+
hashGroups['Properties'] = strProps
|
138
|
+
hashChromHTML.each_pair do |k,v|
|
139
|
+
hashGroups["Pick Log - #{k.to_s}"] = v
|
140
|
+
end
|
141
|
+
|
142
|
+
jt = Jquery_Tabs.new hashGroups
|
143
|
+
strFull += jt.render
|
144
|
+
|
145
|
+
|
122
146
|
File.open(html_filepath, "w") do |f|
|
123
|
-
f.write(
|
147
|
+
f.write(strFull)
|
124
148
|
end
|
125
149
|
|
126
150
|
retcode = true
|
@@ -146,6 +170,7 @@ module DeterminationsComparison
|
|
146
170
|
|
147
171
|
private
|
148
172
|
|
173
|
+
|
149
174
|
def categorize(hashPropertyThresholds)
|
150
175
|
|
151
176
|
hashCategory = Hash.new
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'erb'
|
2
|
+
require 'uuidtools'
|
3
|
+
require 'string'
|
4
|
+
|
5
|
+
class Jquery_Accordian
|
6
|
+
include ERB::Util
|
7
|
+
|
8
|
+
def initialize(hashGroups)
|
9
|
+
@hashGroups = hashGroups
|
10
|
+
@template = get_template
|
11
|
+
@div = UUIDTools::UUID.random_create
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
def render
|
16
|
+
unless @template.nil?
|
17
|
+
ERB.new(@template).result(binding)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def save(file)
|
22
|
+
File.open(file, "w+") do |f|
|
23
|
+
f.write(render)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def get_template()
|
30
|
+
%{
|
31
|
+
<html lang='en'>
|
32
|
+
<head>
|
33
|
+
<meta charset='utf-8'>
|
34
|
+
<link rel='stylesheet' href='http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css'>
|
35
|
+
<script src='http://code.jquery.com/jquery-1.9.1.js'></script>
|
36
|
+
<script src='http://code.jquery.com/ui/1.10.3/jquery-ui.js'></script>
|
37
|
+
</head>
|
38
|
+
<body>
|
39
|
+
|
40
|
+
<div id='accordion'>
|
41
|
+
<% @hashGroups.each do |k,v| %>
|
42
|
+
<h3> <%= k.to_s %> </h3>
|
43
|
+
<div>
|
44
|
+
<p> <%= v %> </p>
|
45
|
+
</div>
|
46
|
+
<% end %>
|
47
|
+
</div>
|
48
|
+
|
49
|
+
<script>
|
50
|
+
$( '#accordion' ).accordion();
|
51
|
+
</script>
|
52
|
+
|
53
|
+
</body>
|
54
|
+
</html>
|
55
|
+
}
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
data/lib/jquery_tabs.rb
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'erb'
|
2
|
+
require 'uuidtools'
|
3
|
+
require 'string'
|
4
|
+
|
5
|
+
class Jquery_Tabs
|
6
|
+
include ERB::Util
|
7
|
+
|
8
|
+
def initialize(hashGroups)
|
9
|
+
@hashGroups = hashGroups
|
10
|
+
@template = get_template
|
11
|
+
@div = UUIDTools::UUID.random_create
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
def render
|
16
|
+
unless @template.nil?
|
17
|
+
ERB.new(@template).result(binding)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def save(file)
|
22
|
+
File.open(file, "w+") do |f|
|
23
|
+
f.write(render)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def get_template()
|
30
|
+
%{
|
31
|
+
<html lang='en'>
|
32
|
+
<head>
|
33
|
+
<meta charset="utf-8">
|
34
|
+
<title>compute test results</title>
|
35
|
+
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
|
36
|
+
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
|
37
|
+
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
|
38
|
+
</head>
|
39
|
+
<body>
|
40
|
+
|
41
|
+
<div id="tabs">
|
42
|
+
<ul>
|
43
|
+
<% @hashGroups.each do |k,v| %>
|
44
|
+
<li><a href="#<%= k.gsub(' ','') %>"><span> <%= k %> </span></a></li>
|
45
|
+
<% end %>
|
46
|
+
</ul>
|
47
|
+
<% @hashGroups.each do |k,v| %>
|
48
|
+
<div id="<%= k.gsub(' ','') %>">
|
49
|
+
<%= v %>
|
50
|
+
</div>
|
51
|
+
<% end %>
|
52
|
+
</div>
|
53
|
+
|
54
|
+
<script>
|
55
|
+
$( "#tabs" ).tabs();
|
56
|
+
</script>
|
57
|
+
|
58
|
+
</body>
|
59
|
+
</html>
|
60
|
+
}
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
@@ -21,6 +21,10 @@ describe 'determinations_comparison' do
|
|
21
21
|
File.join('spec','support','data','test_batch_for_cpplogreader')
|
22
22
|
end
|
23
23
|
|
24
|
+
before :each do
|
25
|
+
FileUtils.rm(Dir.glob('bin/*'))
|
26
|
+
FileUtils.rm(Dir.glob('bin2/*'))
|
27
|
+
end
|
24
28
|
|
25
29
|
it 'should show differences as hash' do
|
26
30
|
comparison = DeterminationsComparison::Comparison.new( baseline_file, undertest_file, {:folderpath_output=>folderpath_output})
|
@@ -66,10 +70,4 @@ describe 'determinations_comparison' do
|
|
66
70
|
expect(Dir.glob('bin2/*').size).to_not eq(0)
|
67
71
|
end
|
68
72
|
|
69
|
-
after :each do
|
70
|
-
FileUtils.rm(Dir.glob('bin/*'))
|
71
|
-
FileUtils.rm(Dir.glob('bin2/*'))
|
72
|
-
end
|
73
|
-
|
74
|
-
|
75
73
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: determinations_comparison
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-07-
|
12
|
+
date: 2013-07-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -129,6 +129,8 @@ files:
|
|
129
129
|
- lib/html_table.rb
|
130
130
|
- lib/html_table_of_peak_picking_log.rb
|
131
131
|
- lib/html_table_of_property_differences.rb
|
132
|
+
- lib/jquery_accordian.rb
|
133
|
+
- lib/jquery_tabs.rb
|
132
134
|
- lib/string.rb
|
133
135
|
- lib/utilities.rb
|
134
136
|
- spec/determinations_comparison_spec.rb
|