rbbt-util 5.33.15 → 5.33.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
  SHA256:
3
- metadata.gz: c0573e1c183e61a16493ee1c9237fdc20901d33eca6713be8558d01a0014068e
4
- data.tar.gz: b365435a324ed8fb7a3583ccd9904a968a93d5e655e96f09248cf1b7f6216780
3
+ metadata.gz: 972b137af2c124d5288389d49e188d3973246a912c0405c391cdb6b8a5987cae
4
+ data.tar.gz: 4744dc8f03a8230ad8d5f61f1d15f14c4e5635d5e3798be584083217269b88a5
5
5
  SHA512:
6
- metadata.gz: 4dedeeffa67b1a95197188a7db86ee25f8036c04c5caa36d56c421fe739f85449af010ab342e0711d8d204a675e628bb9ba646ac3317e2d15a73103600d6d63e
7
- data.tar.gz: a3f8812b2b46a98dc0ce150667f8b08ceea415f1e7e765d25164cd9af68a0dffef9e33bdb5e73e3408e137195d7b827465484351cf51e89ef0cb01237134b887
6
+ metadata.gz: 34f7cbdd329d23341cc6591bfe19f584a4c50862c8fae6c2ccd8d72bcd76fbb129acbaa3bbb03e08eb633aa475d5d0eacb1a015e667db169ebf1f09e588ab579
7
+ data.tar.gz: 8110363114c606214d115ffb6475ce277dc3f605c1e8eafd97911a53cc259386ed6173d45cca4a5692b8e4ca0a89db71a77b6fb5eca69400b565b820a83a8d56
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
@@ -203,33 +203,48 @@ module Misc
203
203
 
204
204
 
205
205
  def self.translate_dna_mutation_hgvs2rbbt(cds)
206
- change = case
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 deletion =~ /^\d+$/
213
- "-" * deletion.to_i
214
- when deletion =~ /^[ACTG]+$/i
215
- "-" * deletion.length
216
- else
217
- Log.debug "Unknown deletion: #{ deletion }"
218
- deletion
219
- end
220
- when cds =~ /ins/
221
- insertion = cds.split("ins").last
222
- case
223
- when insertion =~ /^\d+$/
224
- "+" + "N" * insertion.to_i
225
- when insertion =~ /^[NACTG]+$/i
226
- "+" + insertion
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 insertion: #{insertion }"
229
- insertion
243
+ Log.debug "Unknown change: #{cds}"
244
+ "?(" << cds << ")"
230
245
  end
231
- else
232
- Log.debug "Unknown change: #{cds}"
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
 
@@ -94,7 +94,7 @@ module Misc
94
94
  end
95
95
 
96
96
  def self.is_filename?(string, need_to_exists = true)
97
- return false if string.nil?
97
+ return false if string.nil? or string.include? "\n"
98
98
  return true if defined? Path and Path === string
99
99
  return true if string.respond_to? :exists
100
100
  return true if String === string and string.split("/").select{|p| p.length > 265}.empty? and (! need_to_exists || File.exist?(string))
@@ -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 } + recursive_inputs.flatten.select{|dep| Path === dep && Step === dep.resource }.collect{|dep| dep.resource })
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)
@@ -125,6 +125,8 @@ module Workflow
125
125
  first = last.nil?
126
126
  last = _prov_tasks(workflow.dep_tree(task_name))
127
127
 
128
+ break if child
129
+
128
130
  if child
129
131
  description << "-> " << task_name.to_s
130
132
  elsif first
@@ -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.15
4
+ version: 5.33.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: 2022-05-05 00:00:00.000000000 Z
11
+ date: 2022-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake