rbbt-util 5.17.30 → 5.17.31

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dd71175671c8e61af5f2149e9f191bb207169112
4
- data.tar.gz: 4ee95675d9f232f82b7e918bc3a6b0cd0f47cbd7
3
+ metadata.gz: ec2769ac8dcfb78a8e3b33cdf905f2b0e53e9340
4
+ data.tar.gz: 9362e1f40b97de7451f0f4ed7467a7f386745128
5
5
  SHA512:
6
- metadata.gz: fa1772442429aab7a19e5fb2d7af81ed73c22fe41ba0397524eb2ba373c07fcf87023efa1de73b0dcb23a91276f1ad3aee4bd25c776fd77d8f54b4409256502d
7
- data.tar.gz: 1dc00f98b9eb0c901787569308b681e54996e95862d7129db6ffdc345921fc81b511f50bce10c0090661ac4eebc0be19f2b86183d446769f2b557de9285175f3
6
+ metadata.gz: 5df33607c693b25c3a0ff547ef690be714f2fa568fb9fd2f8d39819cd6ab8166fbd69cc5f212f5514460693190f349c4c699215c786b9ddcf3d546805dff174b
7
+ data.tar.gz: 53fdcaded28ebccbe7f88335e3448046300698554deba0bcf3e44b478ea131229128c2b2460f8db18e0ad3f67d83c425020c89bb22013c707a2c377a281937f2
@@ -29,20 +29,19 @@ module TSV
29
29
  when Array, Hash
30
30
  obj.size
31
31
  when File
32
- return nil if Misc.gzip?(file) or Misc.bgzip?(file)
32
+ return nil if Open.gzip?(file) or Open.bgzip?(file)
33
33
  CMD.cmd("wc -l '#{obj.filename}'").read.to_i
34
- when Path
35
- return nil if Misc.gzip?(file) or Misc.bgzip?(file)
36
- CMD.cmd("wc -l '#{obj.find}'").read.to_i
37
- when String
34
+ when Path, String
35
+ obj = obj.find if Path === obj
38
36
  if File.exists? obj
39
- return nil if Misc.gzip?(file) or Misc.bgzip?(file)
37
+ return nil if Open.gzip?(obj) or Open.bgzip?(obj)
40
38
  CMD.cmd("wc -l '#{obj}'").read.to_i
41
39
  else
42
40
  nil
43
41
  end
44
42
  end
45
43
  rescue Exception
44
+ Log.exception $!
46
45
  nil
47
46
  end
48
47
  end
@@ -197,16 +197,35 @@ module Misc
197
197
  line = io.gets.strip
198
198
  parts = line.split(sep)
199
199
  chr, start, eend, *rest = parts
200
- [line,chr, start.to_i, eend.to_i, rest]
200
+ start = start.to_i
201
+ if eend =~ /^\d+$/
202
+ eend = eend.to_i
203
+ else
204
+ eend = start.to_i
205
+ end
206
+ [line,chr, start, eend, rest]
207
+ end
208
+
209
+ def self.intersect_streams_cmp_chr(chr1, chr2)
210
+ return chr1 <=> chr2
211
+ if chr1 =~ /^\d+$/ and chr2 =~ /^\d+$/
212
+ chr1 <=> chr2
213
+ elsif chr1 =~ /^\d+$/
214
+ -1
215
+ elsif chr2 =~ /^\d+$/
216
+ 1
217
+ else
218
+ chr1 <=> chr2
219
+ end
201
220
  end
202
221
 
203
222
  def self.intersect_streams(f1, f2, out, sep=":")
204
223
  finish = false
205
224
  line1, chr1, start1, eend1, rest1 = intersect_streams_read(f1,sep)
206
225
  line2, chr2, start2, eend2, rest2 = intersect_streams_read(f2,sep)
207
- Misc.profile do
208
226
  while not finish
209
- case chr1 <=> chr2
227
+ cmp = intersect_streams_cmp_chr(chr1,chr2)
228
+ case cmp
210
229
  when -1
211
230
  move = 1
212
231
  when 1
@@ -249,6 +268,11 @@ module Misc
249
268
  end
250
269
  end
251
270
  end
271
+ end
272
+
273
+ def self.select_ranges(stream1, stream2, sep = "\t")
274
+ Misc.open_pipe do |sin|
275
+ intersect_streams(stream1, stream2,sin, sep)
252
276
  end
253
277
  end
254
278
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbbt-util
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.17.30
4
+ version: 5.17.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez