rbbt-util 5.14.4 → 5.14.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbbt/annotations.rb +1 -1
- data/lib/rbbt/resource/path.rb +10 -4
- data/lib/rbbt/util/misc/bgzf.rb +18 -11
- data/lib/rbbt/workflow/accessor.rb +26 -15
- data/lib/rbbt/workflow/definition.rb +1 -1
- data/lib/rbbt/workflow/usage.rb +4 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1fa2f550e7cac4d0ccdfe338c6a5012288bbdff
|
4
|
+
data.tar.gz: af4d638b5f65f37eac8279b3f6be21f87fd71b65
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b4695a330e812a45fc5f1bdcf0bf36752b49161b408022da3f37f64133e2c9ba5b7ed4754861ef189f588601e81f5a5f2d32008d464ed3bc98846a066dd3171e
|
7
|
+
data.tar.gz: 4475cf87c50919517a7a56e32e9d4fbb653b65adf9fe7e3935f8db24562d72ae2d4e5ea991bba6c1db441aa643abf11e0e6e4cacc3974d54422745b742d034e2
|
data/lib/rbbt/annotations.rb
CHANGED
@@ -260,7 +260,7 @@ module Annotation
|
|
260
260
|
annotations.each_with_index do |name,i|
|
261
261
|
value = values[i]
|
262
262
|
|
263
|
-
value = value.split("|") if String === value and value.
|
263
|
+
value = value.split("|") if String === value and value.include? "|"
|
264
264
|
|
265
265
|
annotation_values[name] = value
|
266
266
|
end
|
data/lib/rbbt/resource/path.rb
CHANGED
@@ -123,6 +123,10 @@ module Path
|
|
123
123
|
sub('{SUBPATH}', subpath).
|
124
124
|
sub('{PATH}', self).
|
125
125
|
sub('{LIBDIR}', libdir) #, @pkgdir, @resource, @search_paths
|
126
|
+
|
127
|
+
path = path + '.gz' if File.exists? path + '.gz'
|
128
|
+
path = path + '.bgz' if File.exists? path + '.bgz'
|
129
|
+
|
126
130
|
self.annotate path
|
127
131
|
end
|
128
132
|
end
|
@@ -150,19 +154,21 @@ module Path
|
|
150
154
|
self.find
|
151
155
|
end
|
152
156
|
|
157
|
+
def _exists?
|
158
|
+
Open.exists? self.find.to_s
|
159
|
+
end
|
160
|
+
|
153
161
|
def exists?
|
154
162
|
begin
|
155
163
|
self.produce
|
156
|
-
|
164
|
+
_exists?
|
157
165
|
rescue Exception
|
158
166
|
false
|
159
167
|
end
|
160
168
|
end
|
161
169
|
|
162
170
|
def produce(force = false)
|
163
|
-
|
164
|
-
|
165
|
-
return self if Open.exists?(path.to_s) and not force
|
171
|
+
return self if _exists? and not force
|
166
172
|
|
167
173
|
raise "No resource defined to produce file: #{ self }" if resource.nil?
|
168
174
|
|
data/lib/rbbt/util/misc/bgzf.rb
CHANGED
@@ -33,17 +33,20 @@ module Bgzf
|
|
33
33
|
|
34
34
|
def _index
|
35
35
|
@_index ||= begin
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
36
|
+
index = Persist.persist("BGZF index" + filename.sub(/.bgz$/,''), :marshal, :dir => Rbbt.var.bgzf_index) do
|
37
|
+
index = []
|
38
|
+
pos = 0
|
39
|
+
while true do
|
40
|
+
blockdata_offset = tell
|
41
|
+
block = read_block
|
42
|
+
break unless block
|
43
|
+
index << [pos, blockdata_offset]
|
44
|
+
pos += block.length
|
45
|
+
end
|
46
|
+
index
|
47
|
+
end
|
48
|
+
@block_cache_size = Math.log(index.length).to_i + 1
|
49
|
+
index
|
47
50
|
end
|
48
51
|
end
|
49
52
|
|
@@ -131,6 +134,10 @@ module Bgzf
|
|
131
134
|
end
|
132
135
|
end
|
133
136
|
|
137
|
+
def getc
|
138
|
+
read(1)
|
139
|
+
end
|
140
|
+
|
134
141
|
def gets
|
135
142
|
str = nil
|
136
143
|
current = @data_offset
|
@@ -449,16 +449,16 @@ module Workflow
|
|
449
449
|
end
|
450
450
|
|
451
451
|
def task_from_dep(dep)
|
452
|
-
case dep
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
452
|
+
task = case dep
|
453
|
+
when Array
|
454
|
+
dep.first.tasks[dep[1]]
|
455
|
+
when String
|
456
|
+
tasks[dep.to_sym]
|
457
|
+
when Symbol
|
458
|
+
tasks[dep.to_sym]
|
459
|
+
end
|
460
|
+
raise "Unknown dependency: #{Misc.fingerprint dep}" if task.nil?
|
461
|
+
task
|
462
462
|
end
|
463
463
|
|
464
464
|
def rec_inputs(taskname)
|
@@ -467,28 +467,28 @@ module Workflow
|
|
467
467
|
|
468
468
|
def rec_input_defaults(taskname)
|
469
469
|
[taskname].concat(rec_dependencies(taskname)).inject(IndiferentHash.setup({})){|acc, tn|
|
470
|
-
new = (Array === tn ? tn.first.tasks[tn.
|
470
|
+
new = (Array === tn ? tn.first.tasks[tn[1].to_sym] : tasks[tn.to_sym]).input_defaults
|
471
471
|
acc = new.merge(acc)
|
472
472
|
}.tap{|h| IndiferentHash.setup(h)}
|
473
473
|
end
|
474
474
|
|
475
475
|
def rec_input_types(taskname)
|
476
476
|
[taskname].concat(rec_dependencies(taskname)).inject({}){|acc, tn|
|
477
|
-
new = (Array === tn ? tn.first.tasks[tn.
|
477
|
+
new = (Array === tn ? tn.first.tasks[tn[1].to_sym] : tasks[tn.to_sym]).input_types
|
478
478
|
acc = new.merge(acc)
|
479
479
|
}.tap{|h| IndiferentHash.setup(h)}
|
480
480
|
end
|
481
481
|
|
482
482
|
def rec_input_descriptions(taskname)
|
483
483
|
[taskname].concat(rec_dependencies(taskname)).inject({}){|acc, tn|
|
484
|
-
new = (Array === tn ? tn.first.tasks[tn.
|
484
|
+
new = (Array === tn ? tn.first.tasks[tn[1].to_sym] : tasks[tn.to_sym]).input_descriptions
|
485
485
|
acc = new.merge(acc)
|
486
486
|
}.tap{|h| IndiferentHash.setup(h)}
|
487
487
|
end
|
488
488
|
|
489
489
|
def rec_input_options(taskname)
|
490
490
|
[taskname].concat(rec_dependencies(taskname)).inject({}){|acc, tn|
|
491
|
-
new = (Array === tn ? tn.first.tasks[tn.
|
491
|
+
new = (Array === tn ? tn.first.tasks[tn[1].to_sym] : tasks[tn.to_sym]).input_options
|
492
492
|
acc = new.merge(acc)
|
493
493
|
}.tap{|h| IndiferentHash.setup(h)}
|
494
494
|
end
|
@@ -498,7 +498,18 @@ module Workflow
|
|
498
498
|
dependencies.each do |dependency|
|
499
499
|
real_dependencies << case dependency
|
500
500
|
when Array
|
501
|
-
|
501
|
+
inputs = inputs.dup
|
502
|
+
options = dependency.last if Hash === dependency.last
|
503
|
+
options.each{|i,v|
|
504
|
+
case v
|
505
|
+
when Symbol
|
506
|
+
rec_dependency = real_dependencies.select{|d| d.task.name == v }.first
|
507
|
+
inputs[i] = rec_dependency
|
508
|
+
else
|
509
|
+
inputs[i] = v
|
510
|
+
end
|
511
|
+
} if options
|
512
|
+
dependency.first.job(dependency[1], jobname, inputs)
|
502
513
|
when Step
|
503
514
|
dependency
|
504
515
|
when Symbol
|
@@ -36,7 +36,7 @@ module Workflow
|
|
36
36
|
|
37
37
|
def dep(*dependency_list, &block)
|
38
38
|
@dependencies ||= []
|
39
|
-
if
|
39
|
+
if Module === dependency_list.first or Hash === dependency_list.last
|
40
40
|
@dependencies << dependency_list
|
41
41
|
else
|
42
42
|
@dependency_list ||= []
|
data/lib/rbbt/workflow/usage.rb
CHANGED
@@ -31,9 +31,11 @@ module Task
|
|
31
31
|
deps.each do |dep|
|
32
32
|
next if seen.include? dep.name
|
33
33
|
seen << dep.name
|
34
|
+
new_inputs = (dep.inputs - self.inputs)
|
35
|
+
next unless new_inputs.any?
|
34
36
|
puts " #{Log.color :yellow, dep.name.to_s}:"
|
35
37
|
puts
|
36
|
-
puts SOPT.input_doc(
|
38
|
+
puts SOPT.input_doc(new_inputs, dep.input_types, dep.input_descriptions, dep.input_defaults, true)
|
37
39
|
puts
|
38
40
|
end
|
39
41
|
end
|
@@ -77,7 +79,7 @@ module Workflow
|
|
77
79
|
task = self.tasks[task_name]
|
78
80
|
end
|
79
81
|
|
80
|
-
dependencies = self.rec_dependencies(task_name).collect{|dep_name| Array === dep_name ? dep_name.first.tasks[dep_name.
|
82
|
+
dependencies = self.rec_dependencies(task_name).collect{|dep_name| Array === dep_name ? dep_name.first.tasks[dep_name[1].to_sym] : self.tasks[dep_name.to_sym]}
|
81
83
|
|
82
84
|
task.doc(dependencies)
|
83
85
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbbt-util
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.14.
|
4
|
+
version: 5.14.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|