rbbt-rest 1.3.26 → 1.3.27
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 03be0a1aa7c52a31f0138eecba03ebe8565f1b85
|
|
4
|
+
data.tar.gz: 80aeef50fc37891f40518f0e9d56654b846d2d24
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5a7faedf99cebb0e4e173f74bdf2974794d81afe55f3806a20bff814595192380150b9f9038a3ad69870c1bab19fdbebcb5f45f47cd25364efe4dd1251365dc9
|
|
7
|
+
data.tar.gz: ec5b0e0eabf50b62ed9750fce4b5bce7eaa11f723e9286e06d997035edb8bb8bfffa6d527b2e724e31b0f7f8d6a8db894a50420bbe561f4dbcfa923dd201ae04
|
|
@@ -11,6 +11,8 @@ module Sinatra
|
|
|
11
11
|
base.module_eval do
|
|
12
12
|
helpers KnowledgeBaseRESTHelpers
|
|
13
13
|
|
|
14
|
+
#{{{ Single entity
|
|
15
|
+
|
|
14
16
|
get '/knowledge_base/:name/:database/children/:entity' do
|
|
15
17
|
name = consume_parameter :name
|
|
16
18
|
database = consume_parameter :database
|
|
@@ -110,6 +112,156 @@ module Sinatra
|
|
|
110
112
|
end
|
|
111
113
|
end
|
|
112
114
|
|
|
115
|
+
|
|
116
|
+
#{{{ Collection
|
|
117
|
+
|
|
118
|
+
post '/knowledge_base/:name/:database/collection_children' do
|
|
119
|
+
name = consume_parameter :name
|
|
120
|
+
database = consume_parameter :database
|
|
121
|
+
collection = consume_parameter :collection
|
|
122
|
+
raise ParameterException, "No collection specified" if collection.nil?
|
|
123
|
+
collection = JSON.parse(collection)
|
|
124
|
+
|
|
125
|
+
kb = get_knowledge_base name
|
|
126
|
+
matches = collection.keys.inject({}){|acc,type|
|
|
127
|
+
entities = collection[type]
|
|
128
|
+
entities.each do |entity|
|
|
129
|
+
_matches = kb.children(database, entity)
|
|
130
|
+
acc.merge!({ _matches.target_type => _matches}) if _matches and _matches.any?
|
|
131
|
+
end
|
|
132
|
+
acc
|
|
133
|
+
}
|
|
134
|
+
case @format
|
|
135
|
+
when :tsv
|
|
136
|
+
content_type "text/tab-separated-values"
|
|
137
|
+
matches = matches.sort_by{|k,list| list.length }.last.last
|
|
138
|
+
halt 200, matches.tsv.to_s
|
|
139
|
+
when :html
|
|
140
|
+
template_render('knowledge_base_partials/matches', {:matches => matches}, "Collection Children: #{ [name, database] }")
|
|
141
|
+
when :json
|
|
142
|
+
content_type :json
|
|
143
|
+
_matches = {}
|
|
144
|
+
matches.each{|type,list|
|
|
145
|
+
_matches[type] = list.target
|
|
146
|
+
}
|
|
147
|
+
halt 200, _matches.to_json
|
|
148
|
+
else
|
|
149
|
+
content_type :text
|
|
150
|
+
matches = matches.sort_by{|k,list| list.length }.last.last
|
|
151
|
+
halt 200, matches.target * "\n"
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
post '/knowledge_base/:name/:database/collection_parents' do
|
|
156
|
+
name = consume_parameter :name
|
|
157
|
+
database = consume_parameter :database
|
|
158
|
+
collection = consume_parameter :collection
|
|
159
|
+
raise ParameterException, "No collection specified" if collection.nil?
|
|
160
|
+
collection = JSON.parse(collection)
|
|
161
|
+
|
|
162
|
+
kb = get_knowledge_base name
|
|
163
|
+
matches = collection.keys.inject({}){|acc,type|
|
|
164
|
+
entities = collection[type]
|
|
165
|
+
entities.each do |entity|
|
|
166
|
+
_matches = kb.parents(database, entity)
|
|
167
|
+
acc.merge!({ _matches.target_type => _matches}) if _matches and _matches.any?
|
|
168
|
+
end
|
|
169
|
+
acc
|
|
170
|
+
}
|
|
171
|
+
case @format
|
|
172
|
+
when :tsv
|
|
173
|
+
content_type "text/tab-separated-values"
|
|
174
|
+
matches = matches.sort_by{|k,list| list.length }.last.last
|
|
175
|
+
halt 200, matches.tsv.to_s
|
|
176
|
+
when :html
|
|
177
|
+
template_render('knowledge_base_partials/matches', {:matches => matches}, "Collection Parents: #{ [name, database] }")
|
|
178
|
+
when :json
|
|
179
|
+
content_type :json
|
|
180
|
+
_matches = {}
|
|
181
|
+
matches.each{|type,list|
|
|
182
|
+
_matches[type] = list.target
|
|
183
|
+
}
|
|
184
|
+
halt 200, _matches.to_json
|
|
185
|
+
else
|
|
186
|
+
content_type :text
|
|
187
|
+
matches = matches.sort_by{|k,list| list.length }.last.last
|
|
188
|
+
halt 200, matches.target * "\n"
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
post '/knowledge_base/:name/:database/collection_neighbours' do
|
|
193
|
+
name = consume_parameter :name
|
|
194
|
+
database = consume_parameter :database
|
|
195
|
+
collection = consume_parameter :collection
|
|
196
|
+
raise ParameterException, "No collection specified" if collection.nil?
|
|
197
|
+
collection = JSON.parse(collection)
|
|
198
|
+
|
|
199
|
+
kb = get_knowledge_base name
|
|
200
|
+
matches = collection.keys.inject({}){|acc,type|
|
|
201
|
+
entities = collection[type]
|
|
202
|
+
entities.each do |entity|
|
|
203
|
+
_matches_h = kb.neighbours(database, entity)
|
|
204
|
+
_matches_h.each do |key, _matches|
|
|
205
|
+
target_type = case key
|
|
206
|
+
when :children
|
|
207
|
+
_matches.target_type
|
|
208
|
+
when :parents
|
|
209
|
+
_matches.source_type
|
|
210
|
+
end
|
|
211
|
+
_matches = acc[target_type].concat _matches if acc[target_type] and acc[target_type].any?
|
|
212
|
+
acc.merge!({ target_type => _matches}) if _matches and _matches.any?
|
|
213
|
+
end
|
|
214
|
+
end
|
|
215
|
+
acc
|
|
216
|
+
}
|
|
217
|
+
case @format
|
|
218
|
+
when :tsv
|
|
219
|
+
content_type "text/tab-separated-values"
|
|
220
|
+
matches = matches.sort_by{|k,list| list.length }.last.last
|
|
221
|
+
halt 200, matches.tsv.to_s
|
|
222
|
+
when :html
|
|
223
|
+
template_render('knowledge_base_partials/matches', {:matches => matches}, "Collection Parents: #{ [name, database] }")
|
|
224
|
+
when :json
|
|
225
|
+
content_type :json
|
|
226
|
+
_matches = {}
|
|
227
|
+
matches.each{|type,list|
|
|
228
|
+
_matches[type] = list.target
|
|
229
|
+
}
|
|
230
|
+
halt 200, _matches.to_json
|
|
231
|
+
else
|
|
232
|
+
content_type :text
|
|
233
|
+
matches = matches.sort_by{|k,list| list.length }.last.last
|
|
234
|
+
halt 200, matches.target * "\n"
|
|
235
|
+
end
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
get '/knowledge_base/:name/:database/subset' do
|
|
239
|
+
name = consume_parameter :name
|
|
240
|
+
database = consume_parameter :database
|
|
241
|
+
source = consume_parameter :source
|
|
242
|
+
target = consume_parameter :target
|
|
243
|
+
|
|
244
|
+
source = source == "all" ? :all : source.split(@array_separator) if source
|
|
245
|
+
target = target == "all" ? :all : target.split(@array_separator) if target
|
|
246
|
+
entities = { :source => source, :target => target }
|
|
247
|
+
|
|
248
|
+
kb = get_knowledge_base name
|
|
249
|
+
subset = kb.subset(database, entities)
|
|
250
|
+
case @format
|
|
251
|
+
when :tsv
|
|
252
|
+
content_type "text/tab-separated-values"
|
|
253
|
+
halt 200, subset.tsv.to_s
|
|
254
|
+
when :html
|
|
255
|
+
template_render('knowledge_base_partials/subset', {:subset => subset}, "Subset: #{ [name, database] }")
|
|
256
|
+
when :json
|
|
257
|
+
content_type :json
|
|
258
|
+
halt 200, subset.source.to_json
|
|
259
|
+
else
|
|
260
|
+
content_type :text
|
|
261
|
+
halt 200, subset.source * "\n"
|
|
262
|
+
end
|
|
263
|
+
end
|
|
264
|
+
|
|
113
265
|
#{{{ Info
|
|
114
266
|
|
|
115
267
|
get '/knowledge_base/info/:name/:database/:pair' do
|
|
@@ -44,8 +44,12 @@ module KnowledgeBaseRESTHelpers
|
|
|
44
44
|
|
|
45
45
|
kb.syndicate Genomics.knowledge_base, :genomics
|
|
46
46
|
|
|
47
|
+
TSV.traverse user_studies[user], :cpus => 10 do |study|
|
|
48
|
+
Study.setup(study)
|
|
49
|
+
study.sample_genes
|
|
50
|
+
end
|
|
51
|
+
|
|
47
52
|
user_studies[user].each do |study|
|
|
48
|
-
next if study.all_mutations.length > 50_000
|
|
49
53
|
kb.syndicate study.knowledge_base, study
|
|
50
54
|
end
|
|
51
55
|
|
|
@@ -1,22 +1,30 @@
|
|
|
1
1
|
- values = index[pair]
|
|
2
|
-
- fields = index.fields
|
|
3
|
-
- tsv = TSV.setup({}, :key_field => "Num", :fields => fields, :type => :list)
|
|
4
|
-
- values.zip(fields).each_with_index do |p,i|
|
|
5
|
-
- value, field = p
|
|
6
|
-
- value.split(";;").each_with_index do |part,j|
|
|
7
|
-
- tsv[j] ||= [nil] * fields.length
|
|
8
|
-
- tsv[j][i] = part
|
|
9
|
-
- tsv.entity_options = kb.entity_options
|
|
10
|
-
- tsv.namespace = kb.namespace
|
|
11
|
-
|
|
12
|
-
- if tsv.fields.include? "PMID"
|
|
13
|
-
- tsv.add_field "Title" do |k,v|
|
|
14
|
-
- v["PMID"].title
|
|
15
2
|
|
|
16
3
|
- source = pair.source_entity
|
|
17
4
|
- target = pair.target_entity
|
|
18
5
|
- source_name = source.respond_to?(:name) ? source.name || name : source
|
|
19
6
|
- target_name = target.respond_to?(:name) ? target.name || name : target
|
|
20
7
|
- name = [source_name, target_name] * "~"
|
|
21
|
-
|
|
8
|
+
- kb_name = File.basename pair.knowledge_base.dir
|
|
9
|
+
|
|
10
|
+
%h3== #{name} in #{pair.database} #{kb_name}
|
|
11
|
+
|
|
12
|
+
- fields = index.fields
|
|
13
|
+
- if fields.any?
|
|
14
|
+
- tsv = TSV.setup({}, :key_field => "Num", :fields => fields, :type => :list)
|
|
15
|
+
- values.zip(fields).each_with_index do |p,i|
|
|
16
|
+
- value, field = p
|
|
17
|
+
- value.split(";;").each_with_index do |part,j|
|
|
18
|
+
- tsv[j] ||= [nil] * fields.length
|
|
19
|
+
- tsv[j][i] = part
|
|
20
|
+
- tsv.entity_options = kb.entity_options
|
|
21
|
+
- tsv.namespace = kb.namespace
|
|
22
|
+
|
|
23
|
+
- if tsv.fields.include? "PMID"
|
|
24
|
+
- tsv.add_field "Title" do |k,v|
|
|
25
|
+
- v["PMID"].title
|
|
26
|
+
|
|
27
|
+
= tsv2html(tsv, :table_id => "#{pair} in #{pair.database} #{kb_name}")
|
|
22
28
|
|
|
29
|
+
- else
|
|
30
|
+
No information for this association: #{pair}
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rbbt-rest
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.27
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Miguel Vazquez
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-
|
|
11
|
+
date: 2014-08-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|