rbbt-util 5.14.38 → 5.14.39

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/etc/app.d/grid_system.rb +1 -0
  3. data/etc/app.d/resources.rb +3 -0
  4. data/lib/rbbt/association/database.rb +4 -2
  5. data/lib/rbbt/association/index.rb +20 -10
  6. data/lib/rbbt/association/open.rb +7 -4
  7. data/lib/rbbt/association/util.rb +12 -0
  8. data/lib/rbbt/knowledge_base/registry.rb +6 -5
  9. data/lib/rbbt/knowledge_base.rb +2 -2
  10. data/lib/rbbt/persist.rb +12 -8
  11. data/lib/rbbt/tsv/change_id.rb +10 -5
  12. data/lib/rbbt/tsv/manipulate.rb +3 -2
  13. data/lib/rbbt/tsv/matrix.rb +0 -1
  14. data/lib/rbbt/tsv/parallel/traverse.rb +2 -0
  15. data/lib/rbbt/tsv/util.rb +18 -0
  16. data/lib/rbbt/util/R/eval.rb +1 -1
  17. data/lib/rbbt/util/R/model.rb +28 -4
  18. data/lib/rbbt/util/R.rb +6 -0
  19. data/lib/rbbt/util/concurrency/processes/socket.rb +7 -1
  20. data/lib/rbbt/util/concurrency/processes/worker.rb +15 -7
  21. data/lib/rbbt/util/concurrency/processes.rb +8 -4
  22. data/lib/rbbt/util/log/progress/report.rb +3 -3
  23. data/lib/rbbt/util/log/progress.rb +20 -15
  24. data/lib/rbbt/util/misc/concurrent_stream.rb +2 -1
  25. data/lib/rbbt/util/misc/development.rb +11 -3
  26. data/lib/rbbt/util/misc/objects.rb +1 -1
  27. data/lib/rbbt/workflow/accessor.rb +19 -16
  28. data/lib/rbbt/workflow/step/run.rb +7 -0
  29. data/share/rbbt_commands/app/start +3 -2
  30. data/test/rbbt/knowledge_base/test_entity.rb +2 -1
  31. data/test/rbbt/knowledge_base/test_query.rb +2 -1
  32. data/test/rbbt/test_entity.rb +12 -13
  33. data/test/rbbt/test_knowledge_base.rb +13 -1
  34. data/test/rbbt/tsv/test_util.rb +15 -0
  35. data/test/rbbt/util/R/test_model.rb +25 -1
  36. data/test/rbbt/util/test_misc.rb +43 -40
  37. metadata +16 -2
@@ -51,7 +51,7 @@ module Misc
51
51
  end
52
52
 
53
53
  def self.zip_fields(array)
54
- return [] if array.empty? or (first = array.first).nil?
54
+ return [] if array.nil? or array.empty? or (first = array.first).nil?
55
55
  max = array.collect{|l| l.length}.max
