rbbt-util 5.42.0 → 5.44.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rbbt/annotations/util.rb +1 -1
  3. data/lib/rbbt/association/database.rb +2 -1
  4. data/lib/rbbt/association/index.rb +1 -0
  5. data/lib/rbbt/association/util.rb +14 -4
  6. data/lib/rbbt/entity.rb +6 -5
  7. data/lib/rbbt/hpc/batch.rb +19 -17
  8. data/lib/rbbt/hpc/orchestrate/batches.rb +1 -1
  9. data/lib/rbbt/hpc/orchestrate/chains.rb +3 -4
  10. data/lib/rbbt/knowledge_base/traverse.rb +24 -16
  11. data/lib/rbbt/persist/tsv/tokyocabinet.rb +1 -1
  12. data/lib/rbbt/resource/path.rb +7 -2
  13. data/lib/rbbt/resource.rb +1 -1
  14. data/lib/rbbt/tsv/accessor.rb +6 -11
  15. data/lib/rbbt/tsv/dumper.rb +21 -10
  16. data/lib/rbbt/tsv/index.rb +2 -1
  17. data/lib/rbbt/tsv/parallel/traverse.rb +44 -0
  18. data/lib/rbbt/tsv/parser.rb +7 -6
  19. data/lib/rbbt/tsv/serializers.rb +1 -1
  20. data/lib/rbbt/tsv/util.rb +12 -0
  21. data/lib/rbbt/util/log/progress.rb +1 -1
  22. data/lib/rbbt/util/misc/bgzf.rb +5 -4
  23. data/lib/rbbt/util/misc/development.rb +4 -4
  24. data/lib/rbbt/util/misc/math.rb +0 -1
  25. data/lib/rbbt/util/misc.rb +1 -1
  26. data/lib/rbbt/util/open.rb +1 -1
  27. data/lib/rbbt/workflow/remote_workflow/driver/rest.rb +8 -3
  28. data/lib/rbbt/workflow/remote_workflow/remote_step.rb +4 -0
  29. data/lib/rbbt/workflow/step/info.rb +1 -0
  30. data/lib/rbbt/workflow/step.rb +2 -1
  31. data/lib/rbbt/workflow/util/trace.rb +2 -2
  32. data/lib/rbbt/workflow.rb +2 -2
  33. data/python/rbbt/__init__.py +2 -2
  34. data/share/rbbt_commands/workflow/task +1 -1
  35. metadata +4 -220
  36. data/test/rbbt/annotations/test_util.rb +0 -43
  37. data/test/rbbt/association/test_database.rb +0 -89
  38. data/test/rbbt/association/test_index.rb +0 -127
  39. data/test/rbbt/association/test_item.rb +0 -15
  40. data/test/rbbt/association/test_open.rb +0 -63
  41. data/test/rbbt/association/test_util.rb +0 -108
  42. data/test/rbbt/entity/test_identifiers.rb +0 -74
  43. data/test/rbbt/hpc/orchestrate/test_batches.rb +0 -113
  44. data/test/rbbt/hpc/orchestrate/test_chains.rb +0 -139
  45. data/test/rbbt/hpc/orchestrate/test_rules.rb +0 -92
  46. data/test/rbbt/hpc/test_batch.rb +0 -68
  47. data/test/rbbt/hpc/test_orchestrate.rb +0 -144
  48. data/test/rbbt/hpc/test_pbs.rb +0 -43
  49. data/test/rbbt/hpc/test_slurm.rb +0 -32
  50. data/test/rbbt/knowledge_base/test_enrichment.rb +0 -48
  51. data/test/rbbt/knowledge_base/test_entity.rb +0 -42
  52. data/test/rbbt/knowledge_base/test_query.rb +0 -46
  53. data/test/rbbt/knowledge_base/test_registry.rb +0 -81
  54. data/test/rbbt/knowledge_base/test_syndicate.rb +0 -48
  55. data/test/rbbt/knowledge_base/test_traverse.rb +0 -85
  56. data/test/rbbt/persist/test_tsv.rb +0 -88
  57. data/test/rbbt/persist/tsv/test_cdb.rb +0 -18
  58. data/test/rbbt/persist/tsv/test_kyotocabinet.rb +0 -27
  59. data/test/rbbt/persist/tsv/test_leveldb.rb +0 -18
  60. data/test/rbbt/persist/tsv/test_lmdb.rb +0 -18
  61. data/test/rbbt/persist/tsv/test_sharder.rb +0 -164
  62. data/test/rbbt/persist/tsv/test_tokyocabinet.rb +0 -262
  63. data/test/rbbt/resource/test_path.rb +0 -49
  64. data/test/rbbt/test_annotations.rb +0 -167
  65. data/test/rbbt/test_association.rb +0 -103
  66. data/test/rbbt/test_entity.rb +0 -249
  67. data/test/rbbt/test_fix_width_table.rb +0 -135
  68. data/test/rbbt/test_hpc.rb +0 -16
  69. data/test/rbbt/test_knowledge_base.rb +0 -149
  70. data/test/rbbt/test_monitor.rb +0 -11
  71. data/test/rbbt/test_packed_index.rb +0 -68
  72. data/test/rbbt/test_persist.rb +0 -85
  73. data/test/rbbt/test_resource.rb +0 -110
  74. data/test/rbbt/test_tsv.rb +0 -669
  75. data/test/rbbt/test_workflow.rb +0 -604
  76. data/test/rbbt/tsv/parallel/test_through.rb +0 -40
  77. data/test/rbbt/tsv/parallel/test_traverse.rb +0 -456
  78. data/test/rbbt/tsv/test_accessor.rb +0 -315
  79. data/test/rbbt/tsv/test_attach.rb +0 -718
  80. data/test/rbbt/tsv/test_change_id.rb +0 -61
  81. data/test/rbbt/tsv/test_csv.rb +0 -49
  82. data/test/rbbt/tsv/test_excel.rb +0 -171
  83. data/test/rbbt/tsv/test_field_index.rb +0 -19
  84. data/test/rbbt/tsv/test_filter.rb +0 -187
  85. data/test/rbbt/tsv/test_index.rb +0 -302
  86. data/test/rbbt/tsv/test_manipulate.rb +0 -337
  87. data/test/rbbt/tsv/test_marshal.rb +0 -24
  88. data/test/rbbt/tsv/test_matrix.rb +0 -20
  89. data/test/rbbt/tsv/test_parallel.rb +0 -7
  90. data/test/rbbt/tsv/test_parser.rb +0 -101
  91. data/test/rbbt/tsv/test_stream.rb +0 -253
  92. data/test/rbbt/tsv/test_util.rb +0 -52
  93. data/test/rbbt/util/R/test_eval.rb +0 -43
  94. data/test/rbbt/util/R/test_model.rb +0 -130
  95. data/test/rbbt/util/R/test_plot.rb +0 -38
  96. data/test/rbbt/util/concurrency/processes/test_socket.rb +0 -70
  97. data/test/rbbt/util/concurrency/test_processes.rb +0 -192
  98. data/test/rbbt/util/concurrency/test_threads.rb +0 -40
  99. data/test/rbbt/util/log/test_progress.rb +0 -111
  100. data/test/rbbt/util/misc/test_bgzf.rb +0 -48
  101. data/test/rbbt/util/misc/test_communication.rb +0 -11
  102. data/test/rbbt/util/misc/test_development.rb +0 -26
  103. data/test/rbbt/util/misc/test_format.rb +0 -10
  104. data/test/rbbt/util/misc/test_indiferent_hash.rb +0 -14
  105. data/test/rbbt/util/misc/test_lock.rb +0 -77
  106. data/test/rbbt/util/misc/test_multipart_payload.rb +0 -202
  107. data/test/rbbt/util/misc/test_omics.rb +0 -116
  108. data/test/rbbt/util/misc/test_pipes.rb +0 -343
  109. data/test/rbbt/util/misc/test_serialize.rb +0 -24
  110. data/test/rbbt/util/python/test_util.rb +0 -25
  111. data/test/rbbt/util/simpleopt/test_get.rb +0 -12
  112. data/test/rbbt/util/simpleopt/test_parse.rb +0 -10
  113. data/test/rbbt/util/simpleopt/test_setup.rb +0 -76
  114. data/test/rbbt/util/test_R.rb +0 -37
  115. data/test/rbbt/util/test_chain_methods.rb +0 -22
  116. data/test/rbbt/util/test_cmd.rb +0 -87
  117. data/test/rbbt/util/test_colorize.rb +0 -22
  118. data/test/rbbt/util/test_concurrency.rb +0 -6
  119. data/test/rbbt/util/test_config.rb +0 -69
  120. data/test/rbbt/util/test_excel2tsv.rb +0 -10
  121. data/test/rbbt/util/test_filecache.rb +0 -36
  122. data/test/rbbt/util/test_log.rb +0 -52
  123. data/test/rbbt/util/test_migrate.rb +0 -36
  124. data/test/rbbt/util/test_misc.rb +0 -723
  125. data/test/rbbt/util/test_open.rb +0 -200
  126. data/test/rbbt/util/test_procpath.rb +0 -23
  127. data/test/rbbt/util/test_python.rb +0 -140
  128. data/test/rbbt/util/test_semaphore.rb +0 -36
  129. data/test/rbbt/util/test_simpleDSL.rb +0 -55
  130. data/test/rbbt/util/test_simpleopt.rb +0 -11
  131. data/test/rbbt/util/test_ssh.rb +0 -10
  132. data/test/rbbt/util/test_tmpfile.rb +0 -32
  133. data/test/rbbt/workflow/step/test_dependencies.rb +0 -299
  134. data/test/rbbt/workflow/step/test_save_load_inputs.rb +0 -136
  135. data/test/rbbt/workflow/test_doc.rb +0 -30
  136. data/test/rbbt/workflow/test_remote_workflow.rb +0 -98
  137. data/test/rbbt/workflow/test_schedule.rb +0 -0
  138. data/test/rbbt/workflow/test_step.rb +0 -231
  139. data/test/rbbt/workflow/test_task.rb +0 -85
  140. data/test/rbbt/workflow/util/test_archive.rb +0 -31
  141. data/test/rbbt/workflow/util/test_data.rb +0 -67
  142. data/test/rbbt/workflow/util/test_orchestrator.rb +0 -273
  143. data/test/test_helper.rb +0 -90
