rbbt-util 5.14.17 → 5.14.18

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5c5725c2ab4aa762ca676d5d4e18f17dee2e8e92
4
- data.tar.gz: 088c84611fccd379434220853ce601256540b9cb
3
+ metadata.gz: 243728b311e7948c452e6de9e299e5938a3ebd24
4
+ data.tar.gz: 8eb9ee8a10b1653c79465eab2c68f340a39ecc9f
5
5
  SHA512:
6
- metadata.gz: 4aa7267702a7587187a85c30fb4bf646efb298ff8d92d2f9aa23daeb58e19ce89dddd470f9d36fcb4258f5bda0e37a6d6bb98327c5308f33b12e79dcaa935e72
7
- data.tar.gz: 60796a47e6344334dc576c850df51d405796d8e98f881fcf487f53a23eeaa6db54e0f79207682c28f59b8b694eab063dfbe1395ec114167e3cca9c70b5984116
6
+ metadata.gz: 46d41fe4394efa9c7ad329e8fa42d0fcd3ea6d2d72cd30a7d2b3f6d7fd8df61565f621ad339abc74d7662a5220df92d2de03beb46f0b5ded72d5a967e532f752
7
+ data.tar.gz: 20566c536d6b4f4946feedea1e5ad956caf883d8772db394fc8217bbc9eae1bacecb9d5b74fdfde0d45cd94784b82f8ceed01ac3ed286edfa8e35dd3782a12c7
data/etc/app.d/base.rb CHANGED
@@ -23,17 +23,19 @@ use Rack::Session::Cookie, :key => 'rack.session',
23
23
 
24
24
 
25
25
  #{{{ DIRECTORIES
26
- global_var = Rbbt.var
27
- local_var = Rbbt.var.app[$class_name]
26
+ global_var = Rbbt.var.sinatra
27
+ local_var = Rbbt.var.sinatra.app[$class_name]
28
28
 
29
- set :cache_dir , local_var.sinatra.cache.find
30
- set :persist_dir , local_var.sinatra.cache.persistence.find
29
+ set :cache_dir , local_var.cache
30
+ set :persist_dir , local_var.cache.persistence
31
31
  set :persist_options , {:persist => true, :persist_dir => :persist_dir}
32
- set :file_dir , local_var.sinatra.files.find
33
- set :permalink_dir , local_var.sinatra.permalink.find
34
- set :favourites_dir , local_var.sinatra.favourites.find
35
- set :favourite_lists_dir , local_var.sinatra.favourite_lists
36
- set :favourite_maps_dir , local_var.sinatra.favourite_maps
32
+ set :file_dir , local_var.files
33
+ set :permalink_dir , local_var.permalink
34
+ set :favourites_dir , local_var.favourites
35
+ set :favourite_lists_dir , local_var.favourite_lists
36
+ set :favourite_maps_dir , local_var.favourite_maps
37
+
38
+ #set :finder, nil
37
39
 
38
40
  #{{{ WORKFLOWS
39
41
 
data/etc/app.d/finder.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  #{{{ FINDER
2
2
  finder = Finder.new
3
3
  if ENV['RBBT_FINDER']
4
- finder.add_instance(KEGG.pathways, :grep => '^hsa\|^#', :fields => ["Pathway Name"], :namespace => "Hsa/jun2011", :fix => Proc.new{|l| l.sub(/ - Homo sapiens.*/,'')})
5
- finder.add_instance(Organism.lexicon("Hsa/jun2011"), :persist => true, :namespace => "Hsa/jun2011", :grep => '^LRG_', :invert_grep => true)
4
+ finder.add_instance(KEGG.pathways, :grep => '^hsa\|^#', :fields => ["Pathway Name"], :namespace => Organism.default_code("Hsa"), :fix => Proc.new{|l| l.sub(/ - Homo sapiens.*/,'')})
5
+ finder.add_instance(Organism.lexicon(Organism.default_code("Hsa")), :persist => true, :namespace => Organism.default_code("Hsa"), :grep => '^LRG_', :invert_grep => true)
6
6
  end
7
7
  set :finder, finder
8
8
  Log.debug("Finder started with: #{finder.instances.length} instances")
@@ -16,13 +16,15 @@ module Association
16
16
 
17
17
  def reverse
18
18
  @reverse ||= begin
