rbbt-util 5.14.8 → 5.14.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d676e9769e4e13d664c42a65e74ec8c7d70bbe63
4
- data.tar.gz: f3a75c5456360ae6e31d713ef964650adcb2edb4
3
+ metadata.gz: a2e935c66915d12e54d8a483af1f3ab9c0447c9c
4
+ data.tar.gz: 014e991d3c4c8769e4ff480e0a9566a65f84a160
5
5
  SHA512:
6
- metadata.gz: e2cb4d0761e9b44f8d108888a966b874f572f144b16620754c6551349fc8c8d04ee061393e7032d829a3fa1f0e72a04185e5f6af3d5c264d4582daf7524063e9
7
- data.tar.gz: 8402954673614b9b0ff6c4b73237a47d1f077ef795f9c452f96fab732e665428cb470e2ae38c12ed3c818c0c1b2d512d8322444020ba3b1783e528c30ce8a048
6
+ metadata.gz: 19e5dfaf77d8755695c2bed2c0f379eb3421e7b021e93e2caaa551ccc304ad70f1c91c892d096f6d3abe689f84a6a6d43260c2d68c4b0b4c1a9ac8cb946bca81
7
+ data.tar.gz: 402865585352cc0dfd319d84c40d125ee04eabab5105ea7039c05ea018ed709b27e1efb6d059da3260c8e1f78c47d1e439206cb59cfc79b5de09ce8b36eb2227
@@ -14,22 +14,15 @@ module Association
14
14
 
15
15
  new = tsv.dup
16
16
  tsv.with_unnamed do
17
- tsv.through do |key, values|
18
- Misc.zip_fields(values).each do |zipped|
19
- target, *rest = zipped
20
-
21
- target_values = new[target] || []
22
- if target_values and target_values.any?
23
- zipped_target_values = Misc.zip_fields(target_values)
24
-
25
- zipped_target_values << ([key].concat rest)
26
-
27
- new_values = Misc.zip_fields zipped_target_values
17
+ tsv.through do |source, values|
18
+ Misc.zip_fields(values).each do |_target_values|
19
+ target, *target_values = _target_values
20
+ if new[target].nil?
21
+ new[target] = [[source]] + target_values.collect{|v| [v] }
28
22
  else
29
- new_values = [[key], rest.collect{|v| [v]}]
23
+ new[target].first << source
24
+ new[target][1..-1].zip(target_values).each{|list,elem| list << elem }
30
25
  end
31
-
32
- new[target] = new_values
33
26
  end
34
27
  end
35
28
  end
@@ -38,6 +38,8 @@ module Association
38
38
 
39
39
  Association::Index.setup new
40
40
 
41
+ new.undirected = undirected
42
+
41
43
  new
42
44
  end
43
45
  end
@@ -80,13 +82,12 @@ module Association
80
82
  matches = source.uniq.inject([]){|acc,e| acc.concat(match(e)) }
81
83
  end
82
84
 
83
- return matches if target.nil? or target == :all or target == "all"
85
+ return matches if target == :all or target == "all"
84
86
 
85
87
  target_matches = {}
86
88
 
87
89
  matches.each{|code|
88
90
  s,sep,t = code.partition "~"
89
- next if (undirected and t > s)
90
91
  target_matches[t] ||= []
91
92
  target_matches[t] << code
92
93
  }
@@ -96,11 +97,9 @@ module Association
96
97
 
97
98
  def subset_entities(entities)
98
99
  source, target = select_entities(entities)
99
- source = :all if source.nil? and target.nil?
100
- raise "Please specify source entities" if source.nil?
101
- target = :all if target.nil?
102
- return if Array === target and target.empty?
103
- return if Array === source and source.empty?
100
+ return [] if source.nil? or target.nil?
101
+ return [] if Array === target and target.empty?
102
+ return [] if Array === source and source.empty?
104
103
  subset source, target
105
104
  end
106
105
  end
