rbbt-util 5.38.1 → 5.40.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbbt/hpc/batch.rb +13 -3
- data/lib/rbbt/hpc/lsf.rb +1 -1
- data/lib/rbbt/hpc/orchestrate/rules.rb +8 -1
- data/lib/rbbt/hpc/orchestrate.rb +21 -17
- data/lib/rbbt/hpc/pbs.rb +177 -0
- data/lib/rbbt/hpc/slurm.rb +1 -1
- data/lib/rbbt/hpc.rb +1 -0
- data/lib/rbbt/resource/util.rb +1 -1
- data/lib/rbbt/resource.rb +6 -2
- data/lib/rbbt/tsv/util.rb +4 -0
- data/lib/rbbt/util/R/plot.rb +85 -0
- data/lib/rbbt/util/cmd.rb +8 -4
- data/lib/rbbt/util/concurrency/processes.rb +1 -1
- data/lib/rbbt/util/migrate.rb +1 -2
- data/lib/rbbt/util/misc/inspect.rb +1 -0
- data/lib/rbbt/util/open.rb +6 -0
- data/lib/rbbt/util/ssh.rb +1 -1
- data/lib/rbbt/workflow/remote_workflow/driver/ssh.rb +1 -1
- data/lib/rbbt/workflow/step/dependencies.rb +3 -4
- data/lib/rbbt/workflow/step.rb +2 -2
- data/lib/rbbt/workflow/usage.rb +1 -1
- data/lib/rbbt/workflow/util/trace.rb +2 -1
- data/lib/rbbt/workflow.rb +3 -2
- data/share/Rlib/util.R +12 -0
- data/share/rbbt_commands/hpc/list +2 -0
- data/share/rbbt_commands/hpc/orchestrate +1 -1
- data/share/rbbt_commands/hpc/task +8 -7
- data/share/rbbt_commands/lsf/list +2 -0
- data/share/rbbt_commands/lsf/orchestrate +1 -1
- data/share/rbbt_commands/lsf/task +8 -7
- data/share/rbbt_commands/resource/claims +57 -0
- data/share/rbbt_commands/slurm/list +2 -0
- data/share/rbbt_commands/slurm/orchestrate +1 -1
- data/share/rbbt_commands/slurm/task +8 -7
- data/share/rbbt_commands/workflow/task +2 -2
- data/test/rbbt/hpc/test_pbs.rb +43 -0
- data/test/rbbt/test_tsv.rb +16 -1
- data/test/rbbt/tsv/parallel/test_traverse.rb +2 -2
- data/test/rbbt/tsv/test_util.rb +14 -0
- data/test/rbbt/util/test_migrate.rb +2 -2
- metadata +100 -96
data/lib/rbbt/workflow.rb
CHANGED
@@ -23,7 +23,7 @@ module Workflow
|
|
23
23
|
|
24
24
|
#{{{ WORKFLOW MANAGEMENT
|
25
25
|
class << self
|
26
|
-
attr_accessor :workflows, :autoinstall, :workflow_dir
|
26
|
+
attr_accessor :workflows, :autoinstall, :workflow_dir, :main
|
27
27
|
end
|
28
28
|
|
29
29
|
self.workflows = []
|
@@ -202,13 +202,14 @@ module Workflow
|
|
202
202
|
|
203
203
|
first = nil
|
204
204
|
wf_name.split("+").each do |wf_name|
|
205
|
+
self.main = nil
|
205
206
|
require_local_workflow(wf_name) or
|
206
207
|
(Workflow.autoinstall and `rbbt workflow install #{Misc.snake_case(wf_name)} || rbbt workflow install #{wf_name}` and require_local_workflow(wf_name)) or raise("Workflow not found or could not be loaded: #{ wf_name }")
|
207
208
|
|
208
209
|
workflow = begin
|
209
210
|
Misc.string2const Misc.camel_case(wf_name)
|
210
211
|
rescue
|
211
|
-
Workflow.workflows.last
|
212
|
+
self.main || Workflow.workflows.last
|
212
213
|
end
|
213
214
|
workflow.load_documentation
|
214
215
|
|
data/share/Rlib/util.R
CHANGED
@@ -577,6 +577,16 @@ rbbt.get.modes <- function(x,bw = NULL,spar = NULL) {
|
|
577
577
|
|
578
578
|
#{{{ PLOTS
|
579
579
|
|
580
|
+
rbbt.svg_plot <- function(filename, p, width=500, height=500, ...){
|
581
|
+
svg(filename=filename, width=width, height=height, ...);
|
582
|
+
if (is.function(p)) {
|
583
|
+
p()
|
584
|
+
}else{
|
585
|
+
eval(parse(text=p));
|
586
|
+
}
|
587
|
+
dev.off()
|
588
|
+
}
|
589
|
+
|
580
590
|
rbbt.png_plot <- function(filename, p, width=500, height=500, ...){
|
581
591
|
png(filename=filename, width=width, height=height, type='cairo', ...);
|
582
592
|
if (is.function(p)) {
|
@@ -751,6 +761,8 @@ rbbt.plot.venn <- function(data, a=NULL, category=NULL, fill=NULL, ...) {
|
|
751
761
|
fill=rbbt.plot.set_colors(dim(data)[2], "Set3")
|
752
762
|
}
|
753
763
|
|
764
|
+
fill=fill[0:dim(data)[2]]
|
765
|
+
|
754
766
|
group.matches <- function(data, fields) {
|
755
767
|
sub = data
|
756
768
|
for (i in 1:length(fields)) {
|
@@ -253,6 +253,8 @@ workdir.glob("**/command.batch").sort_by{|f| File.mtime(f)}.each do |fcmd|
|
|
253
253
|
text = CMD.cmd('grep "^#SBATCH" ', :in => Open.read(fcmd)).read.strip
|
254
254
|
when 'lsf'
|
255
255
|
text = CMD.cmd('grep "^#BSUB" ', :in => Open.read(fcmd)).read.strip
|
256
|
+
when 'pbs'
|
257
|
+
text = CMD.cmd('grep "^#PBS" ', :in => Open.read(fcmd)).read.strip
|
256
258
|
else
|
257
259
|
text = ""
|
258
260
|
end
|
@@ -32,16 +32,17 @@ $slurm_options = SOPT.get <<EOF
|
|
32
32
|
-p--partition* Partition
|
33
33
|
-t--task_cpus* Tasks
|
34
34
|
-tm--time* Time
|
35
|
-
-m--mem*
|
36
|
-
--gres*
|
37
|
-
-mcpu--mem_per_cpu*
|
38
|
-
-lin--licenses*
|
39
|
-
-cons--constraint*
|
35
|
+
-m--mem* minimum memory
|
36
|
+
--gres* Generic resources
|
37
|
+
-mcpu--mem_per_cpu* minimum memory per CPU
|
38
|
+
-lin--licenses* licenses
|
39
|
+
-cons--constraint* constraint
|
40
40
|
-W--workflows* Additional workflows
|
41
41
|
-rmb--remove_batch_dir Remove the batch working directory (command, STDIN, exit status, ...)
|
42
42
|
-bs--batch_system* Batch system to use: auto, lsf, slurm (default is auto-detect)
|
43
43
|
-lmod--lua_modules* Lua Modules to load
|
44
44
|
-co--conda* Conda environment to use
|
45
|
+
-OR--orchestration_rules* Orchestration rules
|
45
46
|
EOF
|
46
47
|
|
47
48
|
batch_system = $slurm_options.delete :batch_system
|
@@ -58,9 +59,9 @@ class Step
|
|
58
59
|
self.load
|
59
60
|
else
|
60
61
|
begin
|
61
|
-
Log.debug "Issuing
|
62
|
+
Log.debug "Issuing BATCH job for #{self.path}"
|
62
63
|
HPC::BATCH_MODULE.run_job(self, $slurm_options)
|
63
|
-
rescue HPC::
|
64
|
+
rescue HPC::BATCH_DRY_RUN
|
64
65
|
end
|
65
66
|
end
|
66
67
|
end
|
@@ -253,6 +253,8 @@ workdir.glob("**/command.batch").sort_by{|f| File.mtime(f)}.each do |fcmd|
|
|
253
253
|
text = CMD.cmd('grep "^#SBATCH" ', :in => Open.read(fcmd)).read.strip
|
254
254
|
when 'lsf'
|
255
255
|
text = CMD.cmd('grep "^#BSUB" ', :in => Open.read(fcmd)).read.strip
|
256
|
+
when 'pbs'
|
257
|
+
text = CMD.cmd('grep "^#PBS" ', :in => Open.read(fcmd)).read.strip
|
256
258
|
else
|
257
259
|
text = ""
|
258
260
|
end
|
@@ -32,16 +32,17 @@ $slurm_options = SOPT.get <<EOF
|
|
32
32
|
-p--partition* Partition
|
33
33
|
-t--task_cpus* Tasks
|
34
34
|
-tm--time* Time
|
35
|
-
-m--mem*
|
36
|
-
--gres*
|
37
|
-
-mcpu--mem_per_cpu*
|
38
|
-
-lin--licenses*
|
39
|
-
-cons--constraint*
|
35
|
+
-m--mem* minimum memory
|
36
|
+
--gres* Generic resources
|
37
|
+
-mcpu--mem_per_cpu* minimum memory per CPU
|
38
|
+
-lin--licenses* licenses
|
39
|
+
-cons--constraint* constraint
|
40
40
|
-W--workflows* Additional workflows
|
41
41
|
-rmb--remove_batch_dir Remove the batch working directory (command, STDIN, exit status, ...)
|
42
42
|
-bs--batch_system* Batch system to use: auto, lsf, slurm (default is auto-detect)
|
43
43
|
-lmod--lua_modules* Lua Modules to load
|
44
44
|
-co--conda* Conda environment to use
|
45
|
+
-OR--orchestration_rules* Orchestration rules
|
45
46
|
EOF
|
46
47
|
|
47
48
|
batch_system = $slurm_options.delete :batch_system
|
@@ -58,9 +59,9 @@ class Step
|
|
58
59
|
self.load
|
59
60
|
else
|
60
61
|
begin
|
61
|
-
Log.debug "Issuing
|
62
|
+
Log.debug "Issuing BATCH job for #{self.path}"
|
62
63
|
HPC::BATCH_MODULE.run_job(self, $slurm_options)
|
63
|
-
rescue HPC::
|
64
|
+
rescue HPC::BATCH_DRY_RUN
|
64
65
|
end
|
65
66
|
end
|
66
67
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rbbt-util'
|
4
|
+
require 'rbbt/resource'
|
5
|
+
require 'rbbt/workflow'
|
6
|
+
|
7
|
+
options = SOPT.get <<EOF
|
8
|
+
-W--workflows* Workflows to use; 'all' for all in Rbbt.etc.workflows:
|
9
|
+
-r--requires* Files to require; 'all' for all in Rbbt.etc.requires:
|
10
|
+
-f--force Force the production if the file is already present
|
11
|
+
-h--help Help
|
12
|
+
EOF
|
13
|
+
|
14
|
+
if options[:help]
|
15
|
+
puts SOPT.doc
|
16
|
+
exit
|
17
|
+
end
|
18
|
+
|
19
|
+
case options[:workflows]
|
20
|
+
when nil, false, "false", "none"
|
21
|
+
when "all"
|
22
|
+
Rbbt.etc.workflows.list.each do |workflow|
|
23
|
+
Workflow.require_workflow file
|
24
|
+
end if Rbbt.etc.workflows.exists?
|
25
|
+
else
|
26
|
+
options[:workflows].split(/[ ,;|]/).each do |workflow|
|
27
|
+
Workflow.require_workflow workflow
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
case options[:requires]
|
32
|
+
when nil, false, "false", "none"
|
33
|
+
when "all"
|
34
|
+
Rbbt.etc.requires.list.each do |file|
|
35
|
+
require file
|
36
|
+
end if Rbbt.etc.requires.exists?
|
37
|
+
else
|
38
|
+
options[:requires].split(/[ ,;|]/).each do |file|
|
39
|
+
require file
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
resource, path = ARGV
|
44
|
+
|
45
|
+
begin
|
46
|
+
resource = Kernel.const_get(resource)
|
47
|
+
rescue
|
48
|
+
begin
|
49
|
+
resource = Workflow.require_workflow resource
|
50
|
+
rescue
|
51
|
+
raise "Resource not found: #{ resource }"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
puts resource.claims * "\n"
|
56
|
+
|
57
|
+
|
@@ -253,6 +253,8 @@ workdir.glob("**/command.batch").sort_by{|f| File.mtime(f)}.each do |fcmd|
|
|
253
253
|
text = CMD.cmd('grep "^#SBATCH" ', :in => Open.read(fcmd)).read.strip
|
254
254
|
when 'lsf'
|
255
255
|
text = CMD.cmd('grep "^#BSUB" ', :in => Open.read(fcmd)).read.strip
|
256
|
+
when 'pbs'
|
257
|
+
text = CMD.cmd('grep "^#PBS" ', :in => Open.read(fcmd)).read.strip
|
256
258
|
else
|
257
259
|
text = ""
|
258
260
|
end
|
@@ -32,16 +32,17 @@ $slurm_options = SOPT.get <<EOF
|
|
32
32
|
-p--partition* Partition
|
33
33
|
-t--task_cpus* Tasks
|
34
34
|
-tm--time* Time
|
35
|
-
-m--mem*
|
36
|
-
--gres*
|
37
|
-
-mcpu--mem_per_cpu*
|
38
|
-
-lin--licenses*
|
39
|
-
-cons--constraint*
|
35
|
+
-m--mem* minimum memory
|
36
|
+
--gres* Generic resources
|
37
|
+
-mcpu--mem_per_cpu* minimum memory per CPU
|
38
|
+
-lin--licenses* licenses
|
39
|
+
-cons--constraint* constraint
|
40
40
|
-W--workflows* Additional workflows
|
41
41
|
-rmb--remove_batch_dir Remove the batch working directory (command, STDIN, exit status, ...)
|
42
42
|
-bs--batch_system* Batch system to use: auto, lsf, slurm (default is auto-detect)
|
43
43
|
-lmod--lua_modules* Lua Modules to load
|
44
44
|
-co--conda* Conda environment to use
|
45
|
+
-OR--orchestration_rules* Orchestration rules
|
45
46
|
EOF
|
46
47
|
|
47
48
|
batch_system = $slurm_options.delete :batch_system
|
@@ -58,9 +59,9 @@ class Step
|
|
58
59
|
self.load
|
59
60
|
else
|
60
61
|
begin
|
61
|
-
Log.debug "Issuing
|
62
|
+
Log.debug "Issuing BATCH job for #{self.path}"
|
62
63
|
HPC::BATCH_MODULE.run_job(self, $slurm_options)
|
63
|
-
rescue HPC::
|
64
|
+
rescue HPC::BATCH_DRY_RUN
|
64
65
|
end
|
65
66
|
end
|
66
67
|
end
|
@@ -220,8 +220,8 @@ The `recursive_clean` cleans all the job dependency steps recursively.
|
|
220
220
|
-rwt--remote_workflow_tasks* Load a yaml file describing remote workflow tasks
|
221
221
|
-od--override_deps* Override deps using 'Workflow#task=<path>' array_separated
|
222
222
|
-PERF--procpath_performance* Measure performance using procpath
|
223
|
-
|
224
|
-
|
223
|
+
--relay* Relay job to SSH server
|
224
|
+
--slurm_relay* Relay job to SSH SLURM server
|
225
225
|
-rdep--relay_dependencies* Relay dependencies instead of main job
|
226
226
|
-pdr--produce_dependencies_for_relay Prepare dependencies previous to relay jobs
|
227
227
|
EOF
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
|
2
|
+
require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')
|
3
|
+
|
4
|
+
require 'rbbt/workflow'
|
5
|
+
|
6
|
+
class TestPBS < Test::Unit::TestCase
|
7
|
+
def workflow
|
8
|
+
@workflow ||= Module.new do
|
9
|
+
extend Workflow
|
10
|
+
|
11
|
+
def self.to_s
|
12
|
+
"TestWorkflow"
|
13
|
+
end
|
14
|
+
|
15
|
+
input :name, :string
|
16
|
+
task :hello => :string do |name|
|
17
|
+
"hello #{name}"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_template
|
23
|
+
job = workflow.job(:hello, "TEST", :name => "world")
|
24
|
+
|
25
|
+
TmpFile.with_file do |batch_dir|
|
26
|
+
|
27
|
+
template = HPC::PBS.job_template(job, :batch_dir => batch_dir, :lua_modules => 'java')
|
28
|
+
ppp template
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def __test_run_job
|
34
|
+
job = Sample.job(:mutect2, "small", :reference => "hg38")
|
35
|
+
|
36
|
+
job.clean
|
37
|
+
|
38
|
+
jobid = HPC::SLURM.run_job(job, :workflows => "HTS", :batch_modules => 'java', :env_cmd => '_JAVA_OPTIONS="-Xms1g -Xmx${MAX_MEMORY}m"', :queue => :debug, :time => '01:00:00', :config_keys => "HTS_light", :task_cpus => '10', :tail => true, :clean_task => "HTS#mutect2")
|
39
|
+
assert jobid.to_s =~ /^\d+$/
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
data/test/rbbt/test_tsv.rb
CHANGED
@@ -302,7 +302,7 @@ b 2
|
|
302
302
|
EOF
|
303
303
|
|
304
304
|
TmpFile.with_file(content) do |filename|
|
305
|
-
tsv = TSV.open(filename, :key_field => "Value", :select => Proc.new{|l|
|
305
|
+
tsv = TSV.open(filename, :key_field => "Value", :select => Proc.new{|l| l !~ /1/})
|
306
306
|
assert(! tsv.include?("3"))
|
307
307
|
end
|
308
308
|
end
|
@@ -650,5 +650,20 @@ row3 AA BB|BBB Id3|Id2
|
|
650
650
|
|
651
651
|
end
|
652
652
|
end
|
653
|
+
|
654
|
+
def test_benchmark
|
655
|
+
num = 10_000
|
656
|
+
txt = num.times.inject(nil) do |acc,i|
|
657
|
+
(acc.nil? ? "" : acc << "\n") << (0..10).collect{|v| v == 0 ? i : [v,v] * "|" } * "\t"
|
658
|
+
end
|
659
|
+
|
660
|
+
txt = StringIO.new(([txt] * (10))*"\n")
|
661
|
+
#Misc.profile do
|
662
|
+
Misc.benchmark(1) do
|
663
|
+
data = TSV.open(txt, type: :double, bar: true, merge: true)
|
664
|
+
assert_equal num, data.size
|
665
|
+
end
|
666
|
+
end
|
667
|
+
|
653
668
|
end
|
654
669
|
|
@@ -50,11 +50,11 @@ class TestTSVParallelThrough < Test::Unit::TestCase
|
|
50
50
|
def test_traverse_stream
|
51
51
|
require 'rbbt/sources/organism'
|
52
52
|
|
53
|
-
head =
|
53
|
+
head = 3000
|
54
54
|
|
55
55
|
tsv = datafile_test('identifiers').open
|
56
56
|
res = {}
|
57
|
-
TSV.traverse tsv, :head => head, :into => res do |k,v|
|
57
|
+
TSV.traverse tsv, :head => head, :into => res, :bar => true do |k,v|
|
58
58
|
[k,v]
|
59
59
|
end
|
60
60
|
|
data/test/rbbt/tsv/test_util.rb
CHANGED
@@ -35,4 +35,18 @@ row2 A B Id3
|
|
35
35
|
assert_equal %w(aa bb Id2), tsv.unzip_replicates["row1(1)"]
|
36
36
|
end
|
37
37
|
end
|
38
|
+
|
39
|
+
def test_merge
|
40
|
+
content =<<-EOF
|
41
|
+
#Id ValueA ValueB OtherID
|
42
|
+
row1 a|aa|aaa b|bb|bbb Id1|Id2|Id3
|
43
|
+
row2 A B Id3
|
44
|
+
EOF
|
45
|
+
|
46
|
+
TmpFile.with_file(content) do |filename|
|
47
|
+
tsv = TSV.open(filename, :sep => /\s+/)
|
48
|
+
tsv = tsv.merge({"row3" => [["A3"], ["B3"], ["Id4"]]})
|
49
|
+
assert TSV === tsv
|
50
|
+
end
|
51
|
+
end
|
38
52
|
end
|
@@ -3,9 +3,9 @@ require 'rbbt-util'
|
|
3
3
|
require 'rbbt/util/migrate'
|
4
4
|
|
5
5
|
class TestMigrate < Test::Unit::TestCase
|
6
|
-
def
|
6
|
+
def test_source_locate
|
7
7
|
assert_equal 'var/jobs/', Rbbt.migrate_source_paths(Rbbt.root['var/jobs'].find(:user)).last
|
8
|
-
|
8
|
+
assert_include Rbbt.migrate_source_paths(Rbbt.root['var/jobs'].find(:user))[1], (File.join(ENV["HOME"], '.rbbt/var/jobs'))
|
9
9
|
end
|
10
10
|
|
11
11
|
def test_migrate
|
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.
|
4
|
+
version: 5.40.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -206,6 +206,7 @@ files:
|
|
206
206
|
- lib/rbbt/hpc/orchestrate/batches.rb
|
207
207
|
- lib/rbbt/hpc/orchestrate/chains.rb
|
208
208
|
- lib/rbbt/hpc/orchestrate/rules.rb
|
209
|
+
- lib/rbbt/hpc/pbs.rb
|
209
210
|
- lib/rbbt/hpc/slurm.rb
|
210
211
|
- lib/rbbt/knowledge_base.rb
|
211
212
|
- lib/rbbt/knowledge_base/enrichment.rb
|
@@ -390,6 +391,7 @@ files:
|
|
390
391
|
- share/rbbt_commands/migrate
|
391
392
|
- share/rbbt_commands/migrate_job
|
392
393
|
- share/rbbt_commands/purge_job
|
394
|
+
- share/rbbt_commands/resource/claims
|
393
395
|
- share/rbbt_commands/resource/exists
|
394
396
|
- share/rbbt_commands/resource/find
|
395
397
|
- share/rbbt_commands/resource/get
|
@@ -475,6 +477,7 @@ files:
|
|
475
477
|
- test/rbbt/hpc/orchestrate/test_rules.rb
|
476
478
|
- test/rbbt/hpc/test_batch.rb
|
477
479
|
- test/rbbt/hpc/test_orchestrate.rb
|
480
|
+
- test/rbbt/hpc/test_pbs.rb
|
478
481
|
- test/rbbt/hpc/test_slurm.rb
|
479
482
|
- test/rbbt/knowledge_base/test_enrichment.rb
|
480
483
|
- test/rbbt/knowledge_base/test_entity.rb
|
@@ -589,115 +592,116 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
589
592
|
- !ruby/object:Gem::Version
|
590
593
|
version: '0'
|
591
594
|
requirements: []
|
592
|
-
rubygems_version: 3.
|
595
|
+
rubygems_version: 3.5.0.dev
|
593
596
|
signing_key:
|
594
597
|
specification_version: 4
|
595
598
|
summary: Utilities for the Ruby Bioinformatics Toolkit (rbbt)
|
596
599
|
test_files:
|
597
|
-
- test/rbbt/
|
598
|
-
- test/rbbt/workflow/test_remote_workflow.rb
|
599
|
-
- test/rbbt/workflow/util/test_archive.rb
|
600
|
-
- test/rbbt/workflow/util/test_orchestrator.rb
|
601
|
-
- test/rbbt/workflow/util/test_data.rb
|
602
|
-
- test/rbbt/workflow/test_doc.rb
|
603
|
-
- test/rbbt/workflow/test_schedule.rb
|
604
|
-
- test/rbbt/workflow/test_step.rb
|
605
|
-
- test/rbbt/workflow/step/test_dependencies.rb
|
606
|
-
- test/rbbt/workflow/step/test_save_load_inputs.rb
|
607
|
-
- test/rbbt/workflow/test_task.rb
|
608
|
-
- test/rbbt/resource/test_path.rb
|
609
|
-
- test/rbbt/util/test_colorize.rb
|
610
|
-
- test/rbbt/util/test_procpath.rb
|
611
|
-
- test/rbbt/util/python/test_util.rb
|
612
|
-
- test/rbbt/util/misc/test_development.rb
|
613
|
-
- test/rbbt/util/misc/test_indiferent_hash.rb
|
614
|
-
- test/rbbt/util/misc/test_omics.rb
|
615
|
-
- test/rbbt/util/misc/test_pipes.rb
|
616
|
-
- test/rbbt/util/misc/test_serialize.rb
|
617
|
-
- test/rbbt/util/misc/test_format.rb
|
618
|
-
- test/rbbt/util/misc/test_communication.rb
|
619
|
-
- test/rbbt/util/misc/test_lock.rb
|
620
|
-
- test/rbbt/util/misc/test_multipart_payload.rb
|
621
|
-
- test/rbbt/util/misc/test_bgzf.rb
|
622
|
-
- test/rbbt/util/test_concurrency.rb
|
623
|
-
- test/rbbt/util/test_cmd.rb
|
624
|
-
- test/rbbt/util/R/test_plot.rb
|
625
|
-
- test/rbbt/util/R/test_eval.rb
|
626
|
-
- test/rbbt/util/R/test_model.rb
|
627
|
-
- test/rbbt/util/test_config.rb
|
628
|
-
- test/rbbt/util/test_log.rb
|
629
|
-
- test/rbbt/util/test_simpleDSL.rb
|
630
|
-
- test/rbbt/util/log/test_progress.rb
|
631
|
-
- test/rbbt/util/test_tmpfile.rb
|
632
|
-
- test/rbbt/util/test_R.rb
|
633
|
-
- test/rbbt/util/test_excel2tsv.rb
|
634
|
-
- test/rbbt/util/test_misc.rb
|
635
|
-
- test/rbbt/util/test_open.rb
|
636
|
-
- test/rbbt/util/test_ssh.rb
|
637
|
-
- test/rbbt/util/test_simpleopt.rb
|
638
|
-
- test/rbbt/util/simpleopt/test_parse.rb
|
639
|
-
- test/rbbt/util/simpleopt/test_setup.rb
|
640
|
-
- test/rbbt/util/simpleopt/test_get.rb
|
641
|
-
- test/rbbt/util/test_python.rb
|
642
|
-
- test/rbbt/util/test_filecache.rb
|
643
|
-
- test/rbbt/util/concurrency/test_processes.rb
|
644
|
-
- test/rbbt/util/concurrency/test_threads.rb
|
645
|
-
- test/rbbt/util/concurrency/processes/test_socket.rb
|
646
|
-
- test/rbbt/util/test_semaphore.rb
|
647
|
-
- test/rbbt/util/test_chain_methods.rb
|
648
|
-
- test/rbbt/util/test_migrate.rb
|
649
|
-
- test/rbbt/test_resource.rb
|
650
|
-
- test/rbbt/test_packed_index.rb
|
651
|
-
- test/rbbt/tsv/test_change_id.rb
|
652
|
-
- test/rbbt/tsv/test_attach.rb
|
653
|
-
- test/rbbt/tsv/test_filter.rb
|
654
|
-
- test/rbbt/tsv/test_marshal.rb
|
655
|
-
- test/rbbt/tsv/test_parser.rb
|
656
|
-
- test/rbbt/tsv/test_csv.rb
|
657
|
-
- test/rbbt/tsv/test_accessor.rb
|
658
|
-
- test/rbbt/tsv/test_matrix.rb
|
659
|
-
- test/rbbt/tsv/test_field_index.rb
|
660
|
-
- test/rbbt/tsv/test_util.rb
|
661
|
-
- test/rbbt/tsv/test_index.rb
|
662
|
-
- test/rbbt/tsv/test_parallel.rb
|
663
|
-
- test/rbbt/tsv/test_manipulate.rb
|
664
|
-
- test/rbbt/tsv/test_excel.rb
|
665
|
-
- test/rbbt/tsv/parallel/test_through.rb
|
666
|
-
- test/rbbt/tsv/parallel/test_traverse.rb
|
667
|
-
- test/rbbt/tsv/test_stream.rb
|
668
|
-
- test/rbbt/test_association.rb
|
669
|
-
- test/rbbt/hpc/test_batch.rb
|
670
|
-
- test/rbbt/hpc/orchestrate/test_chains.rb
|
671
|
-
- test/rbbt/hpc/orchestrate/test_rules.rb
|
672
|
-
- test/rbbt/hpc/orchestrate/test_batches.rb
|
673
|
-
- test/rbbt/hpc/test_slurm.rb
|
674
|
-
- test/rbbt/hpc/test_orchestrate.rb
|
600
|
+
- test/rbbt/annotations/test_util.rb
|
675
601
|
- test/rbbt/association/test_database.rb
|
602
|
+
- test/rbbt/association/test_index.rb
|
676
603
|
- test/rbbt/association/test_item.rb
|
677
604
|
- test/rbbt/association/test_open.rb
|
678
605
|
- test/rbbt/association/test_util.rb
|
679
|
-
- test/rbbt/
|
680
|
-
- test/rbbt/
|
681
|
-
- test/rbbt/
|
606
|
+
- test/rbbt/entity/test_identifiers.rb
|
607
|
+
- test/rbbt/hpc/orchestrate/test_batches.rb
|
608
|
+
- test/rbbt/hpc/orchestrate/test_chains.rb
|
609
|
+
- test/rbbt/hpc/orchestrate/test_rules.rb
|
610
|
+
- test/rbbt/hpc/test_batch.rb
|
611
|
+
- test/rbbt/hpc/test_orchestrate.rb
|
612
|
+
- test/rbbt/hpc/test_pbs.rb
|
613
|
+
- test/rbbt/hpc/test_slurm.rb
|
614
|
+
- test/rbbt/knowledge_base/test_enrichment.rb
|
615
|
+
- test/rbbt/knowledge_base/test_entity.rb
|
616
|
+
- test/rbbt/knowledge_base/test_query.rb
|
617
|
+
- test/rbbt/knowledge_base/test_registry.rb
|
618
|
+
- test/rbbt/knowledge_base/test_syndicate.rb
|
619
|
+
- test/rbbt/knowledge_base/test_traverse.rb
|
620
|
+
- test/rbbt/persist/test_tsv.rb
|
682
621
|
- test/rbbt/persist/tsv/test_cdb.rb
|
622
|
+
- test/rbbt/persist/tsv/test_kyotocabinet.rb
|
623
|
+
- test/rbbt/persist/tsv/test_leveldb.rb
|
683
624
|
- test/rbbt/persist/tsv/test_lmdb.rb
|
684
625
|
- test/rbbt/persist/tsv/test_sharder.rb
|
685
|
-
- test/rbbt/persist/tsv/test_leveldb.rb
|
686
626
|
- test/rbbt/persist/tsv/test_tokyocabinet.rb
|
687
|
-
- test/rbbt/
|
688
|
-
- test/rbbt/test_tsv.rb
|
627
|
+
- test/rbbt/resource/test_path.rb
|
689
628
|
- test/rbbt/test_annotations.rb
|
629
|
+
- test/rbbt/test_association.rb
|
630
|
+
- test/rbbt/test_entity.rb
|
690
631
|
- test/rbbt/test_fix_width_table.rb
|
691
|
-
- test/rbbt/test_workflow.rb
|
692
|
-
- test/rbbt/entity/test_identifiers.rb
|
693
|
-
- test/rbbt/annotations/test_util.rb
|
694
632
|
- test/rbbt/test_hpc.rb
|
633
|
+
- test/rbbt/test_knowledge_base.rb
|
695
634
|
- test/rbbt/test_monitor.rb
|
635
|
+
- test/rbbt/test_packed_index.rb
|
696
636
|
- test/rbbt/test_persist.rb
|
697
|
-
- test/rbbt/
|
698
|
-
- test/rbbt/
|
699
|
-
- test/rbbt/
|
700
|
-
- test/rbbt/
|
701
|
-
- test/rbbt/
|
702
|
-
- test/rbbt/
|
637
|
+
- test/rbbt/test_resource.rb
|
638
|
+
- test/rbbt/test_tsv.rb
|
639
|
+
- test/rbbt/test_workflow.rb
|
640
|
+
- test/rbbt/tsv/parallel/test_through.rb
|
641
|
+
- test/rbbt/tsv/parallel/test_traverse.rb
|
642
|
+
- test/rbbt/tsv/test_accessor.rb
|
643
|
+
- test/rbbt/tsv/test_attach.rb
|
644
|
+
- test/rbbt/tsv/test_change_id.rb
|
645
|
+
- test/rbbt/tsv/test_csv.rb
|
646
|
+
- test/rbbt/tsv/test_excel.rb
|
647
|
+
- test/rbbt/tsv/test_field_index.rb
|
648
|
+
- test/rbbt/tsv/test_filter.rb
|
649
|
+
- test/rbbt/tsv/test_index.rb
|
650
|
+
- test/rbbt/tsv/test_manipulate.rb
|
651
|
+
- test/rbbt/tsv/test_marshal.rb
|
652
|
+
- test/rbbt/tsv/test_matrix.rb
|
653
|
+
- test/rbbt/tsv/test_parallel.rb
|
654
|
+
- test/rbbt/tsv/test_parser.rb
|
655
|
+
- test/rbbt/tsv/test_stream.rb
|
656
|
+
- test/rbbt/tsv/test_util.rb
|
657
|
+
- test/rbbt/util/R/test_eval.rb
|
658
|
+
- test/rbbt/util/R/test_model.rb
|
659
|
+
- test/rbbt/util/R/test_plot.rb
|
660
|
+
- test/rbbt/util/concurrency/processes/test_socket.rb
|
661
|
+
- test/rbbt/util/concurrency/test_processes.rb
|
662
|
+
- test/rbbt/util/concurrency/test_threads.rb
|
663
|
+
- test/rbbt/util/log/test_progress.rb
|
664
|
+
- test/rbbt/util/misc/test_bgzf.rb
|
665
|
+
- test/rbbt/util/misc/test_communication.rb
|
666
|
+
- test/rbbt/util/misc/test_development.rb
|
667
|
+
- test/rbbt/util/misc/test_format.rb
|
668
|
+
- test/rbbt/util/misc/test_indiferent_hash.rb
|
669
|
+
- test/rbbt/util/misc/test_lock.rb
|
670
|
+
- test/rbbt/util/misc/test_multipart_payload.rb
|
671
|
+
- test/rbbt/util/misc/test_omics.rb
|
672
|
+
- test/rbbt/util/misc/test_pipes.rb
|
673
|
+
- test/rbbt/util/misc/test_serialize.rb
|
674
|
+
- test/rbbt/util/python/test_util.rb
|
675
|
+
- test/rbbt/util/simpleopt/test_get.rb
|
676
|
+
- test/rbbt/util/simpleopt/test_parse.rb
|
677
|
+
- test/rbbt/util/simpleopt/test_setup.rb
|
678
|
+
- test/rbbt/util/test_R.rb
|
679
|
+
- test/rbbt/util/test_chain_methods.rb
|
680
|
+
- test/rbbt/util/test_cmd.rb
|
681
|
+
- test/rbbt/util/test_colorize.rb
|
682
|
+
- test/rbbt/util/test_concurrency.rb
|
683
|
+
- test/rbbt/util/test_config.rb
|
684
|
+
- test/rbbt/util/test_excel2tsv.rb
|
685
|
+
- test/rbbt/util/test_filecache.rb
|
686
|
+
- test/rbbt/util/test_log.rb
|
687
|
+
- test/rbbt/util/test_migrate.rb
|
688
|
+
- test/rbbt/util/test_misc.rb
|
689
|
+
- test/rbbt/util/test_open.rb
|
690
|
+
- test/rbbt/util/test_procpath.rb
|
691
|
+
- test/rbbt/util/test_python.rb
|
692
|
+
- test/rbbt/util/test_semaphore.rb
|
693
|
+
- test/rbbt/util/test_simpleDSL.rb
|
694
|
+
- test/rbbt/util/test_simpleopt.rb
|
695
|
+
- test/rbbt/util/test_ssh.rb
|
696
|
+
- test/rbbt/util/test_tmpfile.rb
|
697
|
+
- test/rbbt/workflow/step/test_dependencies.rb
|
698
|
+
- test/rbbt/workflow/step/test_save_load_inputs.rb
|
699
|
+
- test/rbbt/workflow/test_doc.rb
|
700
|
+
- test/rbbt/workflow/test_remote_workflow.rb
|
701
|
+
- test/rbbt/workflow/test_schedule.rb
|
702
|
+
- test/rbbt/workflow/test_step.rb
|
703
|
+
- test/rbbt/workflow/test_task.rb
|
704
|
+
- test/rbbt/workflow/util/test_archive.rb
|
705
|
+
- test/rbbt/workflow/util/test_data.rb
|
706
|
+
- test/rbbt/workflow/util/test_orchestrator.rb
|
703
707
|
- test/test_helper.rb
|