19
+ persistence_path = self.persistence_path
20
+ persistence_path = persistence_path.find if Path === persistence_path
19
21
  reverse_filename = persistence_path + '.reverse'
20
22
 
21
23
  if File.exists?(reverse_filename)
22
24
  new = Persist.open_tokyocabinet(reverse_filename, false, serializer, TokyoCabinet::BDB)
23
25
  new
24
26
  else
25
- FileUtils.mkdir_p File.basename(reverse_filename) unless File.exists?(File.basename(reverse_filename))
27
+ FileUtils.mkdir_p File.dirname(reverse_filename) unless File.exists?(File.basename(reverse_filename))
26
28
  new = Persist.open_tokyocabinet(reverse_filename, true, serializer, TokyoCabinet::BDB)
27
29
  new.write
28
30
  through do |key, value|
@@ -336,38 +336,33 @@ module TSV
336
336
  begin
337
337
  callback, cleanup, join = Misc.process_options options, :callback, :cleanup, :join
338
338
 
339
- begin
340
- q = RbbtProcessQueue.new num, cleanup, join
341
- q.callback &callback
342
- q.init &block
339
+ q = RbbtProcessQueue.new num, cleanup, join
340
+ q.callback &callback
341
+ q.init &block
343
342
 
344
- traverse_obj(obj, options) do |*p|
345
- q.process *p
346
- end
347
- rescue Aborted, Errno::EPIPE
348
- Log.medium "Aborted"
349
- rescue Exception
350
- Log.exception $!
351
- raise $!
352
- ensure
353
- q.join
354
- q.clean
343
+ traverse_obj(obj, options) do |*p|
344
+ q.process *p
355
345
  end
346
+
347
+ q.join
356
348
  rescue Interrupt, Aborted
357
- Log.medium{"Aborted traversal in CPUs for #{stream_name(obj) || Misc.fingerprint(obj)}: #{$!.backtrace*","}"}
358
349
  q.abort
350
+ Log.medium{"Aborted traversal in CPUs for #{stream_name(obj) || Misc.fingerprint(obj)}: #{$!.backtrace*","}"}
359
351
  stream = obj_stream(obj)
360
352
  stream.abort if stream.respond_to? :abort
361
353
  stream = obj_stream(options[:into])
362
354
  stream.abort if stream.respond_to? :abort
363
355
  raise "Traversal aborted"
364
356
  rescue Exception
357
+ q.abort
365
358
  Log.medium "Exception during traversal in CPUs for #{stream_name(obj) || Misc.fingerprint(obj)}: #{$!.message}"
366
359
  stream = obj_stream(obj)
367
360
  stream.abort if stream.respond_to? :abort
368
361
  stream = obj_stream(options[:into])
369
362
  stream.abort if stream.respond_to? :abort
370
363
  raise $!
364
+ ensure
365
+ q.clean
371
366
  end
372
367
  end
373
368
 
@@ -111,10 +111,12 @@ class RbbtProcessQueue
111
111
 
112
112
  def clean
113
113
  if (@process_monitor and @process_monitor.alive?) or (@callback_thread and @callback_thread.alive?)
114
- self.abort
115
- else
114
+ self.abort
116
115
  self.join
117
116
  end
117
+
118
+ @queue.clean if @queue
119
+ @callback_queue.clean if @callback_queue
118
120
  end
119
121
 
120
122
  def abort
@@ -10,10 +10,10 @@ class RbbtProcessQueue
10
10
  @serializer = serializer || Marshal
11
11
 
12
12
 
13
- key = "/" << rand(100000000).to_s;
14
- @write_sem = key + '.in'
15
- @read_sem = key + '.out'
16
- Log.low "Creating socket semaphores: #{key}"
13
+ @key = "/" << rand(1000000000).to_s << '.' << Process.pid.to_s;
14
+ @write_sem = @key + '.in'
15
+ @read_sem = @key + '.out'
16
+ Log.medium "Creating socket semaphores: #{@key}"
17
17
  RbbtSemaphore.create_semaphore(@write_sem,1)
18
18
  RbbtSemaphore.create_semaphore(@read_sem,1)
19
19
  end
@@ -21,7 +21,7 @@ class RbbtProcessQueue
21
21
  def clean
22
22
  @sread.close unless @sread.closed?
23
23
  @swrite.close unless @swrite.closed?