56
56
  rest = array[1..-1].collect{|v|
57
57
  v.length == 1 & max > 1 ? v * max : v
@@ -74,29 +74,32 @@ class Step
74
74
  def info(check_lock = true)
75
75
  return {} if info_file.nil? or not Open.exists? info_file
76
76
  begin
77
- begin
78
- return @info_cache if @info_cache and File.ctime(info_file) < @info_cache_time
79
- rescue Exception
80
- raise $!
81
- end
77
+ Misc.insist do
78
+ begin
79
+ return @info_cache if @info_cache and File.ctime(info_file) < @info_cache_time
80
+ rescue Exception
81
+ raise $!
82
+ end
82
83
 
83
- begin
84
- @info_cache = Misc.insist(3, 1.6, info_file) do
85
- Misc.insist(2, 1, info_file) do
86
- Misc.insist(3, 0.2, info_file) do
87
- raise TryAgain, "Info locked" if check_lock and info_lock.locked?
88
- Open.open(info_file) do |file|
89
- INFO_SERIALIAZER.load(file) #|| {}
84
+ begin
85
+ @info_cache = Misc.insist(3, 1.6, info_file) do
86
+ Misc.insist(2, 1, info_file) do
87
+ Misc.insist(3, 0.2, info_file) do
88
+ raise TryAgain, "Info locked" if check_lock and info_lock.locked?
89
+ Open.open(info_file) do |file|
90
+ INFO_SERIALIAZER.load(file) #|| {}
91
+ end
90
92
  end
91
93
  end
92
94
  end
95
+ @info_cache_time = Time.now
96
+ @info_cache
93
97
  end
94
- @info_cache_time = Time.now
95
- @info_cache
96
98
  end
97
99
  rescue Exception
98
100
  Log.debug{"Error loading info file: " + info_file}
99
101
  Log.exception $!
102
+ Open.rm info_file
100
103
  Misc.sensiblewrite(info_file, INFO_SERIALIAZER.dump({:status => :error, :messages => ["Info file lost"]}))
101
104
  raise $!
102
105
  end
@@ -167,7 +170,7 @@ class Step
167
170
  end
168
171
  end
169
172
 
170
- def self.log_block(staus, message, path, &block)
173
+ def self.log_block(status, message, path, &block)
171
174
  start = Time.now
172
175
  status = status.to_s
173
176
  status_color = self.status_color status
@@ -185,7 +188,7 @@ class Step
185
188
  eend = Time.now
186
189
  Log.info do
187
190
  now = Time.now
188
- str = "#{ Log.color :cyan, status.to_s } +#{Log.color :green, "%.1g" % (eend - start)}"
191
+ str = "#{ Log.color :cyan, status.to_s } +#{Log.color :green, "%.2f" % (eend - start)}"
189
192
  str << " -- #{Log.color :blue, path.to_s}" if path
190
193
  str << " #{Log.color :yellow, Process.pid}"
191
194
  str
@@ -418,6 +418,13 @@ class Step
418
418
  end
419
419
  end
420
420
 
421
+ def soft_grace
422
+ until Open.exists? info_file
423
+ sleep 1
424
+ end
425
+ self
426
+ end
427
+
421
428
  def grace
422
429
  until done? or result or error? or aborted? or streaming?
423
430
  sleep 1
@@ -3,9 +3,10 @@
3
3
  require 'rbbt-util'
4
4
  require 'rbbt/util/simpleopt'
5
5
 
6
- options = SOPT.get "-e--environment*:-p--port*:-s--server*:-f--finder:-R--Rserve_session*"
6
+ options = SOPT.get "-e--environment*:-p--port*:-s--server*:-f--finder:-R--Rserve_session*:-ho--host*"
7
7
  options[:Port] ||= options[:port]
8
-
8
+ options[:Host] ||= "0.0.0.0"
9
+ options[:Bind] ||= "0.0.0.0"
9
10
 
10
11
  app = ARGV.shift
11
12
 
@@ -1,4 +1,5 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '../../../test_helper')
2
+ require 'rbbt-util'
2
3
  require 'rbbt/util/tmpfile'
3
4
  require 'test/unit'
4
5
  require 'rbbt/knowledge_base'
@@ -28,7 +29,7 @@ TP53 NFKB1|GLI1 activation|activation true|true
28
29
 
29
30
  EFFECT_TSV = TSV.open EFFECT, EFFECT_OPTIONS.dup
30
31
 
31
- KNOWLEDGE_BASE = KnowledgeBase.new '/tmp/kb.foo2', "Hsa"
32
+ KNOWLEDGE_BASE = KnowledgeBase.new '/tmp/kb.foo3', "Hsa"
32
33
  KNOWLEDGE_BASE.format = {"Gene" => "Associated Gene Name"}
33
34
 
34
35
  KNOWLEDGE_BASE.register :effects, EFFECT_TSV, EFFECT_OPTIONS.dup
@@ -14,7 +14,7 @@ TP53 NFKB1|GLI1 activation|activation true|true
14
14
  END
15
15
 
16
16
  EFFECT_OPTIONS = {
17
- :source => "SG=~Associated Gene Name",
17
+ :source => "SG=~Associated Gene Name=>Ensembl Gene ID",
18
18
  :target => "TG=~Associated Gene Name=>Ensembl Gene ID",
19
19
  :persist => false,
20
20
  :identifiers => datafile_test('identifiers'),
@@ -32,6 +32,7 @@ TP53 NFKB1|GLI1 activation|activation true|true
32
32
  def test_subset_all_persist
33
33
  Misc.benchmark(1000) do
34
34
  assert_equal 6, KNOWLEDGE_BASE.subset(:effects, :all).length
35
+
35
36
  assert_equal 4, KNOWLEDGE_BASE.subset(:effects, :all).target_entity.uniq.length
36
37
  assert_equal %w(Effect), KNOWLEDGE_BASE.subset(:effects, :all).info.first.keys
37
38
  end
@@ -53,9 +53,8 @@ module ReversableString
53
53
  }
