rbbt-util 5.40.5 → 5.41.0

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: bc59a09644d58c21eb59f643cd04bd50d4fc81a494f024cef8af1ea26197a0e7
4
- data.tar.gz: 84c1669d61fce9e4a239ec7865aee04b67684f99911cc9e378b569517b819388
3
+ metadata.gz: 5f8c020988e2d5df3aa710ce88fe4d92a2a754363d924a580fcc31b138330258
4
+ data.tar.gz: b6ee155b7bfb819baa21fac27c8561a3e1332bd9677a081abbe811bbb45c7973
5
5
  SHA512:
6
- metadata.gz: df0ae52fabfa8c84c0d4a18861912972ac44b347867580087842d1856d4558f7dd1d4e2b7d9b0b0ae23f766a7001516445662114e050c3054458190061caab5e
7
- data.tar.gz: 3e5c396193a6423d7c8afbb381c623844bf457d0a34ef329b7bfe6ac29f6a13841f23b9ce7c3bb051fdeeb35a2e72bfed16279aff52fb3a0ff1484b1587bb841
6
+ metadata.gz: 16d876542942fd0a0e1982dee1e7bf94ccd7bf8c8f4e3bb5310588a2f4587a3abe6d56fb101e1e1352c12225de507d46c18fa6b9109b2328079a999142479fa9
7
+ data.tar.gz: 6d135e37aa6151b68552a5c9f32f3cc1f1fef20a3f26695c9a033a09e0541a31a60de9b2fac33aea4c69e89a1acff54296264ba8435e9fecdaed5dcd5ee868fb
data/lib/rbbt/persist.rb CHANGED
@@ -412,9 +412,9 @@ module Persist
412
412
  repo.delete path if persist_options[:update]
413
413
  repo[path] ||= yield
414
414
 
415
- when (type.to_sym == :annotations and persist_options.include? :annotation_repo)
415
+ when (type.to_sym == :annotations and (persist_options.include?(:annotation_repo) || persist_options.include?(:repo)))
416
416
 
417
- repo = persist_options[:annotation_repo]
417
+ repo = persist_options[:annotation_repo] || persist_options[:repo]
418
418
 
419
419
  keys = nil
420
420
  subkey = name + ":"
@@ -251,12 +251,20 @@ module Misc
251
251
  end
252
252
 
253
253
  def self.translate_prot_mutation_hgvs2rbbt(mutation)
254
+ mutation.sub!('p.', '')
255
+ if m = mutation.match(/([a-z]{3})(\d+)([a-z]{3})/i)
256
+ ref = m[1]
257
+ num = m[2]
258
+ alt = m[3]
259
+ ref = THREE_TO_ONE_AA_CODE[ref.downcase]
260
+ alt = THREE_TO_ONE_AA_CODE[alt.downcase]
261
+ mutation = [ref, num, alt] * ""
262
+ end
254
263
  one_aa_code = THREE_TO_ONE_AA_CODE.values
255
264
  one_aa_code << "X" << "B" << "Z" << "J" << "*" << "?"
256
265
  one_aa_code_re = one_aa_code*""
257
266
  subs = Regexp.new("^[#{one_aa_code_re}]\\d+[#{one_aa_code_re}]")
258
267
  f_aa = Regexp.new("^[#{one_aa_code_re}]\\d+")
259
- mutation.sub!('p.', '')
260
268
  mutation = case
261
269
  when mutation =~ subs
262
270
  mutation
@@ -30,7 +30,7 @@ module Workflow
30
30
  title = doc_parse_first_line doc
31
31
  description, task_info = doc_parse_up_to doc, /^# Tasks/i
32
32
  task_description, tasks = doc_parse_up_to task_info, /^##/, true
33
- tasks = doc_parse_chunks tasks, /## (.*)/
33
+ tasks = doc_parse_chunks tasks, /^## (.*)/
34
34
  {:title => title.strip, :description => description.strip, :task_description => task_description.strip, :tasks => tasks}
35
35
  end
36
36
 
@@ -428,4 +428,8 @@ class Step
428
428
  end
429
429
  end
430
430
 
