seqtrimnext 2.0.42 → 2.0.45
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +12 -0
- data/bin/seqtrimnext +22 -3
- data/lib/seqtrimnext.rb +1 -1
- data/lib/seqtrimnext/actions/action_low_quality.rb +3 -1
- data/lib/seqtrimnext/classes/em_classes/seqtrim_work_manager.rb +18 -14
- data/lib/seqtrimnext/classes/em_classes/seqtrim_worker.rb +3 -0
- data/lib/seqtrimnext/classes/seqtrim.rb +2 -1
- data/lib/seqtrimnext/plugins/plugin_low_complexity.rb +20 -4
- data/lib/seqtrimnext/templates/amplicons.txt +1 -1
- metadata +2 -2
data/History.txt
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
=== 2.0.45 2012-03-05
|
2
|
+
|
3
|
+
Improved LowComplexity plugin to ignore low complexity regions inside low qual regions
|
4
|
+
|
5
|
+
=== 2.0.44 2012-02-23
|
6
|
+
|
7
|
+
Skip output
|
8
|
+
|
9
|
+
=== 2.0.43 2012-02-22
|
10
|
+
|
11
|
+
Lower logger levels
|
12
|
+
|
1
13
|
=== 2.0.42 2012-02-01
|
2
14
|
|
3
15
|
Added custom cd-hit cmd parameters
|
data/bin/seqtrimnext
CHANGED
@@ -265,6 +265,16 @@ optparse = OptionParser.new do |opts|
|
|
265
265
|
opts.on( '-j', '--json', 'Save results in json file' ) do
|
266
266
|
options[:json] = true
|
267
267
|
end
|
268
|
+
|
269
|
+
options[:skip_output] = false
|
270
|
+
opts.on( '-K', '--no-verbose', 'Change to no verbose mode. Every sequence will not be written to output log' ) do
|
271
|
+
options[:skip_output] = true
|
272
|
+
end
|
273
|
+
|
274
|
+
options[:skip_report] = false
|
275
|
+
opts.on( '-R', '--no-report', 'Change to no verbose mode. Every sequence will not be written to output log' ) do
|
276
|
+
options[:skip_report] = true
|
277
|
+
end
|
268
278
|
|
269
279
|
# This displays the help screen, all programs are
|
270
280
|
# assumed to have this option.
|
@@ -300,6 +310,8 @@ $LOG.datetime_format = "%Y-%m-%d %H:%M:%S"
|
|
300
310
|
|
301
311
|
#DEBUG < INFO < WARN < ERROR < FATAL < UNKNOWN
|
302
312
|
|
313
|
+
$LOG.info("SeqTrimNext version #{Seqtrimnext::SEQTRIM_VERSION}")
|
314
|
+
|
303
315
|
|
304
316
|
$LOG.info("Using BLASTDB: "+ $FORMATTED_DB_PATH)
|
305
317
|
$LOG.info("Using options: "+ options.to_json)
|
@@ -370,13 +382,20 @@ end
|
|
370
382
|
|
371
383
|
s = Seqtrim.new(options)
|
372
384
|
|
373
|
-
#generate report
|
374
385
|
|
375
386
|
|
376
|
-
|
387
|
+
#generate report
|
388
|
+
|
389
|
+
if !options[:skip_report] && system("which generate_report.rb > /dev/null ")
|
377
390
|
cmd="generate_report.rb output_files 2> report_generation_errors.log"
|
378
391
|
$LOG.info "Generating report #{cmd}"
|
379
392
|
`#{cmd}`
|
380
393
|
else
|
381
|
-
|
394
|
+
skip_text='.'
|
395
|
+
|
396
|
+
if options[:skip_report]
|
397
|
+
skip_text=' and remove the -R option from the command line.'
|
398
|
+
end
|
399
|
+
|
400
|
+
$LOG.info "If you want a detailed report in PDF format, be sure you have installed the optional seqtrimnext_report gem (gem install seqtrimnext_report)#{skip_text}"
|
382
401
|
end
|
data/lib/seqtrimnext.rb
CHANGED
@@ -11,8 +11,10 @@ class ActionLowQuality < SeqtrimAction
|
|
11
11
|
|
12
12
|
def initialize(start_pos,end_pos)
|
13
13
|
super(start_pos,end_pos)
|
14
|
+
# esto es cut=false porque al principio el plugin lowqual estaba al inicio del pipeline y habia que dejar
|
15
|
+
# la secuencia larga para que se encontrasen los contaminantes y vectores
|
16
|
+
# Tambien esta por si un linker tiene baja calidad que pueda encontrarlo
|
14
17
|
@cut =false
|
15
|
-
|
16
18
|
end
|
17
19
|
|
18
20
|
# def apply_to(seq)
|
@@ -13,11 +13,13 @@ STATS_PATH=File.join(OUTPUT_PATH,'stats.json')
|
|
13
13
|
|
14
14
|
class SeqtrimWorkManager < ScbiMapreduce::WorkManager
|
15
15
|
|
16
|
-
def self.init_work_manager(sequence_reader, params, chunk_size = 100, use_json=false)
|
16
|
+
def self.init_work_manager(sequence_reader, params, chunk_size = 100, use_json=false, skip_output=false)
|
17
17
|
@@full_stats={}
|
18
18
|
@@params= params
|
19
19
|
@@exit = false
|
20
20
|
|
21
|
+
@@skip_output=skip_output
|
22
|
+
|
21
23
|
@@chunk_size = chunk_size
|
22
24
|
|
23
25
|
|
@@ -173,17 +175,17 @@ class SeqtrimWorkManager < ScbiMapreduce::WorkManager
|
|
173
175
|
|
174
176
|
# reset count stats since they are repeated by checkpointing
|
175
177
|
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
178
|
+
if @@full_stats['sequences'] && @@full_stats['repeated']
|
179
|
+
@@full_stats['sequences']['count']['repeated']=0
|
180
|
+
end
|
181
|
+
|
182
|
+
if @@full_stats['sequences'] && @@full_stats['processed']
|
183
|
+
@@full_stats['sequences']['processed']['count']=0
|
184
|
+
end
|
185
|
+
|
186
|
+
if @@full_stats['sequences'] && @@full_stats['total']
|
187
|
+
@@full_stats['sequences']['total']['count']=0
|
188
|
+
end
|
187
189
|
|
188
190
|
super
|
189
191
|
# return checkpoint
|
@@ -288,14 +290,16 @@ class SeqtrimWorkManager < ScbiMapreduce::WorkManager
|
|
288
290
|
# end
|
289
291
|
|
290
292
|
def work_received(obj)
|
291
|
-
|
293
|
+
|
292
294
|
res = obj
|
293
295
|
|
294
296
|
# collect stats
|
295
297
|
@@full_stats.add_stats(obj.stats)
|
296
298
|
|
297
299
|
# print output in screen
|
298
|
-
|
300
|
+
if !@@skip_output
|
301
|
+
puts obj.output_text
|
302
|
+
end
|
299
303
|
|
300
304
|
# save results to files
|
301
305
|
save_files(obj)
|
@@ -74,8 +74,11 @@ class SeqtrimWorker < ScbiMapreduce::Worker
|
|
74
74
|
end
|
75
75
|
|
76
76
|
def starting_worker
|
77
|
+
|
77
78
|
# $WORKER_LOG.level = Logger::ERROR
|
79
|
+
$WORKER_LOG.level = Logger::WARN
|
78
80
|
$WORKER_LOG.info "Loading actions"
|
81
|
+
|
79
82
|
@action_manager = ActionManager.new
|
80
83
|
|
81
84
|
$WORKER_LOG.info "Loading plugins"
|
@@ -137,6 +137,7 @@ class Seqtrim
|
|
137
137
|
comment='Seqtrim version'
|
138
138
|
default_value=Seqtrimnext::SEQTRIM_VERSION
|
139
139
|
params.check_param(errors,'seqtrim_version','String',default_value,comment)
|
140
|
+
|
140
141
|
|
141
142
|
if !errors.empty?
|
142
143
|
$LOG.error 'Please, define the following global parameters in params file:'
|
@@ -308,7 +309,7 @@ class Seqtrim
|
|
308
309
|
else
|
309
310
|
$LOG.info 'Starting server'
|
310
311
|
|
311
|
-
SeqtrimWorkManager.init_work_manager(sequence_reader, params,chunk_size,use_json)
|
312
|
+
SeqtrimWorkManager.init_work_manager(sequence_reader, params,chunk_size,use_json,options[:skip_output])
|
312
313
|
|
313
314
|
begin
|
314
315
|
cpus=1
|
@@ -54,17 +54,33 @@ class PluginLowComplexity < Plugin
|
|
54
54
|
# puts found_dust.to_json
|
55
55
|
total_dust=0
|
56
56
|
if !dust_query.nil?
|
57
|
+
# low_quals=seq.get_actions(ActionLowQuality)
|
58
|
+
|
57
59
|
dust_query.dust.each do |dust|
|
58
60
|
start=dust[0]
|
59
61
|
stop=dust[1]
|
60
62
|
dust_size=dust[1]-dust[0]+1
|
61
|
-
|
63
|
+
|
62
64
|
|
63
65
|
if (dust_size)>=MIN_DUST_SIZE
|
64
66
|
|
65
|
-
a
|
66
|
-
#
|
67
|
-
|
67
|
+
# check if low complexity is inside a lowqual region
|
68
|
+
# in_low_qual=false
|
69
|
+
# low_quals.each do |lq|
|
70
|
+
# if lq.contains_action?(start,stop,0)
|
71
|
+
# in_low_qual=true
|
72
|
+
# break
|
73
|
+
# end
|
74
|
+
# end
|
75
|
+
|
76
|
+
if !seq.range_inside_action_type?(start,stop,ActionLowQuality)
|
77
|
+
|
78
|
+
total_dust+=dust_size
|
79
|
+
a = seq.new_action(start,stop,'ActionLowComplexity')
|
80
|
+
# a.left_action=true
|
81
|
+
actions.push a
|
82
|
+
|
83
|
+
end
|
68
84
|
# break
|
69
85
|
end
|
70
86
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
# General parameters to extract Amplicons
|
3
3
|
# ======================================
|
4
4
|
|
5
|
-
plugin_list = PluginLowHighSize,PluginKey,PluginMids,PluginIndeterminations,PluginAbAdapters,PluginLowQuality
|
5
|
+
plugin_list = PluginLowHighSize,PluginKey,PluginMids,PluginIndeterminations,PluginAbAdapters,PluginAmplicons,PluginLowQuality
|
6
6
|
|
7
7
|
# do not remove cloned sequences
|
8
8
|
remove_clonality=false
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: seqtrimnext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 2.0.
|
5
|
+
version: 2.0.45
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Dario Guerrero & Almudena Bocinos
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-03-05 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: narray
|