rbbt-util 5.43.0 → 5.44.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/association/util.rb +1 -1
- data/lib/rbbt/hpc/batch.rb +19 -17
- data/lib/rbbt/tsv/accessor.rb +6 -11
- data/lib/rbbt/tsv/dumper.rb +21 -10
- data/lib/rbbt/tsv/index.rb +2 -1
- data/lib/rbbt/util/misc/math.rb +0 -1
- data/lib/rbbt/util/open.rb +1 -1
- data/lib/rbbt/workflow/step/info.rb +1 -0
- data/lib/rbbt/workflow/step.rb +2 -1
- data/python/rbbt/__init__.py +2 -2
- data/share/rbbt_commands/workflow/task +1 -1
- metadata +4 -220
- data/test/rbbt/annotations/test_util.rb +0 -43
- data/test/rbbt/association/test_database.rb +0 -87
- data/test/rbbt/association/test_index.rb +0 -127
- data/test/rbbt/association/test_item.rb +0 -15
- data/test/rbbt/association/test_open.rb +0 -63
- data/test/rbbt/association/test_util.rb +0 -108
- data/test/rbbt/entity/test_identifiers.rb +0 -34
- data/test/rbbt/hpc/orchestrate/test_batches.rb +0 -70
- data/test/rbbt/hpc/orchestrate/test_chains.rb +0 -108
- data/test/rbbt/hpc/orchestrate/test_rules.rb +0 -59
- data/test/rbbt/hpc/test_batch.rb +0 -64
- data/test/rbbt/hpc/test_hpc_test_workflows.rb +0 -0
- data/test/rbbt/hpc/test_orchestrate.rb +0 -144
- data/test/rbbt/hpc/test_pbs.rb +0 -43
- data/test/rbbt/hpc/test_slurm.rb +0 -28
- data/test/rbbt/knowledge_base/test_enrichment.rb +0 -50
- data/test/rbbt/knowledge_base/test_entity.rb +0 -62
- data/test/rbbt/knowledge_base/test_query.rb +0 -46
- data/test/rbbt/knowledge_base/test_registry.rb +0 -74
- data/test/rbbt/knowledge_base/test_syndicate.rb +0 -48
- data/test/rbbt/knowledge_base/test_traverse.rb +0 -133
- data/test/rbbt/persist/test_tsv.rb +0 -88
- data/test/rbbt/persist/tsv/test_cdb.rb +0 -18
- data/test/rbbt/persist/tsv/test_kyotocabinet.rb +0 -27
- data/test/rbbt/persist/tsv/test_leveldb.rb +0 -18
- data/test/rbbt/persist/tsv/test_lmdb.rb +0 -20
- data/test/rbbt/persist/tsv/test_sharder.rb +0 -164
- data/test/rbbt/persist/tsv/test_tokyocabinet.rb +0 -262
- data/test/rbbt/resource/test_path.rb +0 -49
- data/test/rbbt/test_annotations.rb +0 -167
- data/test/rbbt/test_association.rb +0 -103
- data/test/rbbt/test_entity.rb +0 -252
- data/test/rbbt/test_fix_width_table.rb +0 -135
- data/test/rbbt/test_knowledge_base.rb +0 -226
- data/test/rbbt/test_monitor.rb +0 -11
- data/test/rbbt/test_packed_index.rb +0 -68
- data/test/rbbt/test_persist.rb +0 -85
- data/test/rbbt/test_resource.rb +0 -110
- data/test/rbbt/test_tsv.rb +0 -669
- data/test/rbbt/test_workflow.rb +0 -609
- data/test/rbbt/tsv/parallel/test_through.rb +0 -40
- data/test/rbbt/tsv/parallel/test_traverse.rb +0 -456
- data/test/rbbt/tsv/test_accessor.rb +0 -319
- data/test/rbbt/tsv/test_attach.rb +0 -715
- data/test/rbbt/tsv/test_change_id.rb +0 -61
- data/test/rbbt/tsv/test_csv.rb +0 -49
- data/test/rbbt/tsv/test_excel.rb +0 -171
- data/test/rbbt/tsv/test_field_index.rb +0 -19
- data/test/rbbt/tsv/test_filter.rb +0 -187
- data/test/rbbt/tsv/test_index.rb +0 -308
- data/test/rbbt/tsv/test_manipulate.rb +0 -334
- data/test/rbbt/tsv/test_marshal.rb +0 -24
- data/test/rbbt/tsv/test_matrix.rb +0 -20
- data/test/rbbt/tsv/test_parallel.rb +0 -7
- data/test/rbbt/tsv/test_parser.rb +0 -101
- data/test/rbbt/tsv/test_stream.rb +0 -253
- data/test/rbbt/tsv/test_util.rb +0 -52
- data/test/rbbt/util/R/test_eval.rb +0 -43
- data/test/rbbt/util/R/test_model.rb +0 -128
- data/test/rbbt/util/R/test_plot.rb +0 -38
- data/test/rbbt/util/concurrency/processes/test_socket.rb +0 -70
- data/test/rbbt/util/concurrency/test_processes.rb +0 -192
- data/test/rbbt/util/concurrency/test_threads.rb +0 -40
- data/test/rbbt/util/log/test_progress.rb +0 -111
- data/test/rbbt/util/misc/test_bgzf.rb +0 -48
- data/test/rbbt/util/misc/test_communication.rb +0 -13
- data/test/rbbt/util/misc/test_development.rb +0 -26
- data/test/rbbt/util/misc/test_format.rb +0 -10
- data/test/rbbt/util/misc/test_indiferent_hash.rb +0 -14
- data/test/rbbt/util/misc/test_lock.rb +0 -77
- data/test/rbbt/util/misc/test_multipart_payload.rb +0 -202
- data/test/rbbt/util/misc/test_omics.rb +0 -116
- data/test/rbbt/util/misc/test_pipes.rb +0 -343
- data/test/rbbt/util/misc/test_serialize.rb +0 -24
- data/test/rbbt/util/python/test_util.rb +0 -25
- data/test/rbbt/util/simpleopt/test_get.rb +0 -12
- data/test/rbbt/util/simpleopt/test_parse.rb +0 -10
- data/test/rbbt/util/simpleopt/test_setup.rb +0 -76
- data/test/rbbt/util/test_R.rb +0 -37
- data/test/rbbt/util/test_chain_methods.rb +0 -22
- data/test/rbbt/util/test_cmd.rb +0 -87
- data/test/rbbt/util/test_colorize.rb +0 -22
- data/test/rbbt/util/test_concurrency.rb +0 -6
- data/test/rbbt/util/test_config.rb +0 -69
- data/test/rbbt/util/test_excel2tsv.rb +0 -10
- data/test/rbbt/util/test_filecache.rb +0 -36
- data/test/rbbt/util/test_log.rb +0 -52
- data/test/rbbt/util/test_migrate.rb +0 -34
- data/test/rbbt/util/test_misc.rb +0 -728
- data/test/rbbt/util/test_open.rb +0 -200
- data/test/rbbt/util/test_procpath.rb +0 -23
- data/test/rbbt/util/test_python.rb +0 -144
- data/test/rbbt/util/test_semaphore.rb +0 -36
- data/test/rbbt/util/test_simpleDSL.rb +0 -55
- data/test/rbbt/util/test_simpleopt.rb +0 -11
- data/test/rbbt/util/test_ssh.rb +0 -10
- data/test/rbbt/util/test_tmpfile.rb +0 -32
- data/test/rbbt/workflow/step/test_dependencies.rb +0 -295
- data/test/rbbt/workflow/step/test_save_load_inputs.rb +0 -136
- data/test/rbbt/workflow/test_doc.rb +0 -30
- data/test/rbbt/workflow/test_remote_workflow.rb +0 -99
- data/test/rbbt/workflow/test_schedule.rb +0 -0
- data/test/rbbt/workflow/test_step.rb +0 -231
- data/test/rbbt/workflow/test_task.rb +0 -85
- data/test/rbbt/workflow/util/test_archive.rb +0 -27
- data/test/rbbt/workflow/util/test_data.rb +0 -67
- data/test/rbbt/workflow/util/test_orchestrator.rb +0 -263
- data/test/test_helper.rb +0 -114
@@ -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
|
-
|
data/test/rbbt/hpc/test_pbs.rb
DELETED
@@ -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
|
-
assert_include template, "rbbt workflow task TestWorkflow hello"
|
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/hpc/test_slurm.rb
DELETED
@@ -1,28 +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
|
-
require_relative 'hpc_test_workflows'
|
6
|
-
class TestSLURM < Test::Unit::TestCase
|
7
|
-
def test_template
|
8
|
-
job = TestWFA.job(:a2, "TEST")
|
9
|
-
|
10
|
-
TmpFile.with_file do |batch_dir|
|
11
|
-
|
12
|
-
template = HPC::SLURM.job_template(job, :batch_dir => batch_dir, :batch_modules => 'java', :time => '10min')
|
13
|
-
assert_include template, "rbbt workflow task TestWFA a2"
|
14
|
-
assert_include template, "00:10:00"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def __test_run_job
|
19
|
-
job = Sample.job(:mutect2, "small", :reference => "hg38")
|
20
|
-
|
21
|
-
job.clean
|
22
|
-
|
23
|
-
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")
|
24
|
-
assert jobid.to_s =~ /^\d+$/
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
|
@@ -1,50 +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
|
-
keyword_test :R do
|
41
|
-
TmpFile.with_file do |tmp_kb|
|
42
|
-
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 )
|
43
|
-
assert knowledge_base(tmp_kb).enrichment(:nature, genes).any?
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
|
-
|
50
|
-
|
@@ -1,62 +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
|
-
def with_kb(&block)
|
33
|
-
keyword_test :organism do
|
34
|
-
require 'rbbt/sources/organism'
|
35
|
-
organism = Organism.default_code("Hsa")
|
36
|
-
TmpFile.with_file do |tmpdir|
|
37
|
-
kb = KnowledgeBase.new tmpdir, "Hsa"
|
38
|
-
kb.format = {"Gene" => "Associated Gene Name"}
|
39
|
-
|
40
|
-
kb.register :effects, EFFECT_TSV, EFFECT_OPTIONS.dup
|
41
|
-
|
42
|
-
yield kb
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_entity_options
|
48
|
-
with_kb do |kb|
|
49
|
-
kb.entity_options = {"Gene" => {:organism => "Mmu"}}
|
50
|
-
assert_include kb.children(:effects, "TP53").target_entity.to("Associated Gene Name"), "GLI1"
|
51
|
-
assert_equal "Mmu", kb.children(:effects, "TP53").target_entity.organism
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def test_source_type
|
56
|
-
with_kb do |kb|
|
57
|
-
assert_match "Gene", kb.source_type(:effects).to_s
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
62
|
-
|
@@ -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,74 +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
|
-
def with_kb(&block)
|
29
|
-
keyword_test :organism do
|
30
|
-
require 'rbbt/sources/organism'
|
31
|
-
organism = Organism.default_code("Hsa")
|
32
|
-
TmpFile.with_file do |tmpdir|
|
33
|
-
kb = KnowledgeBase.new tmpdir
|
34
|
-
kb.namespace = organism
|
35
|
-
kb.format = {"Gene" => "Associated Gene Name"}
|
36
|
-
|
37
|
-
kb.register :effects, EFFECT_TSV, EFFECT_OPTIONS
|
38
|
-
kb.register :pina, datafile_test('pina'),
|
39
|
-
:source => "UniProt/SwissProt Accession",
|
40
|
-
:target => "Interactor UniProt/SwissProt Accession=~UniProt/SwissProt Accession",
|
41
|
-
:undirected => true
|
42
|
-
|
43
|
-
kb.register :gene_ages, datadir_test.gene_ages, :source => "=>Associated Gene Name"
|
44
|
-
|
45
|
-
kb.register :CollecTRI, datadir_test.CollecTRI,
|
46
|
-
:source => "Transcription Factor=~Associated Gene Name",
|
47
|
-
:target => "Target Gene=~Associated Gene Name",
|
48
|
-
:fields => ["[ExTRI] Confidence", "[ExTRI] PMID"]
|
49
|
-
|
50
|
-
yield kb
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def test_database
|
56
|
-
with_kb do |kb|
|
57
|
-
assert_equal "Associated Gene Name", kb.get_database(:effects, :source_format => "Associated Gene Name").key_field
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_index
|
62
|
-
with_kb do |kb|
|
63
|
-
assert kb.get_index(:effects, :source_format => "Associated Gene Name", :target_format => "Ensembl Gene ID", :persist => false).include? "MDM2~ENSG00000141510"
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_index_persist
|
68
|
-
with_kb do |kb|
|
69
|
-
assert kb.get_index(:effects, :source_format => "Associated Gene Name", :target_format => "Ensembl Gene ID", :persist => true).include? "MDM2~ENSG00000141510"
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
end
|
74
|
-
|
@@ -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,133 +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 with_kb(&block)
|
7
|
-
keyword_test :organism do
|
8
|
-
require 'rbbt/sources/organism'
|
9
|
-
organism = Organism.default_code("Hsa")
|
10
|
-
TmpFile.with_file do |tmpdir|
|
11
|
-
kb = KnowledgeBase.new tmpdir
|
12
|
-
kb.namespace = organism
|
13
|
-
kb.format = {"Gene" => "Associated Gene Name"}
|
14
|
-
|
15
|
-
kb.register :gene_ages, datadir_test.gene_ages, :source => "=>Associated Gene Name"
|
16
|
-
|
17
|
-
kb.register :CollecTRI, datadir_test.CollecTRI,
|
18
|
-
:source => "Transcription Factor=~Associated Gene Name",
|
19
|
-
:target => "Target Gene=~Associated Gene Name",
|
20
|
-
:fields => ["[ExTRI] Confidence", "[ExTRI] PMID"]
|
21
|
-
|
22
|
-
yield kb
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_traverse_simple
|
28
|
-
with_kb do |kb|
|
29
|
-
rules = []
|
30
|
-
rules << "SMAD4 gene_ages ?1"
|
31
|
-
res = kb.traverse rules
|
32
|
-
assert_include res.first["?1"], "Bilateria"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_traverse_CollecTRI
|
37
|
-
with_kb do |kb|
|
38
|
-
rules = []
|
39
|
-
rules << "SMAD4 CollecTRI ?1 - '[ExTRI] Confidence=High'"
|
40
|
-
res = kb.traverse rules
|
41
|
-
assert res.last.any?
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
|
46
|
-
def test_traverse
|
47
|
-
with_kb do |kb|
|
48
|
-
rules = []
|
49
|
-
rules << "?1 CollecTRI SMAD7"
|
50
|
-
rules << "?1 gene_ages ?2"
|
51
|
-
rules << "SMAD4 gene_ages ?2"
|
52
|
-
res = kb.traverse rules
|
53
|
-
assert res.first["?1"].include? "MYC"
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def test_target
|
58
|
-
with_kb do |kb|
|
59
|
-
rules = []
|
60
|
-
rules << "?target =CollecTRI SMAD7"
|
61
|
-
rules << "?1 CollecTRI ?target"
|
62
|
-
rules << "?1 gene_ages ?2"
|
63
|
-
rules << "SMAD4 gene_ages ?2"
|
64
|
-
res = kb.traverse rules
|
65
|
-
assert res.first["?1"].include? "MYC"
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_target_translate
|
70
|
-
with_kb do |kb|
|
71
|
-
rules = []
|
72
|
-
rules << "?target =CollecTRI ENSG00000101665"
|
73
|
-
rules << "?1 CollecTRI ?target"
|
74
|
-
res = kb.traverse rules
|
75
|
-
assert res.first["?1"].include? "MYC"
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
def test_target_attribute
|
80
|
-
with_kb do |kb|
|
81
|
-
rules = []
|
82
|
-
rules << "?1 CollecTRI SMAD7"
|
83
|
-
all = kb.traverse rules
|
84
|
-
|
85
|
-
rules = []
|
86
|
-
rules << "?1 CollecTRI SMAD7 - '[ExTRI] Confidence'=High"
|
87
|
-
low = kb.traverse rules
|
88
|
-
|
89
|
-
assert low.last.length < all.last.length
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_traverse_same_age
|
94
|
-
with_kb do |kb|
|
95
|
-
rules_str=<<-EOF
|
96
|
-
?target1 =gene_ages SMAD7
|
97
|
-
?target2 =gene_ages SMAD4
|
98
|
-
?target1 gene_ages ?age
|
99
|
-
?target2 gene_ages ?age
|
100
|
-
?1 gene_ages ?age
|
101
|
-
EOF
|
102
|
-
rules = rules_str.split "\n"
|
103
|
-
res = kb.traverse rules
|
104
|
-
assert_include res.first["?1"], "MET"
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
def test_traverse_same_age_acc
|
109
|
-
with_kb do |kb|
|
110
|
-
rules_str=<<-EOF
|
111
|
-
?target1 =gene_ages SMAD7
|
112
|
-
?target2 =gene_ages SMAD4
|
113
|
-
?age{
|
114
|
-
?target1 gene_ages ?age
|
115
|
-
?target2 gene_ages ?age
|
116
|
-
}
|
117
|
-
?1 gene_ages ?age
|
118
|
-
EOF
|
119
|
-
rules = rules_str.split "\n"
|
120
|
-
res = kb.traverse rules
|
121
|
-
assert_include res.first["?1"], "MET"
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
def test_wildcard_db
|
126
|
-
with_kb do |kb|
|
127
|
-
rules = []
|
128
|
-
rules << "SMAD4 ?db ?1"
|
129
|
-
res = kb.traverse rules
|
130
|
-
end
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|