rbbt-util 5.20.8 → 5.20.9
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 +4 -4
- data/lib/rbbt/util/misc/omics.rb +72 -6
- data/test/rbbt/util/misc/test_omics.rb +68 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0dfd6e2f34b010a55ef904fe69c5d2f5d5c85363
|
4
|
+
data.tar.gz: b1b7fd04c9c94d2ec1a1c16cc4e883536f7a3500
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e75cedcb0a224bdd4eb897578ed8bd08ef68b6b0c2196fb37bc31855457045d93dffa82d271ccaa47285df1b6395cd87b97a190f49cd4943a934f0ee903abb4e
|
7
|
+
data.tar.gz: dbf542a2d17b31f6975e8d3bc1fa53739d1fcc95c9aa9f805b2609833aff38fb8d0f8851ee90791434066e9165eaab4f636632868cdab7916cb43a9dc56da8a2
|
data/lib/rbbt/util/misc/omics.rb
CHANGED
@@ -148,11 +148,11 @@ module Misc
|
|
148
148
|
if ref == '-'
|
149
149
|
res = '+' + m
|
150
150
|
else
|
151
|
-
res = '-' * ref.length
|
151
|
+
res = '-' * ref.length
|
152
152
|
res << m unless m == '-'
|
153
153
|
end
|
154
154
|
Log.debug{"Non-standard annotation: #{[ref, m]} (#{ muts }) => #{ res }"}
|
155
|
-
|
155
|
+
|
156
156
|
res
|
157
157
|
end
|
158
158
|
end
|
@@ -183,11 +183,11 @@ module Misc
|
|
183
183
|
if ref == '-'
|
184
184
|
res = '+' + m
|
185
185
|
else
|
186
|
-
res = '-' * ref.length
|
186
|
+
res = '-' * ref.length
|
187
187
|
res << m unless m == '-'
|
188
188
|
end
|
189
189
|
Log.debug{"Non-standard annotation: #{[ref, m]} (#{ muts }) => #{ res }"}
|
190
|
-
|
190
|
+
|
191
191
|
res
|
192
192
|
end
|
193
193
|
end
|
@@ -195,6 +195,72 @@ module Misc
|
|
195
195
|
[pos, muts]
|
196
196
|
end
|
197
197
|
|
198
|
+
|
199
|
+
def self.translate_dna_mutation_hgvs2rbbt(cds)
|
200
|
+
change = case
|
201
|
+
when cds =~ />/
|
202
|
+
cds.split(">").last
|
203
|
+
when cds =~ /del/
|
204
|
+
deletion = cds.split("del").last
|
205
|
+
case
|
206
|
+
when deletion =~ /^\d+$/
|
207
|
+
"-" * deletion.to_i
|
208
|
+
when deletion =~ /^[ACTG]+$/i
|
209
|
+
"-" * deletion.length
|
210
|
+
else
|
211
|
+
Log.debug "Unknown deletion: #{ deletion }"
|
212
|
+
deletion
|
213
|
+
end
|
214
|
+
when cds =~ /ins/
|
215
|
+
insertion = cds.split("ins").last
|
216
|
+
case
|
217
|
+
when insertion =~ /^\d+$/
|
218
|
+
"+" + "N" * insertion.to_i
|
219
|
+
when insertion =~ /^[NACTG]+$/i
|
220
|
+
"+" + insertion
|
221
|
+
else
|
222
|
+
Log.debug "Unknown insertion: #{insertion }"
|
223
|
+
insertion
|
224
|
+
end
|
225
|
+
else
|
226
|
+
Log.debug "Unknown change: #{cds}"
|
227
|
+
"?(" << cds << ")"
|
228
|
+
end
|
229
|
+
change
|
230
|
+
end
|
231
|
+
|
232
|
+
def self.translate_prot_mutation_hgvs2rbbt(mutation)
|
233
|
+
one_aa_code = THREE_TO_ONE_AA_CODE.values
|
234
|
+
one_aa_code << "X" << "B" << "Z" << "J" << "*" << "?"
|
235
|
+
one_aa_code_re = one_aa_code*""
|
236
|
+
subs = Regexp.new("^[#{one_aa_code_re}]\\d+[#{one_aa_code_re}]")
|
237
|
+
f_aa = Regexp.new("^[#{one_aa_code_re}]\\d+")
|
238
|
+
mutation.sub!('p.', '')
|
239
|
+
mutation = case
|
240
|
+
when mutation =~ subs
|
241
|
+
mutation
|
242
|
+
when mutation =~ /fs/
|
243
|
+
mutation =~ f_aa
|
244
|
+
if Regexp.last_match(0).nil?
|
245
|
+
Log.debug "Unknown Frameshift: #{mutation}"
|
246
|
+
nil
|
247
|
+
else
|
248
|
+
Regexp.last_match(0) + "Frameshift"
|
249
|
+
end
|
250
|
+
when mutation =~ /ins|del|>/
|
251
|
+
mutation =~ f_aa
|
252
|
+
if Regexp.last_match(0).nil?
|
253
|
+
Log.debug "Unknown Indel"
|
254
|
+
nil
|
255
|
+
else
|
256
|
+
Regexp.last_match(0) + "Indel"
|
257
|
+
end
|
258
|
+
else
|
259
|
+
Log.debug "Unknown change: #{mutation}"
|
260
|
+
nil
|
261
|
+
end
|
262
|
+
end
|
263
|
+
|
198
264
|
def self.IUPAC_to_base(iupac)
|
199
265
|
IUPAC2BASE[iupac]
|
200
266
|
end
|
@@ -286,7 +352,7 @@ module Misc
|
|
286
352
|
pos2 = f2.pos
|
287
353
|
|
288
354
|
sline2, schr2, sstart2, seend2, srest2 = line2, chr2, start2, eend2, rest2
|
289
|
-
while chr1 == chr2 and ((start1 <= eend2 and eend1 >= start2))
|
355
|
+
while chr1 == chr2 and ((start1 <= eend2 and eend1 >= start2))
|
290
356
|
out.puts line1 + "\t" + line2
|
291
357
|
if f2.eof?
|
292
358
|
chr2 = 'next2'
|
@@ -294,7 +360,7 @@ module Misc
|
|
294
360
|
line2, chr2, start2, eend2, rest2 = intersect_streams_read(f2,sep)
|
295
361
|
end
|
296
362
|
end
|
297
|
-
line2, chr2, start2, eend2, rest2 = sline2, schr2, sstart2, seend2, srest2
|
363
|
+
line2, chr2, start2, eend2, rest2 = sline2, schr2, sstart2, seend2, srest2
|
298
364
|
f2.seek(pos2)
|
299
365
|
move = 1
|
300
366
|
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../../test_helper')
|
2
|
+
require 'test/unit'
|
3
|
+
require 'rbbt/util/misc/omics'
|
4
|
+
|
5
|
+
class TestMiscOmics < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def test_translate_dna_mutation_hgvs2rbbt
|
8
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.395G>A"), "A"
|
9
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.1-124C>T"), "T"
|
10
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.639+6T>A"), "A"
|
11
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.3386-2A>G"), "G"
|
12
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.4090_4091insT"), "+T"
|
13
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.533_534insGGGG"), "+GGGG"
|
14
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.4249_4249delC"), "-"
|
15
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.464-2_465delAGTG"), "----"
|
16
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.209+1delGTAA"), "----"
|
17
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.371_397del27"), "---------------------------"
|
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?"), "?"
|
22
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.?_?ins57"), "+NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
|
23
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.?_?insCT"), "+CT"
|
24
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.?_?del?"), "?"
|
25
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.?"), "?(c.?)"
|
26
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.(312)?"), "?(c.(312)?)"
|
27
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.(1669_1671)>?"), "?"
|
28
|
+
assert_equal Misc.translate_dna_mutation_hgvs2rbbt("c.1050-?"), "?(c.1050-?)"
|
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+?"
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_translate_prot_mutation_hgvs2rbbt
|
38
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.E255K"), "E255K"
|
39
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.E279Z"), "E279Z"
|
40
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.R132?"), "R132?"
|
41
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.*757?"), "*757?"
|
42
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.A2216>?"), "A2216Indel"
|
43
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.M552_W557>Z"), "M552Indel"
|
44
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.T1151_L1152insT"), "T1151Indel"
|
45
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.N771_P772ins?"), "N771Indel"
|
46
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.T310_?insKAAQRGA"), "T310Indel"
|
47
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.D579del"), "D579Indel"
|
48
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.E746_A750delELREA"), "E746Indel"
|
49
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.P14fs*?"), "P14Frameshift"
|
50
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.*588fs?"), "*588Frameshift"
|
51
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.?fs*(46_47)"), nil
|
52
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.(A443)fs*?"), nil
|
53
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.(574_1542)fs*?"), nil
|
54
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.?fs"), nil
|
55
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.fs*?"), nil
|
56
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.?fs*?"), nil
|
57
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.(P1249)fs*?"), nil
|
58
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.?"), nil
|
59
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.WQQSYLD25?"), nil
|
60
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.(449_514)?"), nil
|
61
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("?"), nil
|
62
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.0?"), nil
|
63
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.?_?ins?"), nil
|
64
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.?_?insXXXX"), nil
|
65
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.(A775)ins?"), nil
|
66
|
+
assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.?del"), nil
|
67
|
+
end
|
68
|
+
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.20.
|
4
|
+
version: 5.20.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
@@ -433,6 +433,7 @@ files:
|
|
433
433
|
- test/rbbt/util/misc/test_bgzf.rb
|
434
434
|
- test/rbbt/util/misc/test_lock.rb
|
435
435
|
- test/rbbt/util/misc/test_multipart_payload.rb
|
436
|
+
- test/rbbt/util/misc/test_omics.rb
|
436
437
|
- test/rbbt/util/misc/test_pipes.rb
|
437
438
|
- test/rbbt/util/simpleopt/test_get.rb
|
438
439
|
- test/rbbt/util/simpleopt/test_parse.rb
|
@@ -495,6 +496,7 @@ test_files:
|
|
495
496
|
- test/rbbt/util/misc/test_multipart_payload.rb
|
496
497
|
- test/rbbt/util/misc/test_bgzf.rb
|
497
498
|
- test/rbbt/util/misc/test_pipes.rb
|
499
|
+
- test/rbbt/util/misc/test_omics.rb
|
498
500
|
- test/rbbt/util/test_concurrency.rb
|
499
501
|
- test/rbbt/util/test_R.rb
|
500
502
|
- test/rbbt/util/log/test_progress.rb
|