24
- Log.low "Destroying socket semaphores"
24
+ Log.medium "Destroying socket semaphores: #{[@key] * ", "}"
25
25
  RbbtSemaphore.delete_semaphore(@write_sem)
26
26
  RbbtSemaphore.delete_semaphore(@read_sem)
27
27
  end
@@ -50,6 +50,16 @@ module Bgzf
50
50
  end
51
51
  end
52
52
 
53
+ def read_all
54
+ str = ""
55
+ while true
56
+ block = read_block
57
+ break if block.nil?
58
+ str << block
59
+ end
60
+ str
61
+ end
62
+
53
63
  def init
54
64
  _index
55
65
  end
@@ -119,7 +129,9 @@ module Bgzf
119
129
  block[offset..-1]
120
130
  end
121
131
 
122
- def read(size)
132
+ def read(size=nil)
133
+ return read_all if size.nil?
134
+
123
135
  block = get_block
124
136
  return "" if block.nil? or block.empty?
125
137
  len = block.length
@@ -286,9 +286,8 @@ module Misc
286
286
  end
287
287
  end
288
288
 
289
- #file = caller.first + rand(1000000).to_s if file.nil?
290
289
  index = (0..elems.length-1).to_a.collect{|v| v.to_s }
291
- TSV.traverse index, :cpus => cpus, :bar => "Bootstrap in #{ cpus } cpus: #{ Misc.fingerprint elems }", :into => Set.new do |pos|
290
+ TSV.traverse index, :cpus => cpus, :bar => "Bootstrap in #{ cpus } cpus: #{ Misc.fingerprint Annotated.purge(elems) }", :into => Set.new do |pos|
292
291
  elem = elems[pos.to_i]
293
292
  elems.annotate elem if elems.respond_to? :annotate
294
293
  begin
@@ -430,6 +430,7 @@ module Open
430
430
  def self.write(file, content = nil, options = {})
431
431
  options = Misc.add_defaults options, :mode => 'w'
432
432
 
433
+ file = file.find(options[:where]) if Path === file
433
434
  mode = Misc.process_options options, :mode
434
435
 
435
436
  FileUtils.mkdir_p File.dirname(file)
@@ -1,7 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rbbt'
4
- require 'rbbt/util/simpleopt'
5
1
 
6
2
  require 'rbbt/util/R'
7
3
 
@@ -311,8 +311,8 @@ class TestTSVParallelThrough < Test::Unit::TestCase
311
311
  head = 2_000
312
312
 
313
313
  Log.info Log.color :red, "TRAVERSE EXCEPTION"
314
- stream = Organism.identifiers("Hsa/jun2011").open
315
- dumper = TSV::Dumper.new Organism.identifiers("Hsa/jun2011").tsv_options
314
+ stream = Organism.identifiers(Organism.default_code("Hsa")).open
315
+ dumper = TSV::Dumper.new Organism.identifiers(Organism.default_code("Hsa")).tsv_options
316
316
  dumper.init
317
317
 
318
318
  assert_raise StopException do
@@ -332,8 +332,8 @@ class TestTSVParallelThrough < Test::Unit::TestCase
332
332
  cpus = 2
333
333
 
334
334
  Log.info Log.color :red, "TRAVERSE EXCEPTION"
335
- stream = Organism.identifiers("Hsa/jun2011").open
336
- dumper = TSV::Dumper.new Organism.identifiers("Hsa/jun2011").tsv_options
335
+ stream = Organism.identifiers(Organism.default_code("Hsa")).open
336
+ dumper = TSV::Dumper.new Organism.identifiers(Organism.default_code("Hsa")).tsv_options
337
337
  dumper.init
338
338
 
339
339
  assert_raise ProcessFailed do
@@ -454,4 +454,14 @@ eum fugiat quo voluptas nulla pariatur?"
454
454
  end
455
455
  puts `ls -l /proc/#{ Process.pid }/fd`
456
456
  end
457
+
458
+ def test_bootstrap
459
+ Misc.bootstrap (0..10).to_a do
460
+ Misc.bootstrap (0..10).to_a do
461
+ Misc.bootstrap (0..10).to_a do
462
+ sleep 0.1
463
+ end
464
+ end
465
+ end
466
+ end
457
467
  end
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.17
4
+ version: 5.14.18
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-08-20 00:00:00.000000000 Z
11
+ date: 2014-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: bio-bgzf
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: term-ansicolor
85
99
  requirement: !ruby/object:Gem::Requirement