54
54
  end
55
55
 
56
- persist :reverse_text_ary_p, :string
56
+ persist :reverse_text_ary_p, :marshal
57
57
  persist :reverse_text_single_p, :memory
58
- #persist :_single_reverse_text_single_p, :string
59
58
 
60
59
  persist :reverse_text_ary_p_array, :array, :dir => TmpFile.tmp_file
61
60
 
@@ -64,7 +63,7 @@ end
64
63
 
65
64
  class TestEntity < Test::Unit::TestCase
66
65
 
67
- def _test_property_ary
66
+ def test_property_ary
68
67
  a = ["String1", "String2"]
69
68
  ReversableString.setup(a)
70
69
 
@@ -84,7 +83,7 @@ class TestEntity < Test::Unit::TestCase
84
83
  end
85
84
  end
86
85
 
87
- def _test_property_single
86
+ def test_property_single
88
87
  a = ["String1", "String2"]
89
88
  ReversableString.setup a
90
89
 
@@ -96,7 +95,7 @@ class TestEntity < Test::Unit::TestCase
96
95
  assert_equal 3, $count
97
96
  end
98
97
 
99
- def _test_property_ary_p
98
+ def test_property_ary_p
100
99
  a = ["String1", "String2"]
101
100
  ReversableString.setup a
102
101
 
@@ -104,7 +103,7 @@ class TestEntity < Test::Unit::TestCase
104
103
 
105
104
  assert_equal "2gnirtS", a.reverse_text_ary_p.last
106
105
  assert_equal "2gnirtS", a.collect{|e| e.reverse_text_ary_p }[1]
107
- assert_equal 1, $count
106
+ assert_equal 0, $count
108
107
  end
109
108
 
110
109
  def test_property_single_p
@@ -122,10 +121,10 @@ class TestEntity < Test::Unit::TestCase
122
121
  assert_equal "2gnirtS", a.reverse_text_single_p.last
123
122
  assert_equal 0, $count
124
123
  assert_equal "2gnirtS", a[1].reverse_text_single_p
125
- assert_equal 0, $count
124
+ assert_equal 1, $count
126
125
  end
127
126
 
128
- def _test_property_ary_p_array
127
+ def test_property_ary_p_array
129
128
  a = ["String1", "String2"]
130
129
  ReversableString.setup a
131
130
 
@@ -134,12 +133,12 @@ class TestEntity < Test::Unit::TestCase
134
133
  $count = 0
135
134
 
136
135
  assert_equal "2gnirtS", a.reverse_text_ary_p_array.last
137
- assert_equal 1, $count
136
+ assert_equal 0, $count
138
137
  assert_equal "2gnirtS", a.reverse_text_ary_p_array.last
139
- assert_equal 1, $count
138
+ assert_equal 0, $count
140
139
  end
141
140
 
142
- def _test_unpersist
141
+ def test_unpersist
143
142
  a = ["String1", "String2"]
144
143
  ReversableString.setup a
145
144
 
@@ -168,14 +167,14 @@ class TestEntity < Test::Unit::TestCase
168
167
 
169
168
  end
170
169
 
171
- def _test_persist_annotations
170
+ def test_persist_annotations
172
171
  string = 'aaabbbccc'
173
172
  ReversableString.setup(string)
174
173
  assert_equal string.length, string.annotation_list.length
175
174
  assert_equal string.length, string.annotation_list.length
176
175
  end
177
176
 
178
- def _test_clean_annotations
177
+ def test_clean_annotations
179
178
 
180
179
  string = "test_string"
181
180
  ReversableString.setup string
@@ -56,6 +56,18 @@ end
56
56
 
57
57
  class TestKnowledgeBase < Test::Unit::TestCase
58
58
 
59
+ def test_knowledge_base_reverse
60
+ organism = Organism.default_code("Hsa")
61
+ TmpFile.with_file do |tmpdir|
62
+ kb = KnowledgeBase.new tmpdir, Organism.default_code("Hsa")
63
+ kb.format = {"Gene" => "Ensembl Gene ID"}
64
+
65
+ kb.register :tfacts, TFacts.regulators, :source =>"=~Associated Gene Name"
66
+
67
+ kb.get_index(:tfacts).reverse
68
+ end
69
+ end
70
+
59
71
  def test_knowledge_base