431
+ def inspect
432
+ Misc.fingerprint(self)
433
+ end
434
+
431
435
  end
@@ -1,24 +1,53 @@
1
1
  import warnings
2
2
  import sys
3
3
  import os
4
+ import subprocess
4
5
 
5
- def rbbt():
6
- print("Rbbt")
6
+ def rbbt(cmd = None):
7
+ if cmd is None:
8
+ print("Rbbt")
9
+ else:
10
+ return subprocess.run('rbbt_exec.rb', input=cmd.encode('utf-8'), capture_output=True).stdout.decode()
11
+
12
+ def libdir():
13
+ return rbbt('puts Rbbt.find(:lib)').rstrip()
14
+
15
+ def add_libdir():
16
+ pythondir = os.path.join(libdir(), 'python')
17
+ sys.path.insert(0, pythondir)
7
18
 
8
19
  def path(subdir = None, base_dir = None):
9
20
  from pathlib import Path
10
21
  import os
11
22
 
12
- if (base_dir == None):
23
+ if (base_dir == 'base'):
13
24
  base_dir = os.path.join(Path.home(), ".rbbt")
25
+ elif (base_dir == 'lib'):
26
+ base_dir = libdir()
27
+ else:
28
+ for base_dir in ('lib', 'base'):
29
+ file = path(subdir, base_dir)
30
+ if os.path.exists(file):
31
+ return file
32
+ return path(subdir, 'base')
33
+
14
34
  if (subdir == None):
15
35
  return base_dir
16
36
  else:
17
37
  return os.path.join(base_dir, subdir)
18
38
 
39
+ def read(subdir, base_dir = None, encoding='utf-8'):
40
+ file = path(subdir, base_dir)
41
+ with open(file, encoding=encoding) as f:
42
+ return f.read()
43
+
19
44
  def inspect(obj):
20
45
  print(dir(obj))
21
46
 
47
+ def rich(obj):
48
+ import rich
49
+ rich.inspect(obj)
50
+
22
51
  def log_tsv(tsv):
23
52
  print(tsv)
24
53
  print(tsv.keys())
@@ -46,6 +46,7 @@ app.get '/' do
46
46
  begin
47
47
  template_render('main', params, 'main', :cache_type => :asynchronous)
48
48
  rescue TemplateMissing
49
+ Log.exception $!
49
50
  redirect to(File.join('/', wf.to_s))
50
51
  end
51
52
  end
@@ -88,7 +89,16 @@ load_file Rbbt.etc['app.d/semaphores.rb'].find_all
88
89
  if etc_dir['target_workflow_exports'].exists?
89
90
  exports = etc_dir['target_workflow_exports'].read.split("\n")
90
91
  exports.each do |task|
91
- wf.export task.to_sym
92
+ if task.include?('#')
93
+ wf_name, task_name = task.split("#")
94
+ begin
95
+ task_wf = Kernel.const_get wf_name
96
+ task_wf.export task_name.to_sym
97
+ rescue
98
+ end
99
+ else
100
+ wf.export task.to_sym
101
+ end
92
102
  end
93
103
  end
94
104
 
@@ -35,6 +35,7 @@ class TestMiscOmics < Test::Unit::TestCase
35
35
  end
36
36
 
37
37
  def test_translate_prot_mutation_hgvs2rbbt
38
+ assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.Arg2459Gly"), "R2459G"
38
39
  assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.E255K"), "E255K"
39
40
  assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.E279Z"), "E279Z"
40
41
  assert_equal Misc.translate_prot_mutation_hgvs2rbbt("p.R132?"), "R132?"
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.40.5
4
+ version: 5.41.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-26 00:00:00.000000000 Z
11
+ date: 2023-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -338,7 +338,7 @@ files:
338
338
  - lib/rbbt/workflow/util/orchestrator.rb
339
339
  - lib/rbbt/workflow/util/provenance.rb
340
340
  - lib/rbbt/workflow/util/trace.rb
341
- - python/rbbt.py
341
+ - python/rbbt/__init__.py
342
342
  - share/Rlib/plot.R
343
343
  - share/Rlib/svg.R
344
344
  - share/Rlib/util.R