@@ -1,144 +0,0 @@
1
- require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'test_helper.rb')
2
- require 'rbbt/workflow'
3
- require 'rbbt/hpc/orchestrate'
4
-
5
- module TestWFA
6
- extend Workflow
7
-
8
- task :a1 => :string do self.task_name.to_s end
9
-
10
- dep :a1
11
- task :a2 => :string do self.task_name.to_s end
12
-
13
- dep :a2
14
- task :a3 => :string do self.task_name.to_s end
15
- end
16
-
17
- module TestWFB
18
- extend Workflow
19
-
20
- dep TestWFA, :a2
21
- task :b1 => :string do self.task_name.to_s end
22
-
23
- dep :b1
24
- task :b2 => :string do self.task_name.to_s end
25
- end
26
-
27
- module TestWFC
28
- extend Workflow
29
-
30
- dep TestWFA, :a1
31
- dep_task :c1, TestWFB, :b2
32
-
33
- task :c2 => :string do self.task_name.to_s end
34
-
35
- dep :c1
36
- dep :c2
37
- task :c3 => :string do self.task_name.to_s end
38
- end
39
-
40
- class TestOrchestrate < Test::Unit::TestCase
41
-
42
- RULES = IndiferentHash.setup(YAML.load(<<-EOF))
43
- ---
44
- defaults:
45
- queue: first_queue
46
- time: 1h
47
- log: 2
48
- config_keys: key1 value1 token1
49
- chains:
50
- chain_a:
51
- workflow: TestWFA
52
- tasks: a1, a2, a3
53
- config_keys: key2 value2 token2, key3 value3 token3.1 token3.2
54
- chain_b:
55
- workflow: TestWFB
56
- tasks: b1, b2
57
- chain_b2:
58
- comment: This chain is not valid, it is missing a2
59
- tasks: TestWFA#a1, TestWFA#a3, TestWFB#b1, TestWFB#b2
60
- TestWFA:
61
- defaults:
62
- log: 4
63
- config_keys: key4 value4 token4
64
- a1:
65
- cpus: 10
66
- config_keys: key5 value5 token5
67
- TestWFC:
68
- defaults:
69
- skip: true
70
- log: 4
71
- EOF
72
-
73
- def test_parse_chains
74
- chains = HPC::Orchestration.parse_chains RULES
75
- assert chains[:chain_a][:tasks]["TestWFA"].include?("a1")
76
- end
77
-
78
- def test_task_options
79
- rules = HPC::Orchestration.task_specific_rules RULES, "TestWFA", :a1
80
- assert_equal 10, rules[:cpus]
81
- assert_equal 4, rules[:log]
82
- end
83
-
84
- def test_job_workload
85
- job = TestWFB.job(:b2, nil)
86
- job.recursive_clean
87
-
88
- workload = HPC::Orchestration.job_workload(job)
89
-
90
- assert workload.include? job
91
- end
92
-
93
- def test_job_chains
94
- job = TestWFB.job(:b2, nil)
95
-
96
- job.recursive_clean
97
- job_chains = HPC::Orchestration.job_chains(RULES, job)
98
- assert_equal 3, job_chains.length
99
-
100
- TestWFB.job(:b1).run
101
- job_chains = HPC::Orchestration.job_chains(RULES, job)
102
- assert_equal 0, job_chains.length
103
-
104
- job.recursive_clean
105
- TestWFA.job(:a1).run
106
- job_chains = HPC::Orchestration.job_chains(RULES, job)
107
- assert_equal 2, job_chains.length
108
- end
109
-
110
- def test_job_batches
111
- job = TestWFB.job(:b2, nil)
112
-
113
- job.recursive_clean
114
- batches = HPC::Orchestration.job_batches(RULES, job)
115
- assert_equal 2, batches.length
116
-
117
- assert_equal job.rec_dependencies.length + 1, batches.inject(0){|acc,e| acc += e[:jobs].length }
118
- end
119
-
120
- def test_job_batches_skip
121
- job = TestWFC.job(:c1, nil)
122
-
123
- job.recursive_clean
124
- batches = HPC::Orchestration.job_batches(RULES, job)
125
- assert_equal 2, batches.length
126
-
127
- assert_equal job.rec_dependencies.length + 1, batches.inject(0){|acc,e| acc += e[:jobs].length }
128
- end
129
-
130
- def test_job_batches_skip_2
131
- job = TestWFC.job(:c3, nil)
132
-
133
- job.recursive_clean
134
- batches = HPC::Orchestration.job_batches(RULES, job)
135
- assert_equal 4, batches.length
136
-
137
- assert_equal job.rec_dependencies.length + 1, batches.inject(0){|acc,e| acc += e[:jobs].length }
138
-
139
- batches
140
- end
141
-
142
-
143
- end
144
-
@@ -1,43 +0,0 @@
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
-
@@ -1,32 +0,0 @@
1
- require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'test_helper.rb')
2
- require 'rbbt/hpc/slurm'
3
- require 'rbbt/workflow'
4
-
5
- class TestSLURM < Test::Unit::TestCase
6
- def setup
7
- Workflow.require_workflow "Sample"
8
- Workflow.require_workflow "HTS"
9
- end
10
-
11
- def __test_template
12
- job = Sample.job(:mutect2, "small", :reference => "hg38")
13
-
14
- TmpFile.with_file do |batch_dir|
15
-
16
- template = HPC::SLURM.job_template(job, :batch_dir => batch_dir, :batch_modules => 'java')
17
- ppp template
18
-
19
- end
20
- end
21
-
22
- def __test_run_job
23
- job = Sample.job(:mutect2, "small", :reference => "hg38")
24
-
25
- job.clean
26
-
27
- 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")
28
- assert jobid.to_s =~ /^\d+$/
29
- end
30
-
31
- end
32
-
@@ -1,48 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '../../../test_helper')
2
- require 'rbbt/util/tmpfile'
3
- require 'test/unit'
4
- require 'rbbt/knowledge_base'
5
- require 'rbbt/knowledge_base/enrichment'
6
-
7
-
8
- class TestKnowledgeBaseEnrichment < Test::Unit::TestCase
9
- def knowledge_base(file)
10
-
11
- effect =StringIO.new <<-END
12
- #: :sep=" "#:type=:double
13
- #SG TG Effect
14
- MDM2 TP53 inhibition
15
- TP53 NFKB1|GLI1 activation|activation true|true
16
- END
17
-
18
- effect_options = {
19
- :source => "SG=~Associated Gene Name",
20
- :target => "TG=~Associated Gene Name=>Ensembl Gene ID",
21
- :persist => false,
22
- :identifiers => datafile_test('identifiers'),
23
- :undirected => true,
24
- :namespace => "Hsa"
25
- }
26
-
27
- effect_tsv = TSV.open effect, effect_options.dup
28
-
29
- knowledge_base = KnowledgeBase.new file, "Hsa/feb2014"
30
- knowledge_base.format = {"Gene" => "Ensembl Gene ID"}
31
-
32
- knowledge_base.register :effects, effect_tsv, effect_options.dup
33
- knowledge_base.register :gene_ages, datafile_test('gene_ages')
34
- knowledge_base.register :nature, datafile_test('nature'), :source => "UniProt/SwissProt Accession", :target => "NCI Nature Pathway ID"
35
-
36
- knowledge_base
37
- end
38
-
39
- def test_enrichment
40
- TmpFile.with_file do |tmp_kb|
41
- genes = %w(P17706-2 LMAN1 P17706-1 P29353-2 JAK3 Q8NFM1 EIF2AK2 JAK1 SRC PIAS1 KPNB1 KPNA2 STAT3 PTPN1 ATR CREBBP PTPRA SGK1 P46108-1 NCK2 O00145 PTPN1 CBL SORBS1 IRS1 SHC1 AKT2 GRB2 SOS1 RPS6KB1 AKT1 DOK1 RASA1 NCK1 FOXO3 RAPGEF1 TRIP10 EIF4EBP1 PDPK1 GRB14 PTPN11 INS GRB10 CAV1 EIF4B RPS6KB1 EEF2 EEF2K AKT1 TSC1 TSC2 CLIP1 DDIT4 SGK1 PDPK1 DEPTOR SREBF1 CYCS IRS1 RPS6KA1 BNIP3 RRN3 RICTOR IKBKB AKT1S1 PXN PML EIF4A1 PPARGC1A YY1 PRKCA RPTOR PDCD4 SIK1 P10636-8 BRSK1 MYC SMARCD3 STK11 ETV4 MARK4 MAP2 MARK2 CRTC2 PSEN2 MST4 CTSD BRSK2 SIK2 ESR1 CAB39 STK11IP SMAD4 CREB1 PRKACA EZR TP53 GSK3B SIK3 CDC37 HSP90AA1 )
42
- assert knowledge_base(tmp_kb).enrichment(:nature, genes).any?
43
- end
44
- end
45
-
46
- end
47
-
48
-
@@ -1,42 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '../../../test_helper')
2
- require 'rbbt-util'
3
- require 'rbbt/util/tmpfile'
4
- require 'test/unit'
5
- require 'rbbt/knowledge_base'
6
- require 'rbbt/knowledge_base/entity'
7
-
8
- module Gene
9
- extend Entity
10
- end
11
-
12
- class TestKnowledgeEnity < Test::Unit::TestCase
13
-
14
- EFFECT =StringIO.new <<-END
15
- #: :sep=" "#:type=:double
16
- #SG TG Effect
17
- MDM2 TP53 inhibition
18
- TP53 NFKB1|GLI1 activation|activation true|true
19
- END
20
-
21
- EFFECT_OPTIONS = {
22
- :source => "SG=~Associated Gene Name",
23
- :target => "TG=~Associated Gene Name=>Ensembl Gene ID",
24
- :undirected => true,
25
- :persist => true,
26
- :namespace => "Hsa"
27
- }
28
- Gene.add_identifiers datafile_test('identifiers')
29
-
30
- EFFECT_TSV = TSV.open EFFECT, EFFECT_OPTIONS.dup
31
-
32
- KNOWLEDGE_BASE = KnowledgeBase.new '/tmp/kb.foo3', "Hsa"
33
- KNOWLEDGE_BASE.format = {"Gene" => "Associated Gene Name"}
34
-
35
- KNOWLEDGE_BASE.register :effects, EFFECT_TSV, EFFECT_OPTIONS.dup
36
-
37
- def test_entity_options
38
- KNOWLEDGE_BASE.entity_options = {"Gene" => {:organism => "Mmu"}}
39
- assert_equal "Mmu", KNOWLEDGE_BASE.children(:effects, "TP53").target_entity.organism
40
- end
41
- end
42
-
@@ -1,46 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '../../../test_helper')
2
- require 'rbbt/util/tmpfile'
3
- require 'test/unit'
4
- require 'rbbt/knowledge_base'
5
- require 'rbbt/knowledge_base/query'
6
-
7
- class TestKnowledgeBaseQuery < Test::Unit::TestCase
8
-
9
- EFFECT =StringIO.new <<-END
10
- #: :sep=" "#:type=:double
11
- #SG TG Effect
12
- MDM2 TP53 inhibition
13
- TP53 NFKB1|GLI1 activation|activation true|true
14
- END
15
-
16
- EFFECT_OPTIONS = {
17
- :source => "SG=~Associated Gene Name=>Ensembl Gene ID",
18
- :target => "TG=~Associated Gene Name=>Ensembl Gene ID",
19
- :persist => false,
20
- :identifiers => datafile_test('identifiers'),
21
- :undirected => true,
22
- :namespace => "Hsa"
23
- }
24
-
25
- EFFECT_TSV = TSV.open EFFECT, EFFECT_OPTIONS.dup
26
-
27
- KNOWLEDGE_BASE = KnowledgeBase.new Rbbt.tmp.test.kb_foo2, "Hsa"
28
- KNOWLEDGE_BASE.format = {"Gene" => "Ensembl Gene ID"}
29
-
30
- KNOWLEDGE_BASE.register :effects, EFFECT_TSV, EFFECT_OPTIONS.dup
31
-
32
- def test_subset_all_persist
33
- Misc.benchmark(1000) do
34
- assert_equal 6, KNOWLEDGE_BASE.subset(:effects, :all).length
35
-
36
- assert_equal 4, KNOWLEDGE_BASE.subset(:effects, :all).target_entity.uniq.length
37
- assert_equal %w(Effect), KNOWLEDGE_BASE.subset(:effects, :all).info.first.keys
38
- end
39
- end
40
-
41
- def _test_subset_all_persist_format
42
- assert KNOWLEDGE_BASE.subset(:effects, :all).target_entity.reject{|e| e =~ /^ENS/}.empty?
43
- end
44
-
45
- end
46
-
@@ -1,81 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '../../../test_helper')
2
- require 'rbbt/util/tmpfile'
3
- require 'test/unit'
4
- require 'rbbt/knowledge_base'
5
- require 'rbbt/knowledge_base/registry'
6
-
7
-
8
- class TestKnowledgeBaseRegistry < Test::Unit::TestCase
9
-
10
- EFFECT =StringIO.new <<-END
11
- #: :sep=" "#:type=:double
12
- #SG TG Effect
13
- MDM2 TP53 inhibition
14
- TP53 NFKB1|GLI1 activation|activation true|true
15
- END
16
-
17
- EFFECT_OPTIONS = {
18
- :source => "SG=~Associated Gene Name",
19
- :target => "TG=~Associated Gene Name=>Ensembl Gene ID",
20
- :persist => false,
21
- :identifiers => datafile_test('identifiers'),
22
- :undirected => true,
23
- :namespace => "Hsa"
24
- }
25
-
26
- EFFECT_TSV = TSV.open EFFECT, EFFECT_OPTIONS.dup
27
-
28
- KNOWLEDGE_BASE = KnowledgeBase.new '/tmp/kb.foo2'
29
-
30
- KNOWLEDGE_BASE.register :effects, EFFECT_TSV, EFFECT_OPTIONS.dup
31
-
32
- KNOWLEDGE_BASE.register :pina, datafile_test('pina'), :source => "UniProt/SwissProt Accession", :target => "Interactor UniProt/SwissProt Accession=~UniProt/SwissProt Accession", :undirected => true
33
-
34
- def test_database
35
- assert_equal "Associated Gene Name", KNOWLEDGE_BASE.get_database(:effects, :source_format => "Associated Gene Name").key_field
36
- end
37
-
38
- def test_index
39
- assert KNOWLEDGE_BASE.get_index(:effects, :source_format => "Associated Gene Name", :target_format => "Ensembl Gene ID", :persist => false).include? "MDM2~ENSG00000141510"
40
- end
41
-
42
- def test_index_persist
43
- assert KNOWLEDGE_BASE.get_index(:effects, :source_format => "Associated Gene Name", :target_format => "Ensembl Gene ID", :persist => true).include? "MDM2~ENSG00000141510"
44
- end
45
-
46
- def test_index_flat
47
- require 'rbbt/sources/tfacts'
48
- file = TFactS.regulators
49
- KNOWLEDGE_BASE.register :tfacts, file, :type => :flat, :source => "Transcription Factor Associated Gene Name=~Associated Gene Name", :merge => true
50
- assert KNOWLEDGE_BASE.subset(:tfacts, :source => ["TP53"], :target => :all).length > 10
51
- end
52
-
53
- def test_pina
54
- index = KNOWLEDGE_BASE.get_index(:pina, :persist => false, :source_format => "Associated Gene Name", :target_format => "Associated Gene Name")
55
- assert index["TP53~ARID1A"]
56
- assert index["ARID1A~TP53"]
57
- assert_equal index["ARID1A~TP53"], index["TP53~ARID1A"]
58
-
59
- index = KNOWLEDGE_BASE.get_index(:pina, :persist => false, :source_format => "Associated Gene Name", :target_format => "Associated Gene Name", :undirected => false)
60
- count = 0
61
- index.through do |k,values|
62
- split_values = values.collect{|v| v.split ";;" }
63
- count += 1 if Misc.zip_fields(split_values).uniq != Misc.zip_fields(split_values)
64
- end
65
-
66
- index = KNOWLEDGE_BASE.get_index(:pina, :persist => false, :source_format => "Associated Gene Name", :target_format => "Associated Gene Name", :undirected => true)
67
- count2 = 0
68
- index.through do |k,values|
69
- split_values = values.collect{|v| v.split ";;" }
70
- count2 += 1 if Misc.zip_fields(split_values).uniq != Misc.zip_fields(split_values)
71
- end
72
-
73
- end
74
-
75
- def test_pina2
76
- KNOWLEDGE_BASE.entity_options["Gene"] = {:organism => "Mmu"}
77
- index = KNOWLEDGE_BASE.get_index(:pina, :persist => true, :source_format => "Ensembl Gene ID", :target_format => "Ensembl Gene ID", :undirected => true)
78
- assert_equal "Mmu", index.entity_options["Gene"][:organism]
79
- end
80
- end
81
-
@@ -1,48 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '../../../test_helper')
2
- require 'rbbt/util/tmpfile'
3
- require 'test/unit'
4
- require 'rbbt/knowledge_base'
5
- require 'rbbt/knowledge_base/query'
6
-
7
- module Gene
8
- extend Entity
9
- end
10
- class TestKnowledgeBaseSyndicate < Test::Unit::TestCase
11
-
12
- EFFECT =StringIO.new <<-END
13
- #: :sep=" "#:type=:double
14
- #SG TG Effect
15
- MDM2 TP53 inhibition
16
- TP53 NFKB1|GLI1 activation|activation true|true
17
- END
18
-
19
- EFFECT_OPTIONS = {
20
- :source => "SG=~Associated Gene Name",
21
- :target => "TG=~Associated Gene Name=>Ensembl Gene ID",
22
- :persist => false,
23
- :identifiers => datafile_test('identifiers'),
24
- :undirected => true,
25
- :namespace => "Hsa"
26
- }
27
-
28
- EFFECT_TSV = TSV.open EFFECT, EFFECT_OPTIONS.dup
29
-
30
- KNOWLEDGE_BASE = KnowledgeBase.new '/tmp/kb.foo2', "Hsa"
31
- KNOWLEDGE_BASE.format = {"Gene" => "Ensembl Gene ID"}
32
- KNOWLEDGE_BASE.entity_options["Gene"] = {:organism => "Mmu", :test_option => "TEST"}
33
-
34
- KNOWLEDGE_BASE.register :effects, EFFECT_TSV, EFFECT_OPTIONS.dup
35
-
36
- def test_syndicate_entity_options
37
- Gene.add_identifiers datafile_test('identifiers')
38
- kb = KnowledgeBase.new "/tmp/kb.foo3", "Hsa"
39
- kb.format = {"Gene" => "Associated Gene Name"}
40
- kb.syndicate :orig, KNOWLEDGE_BASE
41
- assert_equal "Mmu", KNOWLEDGE_BASE.entity_options_for("Gene", "effects")[:organism]
42
- assert_equal "Mmu", kb.get_index("effects@orig").entity_options["Gene"][:organism]
43
- assert_equal "Mmu", kb.get_database("effects@orig").entity_options["Gene"][:organism]
44
- assert_equal "Mmu", kb.entity_options_for("Gene", "effects@orig")[:organism]
45
- assert_equal "Mmu", kb.children("effects@orig", "TP53").source_entity.organism
46
- end
47
- end
48
-
@@ -1,85 +0,0 @@
1
- require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'test_helper.rb')
2
- require 'rbbt/knowledge_base/traverse'
3
- require 'rbbt/workflow'
4
-
5
- class TestKnowledgeBaseTraverse < Test::Unit::TestCase
6
- def setup
7
- Workflow.require_workflow "Genomics"
8
- end
9
-
10
- def kb
11
- Genomics.knowledge_base
12
- end
13
-
14
- def test_traverse
15
- rules = []
16
- rules << "?1 pina SF3B1 - Method=MI:0006"
17
- rules << "TP53 pina ?2"
18
- rules << "?2 pina ?1"
19
- res = kb.traverse rules
20
- assert res.first.include? "?1"
21
- end
22
-
23
- def test_traverse2
24
- rules = []
25
- rules << "?target =pina SF3B1"
26
- rules << "?1 pina ?target - Method=MI:0006"
27
- rules << "TP53 pina ?2"
28
- rules << "?2 pina ?1"
29
- res = kb.traverse rules
30
- assert res.first.include? "?1"
31
- end
32
-
33
- def test_traverse3
34
- rules = []
35
- rules << "?target = ENSG00000115524"
36
- rules << "?1 pina ?target - Method=MI:0006"
37
- rules << "TP53 pina ?2"
38
- rules << "?2 pina ?1"
39
- res = kb.traverse rules
40
- assert res.first.include? "?1"
41
- end
42
-
43
-
44
- def test_traverse_acc
45
- Log.severity = 0
46
- rules_str=<<-EOF
47
- ?target{
48
- ?target pina SF3B1
49
- }
50
- ?1 pina TP53
51
- ?1 pina ?target
52
- EOF
53
- rules = rules_str.split "\n"
54
- res = kb.traverse rules
55
- iii res
56
- assert res.first.include? "?1"
57
- end
58
-
59
-
60
- def test_path
61
- rules = []
62
- rules << "?1 pina ARPC2"
63
- rules << "ARPC3 pina ?2"
64
- rules << "?2 pina ?1"
65
- res = kb.traverse rules
66
- assert res.first.include? "?1"
67
- end
68
-
69
- def test_path2
70
- rules = []
71
- rules << "?1 pina SF3B1"
72
- rules << "?2 pina SF3B1"
73
- rules << "?1 pina ?2"
74
- res = kb.traverse rules
75
- assert res.first.include? "?1"
76
- end
77
-
78
- def test_wildcard_db
79
- rules = []
80
- rules << "?1 ?db SF3B1 - Method=MI:0006"
81
- res = kb.traverse rules
82
- assert res.first.include? "?1"
83
- end
84
- end
85
-
@@ -1,88 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../test_helper')
2
- require 'rbbt/persist'
3
- require 'rbbt/annotations'
4
- require 'rbbt/util/tmpfile'
5
- require 'test/unit'
6
-
7
-
8
-
9
- class TestPersistTSV < Test::Unit::TestCase
10
- MAX = 100_002
11
-
12
- def tsv_path
13
- Random.new
14
- require 'rbbt/workflow'
15
- Workflow.require_workflow "Genomes1000"
16
- require 'rbbt/sources/genomes1000'
17
- CMD.cmd("grep -v '^\\.\t' | head -n #{MAX}", :in => Genomes1000.mutations.open, :pipe => true)
18
- end
19
-
20
- def run_bechmark(file, engine)
21
- Log.info "Testing #{ Term::ANSIColor.red(engine) }"
22
- TmpFile.with_file nil, false do |tmp_file|
23
- db= nil
24
-
25
- Misc.benchmark(1, "Build database with #{MAX - 2} entries") do
26
- db = TSV.open(file, :fields => [1], :persist => true, :persist_engine => engine, :persist_dir => tmp_file, :type => :single, :unnamed => true)
27
- end
28
-
29
- _test = db.keys.sort{rand}[1..100000]
30
- Misc.benchmark(5, "Access #{test.length} random entries") do
31
- _test.each do |k| db[k] end
32
- end
33
- Log.info "Profiling access to #{test.length} random entries"
34
- Misc.profile :min_percent => 0.1 do
35
- _test.each do |k| db[k] end
36
- end
37
- assert_equal "1:10611:G", db["rs189107123"]
38
- end
39
- end
40
-
41
- def __test_benchmark_tch
42
- engine = "HDB"
43
- run_bechmark(tsv_path, engine)
44
- end
45
-
46
- def __test_benchmark_tcb
47
- engine = "BDB"
48
- run_bechmark(tsv_path, engine)
49
- end
50
-
51
- def __test_benchmark_kch
52
- engine = "kch"
53
- run_bechmark(tsv_path, engine)
54
- end
55
-
56
- def __test_benchmark_kcb
57
- engine = "kct"
58
- run_bechmark(tsv_path, engine)
59
- end
60
-
61
- def __test_benchmark_cdb
62
- engine = "CDB"
63
- run_bechmark(tsv_path, engine)
64
- end
65
-
66
- def __test_benchmark_leveldb
67
- engine = "LevelDB"
68
- run_bechmark(tsv_path, engine)
69
- end
70
-
71
- def __test_benchmark_lmdb
72
- engine = "LMDB"
73
- run_bechmark(tsv_path, engine)
74
- end
75
-
76
- def test_tsv_persist
77
- content =<<-EOF
78
- #: :cast=:to_f
79
- #Key Value1 Value2
80
- k1 1.1 2.1
81
- k2 1.2 2.2
82
- EOF
83
- TmpFile.with_file(content) do |tsv_file|
84
- tsv = TSV.open(tsv_file, :sep => " ", :persist => true, :type => :double, :merge => true)
85
- iii tsv["k1"]
86
- end
87
- end
88
- end
@@ -1,18 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../../test_helper')
2
- require 'rbbt/persist'
3
- require 'rbbt/annotations'
4
- require 'rbbt/util/tmpfile'
5
- require 'test/unit'
6
-
7
- class TestPersistTSVCDB < Test::Unit::TestCase
8
-
9
- if Persist.respond_to? :open_cbd
10
- def test_organism
11
- require 'rbbt/sources/organism'
12
- TmpFile.with_file nil do |tmp_file|
13
- tsv = Organism.identifiers("Hsa").tsv(:key_field => "Associated Gene Name", :fields => ["Ensembl Gene ID"], :type => :single, :persist => true, :persist_engine => "CDB", :persist_dir => tmp_file)
14
- assert_equal "ENSG00000141510", tsv["TP53"]
15
- end
16
- end
17
- end
18
- end