60
72
  organism = Organism.default_code("Hsa")
61
73
  TmpFile.with_file do |tmpdir|
@@ -69,7 +81,7 @@ class TestKnowledgeBase < Test::Unit::TestCase
69
81
  kb.register :kegg, KEGG.gene_pathway, :source_format => "Ensembl Gene ID"
70
82
  assert_match "Ensembl Gene ID", kb.get_database(:kegg).key_field
71
83
 
72
- gene = Gene.setup("TP53", "Associated Gene Name", organism)
84
+ gene = Gene.setup("TP53", "Associated Gene Name", organism).ensembl
73
85
  assert_equal "TP53", gene.name
74
86
  assert_equal "ENSG00000141510", gene.ensembl
75
87
 
@@ -36,4 +36,19 @@ row2 A B Id3
36
36
  assert_equal({1 => 1}, Marshal.load(Marshal.dump({1 => 1})))
37
37
  end
38
38
  end
39
+
40
+ def test_replicates
41
+ content =<<-EOF
42
+ #Id ValueA ValueB OtherID
43
+ row1 a|aa|aaa b|bb|bbb Id1|Id2|Id3
44
+ row2 A B Id3
45
+ EOF
46
+
47
+ TmpFile.with_file(content) do |filename|
48
+ tsv = TSV.open(filename, :sep => /\s+/)
49
+
50
+ assert_equal 4, tsv.unzip_replicates.length
51
+ assert_equal %w(aa bb Id2), tsv.unzip_replicates["row1(1)"]
52
+ end
53
+ end
39
54
  end