@@ -7,6 +7,10 @@ module AssociationItem
7
7
  annotation :database
8
8
  annotation :reverse
9
9
 
10
+ property :namespace => :both do
11
+ knowledge_base.namespace
12
+ end
13
+
10
14
  property :part => :array2single do
11
15
  self.clean_annotations.collect{|p| p.partition("~") }
12
16
  end
@@ -19,11 +23,11 @@ module AssociationItem
19
23
  self.clean_annotations.collect{|p| p[/[^~]+/] }
20
24
  end
21
25
 
22
- property :target_type => :single do
23
- reverse ? knowledge_base.source(database) : knowledge_base.target(database)
26
+ property :target_type => :both do
27
+ type = reverse ? knowledge_base.source(database) : knowledge_base.target(database)
24
28
  end
25
29
 
26
- property :source_type => :single do
30
+ property :source_type => :both do
27
31
  reverse ? knowledge_base.target(database) : knowledge_base.source(database)
28
32
  end
29
33
 
@@ -42,8 +46,13 @@ module AssociationItem
42
46
  value.collect{|v| NamedArray.setup(v, knowledge_base.get_index(database).fields)}
43
47
  end
44
48
 
49
+ property :info_fields => :both do
50
+ knowledge_base.index_fields(database)
51
+ end
52
+
45
53
  property :info => :array2single do
46
- fields = knowledge_base.index_fields(database)
54
+ fields = self.info_fields
55
+
47
56
  return [{}] * self.length if fields.nil? or fields.empty?
48
57
 
49
58
  value = self.value
@@ -15,6 +15,11 @@ class KnowledgeBase
15
15
  end
16
16
  end
17
17
 
18
+
19
+ def setup(name, matches, reverse = false)
20
+ AssociationItem.setup matches, self, name, reverse
21
+ end
22
+
18
23
  attr_accessor :namespace, :dir, :indices, :registry, :format, :databases, :entity_options
19
24
  def initialize(dir, namespace = nil)
20
25
  @dir = Path.setup(dir).find
@@ -260,10 +265,6 @@ class KnowledgeBase
260
265
 
261
266
  #{{{ Query
262
267
 
263
- def setup(name, matches, reverse = false)
264
- AssociationItem.setup matches, self, name, reverse
265
- end
266
-
267
268
  def all(name, options={})
268
269
  repo = get_index name, options
269
270
  setup name, repo.keys
@@ -10,6 +10,7 @@ require 'rbbt/rest/main'
10
10
  require 'rbbt/rest/entity'
11
11
  require 'rbbt/rest/workflow'
12
12
  require 'rbbt/rest/file_server'
13
+ require 'rbbt/rest/knowledge_base'
13
14
  require 'rbbt/rest/helpers'
14
15
 
15
16
  options = SOPT.get "-e--environment*:-p--port*:-s--server*:-b--bind*:-e--environment*"
@@ -34,6 +35,7 @@ class WorkflowRest < Sinatra::Base
34
35
  register Sinatra::RbbtRESTMain
35
36
  register Sinatra::RbbtRESTWorkflow
36
37
  register Sinatra::RbbtRESTEntity
38
+ register Sinatra::RbbtRESTKnowledgeBase
37
39
  helpers Sinatra::RbbtMiscHelpers
38
40
 
39
41
  #{{{ DIRECTORIES
@@ -57,6 +57,9 @@ class TestAssociations < Test::Unit::TestCase
57
57
  assert_equal ["aa"], database["TP53"].first
58
58
  end
59
59
 
60
+ def test_reciprocal
61
+ end
62
+
60
63
 
61
64
  def __test_ICGC
62
65
  assoc = Association.open(Open.open('ftp://data.dcc.icgc.org/current/Chronic_Lymphocytic_Leukemia-ISC_MICINN-ES/simple_somatic_mutation.CLLE-ES.tsv.gz'),
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.14.8
4
+ version: 5.14.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez