immunoscore_results_aggregator 0.0.3
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.
- data/.gitignore +4 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +47 -0
- data/README.md +54 -0
- data/Rakefile +2 -0
- data/bin/immunoscore_cli.rb +76 -0
- data/config.rb +14 -0
- data/data_struct.rb +280 -0
- data/docs/aggregator.html +200 -0
- data/docs/analyzer.html +1121 -0
- data/docs/data_struct.html +504 -0
- data/docs/database_connection.html +93 -0
- data/docs/docco.css +506 -0
- data/docs/exporter.html +216 -0
- data/docs/immunoscore_results_loader.html +485 -0
- data/docs/public/fonts/aller-bold.eot +0 -0
- data/docs/public/fonts/aller-bold.ttf +0 -0
- data/docs/public/fonts/aller-bold.woff +0 -0
- data/docs/public/fonts/aller-light.eot +0 -0
- data/docs/public/fonts/aller-light.ttf +0 -0
- data/docs/public/fonts/aller-light.woff +0 -0
- data/docs/public/fonts/novecento-bold.eot +0 -0
- data/docs/public/fonts/novecento-bold.ttf +0 -0
- data/docs/public/fonts/novecento-bold.woff +0 -0
- data/docs/public/stylesheets/normalize.css +375 -0
- data/docs/semicolon_cleaner.html +231 -0
- data/immunoscore_results_aggregator.gemspec +32 -0
- data/immunoscore_results_aggregator.rb +9 -0
- data/lib/analyzer.rb +664 -0
- data/lib/data_struct.rb +280 -0
- data/lib/database_connection.rb +4 -0
- data/lib/exporter.rb +76 -0
- data/lib/immunoscore_results_aggregator/version.rb +3 -0
- data/lib/immunoscore_results_loader.rb +218 -0
- data/lib/mongo_aggregator.rb +106 -0
- data/lib/semicolon_cleaner.rb +68 -0
- data/license.txt +21 -0
- metadata +243 -0
@@ -0,0 +1,485 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<title>immunoscore_results_loader.rb</title>
|
6
|
+
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
7
|
+
<meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
|
8
|
+
<link rel="stylesheet" media="all" href="docco.css" />
|
9
|
+
</head>
|
10
|
+
<body>
|
11
|
+
<div id="container">
|
12
|
+
<div id="background"></div>
|
13
|
+
|
14
|
+
<ul id="jump_to">
|
15
|
+
<li>
|
16
|
+
<a class="large" href="javascript:void(0);">Jump To …</a>
|
17
|
+
<a class="small" href="javascript:void(0);">+</a>
|
18
|
+
<div id="jump_wrapper">
|
19
|
+
<div id="jump_page">
|
20
|
+
|
21
|
+
|
22
|
+
<a class="source" href="analyzer.html">
|
23
|
+
analyzer.rb
|
24
|
+
</a>
|
25
|
+
|
26
|
+
|
27
|
+
<a class="source" href="cli.html">
|
28
|
+
cli.rb
|
29
|
+
</a>
|
30
|
+
|
31
|
+
|
32
|
+
<a class="source" href="data_struct.html">
|
33
|
+
data_struct.rb
|
34
|
+
</a>
|
35
|
+
|
36
|
+
|
37
|
+
<a class="source" href="database_connection.html">
|
38
|
+
database_connection.rb
|
39
|
+
</a>
|
40
|
+
|
41
|
+
|
42
|
+
<a class="source" href="exporter.html">
|
43
|
+
exporter.rb
|
44
|
+
</a>
|
45
|
+
|
46
|
+
|
47
|
+
<a class="source" href="immunoscore_results_loader.html">
|
48
|
+
immunoscore_results_loader.rb
|
49
|
+
</a>
|
50
|
+
|
51
|
+
|
52
|
+
<a class="source" href="mongo_aggregator.html">
|
53
|
+
mongo_aggregator.rb
|
54
|
+
</a>
|
55
|
+
|
56
|
+
|
57
|
+
<a class="source" href="semicolon_cleaner.html">
|
58
|
+
semicolon_cleaner.rb
|
59
|
+
</a>
|
60
|
+
|
61
|
+
</div>
|
62
|
+
</li>
|
63
|
+
</ul>
|
64
|
+
|
65
|
+
<ul class="sections">
|
66
|
+
|
67
|
+
<li id="title">
|
68
|
+
<div class="annotation">
|
69
|
+
<h1>immunoscore_results_loader.rb</h1>
|
70
|
+
</div>
|
71
|
+
</li>
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
<li id="section-1">
|
76
|
+
<div class="annotation">
|
77
|
+
|
78
|
+
<div class="pilwrap ">
|
79
|
+
<a class="pilcrow" href="#section-1">¶</a>
|
80
|
+
</div>
|
81
|
+
<p>Copyright (c) 2014, Carlo B. Bifulco. All rights reserved.</p>
|
82
|
+
|
83
|
+
</div>
|
84
|
+
|
85
|
+
<div class="content"><div class='highlight'><pre>
|
86
|
+
<span class="hljs-keyword">require</span> <span class="hljs-string">"csv"</span>
|
87
|
+
<span class="hljs-keyword">require</span> <span class="hljs-string">"yaml"</span>
|
88
|
+
<span class="hljs-keyword">require</span> <span class="hljs-string">"mongo_mapper"</span>
|
89
|
+
require_relative <span class="hljs-string">"database_connection"</span>
|
90
|
+
require_relative <span class="hljs-string">"analyzer"</span>
|
91
|
+
require_relative <span class="hljs-string">"data_struct"</span></pre></div></div>
|
92
|
+
|
93
|
+
</li>
|
94
|
+
|
95
|
+
|
96
|
+
<li id="section-2">
|
97
|
+
<div class="annotation">
|
98
|
+
|
99
|
+
<div class="pilwrap ">
|
100
|
+
<a class="pilcrow" href="#section-2">¶</a>
|
101
|
+
</div>
|
102
|
+
<h2 id="pull-info-from-definiens-immunoscore-directories">Pull info from Definiens Immunoscore Directories</h2>
|
103
|
+
<p>pattern matching based</p>
|
104
|
+
|
105
|
+
</div>
|
106
|
+
|
107
|
+
</li>
|
108
|
+
|
109
|
+
|
110
|
+
<li id="section-3">
|
111
|
+
<div class="annotation">
|
112
|
+
|
113
|
+
<div class="pilwrap ">
|
114
|
+
<a class="pilcrow" href="#section-3">¶</a>
|
115
|
+
</div>
|
116
|
+
<p>filename convetions
|
117
|
+
RS_SP02-15779-A8__CD3_2013…
|
118
|
+
no underscores in the file name after the RS prefix
|
119
|
+
they are required before and after case number for pattern matching</p>
|
120
|
+
|
121
|
+
</div>
|
122
|
+
|
123
|
+
</li>
|
124
|
+
|
125
|
+
|
126
|
+
<li id="section-4">
|
127
|
+
<div class="annotation">
|
128
|
+
|
129
|
+
<div class="pilwrap ">
|
130
|
+
<a class="pilcrow" href="#section-4">¶</a>
|
131
|
+
</div>
|
132
|
+
<h3 id="a-few-examples-of-what-we-are-looking-for">A few examples of what we are looking for</h3>
|
133
|
+
<p>image_0000006499_Classification.jpg
|
134
|
+
image_0000006504_Original.jpg
|
135
|
+
.image_0000006506_densitymap_new.jpg
|
136
|
+
.image_0000006506_histogram.jpg
|
137
|
+
image_0000006506_CT1.jpg. CT2, CT3
|
138
|
+
IM1, IM2, IM3</p>
|
139
|
+
|
140
|
+
</div>
|
141
|
+
|
142
|
+
</li>
|
143
|
+
|
144
|
+
|
145
|
+
<li id="section-5">
|
146
|
+
<div class="annotation">
|
147
|
+
|
148
|
+
<div class="pilwrap ">
|
149
|
+
<a class="pilcrow" href="#section-5">¶</a>
|
150
|
+
</div>
|
151
|
+
<h2 id="where-all-the-definies-stuff-resides">Where all the Definies stuff resides</h2>
|
152
|
+
|
153
|
+
</div>
|
154
|
+
|
155
|
+
<div class="content"><div class='highlight'><pre><span class="hljs-constant">BASE_DIR</span>=<span class="hljs-constant">YAML</span>.load_file(<span class="hljs-string">"./config.yaml"</span>)[<span class="hljs-string">"base_dir"</span>] <span class="hljs-keyword">or</span> <span class="hljs-string">"/Volumes/cbb_transfer"</span></pre></div></div>
|
156
|
+
|
157
|
+
</li>
|
158
|
+
|
159
|
+
|
160
|
+
<li id="section-6">
|
161
|
+
<div class="annotation">
|
162
|
+
|
163
|
+
<div class="pilwrap ">
|
164
|
+
<a class="pilcrow" href="#section-6">¶</a>
|
165
|
+
</div>
|
166
|
+
<p>BASE_DIR=”/Volumes/I\$/Christopher\ Paustian/Colon\ Immunoscore”</p>
|
167
|
+
|
168
|
+
</div>
|
169
|
+
|
170
|
+
</li>
|
171
|
+
|
172
|
+
|
173
|
+
<li id="section-7">
|
174
|
+
<div class="annotation">
|
175
|
+
|
176
|
+
<div class="pilwrap ">
|
177
|
+
<a class="pilcrow" href="#section-7">¶</a>
|
178
|
+
</div>
|
179
|
+
<h2 id="regex-utilities">regex utilities</h2>
|
180
|
+
|
181
|
+
</div>
|
182
|
+
|
183
|
+
<div class="content"><div class='highlight'><pre><span class="hljs-function"><span class="hljs-keyword">def</span> </span>pull_cd path
|
184
|
+
path.match(<span class="hljs-regexp">/.*(CD[8|3]).*/</span>)[<span class="hljs-number">1</span>] <span class="hljs-keyword">if</span> path.match(<span class="hljs-regexp">/.*(CD[8|3]).*/</span>)
|
185
|
+
<span class="hljs-keyword">end</span>
|
186
|
+
|
187
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> </span>pull_ct path
|
188
|
+
pattern=<span class="hljs-regexp">/.*(CT[1|2|3|4|5|6|7|8])\.jpg/</span>
|
189
|
+
path.match(pattern)[<span class="hljs-number">1</span>] <span class="hljs-keyword">if</span> path.match(pattern)
|
190
|
+
<span class="hljs-keyword">end</span>
|
191
|
+
|
192
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> </span>pull_im path
|
193
|
+
pattern=<span class="hljs-regexp">/.*(IM[1|2|3|4|5|6|7|8])\.jpg/</span>
|
194
|
+
path.match(pattern)[<span class="hljs-number">1</span>] <span class="hljs-keyword">if</span> path.match(pattern)
|
195
|
+
<span class="hljs-keyword">end</span></pre></div></div>
|
196
|
+
|
197
|
+
</li>
|
198
|
+
|
199
|
+
|
200
|
+
<li id="section-8">
|
201
|
+
<div class="annotation">
|
202
|
+
|
203
|
+
<div class="pilwrap ">
|
204
|
+
<a class="pilcrow" href="#section-8">¶</a>
|
205
|
+
</div>
|
206
|
+
<h3 id="case-identification">Case identification</h3>
|
207
|
+
<p>matched file names staring with RS follow by either - or <em> followed by SP03
|
208
|
+
followed by either - or </em> followed by case number. Matching of teh block
|
209
|
+
number is not included </p>
|
210
|
+
|
211
|
+
</div>
|
212
|
+
|
213
|
+
<div class="content"><div class='highlight'><pre><span class="hljs-function"><span class="hljs-keyword">def</span> </span>get_case_n path
|
214
|
+
match=path.match(<span class="hljs-regexp">/(RS[_-].?.?.?.?.[-_]\d*)/i</span>)
|
215
|
+
match[<span class="hljs-number">0</span>] <span class="hljs-keyword">if</span> match
|
216
|
+
<span class="hljs-keyword">end</span></pre></div></div>
|
217
|
+
|
218
|
+
</li>
|
219
|
+
|
220
|
+
|
221
|
+
<li id="section-9">
|
222
|
+
<div class="annotation">
|
223
|
+
|
224
|
+
<div class="pilwrap ">
|
225
|
+
<a class="pilcrow" href="#section-9">¶</a>
|
226
|
+
</div>
|
227
|
+
<h2 id="core-function">core function</h2>
|
228
|
+
|
229
|
+
</div>
|
230
|
+
|
231
|
+
<div class="content"><div class='highlight'><pre><span class="hljs-function"><span class="hljs-keyword">def</span> </span>find_files file_name_ending=<span class="hljs-string">"*Classification.jpg"</span>, base_dir=<span class="hljs-constant">BASE_DIR</span>
|
232
|
+
results=[]
|
233
|
+
<span class="hljs-constant">Dir</span>.glob(<span class="hljs-string">"<span class="hljs-subst">#{base_dir}</span>/**/<span class="hljs-subst">#{file_name_ending}</span>"</span>).each <span class="hljs-keyword">do</span> |full_path|
|
234
|
+
puts <span class="hljs-string">"am working on <span class="hljs-subst">#{full_path}</span>"</span>
|
235
|
+
directory_name=full_path.split(<span class="hljs-string">"\/"</span>)[-<span class="hljs-number">4</span>]
|
236
|
+
case_name=get_case_n full_path
|
237
|
+
cd=directory_name.split(<span class="hljs-string">"_"</span>)[<span class="hljs-number">2</span>]
|
238
|
+
results << {<span class="hljs-symbol">:case_n=>case_name</span>,
|
239
|
+
<span class="hljs-symbol">:cd_type</span> =>cd,
|
240
|
+
<span class="hljs-symbol">:path=>full_path</span>}
|
241
|
+
<span class="hljs-keyword">end</span>
|
242
|
+
results
|
243
|
+
<span class="hljs-keyword">end</span></pre></div></div>
|
244
|
+
|
245
|
+
</li>
|
246
|
+
|
247
|
+
|
248
|
+
<li id="section-10">
|
249
|
+
<div class="annotation">
|
250
|
+
|
251
|
+
<div class="pilwrap ">
|
252
|
+
<a class="pilcrow" href="#section-10">¶</a>
|
253
|
+
</div>
|
254
|
+
<h3 id="special-functions">special functions</h3>
|
255
|
+
|
256
|
+
</div>
|
257
|
+
|
258
|
+
<div class="content"><div class='highlight'><pre>
|
259
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> </span>find_ct
|
260
|
+
find_files(file_name_ending=<span class="hljs-string">"*image*CT*.jpg"</span>).map{|x| x[<span class="hljs-symbol">:path</span>]}.map <span class="hljs-keyword">do</span> |path|
|
261
|
+
case_n=get_case_n path
|
262
|
+
cd =pull_cd(path)
|
263
|
+
tile=pull_ct path
|
264
|
+
{<span class="hljs-symbol">:cd_type=>cd</span>, <span class="hljs-symbol">:path=>path</span>, <span class="hljs-symbol">:tile=>tile</span>, <span class="hljs-symbol">:case_n=>case_n</span>, <span class="hljs-symbol">:type=></span><span class="hljs-symbol">:ct_tile</span>}
|
265
|
+
<span class="hljs-keyword">end</span>
|
266
|
+
<span class="hljs-keyword">end</span>
|
267
|
+
|
268
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> </span>find_im
|
269
|
+
find_files(file_name_ending=<span class="hljs-string">"*image*IM*.jpg"</span>).map{|x| x[<span class="hljs-symbol">:path</span>]}.map <span class="hljs-keyword">do</span> |path|
|
270
|
+
case_n=get_case_n path
|
271
|
+
cd =pull_cd(path)
|
272
|
+
tile=pull_im path
|
273
|
+
{<span class="hljs-symbol">:cd_type=>cd</span>, <span class="hljs-symbol">:path=>path</span>, <span class="hljs-symbol">:tile=>tile</span>, <span class="hljs-symbol">:case_n=>case_n</span>,<span class="hljs-symbol">:type=></span><span class="hljs-symbol">:im_tile</span>}
|
274
|
+
<span class="hljs-keyword">end</span>
|
275
|
+
<span class="hljs-keyword">end</span>
|
276
|
+
|
277
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> </span>find_classification
|
278
|
+
find_files(file_name_ending=<span class="hljs-string">"*Classification.jpg"</span>).map <span class="hljs-keyword">do</span> |x|
|
279
|
+
x.merge({<span class="hljs-symbol">:type</span> => <span class="hljs-symbol">:classification</span>})
|
280
|
+
<span class="hljs-keyword">end</span>
|
281
|
+
<span class="hljs-keyword">end</span>
|
282
|
+
|
283
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> </span>find_original
|
284
|
+
find_files(file_name_ending=<span class="hljs-string">"*Original.jpg"</span>).map <span class="hljs-keyword">do</span> |x|
|
285
|
+
x.merge({<span class="hljs-symbol">:type</span> => <span class="hljs-symbol">:original</span>})
|
286
|
+
<span class="hljs-keyword">end</span>
|
287
|
+
<span class="hljs-keyword">end</span>
|
288
|
+
|
289
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> </span>find_statistics
|
290
|
+
find_files(file_name_ending=<span class="hljs-string">"*Statistics.csv"</span>).map <span class="hljs-keyword">do</span> |x|
|
291
|
+
puts x
|
292
|
+
{<span class="hljs-symbol">:case_n=></span> x[<span class="hljs-symbol">:case_n</span>],
|
293
|
+
<span class="hljs-symbol">:path=></span> x[<span class="hljs-symbol">:path</span>],
|
294
|
+
<span class="hljs-symbol">:cd_type=>pull_cd</span>(x[<span class="hljs-symbol">:path</span>]),
|
295
|
+
<span class="hljs-symbol">:type=></span> <span class="hljs-symbol">:statistic</span>}
|
296
|
+
<span class="hljs-keyword">end</span>
|
297
|
+
<span class="hljs-keyword">end</span>
|
298
|
+
|
299
|
+
|
300
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> </span>find_density
|
301
|
+
find_files(file_name_ending=<span class="hljs-string">"*densitymap*.jpg"</span>).map <span class="hljs-keyword">do</span> |x|
|
302
|
+
path=x[<span class="hljs-symbol">:path</span>]
|
303
|
+
case_n=get_case_n path
|
304
|
+
new_old=path.gsub(<span class="hljs-string">".jpg"</span>,<span class="hljs-string">""</span>)[-<span class="hljs-number">3</span>..-<span class="hljs-number">1</span>]
|
305
|
+
{<span class="hljs-symbol">:path=>path</span>, <span class="hljs-symbol">:case_n=>case_n</span>, <span class="hljs-symbol">:new_old=>new_old</span>,
|
306
|
+
<span class="hljs-symbol">:cd_type=>pull_cd</span>(path),<span class="hljs-symbol">:type=></span><span class="hljs-symbol">:density</span>}
|
307
|
+
<span class="hljs-keyword">end</span>
|
308
|
+
<span class="hljs-keyword">end</span>
|
309
|
+
|
310
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> </span>find_histogram
|
311
|
+
find_files(file_name_ending=<span class="hljs-string">"*histogram.jpg"</span>).map <span class="hljs-keyword">do</span> |x|
|
312
|
+
path=x[<span class="hljs-symbol">:path</span>]
|
313
|
+
case_n=get_case_n path
|
314
|
+
cd=pull_cd(path)
|
315
|
+
{<span class="hljs-symbol">:path=>path</span>, <span class="hljs-symbol">:case_n=>case_n</span>,<span class="hljs-symbol">:type=></span><span class="hljs-symbol">:histogram</span>, <span class="hljs-symbol">:cd_type=>cd</span>}
|
316
|
+
<span class="hljs-keyword">end</span>
|
317
|
+
<span class="hljs-keyword">end</span></pre></div></div>
|
318
|
+
|
319
|
+
</li>
|
320
|
+
|
321
|
+
|
322
|
+
<li id="section-11">
|
323
|
+
<div class="annotation">
|
324
|
+
|
325
|
+
<div class="pilwrap ">
|
326
|
+
<a class="pilcrow" href="#section-11">¶</a>
|
327
|
+
</div>
|
328
|
+
<h3 id="merges-all-the-json-structures-coming-from-the-search-functions">merges all the JSON structures coming from the search functions</h3>
|
329
|
+
<p>some metaprogramming: calls all find functions listed above</p>
|
330
|
+
|
331
|
+
</div>
|
332
|
+
|
333
|
+
<div class="content"><div class='highlight'><pre><span class="hljs-function"><span class="hljs-keyword">def</span> </span>search_all
|
334
|
+
r=[]
|
335
|
+
[<span class="hljs-symbol">:find_histogram</span>,<span class="hljs-symbol">:find_density</span>,<span class="hljs-symbol">:find_statistics</span>,<span class="hljs-symbol">:find_original</span>, <span class="hljs-symbol">:find_classification</span>, <span class="hljs-symbol">:find_im</span>,<span class="hljs-symbol">:find_ct</span>].each <span class="hljs-keyword">do</span> |m|
|
336
|
+
r << <span class="hljs-keyword">self</span>.send(m)
|
337
|
+
puts <span class="hljs-string">"Done with <span class="hljs-subst">#{m}</span>"</span>
|
338
|
+
<span class="hljs-keyword">end</span>
|
339
|
+
r.flatten
|
340
|
+
<span class="hljs-keyword">end</span>
|
341
|
+
|
342
|
+
|
343
|
+
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">NilClass</span></span>
|
344
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> </span> to_sym
|
345
|
+
<span class="hljs-keyword">false</span>
|
346
|
+
<span class="hljs-keyword">end</span>
|
347
|
+
<span class="hljs-keyword">end</span></pre></div></div>
|
348
|
+
|
349
|
+
</li>
|
350
|
+
|
351
|
+
|
352
|
+
<li id="section-12">
|
353
|
+
<div class="annotation">
|
354
|
+
|
355
|
+
<div class="pilwrap ">
|
356
|
+
<a class="pilcrow" href="#section-12">¶</a>
|
357
|
+
</div>
|
358
|
+
<h2 id="query-to-ensure-that-entries-are-not-recreated-in-teh-database-but-only-paths-and-blobs-are-updated">query to ensure that entries are not recreated in teh database, but only paths and blobs are updated</h2>
|
359
|
+
|
360
|
+
</div>
|
361
|
+
|
362
|
+
<div class="content"><div class='highlight'><pre><span class="hljs-function"><span class="hljs-keyword">def</span> </span>make_query data_set
|
363
|
+
<span class="hljs-keyword">if</span> data_set.has_key?(<span class="hljs-symbol">:new_old</span>)
|
364
|
+
query={<span class="hljs-symbol">:case_n</span> => data_set[<span class="hljs-symbol">:case_n</span>],<span class="hljs-symbol">:cd_type=>data_set</span>[<span class="hljs-symbol">:cd_type</span>], <span class="hljs-symbol">:new_old=>data_set</span>[<span class="hljs-symbol">:new_old</span>]}
|
365
|
+
<span class="hljs-keyword">elsif</span> data_set.has_key?(<span class="hljs-symbol">:tile</span>)
|
366
|
+
query={<span class="hljs-symbol">:case_n</span> => data_set[<span class="hljs-symbol">:case_n</span>],<span class="hljs-symbol">:cd_type=>data_set</span>[<span class="hljs-symbol">:cd_type</span>], <span class="hljs-symbol">:tile=>data_set</span>[<span class="hljs-symbol">:tile</span>]}
|
367
|
+
<span class="hljs-keyword">else</span>
|
368
|
+
query={<span class="hljs-symbol">:case_n</span> => data_set[<span class="hljs-symbol">:case_n</span>],<span class="hljs-symbol">:cd_type=>data_set</span>[<span class="hljs-symbol">:cd_type</span>]}
|
369
|
+
<span class="hljs-keyword">end</span>
|
370
|
+
query
|
371
|
+
<span class="hljs-keyword">end</span></pre></div></div>
|
372
|
+
|
373
|
+
</li>
|
374
|
+
|
375
|
+
|
376
|
+
<li id="section-13">
|
377
|
+
<div class="annotation">
|
378
|
+
|
379
|
+
<div class="pilwrap ">
|
380
|
+
<a class="pilcrow" href="#section-13">¶</a>
|
381
|
+
</div>
|
382
|
+
<h3 id="load-datasets-in-their-mongo-classes">load datasets in their mongo classes</h3>
|
383
|
+
<p>if entry preexisting updates results</p>
|
384
|
+
|
385
|
+
</div>
|
386
|
+
|
387
|
+
<div class="content"><div class='highlight'><pre><span class="hljs-function"><span class="hljs-keyword">def</span> </span>mongo_load_all search_results=search_all(), json_class_mapper=<span class="hljs-constant">JSON_CLASS_MAPPER</span>
|
388
|
+
search_results.each_with_index <span class="hljs-keyword">do</span> |data_set,i|
|
389
|
+
puts <span class="hljs-string">"<span class="hljs-subst">#{i}</span>: <span class="hljs-subst">#{data_set}</span>"</span>
|
390
|
+
puts data_set[<span class="hljs-string">"type"</span>]
|
391
|
+
mm_class=( json_class_mapper[data_set[<span class="hljs-string">"type"</span>]].to_sym <span class="hljs-keyword">or</span> json_class_mapper[data_set[<span class="hljs-symbol">:type</span>]])
|
392
|
+
puts <span class="hljs-string">"mm_class=<span class="hljs-subst">#{mm_class}</span>"</span></pre></div></div>
|
393
|
+
|
394
|
+
</li>
|
395
|
+
|
396
|
+
|
397
|
+
<li id="section-14">
|
398
|
+
<div class="annotation">
|
399
|
+
|
400
|
+
<div class="pilwrap ">
|
401
|
+
<a class="pilcrow" href="#section-14">¶</a>
|
402
|
+
</div>
|
403
|
+
<p>puts “data set type=#{data_set[:type]}”</p>
|
404
|
+
|
405
|
+
</div>
|
406
|
+
|
407
|
+
<div class="content"><div class='highlight'><pre> puts <span class="hljs-string">"class =<span class="hljs-subst">#{mm_class}</span>"</span>
|
408
|
+
query=make_query data_set
|
409
|
+
puts <span class="hljs-string">"query= <span class="hljs-subst">#{query}</span>"</span></pre></div></div>
|
410
|
+
|
411
|
+
</li>
|
412
|
+
|
413
|
+
|
414
|
+
<li id="section-15">
|
415
|
+
<div class="annotation">
|
416
|
+
|
417
|
+
<div class="pilwrap ">
|
418
|
+
<a class="pilcrow" href="#section-15">¶</a>
|
419
|
+
</div>
|
420
|
+
<p>query= {:case_n=>”RS-SV-05-16335”, :cd_type=>”CD8”, :tile=>”CT4”}</p>
|
421
|
+
|
422
|
+
</div>
|
423
|
+
|
424
|
+
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">if</span> mm_class.where(query).all.empty?
|
425
|
+
mm_object=mm_class.create data_set
|
426
|
+
puts <span class="hljs-string">"mm created <span class="hljs-subst">#{mm_object}</span>"</span>
|
427
|
+
<span class="hljs-keyword">else</span></pre></div></div>
|
428
|
+
|
429
|
+
</li>
|
430
|
+
|
431
|
+
|
432
|
+
<li id="section-16">
|
433
|
+
<div class="annotation">
|
434
|
+
|
435
|
+
<div class="pilwrap ">
|
436
|
+
<a class="pilcrow" href="#section-16">¶</a>
|
437
|
+
</div>
|
438
|
+
<p>upserts if entry pre-existing</p>
|
439
|
+
|
440
|
+
</div>
|
441
|
+
|
442
|
+
<div class="content"><div class='highlight'><pre> mm_class.set(query, data_set, <span class="hljs-symbol">:upsert</span> => <span class="hljs-keyword">true</span> )
|
443
|
+
puts <span class="hljs-string">"uspsert created <span class="hljs-subst">#{mm_object}</span>"</span>
|
444
|
+
mm_object=mm_class.where(data_set).find_one
|
445
|
+
<span class="hljs-keyword">end</span></pre></div></div>
|
446
|
+
|
447
|
+
</li>
|
448
|
+
|
449
|
+
|
450
|
+
<li id="section-17">
|
451
|
+
<div class="annotation">
|
452
|
+
|
453
|
+
<div class="pilwrap ">
|
454
|
+
<a class="pilcrow" href="#section-17">¶</a>
|
455
|
+
</div>
|
456
|
+
<p>binding.pry</p>
|
457
|
+
|
458
|
+
</div>
|
459
|
+
|
460
|
+
<div class="content"><div class='highlight'><pre> mm_object.get_cd
|
461
|
+
mm_object.save
|
462
|
+
|
463
|
+
<span class="hljs-keyword">end</span>
|
464
|
+
puts <span class="hljs-string">"\n\n\n"</span>
|
465
|
+
puts <span class="hljs-string">"finished uploading to databes"</span>
|
466
|
+
<span class="hljs-keyword">end</span>
|
467
|
+
|
468
|
+
<span class="hljs-function"><span class="hljs-keyword">def</span> </span>show graphic_data
|
469
|
+
tf=<span class="hljs-constant">Tempfile</span>.new [<span class="hljs-string">"temp"</span>,<span class="hljs-string">".jpg"</span>]
|
470
|
+
tf.write graphic_data
|
471
|
+
tf.close
|
472
|
+
puts <span class="hljs-string">"<span class="hljs-subst">#{tf.path}</span>"</span>
|
473
|
+
fork <span class="hljs-keyword">do</span>
|
474
|
+
`open <span class="hljs-comment">#{tf.path}`</span>
|
475
|
+
<span class="hljs-keyword">end</span>
|
476
|
+
<span class="hljs-constant">Process</span>.wait
|
477
|
+
tf.unlink
|
478
|
+
<span class="hljs-keyword">end</span></pre></div></div>
|
479
|
+
|
480
|
+
</li>
|
481
|
+
|
482
|
+
</ul>
|
483
|
+
</div>
|
484
|
+
</body>
|
485
|
+
</html>
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|