@@ -75,7 +75,7 @@ data = rbbt.model.inpute(data, CI ~ Dose, method=drm, classes='numeric', fct=LL.
75
75
  rppa = rppa.slice([antibody,"Compound", "Dose"])
76
76
  rppa.rename_field antibody, "RPPA"
77
77
 
78
- model = R::Model.new "viability", "Effect ~ Dose", "Compound" => :factor
78
+ model = R::Model.new "viability", "Effect ~ Dose", nil, "Compound" => :factor
79
79
 
80
80
  model.fit(viability.select("Compound"){|c| ! c.include? "-"}, 'lm')
81
81
 
@@ -85,4 +85,28 @@ data = rbbt.model.inpute(data, CI ~ Dose, method=drm, classes='numeric', fct=LL.
85
85
 
86
86
  R::SVG.ggplotSVG rppa, plot_script, 7, 7, :R_method => :eval
87
87
  end
88
+
89
+ def test_fit_fast
90
+ data = TSV.setup({}, :key_field => "Dose", :fields => ["Response"], :type => :single)
91
+ 10.times do
92
+ x = rand(10)
93
+ y = 10 + 3 * x + rand * 4
94
+ data[x] = y
95
+ end
96
+
97
+ model = R::Model.new "Test fit 2", "Response ~ Dose", data, :fit => 'lm'
98
+
99
+ x = 5
100
+ y = 10 + 3 * x
101
+
102
+ pred = model.predict x
103
+ assert pred > y and pred < y + 4
104
+
105
+ pred = model.predict [x, 2*x, 3*x]
106
+ assert pred.first > y and pred.first < y + 4
107
+
108
+
109
+ pred = model.predict "Dose" => x
110
+ assert pred > y and pred < y + 4
111
+ end
88
112
  end
@@ -6,7 +6,7 @@ require 'rbbt/entity'
6
6
 
7
7
  class TestMisc < Test::Unit::TestCase
8
8
 
9
- def test_object_delta
9
+ def _test_object_delta
10
10
  a = []
11
11
  b = nil
12
12
  d = Misc.object_delta(String) do
@@ -16,13 +16,13 @@ class TestMisc < Test::Unit::TestCase
16
16
  assert_match /^0\.\d+$/, a.first
17
17
  end
18
18
 
19
- def test_format_seconds
19
+ def _test_format_seconds
20
20
  t = 61.3232
21
21
  assert_equal "00:01:01", Misc.format_seconds(t)
22
22
  assert_equal "00:01:01.32", Misc.format_seconds(t, true)
23
23
  end
24
24
 
25
- def test_format_paragraph
25
+ def _test_format_paragraph
26
26
  p = <<-EOF
27
27
  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
28
28
  incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
@@ -42,7 +42,7 @@ in culpa qui officia deserunt mollit anim id est laborum.
42
42
  assert Misc.format_paragraph(p, 70, 10, 5) =~ /\n\s*\* two/sm
43
43
  end
44
44
 
45
- def test_format_dl
45
+ def _test_format_dl
46
46
  p1 = <<-EOF
47
47
  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
48
48
  incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
@@ -72,13 +72,13 @@ eum fugiat quo voluptas nulla pariatur?"
72
72
  assert Misc.format_definition_list({:paragraph_first => p1, :paragraph_second => p2}) =~ / /
73
73
  end
74
74
 
75
- def test_parse_cmd_params
75
+ def _test_parse_cmd_params
76
76
  assert_equal ["workflow", "task", "Translation", "translate", "-f", "Associated Gene Name", "-l", "-"],
77
77
  Misc.parse_cmd_params("workflow task Translation translate -f 'Associated Gene Name' -l -")
78
78
  end
79
79
 
80
80
 
81
- def test_fixutf8
81
+ def _test_fixutf8
82
82
  string = "abc\xffdef"
83
83
  string = string.force_encoding("UTF-8") if string.respond_to? :force_encoding
84
84
  assert(! string.valid_encoding?) if string.respond_to? :valid_encoding?
@@ -87,37 +87,37 @@ eum fugiat quo voluptas nulla pariatur?"
87
87
  assert( Misc.fixutf8(string).valid_encoding) if string.respond_to? :valid_encoding
88
88
  end
89
89
 
90
- def test_colors_for
90
+ def _test_colors_for
91
91
  colors, used = Misc.colors_for([1,2,2,1,2,1,2,2,3,3,2,3,2])
92
92
  assert_equal Misc::COLOR_LIST[1], used[2]
93
93
  end
94
94
 
95
- def test_total_length
95
+ def _test_total_length
96
96
  ranges = [(0..100), (50..150), (120..160)]
97
97
  ranges = [(0..100), (50..150), (120..160), (51..70)]
98
98
  assert_equal 161, Misc.total_length(ranges)
99
99
  end
100
100
 
101
- def test_id_filename?
101
+ def _test_id_filename?
102
102
  TmpFile.with_file("") do |file|
103
103
  assert Misc.is_filename?(file)
104
104
  assert ! Misc.is_filename?("TEST STRING")
105
105
  end
106
106
  end
107
107
 
108
- def test_merge_sorted_arrays
108
+ def _test_merge_sorted_arrays
109
109
  assert_equal [1,2,3,4], Misc.merge_sorted_arrays([1,3], [2,4])
110
110
  end
111
111
 
112
- def test_intersect_sorted_arrays
112
+ def _test_intersect_sorted_arrays
113
113
  assert_equal [2,4], Misc.intersect_sorted_arrays([1,2,3,4], [2,4])
114
114
  end
115
115
 
116
- def test_sorted_array_matches
116
+ def _test_sorted_array_matches
117
117
  assert_equal [1,3], Misc.sorted_array_hits(%w(a b c d e), %w(b d))
118
118
  end
119
119
 
120
- def test_binary_include?
120
+ def _test_binary_include?
121
121
  a = %w(a b c d e).sort
122
122
  assert Misc.binary_include?(a, "a")
123
123
  assert(!Misc.binary_include?(a, "z"))
@@ -126,12 +126,12 @@ eum fugiat quo voluptas nulla pariatur?"
126
126
  assert(Misc.binary_include?(a, "d"))
127
127
  end
128
128
 
129
- def test_process_to_hash
129
+ def _test_process_to_hash
130
130
  list = [1,2,3,4]
131
131
  assert_equal 4, Misc.process_to_hash(list){|l| l.collect{|e| e * 2}}[2]
132
132
  end
133
133
 
134
- def test_pipe_fork
134
+ def _test_pipe_fork
135
135
  sout, sin = Misc.pipe
136
136
  pid = Process.fork do
137
137
  Misc.purge_pipes(sin)
@@ -143,7 +143,7 @@ eum fugiat quo voluptas nulla pariatur?"
143
143
  Process.kill :INT, pid
144
144
  end
145
145
 
146
- def test_open_pipe
146
+ def _test_open_pipe
147
147
  t = 5
148
148
  stream = Misc.open_pipe do |sin|
149
149
  t.times do |i|
@@ -164,7 +164,7 @@ eum fugiat quo voluptas nulla pariatur?"
164
164
  assert_equal (0..t-1).to_a.collect{|i| "LINE #{ i }"}, lines
165
165
  end
166
166
 
167
- def test_open_pipe_fork
167
+ def _test_open_pipe_fork
168
168
  t = 5
169
169
  stream = Misc.open_pipe(true) do |sin|
170
170
  t.times do |i|
@@ -185,7 +185,7 @@ eum fugiat quo voluptas nulla pariatur?"
185
185
  assert_equal (0..t-1).to_a.collect{|i| "LINE #{ i }"}, lines
186
186
  end
187
187
 
188
- def test_open_pipe_fork_cascade
188
+ def _test_open_pipe_fork_cascade
189
189
  t = 500
190
190
  sleep_time = 2.0 / t
191
191
  time = Time.now
@@ -221,7 +221,7 @@ eum fugiat quo voluptas nulla pariatur?"
221
221
  assert_equal (0..t-1).to_a.collect{|i| "LINE #{ i }".reverse.downcase}, lines
222
222
  end
223
223
 
224
- def test_tee_stream
224
+ def _test_tee_stream
225
225
  t = 500
226
226
  sleep_time = 2.0 / t
227
227
  time = Time.now
@@ -271,7 +271,7 @@ eum fugiat quo voluptas nulla pariatur?"
271
271
  end
272
272
 
273
273
 
274
- def test_string2hash
274
+ def _test_string2hash
275
275
  assert(Misc.string2hash("--user-agent=firefox").include? "--user-agent")
276
276
  assert_equal(true, Misc.string2hash(":true")[:true])
277
277
  assert_equal(true, Misc.string2hash("true")["true"])
@@ -282,16 +282,16 @@ eum fugiat quo voluptas nulla pariatur?"
282
282
  assert_equal(:j, Misc.string2hash("a=b#c=d#:h=:j")[:h])
283
283
  end
284
284
 
285
- def test_named_array
285
+ def _test_named_array
286
286
  a = NamedArray.setup([1,2,3,4], %w(a b c d))
287
287
  assert_equal(1, a['a'])
288
288
  end
289
289
 
290
- def test_path_relative_to
290
+ def _test_path_relative_to
291
291
  assert_equal "test/foo", Misc.path_relative_to('/test', '/test/test/foo')
292
292
  end
293
293
 
294
- def test_hash2string
294
+ def _test_hash2string
295
295
  hash = {}
296
296
  assert_equal hash, Misc.string2hash(Misc.hash2string(hash))
297
297
 
@@ -309,14 +309,14 @@ eum fugiat quo voluptas nulla pariatur?"
309
309
 
310
310
  end
311
311
 
312
- def test_merge
312
+ def _test_merge
313
313
  a = [[1],[2]]
314
314
  a = NamedArray.setup a, %w(1 2)
315
315
  a.merge [3,4]
316
316
  assert_equal [1,3], a[0]
317
317
  end
318
318
 
319
- def test_indiferent_hash
319
+ def _test_indiferent_hash
320
320
  a = {:a => 1, "b" => 2}
321
321
  a.extend IndiferentHash
322
322
 
@@ -326,7 +326,7 @@ eum fugiat quo voluptas nulla pariatur?"
326
326
  assert_equal 2, a[:b]
327
327
  end
328
328
 
329
- def test_lockfile
329
+ def _test_lockfile
330
330
 
331
331
  TmpFile.with_file do |tmpfile|
332
332
  pids = []
@@ -350,7 +350,7 @@ eum fugiat quo voluptas nulla pariatur?"
350
350
  end
351
351
  end
352
352
 
353
- def test_positions2hash
353
+ def _test_positions2hash
354
354
  inputs = Misc.positional2hash([:one, :two, :three], 1, :two => 2, :four => 4)
355
355
  assert_equal 1, inputs[:one]
356
356
  assert_equal 2, inputs[:two]
@@ -358,44 +358,44 @@ eum fugiat quo voluptas nulla pariatur?"
358
358
  assert_equal nil, inputs[:four]
359
359
  end
360
360
 
361
- def test_mean
361
+ def _test_mean
362
362
  assert_equal 2, Misc.mean([1,2,3])
363
363
  assert_equal 3, Misc.mean([1,2,3,4,5])
364
364
  end
365
365
 
366
- def test_zip_fields
366
+ def _test_zip_fields
367
367
  current = [[:a,1], [:b,2]]
368
368
  assert_equal [[:a, :b],[1,2]], Misc.zip_fields(current)
369
369
  assert_equal current, Misc.zip_fields(Misc.zip_fields(current))
370
370
  end
371
371
 
372
- def test_zip_fields_comp
372
+ def _test_zip_fields_comp
373
373
  current = [[:a,1], [:b,2], [:c]]
374
374
  assert_equal [[:a, :b, :c],[1,2,nil]], Misc.zip_fields(current)
375
375
  assert_equal current, Misc.zip_fields(Misc.zip_fields(current)).collect{|v| v.compact }
376
376
  end
377
377
 
378
- def test_add_zipped
378
+ def _test_add_zipped
379
379
  current = [[:a,1], [:b,2]]
380
380
  new = %w(A B)
381
381
  Misc.append_zipped current, new
382
382
  assert_equal [[:a,1,"A"], [:b,2,"B"]], current
383
383
  end
384
384
 
385
- def test_divide
385
+ def _test_divide
386
386
  assert_equal 2, Misc.divide(%w(1 2 3 4 5 6 7 8 9),2).length
387
387
  end
388
388
 
389
- def test_ordered_divide
389
+ def _test_ordered_divide
390
390
  assert_equal 5, Misc.ordered_divide(%w(1 2 3 4 5 6 7 8 9),2).length
391
391
  end
392
392
 
393
- def test_collapse_ranges
393
+ def _test_collapse_ranges
394
394
  ranges = [(0..100), (50..150), (51..61),(200..250), (300..324),(320..350)]
395
395
  assert_equal [(0..150),(200..250), (300..350)], Misc.collapse_ranges(ranges)
396
396
  end
397
397
 
398
- def test_humanize
398
+ def _test_humanize
399
399
  str1 = "test_string"
400
400
  str2 = "TEST_string"
401
401
  str3 = "test"
@@ -407,22 +407,22 @@ eum fugiat quo voluptas nulla pariatur?"
407
407
  assert_equal "mutation_enrichment", Misc.snake_case("MutationEnrichment")
408
408
  end
409
409
 
410
- def test_snake_case
410
+ def _test_snake_case
411
411
  str1 = "ACRONIMTest"
412
412
  str2 = "ACRONIM_test"
413
413
  assert_equal "ACRONIM_test", Misc.snake_case(str1)
414
414
  assert_equal "ACRONIM_test", Misc.snake_case(str2)
415
415
  end
416
416
 
417
- def test_correct_vcf_mutations
417
+ def _test_correct_vcf_mutations
418
418
  assert_equal [737407, ["-----", "-----G", "-----GTTAAT"]], Misc.correct_vcf_mutation(737406, "GTTAAT", "G,GG,GGTTAAT")
419
419
  end
420
420
 
421
- def test_fingerprint
421
+ def _test_fingerprint
422
422
  assert_equal '{a=>1}', Misc.fingerprint({:a => 1})
423
423
  end
424
424
 
425
- def test_tarize
425
+ def _test_tarize
426
426
  path = File.expand_path('/home/mvazquezg/git/rbbt-util/lib')
427
427
  stream = Misc.tarize(path)
428
428
  TmpFile.with_file do |res|
@@ -432,7 +432,7 @@ eum fugiat quo voluptas nulla pariatur?"
432
432
  end
433
433
  end
434
434
 
435
- def test_camel_case
435
+ def _test_camel_case
436
436
  assert_equal "DbSNP", Misc.camel_case("db_SNP")
437
437
  assert_equal "D3Js", Misc.camel_case("D3Js")
438
438
  assert_equal "Structure", Misc.camel_case("Structure")
@@ -440,6 +440,9 @@ eum fugiat quo voluptas nulla pariatur?"
440
440
  assert_equal "COSMIC", Misc.camel_case("COSMIC")
441
441
  end
442
442
 
443
+ def test_texar
444
+ ppp Misc.html_tag('textarea', "hola\nadios\nagain")
445
+ end
443
446
 
444
447
  def __test_lock_fd
445
448
  require 'rbbt/workflow'
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.14.38
4
+ version: 5.14.39
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-21 00:00:00.000000000 Z
11
+ date: 2014-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: sass-css-importer
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  description: Utilities for handling tsv files, caches, etc
112
126
  email: miguel.vazquez@cnio.es
113
127
  executables: