rbbt-util 5.23.32 → 5.23.34
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbbt/util/log.rb +1 -1
- data/lib/rbbt/workflow.rb +47 -6
- data/lib/rbbt/workflow/accessor.rb +5 -3
- data/lib/rbbt/workflow/step.rb +3 -0
- data/lib/rbbt/workflow/step/dependencies.rb +0 -1
- data/lib/rbbt/workflow/step/run.rb +2 -1
- data/share/Rlib/util.R +7 -0
- data/share/rbbt_commands/system/clean +5 -3
- data/share/rbbt_commands/workflow/task +1 -1
- 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: bb30046034803f9f8fa05cc114a25b41fbff60bb
|
4
|
+
data.tar.gz: 27fdf9b8cee90400d5929d3282fbcb4d7bf3d638
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1482ca219811bca9d8f6aad254cb8d3429c4506d3941a6b3e666ac4b92cea248a319e87a6280566466cfc4b1adeb397c96d8852ffc754d0b613a3f1b5a4ce503
|
7
|
+
data.tar.gz: 3d56953e218a3c0bcd256d35e053d27fe0f3ce2bdc410462a47ec93815c88d125107e85603c29824e2897f6f15639ef3ed088736dd13dac61254e3ad0650828f
|
data/lib/rbbt/util/log.rb
CHANGED
data/lib/rbbt/workflow.rb
CHANGED
@@ -487,13 +487,12 @@ module Workflow
|
|
487
487
|
Rbbt.var.jobs[end_part].find
|
488
488
|
end
|
489
489
|
|
490
|
-
|
491
490
|
def self.__load_step(path)
|
492
491
|
step = Step.new path
|
493
492
|
relocated = false
|
494
493
|
step.dependencies = (step.info[:dependencies] || []).collect do |task,name,dep_path|
|
495
494
|
if Open.exists?(dep_path)
|
496
|
-
Workflow.
|
495
|
+
Workflow._load_step dep_path
|
497
496
|
else
|
498
497
|
new_path = relocate(path, dep_path)
|
499
498
|
relocated = true if Open.exists?(new_path)
|
@@ -502,7 +501,42 @@ module Workflow
|
|
502
501
|
end
|
503
502
|
step.relocated = relocated
|
504
503
|
step.load_inputs_from_info
|
504
|
+
step
|
505
|
+
end
|
506
|
+
|
507
|
+
def self.fast_load_step(path)
|
508
|
+
return load_step(path)
|
509
|
+
step = Step.new path
|
510
|
+
step.dependencies = nil
|
511
|
+
class << step
|
512
|
+
def dependencies
|
513
|
+
@dependencies ||= (self.info[:dependencies] || []).collect do |task,name,dep_path|
|
514
|
+
dep = if Open.exists?(dep_path)
|
515
|
+
relocate = false
|
516
|
+
Workflow.fast_load_step dep_path
|
517
|
+
else
|
518
|
+
new_path = Workflow.relocate(path, dep_path)
|
519
|
+
relocated = true if Open.exists?(new_path)
|
520
|
+
Workflow.fast_load_step new_path
|
521
|
+
end
|
522
|
+
dep.relocated = relocated
|
523
|
+
dep
|
524
|
+
end
|
525
|
+
@dependencies
|
526
|
+
end
|
527
|
+
|
528
|
+
def inputs
|
529
|
+
self.load_inputs_from_info unless @inputs
|
530
|
+
@inputs
|
531
|
+
end
|
505
532
|
|
533
|
+
def dirty?
|
534
|
+
false
|
535
|
+
end
|
536
|
+
def updated?
|
537
|
+
true
|
538
|
+
end
|
539
|
+
end
|
506
540
|
step
|
507
541
|
end
|
508
542
|
|
@@ -529,13 +563,20 @@ module Workflow
|
|
529
563
|
task = task_for path
|
530
564
|
return remote_tasks[task].load_id(id) if remote_tasks and remote_tasks.include? task
|
531
565
|
return Workflow.load_step path
|
532
|
-
#step = Step.new path, tasks[task.to_sym]
|
533
|
-
#step.load_inputs_from_info
|
534
|
-
#set_step_dependencies(step)
|
535
|
-
#step
|
536
566
|
end
|
537
567
|
|
538
568
|
|
569
|
+
def fast_load_id(id)
|
570
|
+
path = if Path === workdir
|
571
|
+
workdir[id].find
|
572
|
+
else
|
573
|
+
File.join(workdir, id)
|
574
|
+
end
|
575
|
+
task = task_for path
|
576
|
+
return remote_tasks[task].load_id(id) if remote_tasks and remote_tasks.include? task
|
577
|
+
return Workflow.fast_load_step path
|
578
|
+
end
|
579
|
+
|
539
580
|
def load_name(task, name)
|
540
581
|
return remote_tasks[task].load_step(path) if remote_tasks and remote_tasks.include? task
|
541
582
|
task = tasks[task.to_sym] if String === task or Symbol === task
|
@@ -222,6 +222,7 @@ class Step
|
|
222
222
|
end
|
223
223
|
|
224
224
|
def message(message)
|
225
|
+
message = Log.uncolor(message)
|
225
226
|
set_info(:messages, (messages || []) << message)
|
226
227
|
end
|
227
228
|
|
@@ -456,12 +457,13 @@ class Step
|
|
456
457
|
end
|
457
458
|
|
458
459
|
def nopid?
|
459
|
-
pid = info[:pid]
|
460
|
-
pid
|
460
|
+
pid = info[:pid] || Open.exists?(pid_file)
|
461
|
+
! pid && ! (status.nil? || status == :aborted || status == :done || status == :error)
|
461
462
|
end
|
462
463
|
|
463
464
|
def aborted?
|
464
|
-
status
|
465
|
+
status = self.status
|
466
|
+
status == :aborted || ((status != :noinfo && status != :setup && status != :noinfo) && nopid?)
|
465
467
|
end
|
466
468
|
|
467
469
|
# {{{ INFO
|
data/lib/rbbt/workflow/step.rb
CHANGED
@@ -58,6 +58,9 @@ class Step
|
|
58
58
|
@info_mutex = Mutex.new
|
59
59
|
@inputs = inputs
|
60
60
|
NamedArray.setup @inputs, task.inputs.collect{|s| s.to_s} if task and task.respond_to? :inputs and task.inputs
|
61
|
+
if Open.exists?(info_file) and (info[:path] != path)
|
62
|
+
@relocated = true
|
63
|
+
end
|
61
64
|
end
|
62
65
|
|
63
66
|
def workflow
|
@@ -218,6 +218,7 @@ class Step
|
|
218
218
|
merge_info({
|
219
219
|
:issued => (issue_time = Time.now),
|
220
220
|
:name => name,
|
221
|
+
:pid => Process.pid.to_s,
|
221
222
|
:clean_name => clean_name,
|
222
223
|
:workflow => (@workflow || @task.workflow).to_s,
|
223
224
|
:task_name => @task.name,
|
@@ -636,7 +637,7 @@ class Step
|
|
636
637
|
end
|
637
638
|
|
638
639
|
def soft_grace
|
639
|
-
until done? or Open.exist?(info_file)
|
640
|
+
until done? or (Open.exist?(info_file) && info[:status] != :noinfo)
|
640
641
|
sleep 1
|
641
642
|
end
|
642
643
|
self
|
data/share/Rlib/util.R
CHANGED
@@ -711,6 +711,13 @@ rbbt.plot.venn <- function(data, a, ...) {
|
|
711
711
|
return(out)
|
712
712
|
}
|
713
713
|
|
714
|
+
rbbt.plot.pca <- function(data, center = TRUE, scale. = TRUE, ...) {
|
715
|
+
rbbt.require('vqv/ggbiplot')
|
716
|
+
data <- rbbt.impute(data)
|
717
|
+
pca <- prcomp(data, center=center, scale.=scale.)
|
718
|
+
ggbiplot(pca, ...)
|
719
|
+
}
|
720
|
+
|
714
721
|
|
715
722
|
rbbt.plot.text_scatter <- function(formula, data) {
|
716
723
|
plot(formula, data=data, cex = 0)
|
@@ -94,14 +94,15 @@ TSV.traverse jobs, :_bar => "Checking job status" do |file,i|
|
|
94
94
|
{:status => :noinfo}
|
95
95
|
end
|
96
96
|
|
97
|
-
|
97
|
+
done = Open.exists?(file)
|
98
|
+
pid = info[:pid] || (Open.exists?(file + '.pid') && Open.read(file + '.pid')) unless done
|
98
99
|
|
99
100
|
status = info[:status].to_s
|
100
101
|
if status != "noinfo"
|
101
|
-
status = :missing if status == "done" and not
|
102
|
+
status = :missing if status == "done" and not done
|
102
103
|
status = :nopid if status != "done" and pid.nil?
|
103
104
|
status = :dead if status != "done" and pid and not Misc.pid_exists?(pid)
|
104
|
-
status = :sync if status != "done" and
|
105
|
+
status = :sync if status != "done" and done
|
105
106
|
end
|
106
107
|
|
107
108
|
status = :dirty if info[:status].to_s == "done" and dirty and Workflow.load_step(file).dirty?
|
@@ -126,6 +127,7 @@ TSV.traverse jobs, :_bar => "Checking job status" do |file,i|
|
|
126
127
|
|
127
128
|
if (force and status !~ /done/) or
|
128
129
|
status =~ /\b(old|dirty|nopid|error|missing|aborted|dead|sync)$/ or
|
130
|
+
(status == "noinfo" and not done) or
|
129
131
|
status == ""
|
130
132
|
|
131
133
|
puts " Removing #{ file } - #{status}"
|
@@ -399,7 +399,7 @@ begin
|
|
399
399
|
|
400
400
|
if options.delete(:printpath)
|
401
401
|
job.join
|
402
|
-
raise job.messages.last if job.error? or job.aborted?
|
402
|
+
raise job.messages.last if job.error? or job.aborted? and job.messages
|
403
403
|
if Open.remote? job.path
|
404
404
|
puts job.url + Log.color(:blue, "?_format=raw")
|
405
405
|
else
|
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.23.
|
4
|
+
version: 5.23.34
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|