rbbt-util 5.17.30 → 5.17.31

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: 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