rbbt-util 5.38.1 → 5.40.0

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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rbbt/hpc/batch.rb +13 -3
  3. data/lib/rbbt/hpc/lsf.rb +1 -1
  4. data/lib/rbbt/hpc/orchestrate/rules.rb +8 -1
  5. data/lib/rbbt/hpc/orchestrate.rb +21 -17
  6. data/lib/rbbt/hpc/pbs.rb +177 -0
  7. data/lib/rbbt/hpc/slurm.rb +1 -1
  8. data/lib/rbbt/hpc.rb +1 -0
  9. data/lib/rbbt/resource/util.rb +1 -1
  10. data/lib/rbbt/resource.rb +6 -2
  11. data/lib/rbbt/tsv/util.rb +4 -0
  12. data/lib/rbbt/util/R/plot.rb +85 -0
  13. data/lib/rbbt/util/cmd.rb +8 -4
  14. data/lib/rbbt/util/concurrency/processes.rb +1 -1
  15. data/lib/rbbt/util/migrate.rb +1 -2
  16. data/lib/rbbt/util/misc/inspect.rb +1 -0
  17. data/lib/rbbt/util/open.rb +6 -0
  18. data/lib/rbbt/util/ssh.rb +1 -1
  19. data/lib/rbbt/workflow/remote_workflow/driver/ssh.rb +1 -1
  20. data/lib/rbbt/workflow/step/dependencies.rb +3 -4
  21. data/lib/rbbt/workflow/step.rb +2 -2
  22. data/lib/rbbt/workflow/usage.rb +1 -1
  23. data/lib/rbbt/workflow/util/trace.rb +2 -1
  24. data/lib/rbbt/workflow.rb +3 -2
  25. data/share/Rlib/util.R +12 -0
  26. data/share/rbbt_commands/hpc/list +2 -0
  27. data/share/rbbt_commands/hpc/orchestrate +1 -1
  28. data/share/rbbt_commands/hpc/task +8 -7
  29. data/share/rbbt_commands/lsf/list +2 -0
  30. data/share/rbbt_commands/lsf/orchestrate +1 -1
  31. data/share/rbbt_commands/lsf/task +8 -7
  32. data/share/rbbt_commands/resource/claims +57 -0
  33. data/share/rbbt_commands/slurm/list +2 -0
  34. data/share/rbbt_commands/slurm/orchestrate +1 -1
  35. data/share/rbbt_commands/slurm/task +8 -7
  36. data/share/rbbt_commands/workflow/task +2 -2
  37. data/test/rbbt/hpc/test_pbs.rb +43 -0
  38. data/test/rbbt/test_tsv.rb +16 -1
  39. data/test/rbbt/tsv/parallel/test_traverse.rb +2 -2
  40. data/test/rbbt/tsv/test_util.rb +14 -0
  41. data/test/rbbt/util/test_migrate.rb +2 -2
  42. 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 || true
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
@@ -73,7 +73,7 @@ class Step
73
73
  join
74
74
  self.load
75
75
  end
76
- rescue HPC::SBATCH
76
+ rescue HPC::BATCH_DRY_RUN
77
77
  end
78
78
  end
79
79
  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* SLURM minimum memory
36
- --gres* SLURM Generic resources
37
- -mcpu--mem_per_cpu* SLURM minimum memory per CPU
38
- -lin--licenses* SLURM licenses
39
- -cons--constraint* SLURM 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 SLURM job for #{self.path}"
62
+ Log.debug "Issuing BATCH job for #{self.path}"
62
63
  HPC::BATCH_MODULE.run_job(self, $slurm_options)
63
- rescue HPC::SBATCH
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
@@ -73,7 +73,7 @@ class Step
73
73
  join
74
74
  self.load
75
75
  end
76
- rescue HPC::SBATCH
76
+ rescue HPC::BATCH_DRY_RUN
77
77
  end
78
78
  end
79
79
  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* SLURM minimum memory
36
- --gres* SLURM Generic resources
37
- -mcpu--mem_per_cpu* SLURM minimum memory per CPU
38
- -lin--licenses* SLURM licenses
39
- -cons--constraint* SLURM 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 SLURM job for #{self.path}"
62
+ Log.debug "Issuing BATCH job for #{self.path}"
62
63
  HPC::BATCH_MODULE.run_job(self, $slurm_options)
63
- rescue HPC::SBATCH
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
@@ -73,7 +73,7 @@ class Step
73
73
  join
74
74
  self.load
75
75
  end
76
- rescue HPC::SBATCH
76
+ rescue HPC::BATCH_DRY_RUN
77
77
  end
78
78
  end
79
79
  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* SLURM minimum memory
36
- --gres* SLURM Generic resources
37
- -mcpu--mem_per_cpu* SLURM minimum memory per CPU
38
- -lin--licenses* SLURM licenses
39
- -cons--constraint* SLURM 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 SLURM job for #{self.path}"
62
+ Log.debug "Issuing BATCH job for #{self.path}"
62
63
  HPC::BATCH_MODULE.run_job(self, $slurm_options)
63
- rescue HPC::SBATCH
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
- -r--relay* Relay job to SSH server
224
- -sr--slurm_relay* Relay job to SSH SLURM server
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
+
@@ -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| ! l =~ /1/})
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 = 1000
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
 
@@ -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 _test_source_locate
6
+ def test_source_locate
7
7
  assert_equal 'var/jobs/', Rbbt.migrate_source_paths(Rbbt.root['var/jobs'].find(:user)).last
8
- assert Rbbt.migrate_source_paths(Rbbt.root['var/jobs'].find(:user))[1].include?(File.join(ENV["HOME"], '.rbbt/var/jobs/'))
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.38.1
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-06-01 00:00:00.000000000 Z
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.4.13
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/test_entity.rb
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/association/test_index.rb
680
- - test/rbbt/test_knowledge_base.rb
681
- - test/rbbt/persist/tsv/test_kyotocabinet.rb
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/persist/test_tsv.rb
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/knowledge_base/test_entity.rb
698
- - test/rbbt/knowledge_base/test_registry.rb
699
- - test/rbbt/knowledge_base/test_syndicate.rb
700
- - test/rbbt/knowledge_base/test_query.rb
701
- - test/rbbt/knowledge_base/test_enrichment.rb
702
- - test/rbbt/knowledge_base/test_traverse.rb
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