rbbt-util 5.33.16 → 5.33.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbbt/tsv/util.rb +28 -1
- data/lib/rbbt/util/misc/omics.rb +42 -27
- data/lib/rbbt/util/misc/system.rb +1 -1
- data/lib/rbbt/workflow/step/dependencies.rb +5 -1
- data/test/rbbt/util/misc/test_omics.rb +9 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 54df9c32ce443c2f2742391738139cc97d38cdfe343058149056ad942e35b4a0
|
4
|
+
data.tar.gz: a603395d628ed6b4ca776c45b377b75bafb4e9d76d009d45636008017efd83b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16cfe134071945ab0d8fd16060fc9633c8b7dbbf8189246b3736d24ced7803ff13f33b89071939c16bdff2828d8f588612ecfbb7d5481ea4f46c451be233368b
|
7
|
+
data.tar.gz: 9142954e50c256485563b7147117c35c97e87d2c6aebf4fd28500f28369323b597ba0f7f07393d1c186116744af1200884c0bfa527afdf0c5dee8033b904daa8
|
data/lib/rbbt/tsv/util.rb
CHANGED
@@ -1,12 +1,39 @@
|
|
1
1
|
require 'rbbt/resource/path'
|
2
2
|
module TSV
|
3
3
|
|
4
|
+
def self.stream_column(file, column)
|
5
|
+
header = TSV.parse_header(file)
|
6
|
+
pos = header.fields.index(column) + 1
|
7
|
+
sep2 = header.options[:sep2] || "|"
|
8
|
+
case header.type.to_s
|
9
|
+
when nil, "double"
|
10
|
+
TSV.traverse file, :type => :array, :into => :stream do |line|
|
11
|
+
next if line =~ /^#/
|
12
|
+
line.split("\t")[pos].gsub(sep2, "\n")
|
13
|
+
end
|
14
|
+
when "single"
|
15
|
+
TSV.traverse file, :type => :array, :into => :stream do |line|
|
16
|
+
next if line =~ /^#/
|
17
|
+
line.split("\t")[1]
|
18
|
+
end
|
19
|
+
when "flat"
|
20
|
+
TSV.traverse file, :type => :array, :into => :stream do |line|
|
21
|
+
next if line =~ /^#/
|
22
|
+
line.split("\t")[1..-1] * "\n"
|
23
|
+
end
|
24
|
+
when 'list'
|
25
|
+
TSV.traverse file, :type => :array, :into => :stream do |line|
|
26
|
+
next if line =~ /^#/
|
27
|
+
line.split("\t")[pos]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
4
32
|
def self.guess_id(identifier_file, values, options = {})
|
5
33
|
field_matches = TSV.field_match_counts(identifier_file, values, options)
|
6
34
|
field_matches.sort_by{|field, count| count.to_i}.last
|
7
35
|
end
|
8
36
|
|
9
|
-
|
10
37
|
def self.field_match_counts(file, values, options = {})
|
11
38
|
options = Misc.add_defaults options, :persist_prefix => "Field_Matches"
|
12
39
|
persist_options = Misc.pull_keys options, :persist
|
data/lib/rbbt/util/misc/omics.rb
CHANGED
@@ -203,33 +203,48 @@ module Misc
|
|
203
203
|
|
204
204
|
|
205
205
|
def self.translate_dna_mutation_hgvs2rbbt(cds)
|
206
|
-
change =
|
207
|
-
when cds =~ />/
|
208
|
-
cds.split(">").last
|
209
|
-
when cds =~ /del/
|
210
|
-
deletion = cds.split("del").last.chomp
|
206
|
+
change = begin
|
211
207
|
case
|
212
|
-
when
|
213
|
-
"
|
214
|
-
when
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
208
|
+
when cds =~ />/
|
209
|
+
cds.split(">").last
|
210
|
+
when cds =~ /delins/
|
211
|
+
del, ins = cds.split("delins")
|
212
|
+
start, eend = del.split("_")
|
213
|
+
del_size = eend.to_i - start.to_i + 1
|
214
|
+
if ins =~ /^[ACTG]+$/i
|
215
|
+
("-" * del_size) + ins
|
216
|
+
else
|
217
|
+
Log.debug "Unknown delins: #{ cds }"
|
218
|
+
"?(" << cds << ")"
|
219
|
+
end
|
220
|
+
when cds =~ /del/
|
221
|
+
deletion = cds.split("del").last.chomp
|
222
|
+
case
|
223
|
+
when deletion =~ /^\d+$/
|
224
|
+
"-" * deletion.to_i
|
225
|
+
when deletion =~ /^[ACTG]+$/i
|
226
|
+
"-" * deletion.length
|
227
|
+
else
|
228
|
+
Log.debug "Unknown deletion: #{ cds }"
|
229
|
+
"?(" << cds << ")"
|
230
|
+
end
|
231
|
+
when cds =~ /ins/
|
232
|
+
insertion = cds.split("ins").last
|
233
|
+
case
|
234
|
+
when insertion =~ /^\d+$/
|
235
|
+
"+" + "N" * insertion.to_i
|
236
|
+
when insertion =~ /^[NACTG]+$/i
|
237
|
+
"+" + insertion
|
238
|
+
else
|
239
|
+
Log.debug "Unknown insertion: #{cds }"
|
240
|
+
"?(" << cds << ")"
|
241
|
+
end
|
227
242
|
else
|
228
|
-
Log.debug "Unknown
|
229
|
-
|
243
|
+
Log.debug "Unknown change: #{cds}"
|
244
|
+
"?(" << cds << ")"
|
230
245
|
end
|
231
|
-
|
232
|
-
Log.debug "
|
246
|
+
rescue
|
247
|
+
Log.debug "Error processing change: #{cds}"
|
233
248
|
"?(" << cds << ")"
|
234
249
|
end
|
235
250
|
change
|
@@ -323,11 +338,11 @@ module Misc
|
|
323
338
|
line.partition(sep).last
|
324
339
|
end
|
325
340
|
end
|
326
|
-
|
341
|
+
|
327
342
|
def self.sort_genomic_locations_strict(stream, sep = ":")
|
328
343
|
sort_stream(stream, '#', "-k1,1V -k2,2n -t#{sep}")
|
329
344
|
end
|
330
|
-
|
345
|
+
|
331
346
|
def self.sort_genomic_locations(stream, sep = ":")
|
332
347
|
sort_stream(stream, '#', "-k1,1 -k2,2n -t#{sep}")
|
333
348
|
end
|
@@ -483,7 +498,7 @@ module Misc
|
|
483
498
|
sin << [chr, start, eend, id] * "\t" << "\n"
|
484
499
|
end
|
485
500
|
end
|
486
|
-
|
501
|
+
|
487
502
|
TmpFile.with_file do |tmpfile|
|
488
503
|
Misc.consume_stream(nio, false, tmpfile)
|
489
504
|
|
@@ -97,7 +97,7 @@ module Misc
|
|
97
97
|
return false if string.nil?
|
98
98
|
return true if defined? Path and Path === string
|
99
99
|
return true if string.respond_to? :exists
|
100
|
-
return true if String === string and string.split("/").select{|p| p.length > 265}.empty? and (! need_to_exists || File.exist?(string))
|
100
|
+
return true if String === string and ! string.include?("\n") and string.split("/").select{|p| p.length > 265}.empty? and (! need_to_exists || File.exist?(string))
|
101
101
|
return false
|
102
102
|
end
|
103
103
|
|
@@ -145,7 +145,11 @@ class Step
|
|
145
145
|
end
|
146
146
|
|
147
147
|
def input_dependencies
|
148
|
-
@input_dependencies ||= (recursive_inputs.flatten.select{|i| Step === i } +
|
148
|
+
@input_dependencies ||= (recursive_inputs.flatten.select{|i| Step === i } +
|
149
|
+
recursive_inputs.flatten.
|
150
|
+
select{|dep| Path === dep && Step === dep.resource }.
|
151
|
+
select{|dep| ! dep.resource.started? }. # Ignore input_deps already started
|
152
|
+
collect{|dep| dep.resource })
|
149
153
|
end
|
150
154
|
|
151
155
|
def execute_dependency(dependency, log = true)
|
@@ -16,22 +16,22 @@ class TestMiscOmics < Test::Unit::TestCase
|
|
16
16
|
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.209+1delGTAA"), "----"
|
17
17
|
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.371_397del27"), "---------------------------"
|
18
18
|
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.1359+2_1359+11delTTAGAAGAGC"), "----------"
|
19
|
-
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.ins?"), "?"
|
20
|
-
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.?_?ins?"), "?"
|
21
|
-
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.184_185ins?"), "?"
|
19
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.ins?"), "?(c.ins?)"
|
20
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.?_?ins?"), "?(c.?_?ins?)"
|
21
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.184_185ins?"), "?(c.184_185ins?)"
|
22
22
|
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.?_?ins57"), "+NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
|
23
23
|
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.?_?insCT"), "+CT"
|
24
|
-
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.?_?del?"), "?"
|
24
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.?_?del?"), "?(c.?_?del?)"
|
25
25
|
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.?"), "?(c.?)"
|
26
26
|
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.(312)?"), "?(c.(312)?)"
|
27
27
|
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.(1669_1671)>?"), "?"
|
28
28
|
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.1050-?"), "?(c.1050-?)"
|
29
29
|
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.(1347_1540)?"), "?(c.(1347_1540)?)"
|
30
|
-
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.1-?_850+?del"), "c.1-?_850+?"
|
31
|
-
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.2289_?del(7236)"), "(7236)"
|
32
|
-
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.(3916_3927)del?"), "?"
|
33
|
-
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.1705_?del?"), "?"
|
34
|
-
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.1-?_421+?del"), "c.1-?_421+?"
|
30
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.1-?_850+?del"), "?(c.1-?_850+?del)"
|
31
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.2289_?del(7236)"), "?(c.2289_?del(7236))"
|
32
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.(3916_3927)del?"), "?(c.(3916_3927)del?)"
|
33
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.1705_?del?"), "?(c.1705_?del?)"
|
34
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.1-?_421+?del"), "?(c.1-?_421+?del)"
|
35
35
|
end
|
36
36
|
|
37
37
|
def test_translate_prot_mutation_hgvs2rbbt
|
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.33.
|
4
|
+
version: 5.33.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-05-
|
11
|
+
date: 2022-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|