seqtrimnext_report 0.0.2 → 0.0.3
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/History.txt +4 -0
- data/README.rdoc +1 -1
- data/bin/generate_report.rb +19 -7
- data/lib/seqtrimnext_report.rb +1 -1
- data/lib/seqtrimnext_report/classes/stats_report.rb +59 -28
- metadata +2 -2
data/History.txt
CHANGED
data/README.rdoc
CHANGED
@@ -27,7 +27,7 @@ gem install seqtrimnext_report
|
|
27
27
|
|
28
28
|
(The MIT License)
|
29
29
|
|
30
|
-
Copyright (c) 2011
|
30
|
+
Copyright (c) 2011 Noe Fernandez & Dario Guerrero
|
31
31
|
|
32
32
|
Permission is hereby granted, free of charge, to any person obtaining
|
33
33
|
a copy of this software and associated documentation files (the
|
data/bin/generate_report.rb
CHANGED
@@ -3,8 +3,10 @@
|
|
3
3
|
# Noe Fdez Pozo 2011-05-11. To build a PDF with latex parsing SeqTrimNext output files
|
4
4
|
|
5
5
|
#---------------------------------------------- para indicar donde estan las clases
|
6
|
-
ROOT_PATH=File.dirname(__FILE__)
|
7
|
-
# $: << File.expand_path(File.join(ROOT_PATH,
|
6
|
+
ROOT_PATH=File.dirname(File.dirname(__FILE__))
|
7
|
+
# $: << File.expand_path(File.join(ROOT_PATH, 'lib','seqtrimnext_report','classes'))
|
8
|
+
# $: << File.expand_path(File.join(ROOT_PATH, 'lib'))
|
9
|
+
|
8
10
|
# $: << '/Users/dariogf/progs/ruby/gems/seqtrimnext/lib'
|
9
11
|
|
10
12
|
#---------------------------------------------- gems
|
@@ -51,13 +53,13 @@ if !Dir.exists?(output_files)
|
|
51
53
|
end
|
52
54
|
|
53
55
|
if !File.exist?(File.join(output_files,'used_params.txt'))
|
54
|
-
puts "
|
56
|
+
puts "used_params.txt file not found.\n"
|
55
57
|
exit(-1)
|
56
58
|
elsif !File.exist?(File.join(output_files,'initial_stats.json'))
|
57
|
-
puts "
|
59
|
+
puts "initial_stats.json file not found.\n"
|
58
60
|
exit(-1)
|
59
61
|
elsif !File.exist?(File.join(output_files,'stats.json'))
|
60
|
-
puts "
|
62
|
+
puts "stats.json file not found.\n"
|
61
63
|
exit(-1)
|
62
64
|
end
|
63
65
|
|
@@ -76,6 +78,16 @@ begin
|
|
76
78
|
initial_stats = get_json_data(File.join(output_files,'initial_stats.json'))
|
77
79
|
stats = get_json_data(File.join(output_files,'stats.json'))
|
78
80
|
|
81
|
+
if (initial_stats.nil?)
|
82
|
+
puts "initial_stats.json info does not exist\n"
|
83
|
+
exit(-1)
|
84
|
+
end
|
85
|
+
|
86
|
+
if (stats.nil?)
|
87
|
+
puts "stats.json info does not exist\n"
|
88
|
+
exit(-1)
|
89
|
+
end
|
90
|
+
|
79
91
|
# load json configuration
|
80
92
|
plugin_fix_hash = get_json_data(File.join(File.dirname(__FILE__),'..','lib','seqtrimnext_report','config','plugin_seqs.json'))
|
81
93
|
plugin_nts_hash = get_json_data(File.join(File.dirname(__FILE__),'..','lib','seqtrimnext_report','config','plugin_nts.json'))
|
@@ -110,9 +122,9 @@ begin
|
|
110
122
|
`rm -r #{output_latex}`
|
111
123
|
end
|
112
124
|
|
113
|
-
rescue
|
125
|
+
# rescue
|
114
126
|
|
115
|
-
puts "
|
127
|
+
# puts "Output PDF couldn't be created for this dataset"
|
116
128
|
|
117
129
|
end
|
118
130
|
# system(cmd)
|
data/lib/seqtrimnext_report.rb
CHANGED
@@ -5,13 +5,19 @@ class StatsReport
|
|
5
5
|
output2=File.open(File.join(output_latex,'stats.tex'), 'w')
|
6
6
|
output2.puts "%!TEX root = FinalReport.tex"
|
7
7
|
|
8
|
+
if (stats['sequences'].nil?) || (stats['sequences']['count'].nil?)
|
9
|
+
puts "sequences info does not exist in stats.json\n"
|
10
|
+
exit(-1)
|
11
|
+
end
|
12
|
+
|
8
13
|
input_seqs = stats['sequences']['count']['input_count'].to_i
|
9
14
|
rejected_seqs = stats['sequences']['count']['rejected'].to_i
|
10
15
|
output_seqs = stats['sequences']['count']['output_seqs'].to_i
|
11
16
|
|
17
|
+
#------------------------------------------------------------------------------------------ solo cuando hay pareadas
|
12
18
|
output_seqs_paired = 0
|
13
19
|
total_output_seqs = 0
|
14
|
-
|
20
|
+
|
15
21
|
if (!stats['sequences']['count']['output_seqs_paired'].nil?)
|
16
22
|
output_seqs_paired = stats['sequences']['count']['output_seqs_paired'].to_i
|
17
23
|
total_output_seqs = output_seqs_paired+output_seqs
|
@@ -44,9 +50,15 @@ class StatsReport
|
|
44
50
|
output2.puts '\begin{center}'
|
45
51
|
output2.puts '\begin{tabular}{l r r}'
|
46
52
|
output2.puts " \\hline"
|
47
|
-
|
48
|
-
|
49
|
-
|
53
|
+
if (!input_seqs.nil?)
|
54
|
+
output2.puts "Input reads: & total & #{input_seqs} \\\\"
|
55
|
+
end
|
56
|
+
if (!initial_stats['smallest_sequence_size'].nil?)
|
57
|
+
output2.puts " & Smallest read (bp) & #{initial_stats['smallest_sequence_size'].to_i} \\\\"
|
58
|
+
end
|
59
|
+
if (!initial_stats['biggest_sequence_size'].nil?)
|
60
|
+
output2.puts " & Largest read (bp)& #{initial_stats['biggest_sequence_size'].to_i} \\\\"
|
61
|
+
end
|
50
62
|
output2.puts " & Mode (bp) & #{input_mode} \\\\"
|
51
63
|
output2.puts " & Mean (bp)& #{input_mean} \\\\"
|
52
64
|
|
@@ -93,12 +105,10 @@ class StatsReport
|
|
93
105
|
end
|
94
106
|
end
|
95
107
|
end
|
96
|
-
|
108
|
+
#--------------------------------------------------- end pareadas
|
97
109
|
|
98
110
|
output2.puts "\\hline"
|
99
111
|
|
100
|
-
|
101
|
-
|
102
112
|
output2.puts '\end{tabular}'
|
103
113
|
output2.puts '\label{table:nonlin}'
|
104
114
|
output2.puts '\end{center}'
|
@@ -141,10 +151,12 @@ class StatsReport
|
|
141
151
|
|
142
152
|
# en las pareadas añadimos el inserto de izq y derecha ------------------------------------- solo cuando hay pareadas
|
143
153
|
paired_nts=0
|
144
|
-
if (stats['PluginExtractInserts']['left_insert_size'])
|
154
|
+
if (stats['PluginExtractInserts']['left_insert_size'])
|
145
155
|
stats['PluginExtractInserts']['left_insert_size'].each do |element|
|
146
156
|
paired_nts += element[0].to_i*element[1].to_i
|
147
157
|
end
|
158
|
+
end
|
159
|
+
if (stats['PluginExtractInserts']['right_insert_size'])
|
148
160
|
stats['PluginExtractInserts']['right_insert_size'].each do |element|
|
149
161
|
paired_nts += element[0].to_i*element[1].to_i
|
150
162
|
end
|
@@ -163,18 +175,27 @@ class StatsReport
|
|
163
175
|
def get_mode(initial_stats,stats)
|
164
176
|
output_mode = 0
|
165
177
|
mode_array = []
|
178
|
+
|
166
179
|
# take the mode from initial_stats.json
|
167
|
-
|
180
|
+
if (!initial_stats.nil? and !initial_stats.empty?)
|
181
|
+
input_mode = initial_stats['mode_of_sizes']
|
182
|
+
else
|
183
|
+
input_mode = 0
|
184
|
+
end
|
168
185
|
|
169
186
|
# calculate the mode using data from stats.json
|
170
|
-
stats['PluginExtractInserts']['insert_size'].
|
171
|
-
|
172
|
-
|
187
|
+
if (!stats['PluginExtractInserts']['insert_size'].nil?)
|
188
|
+
stats['PluginExtractInserts']['insert_size'].each do |key,value|
|
189
|
+
mode_array[key.to_i]=value
|
190
|
+
end
|
173
191
|
|
174
|
-
|
175
|
-
|
192
|
+
mode_array.map!{|e| e || 0}
|
193
|
+
s=ScbiStats.new(mode_array)
|
176
194
|
|
177
|
-
|
195
|
+
output_mode = s.fat_mode
|
196
|
+
else
|
197
|
+
output_mode = 0
|
198
|
+
end
|
178
199
|
|
179
200
|
return [input_mode, output_mode]
|
180
201
|
end
|
@@ -183,21 +204,29 @@ class StatsReport
|
|
183
204
|
output_mean = 0
|
184
205
|
|
185
206
|
# take the mean from initial_stats.json
|
186
|
-
|
187
|
-
|
188
|
-
|
207
|
+
if (!initial_stats.nil? and !initial_stats.empty?)
|
208
|
+
input_mean = sprintf("%0.1f", (initial_stats['mean_of_sequence_sizes']))
|
209
|
+
else
|
210
|
+
input_mean = 0
|
211
|
+
end
|
212
|
+
|
189
213
|
# calculate the mean using data from stats.json
|
190
214
|
nts_count = 0
|
191
215
|
seqs_count = 0
|
192
|
-
stats['PluginExtractInserts']['insert_size'].
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
216
|
+
if (!stats['PluginExtractInserts']['insert_size'].nil?)
|
217
|
+
stats['PluginExtractInserts']['insert_size'].each do |key,value|
|
218
|
+
seqs_count += value.to_i
|
219
|
+
nts_count += (key.to_f*value)
|
220
|
+
end
|
198
221
|
|
199
|
-
|
200
|
-
|
222
|
+
if (nts_count == 0 || seqs_count == 0)
|
223
|
+
output_mean = 0
|
224
|
+
else
|
225
|
+
output_mean = sprintf("%0.1f", (nts_count/seqs_count))
|
226
|
+
end
|
227
|
+
else
|
228
|
+
output_mean = 0
|
229
|
+
end
|
201
230
|
|
202
231
|
return [input_mean, output_mean]
|
203
232
|
end
|
@@ -236,7 +265,7 @@ class StatsReport
|
|
236
265
|
nts_table_hash = {}
|
237
266
|
insert_array = []
|
238
267
|
warning_array = []
|
239
|
-
|
268
|
+
|
240
269
|
plugin_nts_hash.each do |plugin|
|
241
270
|
|
242
271
|
my_name = plugin[0]
|
@@ -302,7 +331,9 @@ class StatsReport
|
|
302
331
|
end
|
303
332
|
|
304
333
|
output2.puts '\hline'
|
305
|
-
|
334
|
+
if (!nts_table_hash['insert_size'].nil?)
|
335
|
+
output2.puts nts_table_hash['insert_size'][0]
|
336
|
+
end
|
306
337
|
output2.puts '\hline'
|
307
338
|
output2.puts '\end{tabular}'
|
308
339
|
output2.puts '\label{table:nonlin}'
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: seqtrimnext_report
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Noe Fernandez & Dario Guerrero
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-06-
|
13
|
+
date: 2011-06-16 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: seqtrimnext
|