genevalidator 1.6.1 → 1.6.2

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.
Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/.travis.yml +2 -0
  4. data/README.md +78 -30
  5. data/Rakefile +11 -8
  6. data/aux/app_template_footer.erb +1 -6
  7. data/aux/app_template_header.erb +12 -32
  8. data/aux/files/css/style.css +2 -8
  9. data/aux/files/js/plots.js +564 -576
  10. data/aux/files/js/script.js +10 -0
  11. data/aux/json_footer.erb +8 -0
  12. data/aux/json_header.erb +19 -0
  13. data/aux/json_query.erb +14 -0
  14. data/aux/template_footer.erb +9 -58
  15. data/aux/template_header.erb +18 -58
  16. data/aux/template_query.erb +8 -36
  17. data/bin/genevalidator +45 -32
  18. data/genevalidator.gemspec +11 -7
  19. data/lib/genevalidator.rb +75 -455
  20. data/lib/genevalidator/arg_validation.rb +78 -107
  21. data/lib/genevalidator/blast.rb +57 -60
  22. data/lib/genevalidator/clusterization.rb +15 -15
  23. data/lib/genevalidator/exceptions.rb +32 -5
  24. data/lib/genevalidator/get_raw_sequences.rb +70 -33
  25. data/lib/genevalidator/hsp.rb +1 -4
  26. data/lib/genevalidator/json_to_gv_results.rb +109 -0
  27. data/lib/genevalidator/output.rb +177 -185
  28. data/lib/genevalidator/pool.rb +2 -1
  29. data/lib/genevalidator/sequences.rb +3 -3
  30. data/lib/genevalidator/tabular_parser.rb +24 -18
  31. data/lib/genevalidator/validation.rb +279 -0
  32. data/lib/genevalidator/validation_alignment.rb +31 -47
  33. data/lib/genevalidator/validation_blast_reading_frame.rb +19 -18
  34. data/lib/genevalidator/validation_duplication.rb +23 -19
  35. data/lib/genevalidator/validation_gene_merge.rb +30 -65
  36. data/lib/genevalidator/validation_length_cluster.rb +14 -53
  37. data/lib/genevalidator/validation_length_rank.rb +10 -11
  38. data/lib/genevalidator/validation_open_reading_frame.rb +18 -19
  39. data/lib/genevalidator/validation_report.rb +2 -5
  40. data/lib/genevalidator/validation_test.rb +8 -4
  41. data/lib/genevalidator/version.rb +1 -1
  42. data/test/test_all_validations.rb +51 -66
  43. data/test/test_blast.rb +68 -51
  44. data/test/test_clusterization.rb +1 -1
  45. data/test/test_clusterization_2d.rb +19 -13
  46. data/test/test_extended_array_methods.rb +1 -1
  47. data/test/test_files/all_validations_mrna/mrna.blast_tab6 +1806 -0
  48. data/test/test_files/all_validations_mrna/mrna.blast_tab7 +1865 -0
  49. data/test/test_files/all_validations_mrna/{all_validations_mrna.fasta.blast_xml → mrna.blast_xml} +18642 -1
  50. data/test/test_files/all_validations_mrna/{all_validations_mrna.fasta.blast_xml.index → mrna.blast_xml.index} +300 -0
  51. data/test/test_files/all_validations_mrna/{all_validations_mrna.fasta → mrna.fa} +0 -0
  52. data/test/test_files/all_validations_mrna/mrna.raw_seq +3970 -0
  53. data/test/test_files/all_validations_mrna/{all_validations_mrna.fasta.blast_xml.raw_seq.idx → mrna.raw_seq.idx} +901 -1
  54. data/test/test_files/all_validations_prot/{all_validations_prot.fasta.blast_tab → prot.blast_tab6} +416 -0
  55. data/test/test_files/all_validations_prot/prot.blast_tab7 +2400 -0
  56. data/test/test_files/all_validations_prot/{all_validations_prot.fasta.blast_xml → prot.blast_xml} +18299 -6723
  57. data/test/test_files/all_validations_prot/{all_validations_prot.fasta.blast_xml.index → prot.blast_xml.index} +408 -0
  58. data/test/test_files/all_validations_prot/{all_validations_prot.fasta → prot.fa} +0 -0
  59. data/test/test_files/all_validations_prot/{all_validations_prot.fasta.blast_xml.raw_seq → prot.raw_seq} +2735 -0
  60. data/test/test_files/all_validations_prot/{all_validations_prot.fasta.blast_xml.raw_seq.idx → prot.raw_seq.idx} +3032 -1808
  61. data/test/test_sequences.rb +46 -41
  62. data/test/test_validation_open_reading_frame.rb +318 -202
  63. data/test/test_validations.rb +48 -32
  64. metadata +76 -102
  65. data/doc/AliasDuplicationError.html +0 -134
  66. data/doc/AlignmentValidation.html +0 -1687
  67. data/doc/AlignmentValidationOutput.html +0 -659
  68. data/doc/Blast.html +0 -1905
  69. data/doc/BlastRFValidationOutput.html +0 -545
  70. data/doc/BlastReadingFrameValidation.html +0 -370
  71. data/doc/BlastUtils.html +0 -875
  72. data/doc/ClasspathError.html +0 -134
  73. data/doc/Cluster.html +0 -1316
  74. data/doc/DuplciationValidationOutput.html +0 -564
  75. data/doc/DuplicationValidation.html +0 -920
  76. data/doc/DuplicationValidationOutput.html +0 -564
  77. data/doc/FileNotFoundException.html +0 -134
  78. data/doc/GeneMergeValidation.html +0 -935
  79. data/doc/GeneMergeValidationOutput.html +0 -652
  80. data/doc/HierarchicalClusterization.html +0 -994
  81. data/doc/Hsp.html +0 -1485
  82. data/doc/InconsistentTabularFormat.html +0 -135
  83. data/doc/LengthClusterValidation.html +0 -982
  84. data/doc/LengthClusterValidationOutput.html +0 -515
  85. data/doc/LengthRankValidation.html +0 -496
  86. data/doc/LengthRankValidationOutput.html +0 -517
  87. data/doc/NoInternetError.html +0 -135
  88. data/doc/NoMafftInstallationError.html +0 -134
  89. data/doc/NoPIdentError.html +0 -134
  90. data/doc/NoValidationError.html +0 -134
  91. data/doc/NotEnoughHitsError.html +0 -135
  92. data/doc/ORFValidationOutput.html +0 -593
  93. data/doc/OpenReadingFrameValidation.html +0 -1107
  94. data/doc/OtherError.html +0 -123
  95. data/doc/Output.html +0 -1540
  96. data/doc/Pair.html +0 -309
  97. data/doc/PairCluster.html +0 -767
  98. data/doc/Plot.html +0 -837
  99. data/doc/QueryError.html +0 -134
  100. data/doc/ReportClassError.html +0 -135
  101. data/doc/Sequence.html +0 -1299
  102. data/doc/SequenceTypeError.html +0 -135
  103. data/doc/TabularEntry.html +0 -837
  104. data/doc/TabularParser.html +0 -1104
  105. data/doc/Validation.html +0 -2147
  106. data/doc/ValidationClassError.html +0 -134
  107. data/doc/ValidationOutput.html +0 -460
  108. data/doc/ValidationReport.html +0 -940
  109. data/doc/ValidationTest.html +0 -939
  110. data/doc/_index.html +0 -449
  111. data/doc/class_list.html +0 -54
  112. data/doc/css/common.css +0 -1
  113. data/doc/css/full_list.css +0 -57
  114. data/doc/css/style.css +0 -338
  115. data/doc/file.README.html +0 -151
  116. data/doc/file_list.html +0 -56
  117. data/doc/frames.html +0 -26
  118. data/doc/index.html +0 -151
  119. data/doc/js/app.js +0 -214
  120. data/doc/js/full_list.js +0 -178
  121. data/doc/js/jquery.js +0 -4
  122. data/doc/method_list.html +0 -1505
  123. data/doc/top-level-namespace.html +0 -112
  124. data/test/test_files/all_validations_mrna/all_validations_mrna.fasta.blast_tab +0 -967
  125. data/test/test_files/all_validations_mrna/all_validations_mrna.fasta.blast_tab.index +0 -967
  126. data/test/test_files/all_validations_mrna/all_validations_mrna.fasta.blast_tab.raw_seq +0 -4929
  127. data/test/test_files/all_validations_mrna/all_validations_mrna.fasta.blast_tab.raw_seq.idx +0 -1006
  128. data/test/test_files/all_validations_mrna/all_validations_mrna.fasta.blast_xml.raw_seq +0 -2075
  129. data/test/test_files/all_validations_prot/all_validations_prot.fasta.blast_tab.index +0 -1864
  130. data/test/test_files/all_validations_prot/all_validations_prot.fasta.blast_tab.raw_seq +0 -42411
  131. data/test/test_files/all_validations_prot/all_validations_prot.fasta.blast_tab.raw_seq.idx +0 -3751
@@ -1,1905 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
- <title>
7
- Class: Blast
8
-
9
- &mdash; Documentation by YARD 0.8.7
10
-
11
- </title>
12
-
13
- <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
14
-
15
- <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
16
-
17
- <script type="text/javascript" charset="utf-8">
18
- hasFrames = window.top.frames.main ? true : false;
19
- relpath = '';
20
- framesUrl = "frames.html#!" + escape(window.location.href);
21
- </script>
22
-
23
-
24
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
25
-
26
- <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
27
-
28
-
29
- </head>
30
- <body>
31
- <div id="header">
32
- <div id="menu">
33
-
34
- <a href="_index.html">Index (B)</a> &raquo;
35
-
36
-
37
- <span class="title">Blast</span>
38
-
39
-
40
- <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
- </div>
42
-
43
- <div id="search">
44
-
45
- <a class="full_list_link" id="class_list_link"
46
- href="class_list.html">
47
- Class List
48
- </a>
49
-
50
- <a class="full_list_link" id="method_list_link"
51
- href="method_list.html">
52
- Method List
53
- </a>
54
-
55
- <a class="full_list_link" id="file_list_link"
56
- href="file_list.html">
57
- File List
58
- </a>
59
-
60
- </div>
61
- <div class="clear"></div>
62
- </div>
63
-
64
- <iframe id="search_frame"></iframe>
65
-
66
- <div id="content"><h1>Class: Blast
67
-
68
-
69
-
70
- </h1>
71
-
72
- <dl class="box">
73
-
74
- <dt class="r1">Inherits:</dt>
75
- <dd class="r1">
76
- <span class="inheritName">Object</span>
77
-
78
- <ul class="fullTree">
79
- <li>Object</li>
80
-
81
- <li class="next">Blast</li>
82
-
83
- </ul>
84
- <a href="#" class="inheritanceTree">show all</a>
85
-
86
- </dd>
87
-
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
-
96
- <dt class="r2 last">Defined in:</dt>
97
- <dd class="r2 last">lib/genevalidator/blast.rb</dd>
98
-
99
- </dl>
100
- <div class="clear"></div>
101
-
102
-
103
-
104
-
105
-
106
- <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
107
- <ul class="summary">
108
-
109
- <li class="public ">
110
- <span class="summary_signature">
111
-
112
- <a href="#fasta_file-instance_method" title="#fasta_file (instance method)">- (Object) <strong>fasta_file</strong> </a>
113
-
114
-
115
-
116
- </span>
117
-
118
-
119
-
120
-
121
- <span class="note title readonly">readonly</span>
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
-
130
-
131
- <span class="summary_desc"><div class='inline'>
132
- <p>Returns the value of attribute fasta_file.</p>
133
- </div></span>
134
-
135
- </li>
136
-
137
-
138
- <li class="public ">
139
- <span class="summary_signature">
140
-
141
- <a href="#idx-instance_method" title="#idx (instance method)">- (Object) <strong>idx</strong> </a>
142
-
143
-
144
-
145
- </span>
146
-
147
-
148
-
149
-
150
- <span class="note title readonly">readonly</span>
151
-
152
-
153
-
154
-
155
-
156
-
157
-
158
-
159
-
160
- <span class="summary_desc"><div class='inline'>
161
- <p>current number of the querry processed.</p>
162
- </div></span>
163
-
164
- </li>
165
-
166
-
167
- <li class="public ">
168
- <span class="summary_signature">
169
-
170
- <a href="#outfmt-instance_method" title="#outfmt (instance method)">- (Object) <strong>outfmt</strong> </a>
171
-
172
-
173
-
174
- </span>
175
-
176
-
177
-
178
-
179
- <span class="note title readonly">readonly</span>
180
-
181
-
182
-
183
-
184
-
185
-
186
-
187
-
188
-
189
- <span class="summary_desc"><div class='inline'>
190
- <p>Returns the value of attribute outfmt.</p>
191
- </div></span>
192
-
193
- </li>
194
-
195
-
196
- <li class="public ">
197
- <span class="summary_signature">
198
-
199
- <a href="#query_offset_lst-instance_method" title="#query_offset_lst (instance method)">- (Object) <strong>query_offset_lst</strong> </a>
200
-
201
-
202
-
203
- </span>
204
-
205
-
206
-
207
-
208
- <span class="note title readonly">readonly</span>
209
-
210
-
211
-
212
-
213
-
214
-
215
-
216
-
217
-
218
- <span class="summary_desc"><div class='inline'>
219
- <p>array of indexes for the start offsets of each query in the fasta file.</p>
220
- </div></span>
221
-
222
- </li>
223
-
224
-
225
- <li class="public ">
226
- <span class="summary_signature">
227
-
228
- <a href="#start_idx-instance_method" title="#start_idx (instance method)">- (Object) <strong>start_idx</strong> </a>
229
-
230
-
231
-
232
- </span>
233
-
234
-
235
-
236
-
237
- <span class="note title readonly">readonly</span>
238
-
239
-
240
-
241
-
242
-
243
-
244
-
245
-
246
-
247
- <span class="summary_desc"><div class='inline'>
248
- <p>Returns the value of attribute start_idx.</p>
249
- </div></span>
250
-
251
- </li>
252
-
253
-
254
- <li class="public ">
255
- <span class="summary_signature">
256
-
257
- <a href="#type-instance_method" title="#type (instance method)">- (Object) <strong>type</strong> </a>
258
-
259
-
260
-
261
- </span>
262
-
263
-
264
-
265
-
266
- <span class="note title readonly">readonly</span>
267
-
268
-
269
-
270
-
271
-
272
-
273
-
274
-
275
-
276
- <span class="summary_desc"><div class='inline'>
277
- <p>Returns the value of attribute type.</p>
278
- </div></span>
279
-
280
- </li>
281
-
282
-
283
- </ul>
284
-
285
-
286
-
287
-
288
-
289
- <h2>
290
- Instance Method Summary
291
- <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
292
- </h2>
293
-
294
- <ul class="summary">
295
-
296
- <li class="public ">
297
- <span class="summary_signature">
298
-
299
- <a href="#blast-instance_method" title="#blast (instance method)">- (Object) <strong>blast</strong> </a>
300
-
301
-
302
-
303
- </span>
304
-
305
-
306
-
307
-
308
-
309
-
310
-
311
-
312
-
313
- <span class="summary_desc"><div class='inline'>
314
- <p>Calls blast according to the type of the sequence.</p>
315
- </div></span>
316
-
317
- </li>
318
-
319
-
320
- <li class="public ">
321
- <span class="summary_signature">
322
-
323
- <a href="#call_blast_from_file-instance_method" title="#call_blast_from_file (instance method)">- (Object) <strong>call_blast_from_file</strong>(command, filename, gapopen, gapextend) </a>
324
-
325
-
326
-
327
- </span>
328
-
329
-
330
-
331
-
332
-
333
-
334
-
335
-
336
-
337
- <span class="summary_desc"><div class='inline'>
338
- <p>Calls blast from file with specific parameters Param: <tt>command</tt>:
339
- blast command in String format (e.g 'blastx' or 'blastp')
340
- <tt>filename</tt>: name of the FAST file <tt>query</tt>: <tt>String</tt>
341
- containing the the query in fasta format <tt>gapopen</tt>: gapopen blast
342
- parameter <tt>gapextend</tt>: gapextend blast parameter Output: String with
343
- the blast xml output.</p>
344
- </div></span>
345
-
346
- </li>
347
-
348
-
349
- <li class="public ">
350
- <span class="summary_signature">
351
-
352
- <a href="#call_blast_from_stdin-instance_method" title="#call_blast_from_stdin (instance method)">- (Object) <strong>call_blast_from_stdin</strong>(command, query, gapopen, gapextend) </a>
353
-
354
-
355
-
356
- </span>
357
-
358
-
359
-
360
-
361
-
362
-
363
-
364
-
365
-
366
- <span class="summary_desc"><div class='inline'>
367
- <p>Calls blast from standard input with specific parameters Params:
368
- <tt>command</tt>: blast command in String format (e.g 'blastx' or 'blastp')
369
- <tt>query</tt>: String containing the the query in fasta format
370
- <tt>gapopen</tt>: gapopen blast parameter <tt>gapextend</tt>: gapextend
371
- blast parameter Output: String with the blast xml output.</p>
372
- </div></span>
373
-
374
- </li>
375
-
376
-
377
- <li class="public ">
378
- <span class="summary_signature">
379
-
380
- <a href="#composition-instance_method" title="#composition (instance method)">- (Object) <strong>composition</strong>(sequence_string) </a>
381
-
382
-
383
-
384
- </span>
385
-
386
-
387
-
388
-
389
-
390
-
391
-
392
-
393
-
394
- <span class="summary_desc"><div class='inline'>
395
- <p>Method copied from sequenceserver/sequencehelpers.rb Params:
396
- sequence_string: String of which we mfind the composition Output: a Hash.</p>
397
- </div></span>
398
-
399
- </li>
400
-
401
-
402
- <li class="public ">
403
- <span class="summary_signature">
404
-
405
- <a href="#get_sequence_by_accession_no-instance_method" title="#get_sequence_by_accession_no (instance method)">- (Object) <strong>get_sequence_by_accession_no</strong>(accno, db) </a>
406
-
407
-
408
-
409
- </span>
410
-
411
-
412
-
413
-
414
-
415
-
416
-
417
-
418
-
419
- <span class="summary_desc"><div class='inline'>
420
- <p>Gets gene by accession number from a givem database Params: <tt>accno</tt>:
421
- accession number as String <tt>db</tt>: database as String Output: String
422
- with the nucleotide sequence corresponding to the accno.</p>
423
- </div></span>
424
-
425
- </li>
426
-
427
-
428
- <li class="public ">
429
- <span class="summary_signature">
430
-
431
- <a href="#guess_sequence_type-instance_method" title="#guess_sequence_type (instance method)">- (Object) <strong>guess_sequence_type</strong>(sequence_string) </a>
432
-
433
-
434
-
435
- </span>
436
-
437
-
438
-
439
-
440
-
441
-
442
-
443
-
444
-
445
- <span class="summary_desc"><div class='inline'>
446
- <p>Method copied from sequenceserver/sequencehelpers.rb Strips all non-letter
447
- characters.</p>
448
- </div></span>
449
-
450
- </li>
451
-
452
-
453
- <li class="public ">
454
- <span class="summary_signature">
455
-
456
- <a href="#initialize-instance_method" title="#initialize (instance method)">- (Blast) <strong>initialize</strong>(fasta_file, type, xml_file = nil, outfmt = nil, start_idx = 1) </a>
457
-
458
-
459
-
460
- </span>
461
-
462
-
463
- <span class="note title constructor">constructor</span>
464
-
465
-
466
-
467
-
468
-
469
-
470
-
471
-
472
- <span class="summary_desc"><div class='inline'>
473
- <p>Initilizes the object Params: <tt>fasta_file</tt>: query sequence fasta
474
- file with query sequences <tt>type</tt>: query sequence type; can be
475
- :nucleotide or :protein <tt>xml_file</tt>: name of the precalculated blast
476
- xml output (used in 'skip blast' case) <tt>outfmt</tt>: output format
477
- <tt>start_idx</tt>: number of the sequence from the file to start with.</p>
478
- </div></span>
479
-
480
- </li>
481
-
482
-
483
- <li class="public ">
484
- <span class="summary_signature">
485
-
486
- <a href="#parse_next_query-instance_method" title="#parse_next_query (instance method)">- (Object) <strong>parse_next_query</strong>(iterator) </a>
487
-
488
-
489
-
490
- </span>
491
-
492
-
493
-
494
-
495
-
496
-
497
-
498
-
499
-
500
- <span class="summary_desc"><div class='inline'>
501
- <p>Parses the next query from the blast xml output query Params:
502
- <tt>iterator</tt>: blast xml iterator for hits Outputs: output1: an array
503
- of <tt>Sequence</tt> ojbects for hits output2: <tt>Sequence</tt> object for
504
- the predicted sequence.</p>
505
- </div></span>
506
-
507
- </li>
508
-
509
-
510
- <li class="public ">
511
- <span class="summary_signature">
512
-
513
- <a href="#parse_xml_output-instance_method" title="#parse_xml_output (instance method)">- (Object) <strong>parse_xml_output</strong>(output) </a>
514
-
515
-
516
-
517
- </span>
518
-
519
-
520
-
521
-
522
-
523
-
524
-
525
-
526
-
527
- <span class="summary_desc"><div class='inline'>
528
- <p>Parses the xml blast output Param: <tt>output</tt>: <tt>String</tt> with
529
- the blast output in xml format.</p>
530
- </div></span>
531
-
532
- </li>
533
-
534
-
535
- <li class="public ">
536
- <span class="summary_signature">
537
-
538
- <a href="#type_of_sequences-instance_method" title="#type_of_sequences (instance method)">- (Object) <strong>type_of_sequences</strong>(fasta_format_string) </a>
539
-
540
-
541
-
542
- </span>
543
-
544
-
545
-
546
-
547
-
548
-
549
-
550
-
551
-
552
- <span class="summary_desc"><div class='inline'>
553
- <p>Method copied from sequenceserver/sequencehelpers.rb Splits input at
554
- putative fasta definition lines (like "&gt;adsfadsf"), guesses sequence
555
- type for each sequence.</p>
556
- </div></span>
557
-
558
- </li>
559
-
560
-
561
- </ul>
562
-
563
-
564
- <div id="constructor_details" class="method_details_list">
565
- <h2>Constructor Details</h2>
566
-
567
- <div class="method_details first">
568
- <h3 class="signature first" id="initialize-instance_method">
569
-
570
- - (<tt><span class='object_link'><a href="" title="Blast (class)">Blast</a></span></tt>) <strong>initialize</strong>(fasta_file, type, xml_file = nil, outfmt = nil, start_idx = 1)
571
-
572
-
573
-
574
-
575
-
576
- </h3><div class="docstring">
577
- <div class="discussion">
578
-
579
- <p>Initilizes the object Params: <tt>fasta_file</tt>: query sequence fasta
580
- file with query sequences <tt>type</tt>: query sequence type; can be
581
- :nucleotide or :protein <tt>xml_file</tt>: name of the precalculated blast
582
- xml output (used in 'skip blast' case) <tt>outfmt</tt>: output format
583
- <tt>start_idx</tt>: number of the sequence from the file to start with</p>
584
-
585
-
586
- </div>
587
- </div>
588
- <div class="tags">
589
-
590
-
591
- </div><table class="source_code">
592
- <tr>
593
- <td>
594
- <pre class="lines">
595
-
596
-
597
- 35
598
- 36
599
- 37
600
- 38
601
- 39
602
- 40
603
- 41
604
- 42
605
- 43
606
- 44
607
- 45
608
- 46
609
- 47
610
- 48
611
- 49
612
- 50
613
- 51
614
- 52
615
- 53
616
- 54
617
- 55
618
- 56
619
- 57
620
- 58
621
- 59
622
- 60
623
- 61
624
- 62
625
- 63
626
- 64
627
- 65
628
- 66
629
- 67
630
- 68
631
- 69
632
- 70
633
- 71
634
- 72
635
- 73
636
- 74
637
- 75</pre>
638
- </td>
639
- <td>
640
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 35</span>
641
-
642
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_fasta_file'>fasta_file</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_xml_file'>xml_file</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_outfmt'>outfmt</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_start_idx'>start_idx</span> <span class='op'>=</span> <span class='int'>1</span><span class='rparen'>)</span>
643
- <span class='kw'>begin</span>
644
-
645
- <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\nDepending on your input and your computational resources, this may take a while. Please wait...\n\n</span><span class='tstring_end'>&quot;</span></span>
646
-
647
- <span class='kw'>if</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>protein</span><span class='tstring_end'>&quot;</span></span>
648
- <span class='ivar'>@type</span> <span class='op'>=</span> <span class='symbol'>:protein</span>
649
- <span class='kw'>else</span>
650
- <span class='ivar'>@type</span> <span class='op'>=</span> <span class='symbol'>:nucleotide</span>
651
- <span class='kw'>end</span>
652
-
653
- <span class='ivar'>@fasta_file</span> <span class='op'>=</span> <span class='id identifier rubyid_fasta_file'>fasta_file</span>
654
- <span class='ivar'>@xml_file</span> <span class='op'>=</span> <span class='id identifier rubyid_xml_file'>xml_file</span>
655
- <span class='ivar'>@idx</span> <span class='op'>=</span> <span class='int'>0</span>
656
- <span class='ivar'>@start_idx</span> <span class='op'>=</span> <span class='id identifier rubyid_start_idx'>start_idx</span>
657
- <span class='ivar'>@outfmt</span> <span class='op'>=</span> <span class='id identifier rubyid_outfmt'>outfmt</span>
658
-
659
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>FileNotFoundException</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='kw'>unless</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_exists?'>exists?</span><span class='lparen'>(</span><span class='ivar'>@fasta_file</span><span class='rparen'>)</span>
660
- <span class='id identifier rubyid_fasta_content'>fasta_content</span> <span class='op'>=</span> <span class='const'>IO</span><span class='period'>.</span><span class='id identifier rubyid_binread'>binread</span><span class='lparen'>(</span><span class='ivar'>@fasta_file</span><span class='rparen'>)</span><span class='semicolon'>;</span>
661
-
662
- <span class='comment'># type validation: the type of the sequence in the FASTA correspond to the one declared by the user
663
- </span> <span class='kw'>if</span> <span class='ivar'>@type</span> <span class='op'>!=</span> <span class='id identifier rubyid_type_of_sequences'>type_of_sequences</span><span class='lparen'>(</span><span class='id identifier rubyid_fasta_content'>fasta_content</span><span class='rparen'>)</span>
664
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>SequenceTypeError</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
665
- <span class='kw'>end</span>
666
-
667
- <span class='comment'># create a list of index of the queries in the FASTA
668
- </span> <span class='ivar'>@query_offset_lst</span> <span class='op'>=</span> <span class='id identifier rubyid_fasta_content'>fasta_content</span><span class='period'>.</span><span class='id identifier rubyid_enum_for'>enum_for</span><span class='lparen'>(</span><span class='symbol'>:scan</span><span class='comma'>,</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>(&gt;[^&gt;]+)</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lbrace'>{</span> <span class='const'>Regexp</span><span class='period'>.</span><span class='id identifier rubyid_last_match'>last_match</span><span class='period'>.</span><span class='id identifier rubyid_begin'>begin</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span><span class='rbrace'>}</span>
669
- <span class='ivar'>@query_offset_lst</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='id identifier rubyid_fasta_content'>fasta_content</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='rparen'>)</span>
670
- <span class='id identifier rubyid_fasta_content'>fasta_content</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='comment'># free memory for variable fasta_content
671
- </span>
672
- <span class='comment'># redirect the cosole messages of R
673
- </span> <span class='const'>R</span><span class='period'>.</span><span class='id identifier rubyid_echo'>echo</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>enable = nil, stderr = nil, warn = nil</span><span class='tstring_end'>&quot;</span></span>
674
-
675
- <span class='kw'>rescue</span> <span class='const'>SequenceTypeError</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_error'>error</span>
676
- <span class='gvar'>$stderr</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Sequence Type error at </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\/([^\/]+:\d+):.*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>. Possible cause: input file is not FASTA or the --type parameter is incorrect.\n</span><span class='tstring_end'>&quot;</span></span>
677
- <span class='id identifier rubyid_exit'>exit</span>
678
- <span class='kw'>rescue</span> <span class='const'>FileNotFoundException</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_error'>error</span>
679
- <span class='gvar'>$stderr</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>File not found error at </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\/([^\/]+:\d+):.*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>. Possible cause: input file does not exist.\n</span><span class='tstring_end'>&quot;</span></span>
680
- <span class='id identifier rubyid_exit'>exit</span>
681
- <span class='kw'>end</span>
682
- <span class='kw'>end</span></pre>
683
- </td>
684
- </tr>
685
- </table>
686
- </div>
687
-
688
- </div>
689
-
690
- <div id="instance_attr_details" class="attr_details">
691
- <h2>Instance Attribute Details</h2>
692
-
693
-
694
- <span id=""></span>
695
- <div class="method_details first">
696
- <h3 class="signature first" id="fasta_file-instance_method">
697
-
698
- - (<tt>Object</tt>) <strong>fasta_file</strong> <span class="extras">(readonly)</span>
699
-
700
-
701
-
702
-
703
-
704
- </h3><div class="docstring">
705
- <div class="discussion">
706
-
707
- <p>Returns the value of attribute fasta_file</p>
708
-
709
-
710
- </div>
711
- </div>
712
- <div class="tags">
713
-
714
-
715
- </div><table class="source_code">
716
- <tr>
717
- <td>
718
- <pre class="lines">
719
-
720
-
721
- 19
722
- 20
723
- 21</pre>
724
- </td>
725
- <td>
726
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 19</span>
727
-
728
- <span class='kw'>def</span> <span class='id identifier rubyid_fasta_file'>fasta_file</span>
729
- <span class='ivar'>@fasta_file</span>
730
- <span class='kw'>end</span></pre>
731
- </td>
732
- </tr>
733
- </table>
734
- </div>
735
-
736
-
737
- <span id=""></span>
738
- <div class="method_details ">
739
- <h3 class="signature " id="idx-instance_method">
740
-
741
- - (<tt>Object</tt>) <strong>idx</strong> <span class="extras">(readonly)</span>
742
-
743
-
744
-
745
-
746
-
747
- </h3><div class="docstring">
748
- <div class="discussion">
749
-
750
- <p>current number of the querry processed</p>
751
-
752
-
753
- </div>
754
- </div>
755
- <div class="tags">
756
-
757
-
758
- </div><table class="source_code">
759
- <tr>
760
- <td>
761
- <pre class="lines">
762
-
763
-
764
- 21
765
- 22
766
- 23</pre>
767
- </td>
768
- <td>
769
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 21</span>
770
-
771
- <span class='kw'>def</span> <span class='id identifier rubyid_idx'>idx</span>
772
- <span class='ivar'>@idx</span>
773
- <span class='kw'>end</span></pre>
774
- </td>
775
- </tr>
776
- </table>
777
- </div>
778
-
779
-
780
- <span id=""></span>
781
- <div class="method_details ">
782
- <h3 class="signature " id="outfmt-instance_method">
783
-
784
- - (<tt>Object</tt>) <strong>outfmt</strong> <span class="extras">(readonly)</span>
785
-
786
-
787
-
788
-
789
-
790
- </h3><div class="docstring">
791
- <div class="discussion">
792
-
793
- <p>Returns the value of attribute outfmt</p>
794
-
795
-
796
- </div>
797
- </div>
798
- <div class="tags">
799
-
800
-
801
- </div><table class="source_code">
802
- <tr>
803
- <td>
804
- <pre class="lines">
805
-
806
-
807
- 23
808
- 24
809
- 25</pre>
810
- </td>
811
- <td>
812
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 23</span>
813
-
814
- <span class='kw'>def</span> <span class='id identifier rubyid_outfmt'>outfmt</span>
815
- <span class='ivar'>@outfmt</span>
816
- <span class='kw'>end</span></pre>
817
- </td>
818
- </tr>
819
- </table>
820
- </div>
821
-
822
-
823
- <span id=""></span>
824
- <div class="method_details ">
825
- <h3 class="signature " id="query_offset_lst-instance_method">
826
-
827
- - (<tt>Object</tt>) <strong>query_offset_lst</strong> <span class="extras">(readonly)</span>
828
-
829
-
830
-
831
-
832
-
833
- </h3><div class="docstring">
834
- <div class="discussion">
835
-
836
- <p>array of indexes for the start offsets of each query in the fasta file</p>
837
-
838
-
839
- </div>
840
- </div>
841
- <div class="tags">
842
-
843
-
844
- </div><table class="source_code">
845
- <tr>
846
- <td>
847
- <pre class="lines">
848
-
849
-
850
- 25
851
- 26
852
- 27</pre>
853
- </td>
854
- <td>
855
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 25</span>
856
-
857
- <span class='kw'>def</span> <span class='id identifier rubyid_query_offset_lst'>query_offset_lst</span>
858
- <span class='ivar'>@query_offset_lst</span>
859
- <span class='kw'>end</span></pre>
860
- </td>
861
- </tr>
862
- </table>
863
- </div>
864
-
865
-
866
- <span id=""></span>
867
- <div class="method_details ">
868
- <h3 class="signature " id="start_idx-instance_method">
869
-
870
- - (<tt>Object</tt>) <strong>start_idx</strong> <span class="extras">(readonly)</span>
871
-
872
-
873
-
874
-
875
-
876
- </h3><div class="docstring">
877
- <div class="discussion">
878
-
879
- <p>Returns the value of attribute start_idx</p>
880
-
881
-
882
- </div>
883
- </div>
884
- <div class="tags">
885
-
886
-
887
- </div><table class="source_code">
888
- <tr>
889
- <td>
890
- <pre class="lines">
891
-
892
-
893
- 22
894
- 23
895
- 24</pre>
896
- </td>
897
- <td>
898
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 22</span>
899
-
900
- <span class='kw'>def</span> <span class='id identifier rubyid_start_idx'>start_idx</span>
901
- <span class='ivar'>@start_idx</span>
902
- <span class='kw'>end</span></pre>
903
- </td>
904
- </tr>
905
- </table>
906
- </div>
907
-
908
-
909
- <span id=""></span>
910
- <div class="method_details ">
911
- <h3 class="signature " id="type-instance_method">
912
-
913
- - (<tt>Object</tt>) <strong>type</strong> <span class="extras">(readonly)</span>
914
-
915
-
916
-
917
-
918
-
919
- </h3><div class="docstring">
920
- <div class="discussion">
921
-
922
- <p>Returns the value of attribute type</p>
923
-
924
-
925
- </div>
926
- </div>
927
- <div class="tags">
928
-
929
-
930
- </div><table class="source_code">
931
- <tr>
932
- <td>
933
- <pre class="lines">
934
-
935
-
936
- 18
937
- 19
938
- 20</pre>
939
- </td>
940
- <td>
941
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 18</span>
942
-
943
- <span class='kw'>def</span> <span class='id identifier rubyid_type'>type</span>
944
- <span class='ivar'>@type</span>
945
- <span class='kw'>end</span></pre>
946
- </td>
947
- </tr>
948
- </table>
949
- </div>
950
-
951
- </div>
952
-
953
-
954
- <div id="instance_method_details" class="method_details_list">
955
- <h2>Instance Method Details</h2>
956
-
957
-
958
- <div class="method_details first">
959
- <h3 class="signature first" id="blast-instance_method">
960
-
961
- - (<tt>Object</tt>) <strong>blast</strong>
962
-
963
-
964
-
965
-
966
-
967
- </h3><div class="docstring">
968
- <div class="discussion">
969
-
970
- <p>Calls blast according to the type of the sequence</p>
971
-
972
-
973
- </div>
974
- </div>
975
- <div class="tags">
976
-
977
-
978
- </div><table class="source_code">
979
- <tr>
980
- <td>
981
- <pre class="lines">
982
-
983
-
984
- 79
985
- 80
986
- 81
987
- 82
988
- 83
989
- 84
990
- 85
991
- 86
992
- 87
993
- 88
994
- 89
995
- 90
996
- 91
997
- 92
998
- 93
999
- 94
1000
- 95
1001
- 96
1002
- 97
1003
- 98
1004
- 99
1005
- 100
1006
- 101
1007
- 102
1008
- 103
1009
- 104
1010
- 105
1011
- 106
1012
- 107
1013
- 108
1014
- 109
1015
- 110
1016
- 111
1017
- 112
1018
- 113
1019
- 114
1020
- 115
1021
- 116</pre>
1022
- </td>
1023
- <td>
1024
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 79</span>
1025
-
1026
- <span class='kw'>def</span> <span class='id identifier rubyid_blast'>blast</span>
1027
- <span class='kw'>begin</span>
1028
-
1029
- <span class='kw'>if</span> <span class='ivar'>@xml_file</span> <span class='op'>==</span> <span class='kw'>nil</span>
1030
-
1031
- <span class='comment'>#file seek for each query
1032
- </span> <span class='ivar'>@query_offset_lst</span><span class='lbracket'>[</span><span class='int'>0</span><span class='op'>..</span><span class='ivar'>@query_offset_lst</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='op'>-</span><span class='int'>2</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each_with_index'>each_with_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_pos'>pos</span><span class='comma'>,</span> <span class='id identifier rubyid_i'>i</span><span class='op'>|</span>
1033
-
1034
- <span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_i'>i</span><span class='op'>+</span><span class='int'>1</span><span class='rparen'>)</span> <span class='op'>&gt;=</span> <span class='ivar'>@start_idx</span>
1035
- <span class='id identifier rubyid_query'>query</span> <span class='op'>=</span> <span class='const'>IO</span><span class='period'>.</span><span class='id identifier rubyid_binread'>binread</span><span class='lparen'>(</span><span class='ivar'>@fasta_file</span><span class='comma'>,</span> <span class='ivar'>@query_offset_lst</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='op'>+</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='op'>-</span> <span class='ivar'>@query_offset_lst</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='ivar'>@query_offset_lst</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='semicolon'>;</span>
1036
-
1037
- <span class='comment'>#call blast with the default parameters
1038
- </span> <span class='kw'>if</span> <span class='id identifier rubyid_type'>type</span> <span class='op'>==</span> <span class='symbol'>:protein</span>
1039
- <span class='id identifier rubyid_output'>output</span> <span class='op'>=</span> <span class='id identifier rubyid_call_blast_from_stdin'>call_blast_from_stdin</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>blastp</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='int'>11</span><span class='comma'>,</span> <span class='int'>1</span><span class='rparen'>)</span>
1040
- <span class='kw'>else</span>
1041
- <span class='id identifier rubyid_output'>output</span> <span class='op'>=</span> <span class='id identifier rubyid_call_blast_from_stdin'>call_blast_from_stdin</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>blastx</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='int'>11</span><span class='comma'>,</span> <span class='int'>1</span><span class='rparen'>)</span>
1042
- <span class='kw'>end</span>
1043
-
1044
- <span class='comment'>#save output in a file
1045
- </span> <span class='id identifier rubyid_xml_file'>xml_file</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@fasta_file</span><span class='rbrace'>}</span><span class='tstring_content'>_</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_i'>i</span><span class='op'>+</span><span class='int'>1</span><span class='rbrace'>}</span><span class='tstring_content'>.xml</span><span class='tstring_end'>&quot;</span></span>
1046
- <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_xml_file'>xml_file</span> <span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>w</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_f'>f</span><span class='op'>|</span> <span class='id identifier rubyid_f'>f</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='id identifier rubyid_output'>output</span><span class='rparen'>)</span> <span class='kw'>end</span>
1047
-
1048
- <span class='comment'>#parse output
1049
- </span> <span class='id identifier rubyid_parse_xml_output'>parse_xml_output</span><span class='lparen'>(</span><span class='id identifier rubyid_output'>output</span><span class='rparen'>)</span>
1050
- <span class='kw'>else</span>
1051
- <span class='ivar'>@idx</span> <span class='op'>=</span> <span class='ivar'>@idx</span> <span class='op'>+</span> <span class='int'>1</span>
1052
- <span class='kw'>end</span>
1053
- <span class='kw'>end</span>
1054
- <span class='kw'>else</span>
1055
- <span class='id identifier rubyid_file'>file</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='ivar'>@xml_file</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>rb</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span>
1056
- <span class='id identifier rubyid_parse_xml_output'>parse_xml_output</span><span class='lparen'>(</span><span class='id identifier rubyid_file'>file</span><span class='rparen'>)</span>
1057
- <span class='kw'>end</span>
1058
-
1059
- <span class='kw'>rescue</span> <span class='const'>SystemCallError</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_error'>error</span>
1060
- <span class='gvar'>$stderr</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Load error at </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\/([^\/]+:\d+):.*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>. Possible cause: input file is not valid\n</span><span class='tstring_end'>&quot;</span></span>
1061
- <span class='id identifier rubyid_exit'>exit</span>
1062
- <span class='kw'>end</span>
1063
- <span class='kw'>end</span></pre>
1064
- </td>
1065
- </tr>
1066
- </table>
1067
- </div>
1068
-
1069
- <div class="method_details ">
1070
- <h3 class="signature " id="call_blast_from_file-instance_method">
1071
-
1072
- - (<tt>Object</tt>) <strong>call_blast_from_file</strong>(command, filename, gapopen, gapextend)
1073
-
1074
-
1075
-
1076
-
1077
-
1078
- </h3><div class="docstring">
1079
- <div class="discussion">
1080
-
1081
- <p>Calls blast from file with specific parameters Param: <tt>command</tt>:
1082
- blast command in String format (e.g 'blastx' or 'blastp')
1083
- <tt>filename</tt>: name of the FAST file <tt>query</tt>: <tt>String</tt>
1084
- containing the the query in fasta format <tt>gapopen</tt>: gapopen blast
1085
- parameter <tt>gapextend</tt>: gapextend blast parameter Output: String with
1086
- the blast xml output</p>
1087
-
1088
-
1089
- </div>
1090
- </div>
1091
- <div class="tags">
1092
-
1093
-
1094
- </div><table class="source_code">
1095
- <tr>
1096
- <td>
1097
- <pre class="lines">
1098
-
1099
-
1100
- 164
1101
- 165
1102
- 166
1103
- 167
1104
- 168
1105
- 169
1106
- 170
1107
- 171
1108
- 172
1109
- 173
1110
- 174
1111
- 175
1112
- 176
1113
- 177
1114
- 178
1115
- 179
1116
- 180
1117
- 181
1118
- 182
1119
- 183
1120
- 184
1121
- 185
1122
- 186
1123
- 187
1124
- 188
1125
- 189
1126
- 190
1127
- 191
1128
- 192</pre>
1129
- </td>
1130
- <td>
1131
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 164</span>
1132
-
1133
- <span class='kw'>def</span> <span class='id identifier rubyid_call_blast_from_file'>call_blast_from_file</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_filename'>filename</span><span class='comma'>,</span> <span class='id identifier rubyid_gapopen'>gapopen</span><span class='comma'>,</span> <span class='id identifier rubyid_gapextend'>gapextend</span><span class='rparen'>)</span>
1134
- <span class='kw'>begin</span>
1135
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>TypeError</span> <span class='kw'>unless</span> <span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>String</span> <span class='kw'>and</span> <span class='id identifier rubyid_filename'>filename</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>String</span>
1136
-
1137
- <span class='id identifier rubyid_evalue'>evalue</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1e-5</span><span class='tstring_end'>&quot;</span></span>
1138
-
1139
- <span class='comment'>#output = 5 (XML Blast output)
1140
- </span> <span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_command'>command</span><span class='rbrace'>}</span><span class='tstring_content'> -query </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filename'>filename</span><span class='rbrace'>}</span><span class='tstring_content'> -db nr -remote -evalue </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_evalue'>evalue</span><span class='rbrace'>}</span><span class='tstring_content'> -outfmt 5 -gapopen </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_gapopen'>gapopen</span><span class='rbrace'>}</span><span class='tstring_content'> -gapextend </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_gapextend'>gapextend</span><span class='rbrace'>}</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span>
1141
- <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Executing \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_cmd'>cmd</span><span class='rbrace'>}</span><span class='tstring_content'>\&quot;...</span><span class='tstring_end'>&quot;</span></span>
1142
- <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>This may take a while...</span><span class='tstring_end'>&quot;</span></span>
1143
- <span class='id identifier rubyid_output'>output</span> <span class='op'>=</span> <span class='backtick'>%x[</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_cmd'>cmd</span><span class='rbrace'>}</span><span class='tstring_content'> if xml_file == nil
1144
- file = File.open(xml_file, &quot;rb&quot;).read
1145
- b.parse_xml_output(file)
1146
- end 2&gt;/dev/null</span><span class='tstring_end'>]</span></span>
1147
-
1148
- <span class='kw'>if</span> <span class='id identifier rubyid_output'>output</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
1149
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ClasspathError</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1150
- <span class='kw'>end</span>
1151
-
1152
- <span class='kw'>return</span> <span class='id identifier rubyid_output'>output</span>
1153
-
1154
- <span class='kw'>rescue</span> <span class='const'>TypeError</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_error'>error</span>
1155
- <span class='gvar'>$stderr</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Type error at </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\/([^\/]+:\d+):.*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>. Possible cause: one of the arguments of 'call_blast_from_file' method has not the proper type\n</span><span class='tstring_end'>&quot;</span></span>
1156
- <span class='id identifier rubyid_exit'>exit</span>
1157
- <span class='kw'>rescue</span> <span class='const'>ClasspathError</span> <span class='op'>=&gt;</span><span class='id identifier rubyid_error'>error</span>
1158
- <span class='gvar'>$stderr</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>BLAST error at </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\/([^\/]+:\d+):.*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>. Did you add BLAST path to CLASSPATH?\n</span><span class='tstring_end'>&quot;</span></span>
1159
- <span class='id identifier rubyid_exit'>exit</span>
1160
- <span class='kw'>end</span>
1161
- <span class='kw'>end</span></pre>
1162
- </td>
1163
- </tr>
1164
- </table>
1165
- </div>
1166
-
1167
- <div class="method_details ">
1168
- <h3 class="signature " id="call_blast_from_stdin-instance_method">
1169
-
1170
- - (<tt>Object</tt>) <strong>call_blast_from_stdin</strong>(command, query, gapopen, gapextend)
1171
-
1172
-
1173
-
1174
-
1175
-
1176
- </h3><div class="docstring">
1177
- <div class="discussion">
1178
-
1179
- <p>Calls blast from standard input with specific parameters Params:
1180
- <tt>command</tt>: blast command in String format (e.g 'blastx' or 'blastp')
1181
- <tt>query</tt>: String containing the the query in fasta format
1182
- <tt>gapopen</tt>: gapopen blast parameter <tt>gapextend</tt>: gapextend
1183
- blast parameter Output: String with the blast xml output</p>
1184
-
1185
-
1186
- </div>
1187
- </div>
1188
- <div class="tags">
1189
-
1190
-
1191
- </div><table class="source_code">
1192
- <tr>
1193
- <td>
1194
- <pre class="lines">
1195
-
1196
-
1197
- 127
1198
- 128
1199
- 129
1200
- 130
1201
- 131
1202
- 132
1203
- 133
1204
- 134
1205
- 135
1206
- 136
1207
- 137
1208
- 138
1209
- 139
1210
- 140
1211
- 141
1212
- 142
1213
- 143
1214
- 144
1215
- 145
1216
- 146
1217
- 147
1218
- 148
1219
- 149
1220
- 150
1221
- 151
1222
- 152</pre>
1223
- </td>
1224
- <td>
1225
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 127</span>
1226
-
1227
- <span class='kw'>def</span> <span class='id identifier rubyid_call_blast_from_stdin'>call_blast_from_stdin</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_query'>query</span><span class='comma'>,</span> <span class='id identifier rubyid_gapopen'>gapopen</span><span class='comma'>,</span> <span class='id identifier rubyid_gapextend'>gapextend</span><span class='rparen'>)</span>
1228
- <span class='kw'>begin</span>
1229
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>TypeError</span> <span class='kw'>unless</span> <span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>String</span> <span class='kw'>and</span> <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>String</span>
1230
-
1231
- <span class='id identifier rubyid_evalue'>evalue</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1e-5</span><span class='tstring_end'>&quot;</span></span>
1232
-
1233
- <span class='comment'>#output format = 5 (XML Blast output)
1234
- </span> <span class='id identifier rubyid_blast_cmd'>blast_cmd</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_command'>command</span><span class='rbrace'>}</span><span class='tstring_content'> -db nr -remote -evalue </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_evalue'>evalue</span><span class='rbrace'>}</span><span class='tstring_content'> -outfmt 5 -gapopen </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_gapopen'>gapopen</span><span class='rbrace'>}</span><span class='tstring_content'> -gapextend </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_gapextend'>gapextend</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1235
- <span class='id identifier rubyid_cmd'>cmd</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>echo \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_query'>query</span><span class='rbrace'>}</span><span class='tstring_content'>\&quot; | </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_blast_cmd'>blast_cmd</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1236
- <span class='comment'>#puts &quot;Executing \&quot;#{blast_cmd}\&quot;... This may take a while...&quot;
1237
- </span> <span class='id identifier rubyid_output'>output</span> <span class='op'>=</span> <span class='backtick'>%x[</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_cmd'>cmd</span><span class='rbrace'>}</span><span class='tstring_content'> 2&gt;/dev/null</span><span class='tstring_end'>]</span></span>
1238
-
1239
- <span class='kw'>if</span> <span class='id identifier rubyid_output'>output</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
1240
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ClasspathError</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1241
- <span class='kw'>end</span>
1242
-
1243
- <span class='kw'>return</span> <span class='id identifier rubyid_output'>output</span>
1244
-
1245
- <span class='kw'>rescue</span> <span class='const'>TypeError</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_error'>error</span>
1246
- <span class='gvar'>$stderr</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Type error at </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\/([^\/]+:\d+):.*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>. Possible cause: one of the arguments of 'call_blast_from_file' method has not the proper type\n</span><span class='tstring_end'>&quot;</span></span>
1247
- <span class='id identifier rubyid_exit'>exit</span>
1248
- <span class='kw'>rescue</span> <span class='const'>ClasspathError</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_error'>error</span>
1249
- <span class='gvar'>$stderr</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>BLAST error at </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\/([^\/]+:\d+):.*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>. Possible cause: Did you add BLAST path to CLASSPATH?\n</span><span class='tstring_end'>&quot;</span></span>
1250
- <span class='id identifier rubyid_exit'>exit</span>
1251
- <span class='kw'>end</span>
1252
- <span class='kw'>end</span></pre>
1253
- </td>
1254
- </tr>
1255
- </table>
1256
- </div>
1257
-
1258
- <div class="method_details ">
1259
- <h3 class="signature " id="composition-instance_method">
1260
-
1261
- - (<tt>Object</tt>) <strong>composition</strong>(sequence_string)
1262
-
1263
-
1264
-
1265
-
1266
-
1267
- </h3><div class="docstring">
1268
- <div class="discussion">
1269
-
1270
- <p>Method copied from sequenceserver/sequencehelpers.rb Params:
1271
- sequence_string: String of which we mfind the composition Output: a Hash</p>
1272
-
1273
-
1274
- </div>
1275
- </div>
1276
- <div class="tags">
1277
-
1278
-
1279
- </div><table class="source_code">
1280
- <tr>
1281
- <td>
1282
- <pre class="lines">
1283
-
1284
-
1285
- 386
1286
- 387
1287
- 388
1288
- 389
1289
- 390
1290
- 391
1291
- 392</pre>
1292
- </td>
1293
- <td>
1294
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 386</span>
1295
-
1296
- <span class='kw'>def</span> <span class='id identifier rubyid_composition'>composition</span><span class='lparen'>(</span><span class='id identifier rubyid_sequence_string'>sequence_string</span><span class='rparen'>)</span>
1297
- <span class='id identifier rubyid_count'>count</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
1298
- <span class='id identifier rubyid_sequence_string'>sequence_string</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>.</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_x'>x</span><span class='op'>|</span>
1299
- <span class='id identifier rubyid_count'>count</span><span class='lbracket'>[</span><span class='id identifier rubyid_x'>x</span><span class='rbracket'>]</span> <span class='op'>+=</span> <span class='int'>1</span>
1300
- <span class='kw'>end</span>
1301
- <span class='id identifier rubyid_count'>count</span>
1302
- <span class='kw'>end</span></pre>
1303
- </td>
1304
- </tr>
1305
- </table>
1306
- </div>
1307
-
1308
- <div class="method_details ">
1309
- <h3 class="signature " id="get_sequence_by_accession_no-instance_method">
1310
-
1311
- - (<tt>Object</tt>) <strong>get_sequence_by_accession_no</strong>(accno, db)
1312
-
1313
-
1314
-
1315
-
1316
-
1317
- </h3><div class="docstring">
1318
- <div class="discussion">
1319
-
1320
- <p>Gets gene by accession number from a givem database Params: <tt>accno</tt>:
1321
- accession number as String <tt>db</tt>: database as String Output: String
1322
- with the nucleotide sequence corresponding to the accno</p>
1323
-
1324
-
1325
- </div>
1326
- </div>
1327
- <div class="tags">
1328
-
1329
-
1330
- </div><table class="source_code">
1331
- <tr>
1332
- <td>
1333
- <pre class="lines">
1334
-
1335
-
1336
- 358
1337
- 359
1338
- 360
1339
- 361
1340
- 362
1341
- 363
1342
- 364
1343
- 365
1344
- 366
1345
- 367
1346
- 368
1347
- 369
1348
- 370
1349
- 371
1350
- 372
1351
- 373
1352
- 374
1353
- 375
1354
- 376
1355
- 377
1356
- 378</pre>
1357
- </td>
1358
- <td>
1359
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 358</span>
1360
-
1361
- <span class='kw'>def</span> <span class='id identifier rubyid_get_sequence_by_accession_no'>get_sequence_by_accession_no</span><span class='lparen'>(</span><span class='id identifier rubyid_accno'>accno</span><span class='comma'>,</span><span class='id identifier rubyid_db'>db</span><span class='rparen'>)</span>
1362
-
1363
- <span class='id identifier rubyid_uri'>uri</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://www.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_db'>db</span><span class='rbrace'>}</span><span class='tstring_content'>&amp;retmax=1&amp;usehistory=y&amp;term=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_accno'>accno</span><span class='rbrace'>}</span><span class='tstring_content'>/</span><span class='tstring_end'>&quot;</span></span>
1364
- <span class='comment'>#puts uri
1365
- </span> <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>HTTP</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span><span class='lparen'>(</span><span class='const'>URI</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_uri'>uri</span><span class='rparen'>)</span><span class='rparen'>)</span>
1366
-
1367
- <span class='id identifier rubyid_result2'>result2</span> <span class='op'>=</span> <span class='id identifier rubyid_result'>result</span>
1368
- <span class='id identifier rubyid_queryKey'>queryKey</span> <span class='op'>=</span> <span class='id identifier rubyid_result2'>result2</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>&lt;\bQueryKey\b&gt;([\w\W\d]+)&lt;\/\bQueryKey\b&gt;</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
1369
- <span class='id identifier rubyid_webEnv'>webEnv</span> <span class='op'>=</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>&lt;\bWebEnv\b&gt;([\w\W\d]+)&lt;\/\bWebEnv\b&gt;</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
1370
-
1371
- <span class='id identifier rubyid_uri'>uri</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://www.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?rettype=fasta&amp;retmode=text&amp;retstart=0&amp;retmax=1&amp;db=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_db'>db</span><span class='rbrace'>}</span><span class='tstring_content'>&amp;query_key=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_queryKey'>queryKey</span><span class='rbrace'>}</span><span class='tstring_content'>&amp;WebEnv=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_webEnv'>webEnv</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1372
-
1373
- <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>HTTP</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span><span class='lparen'>(</span><span class='const'>URI</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_uri'>uri</span><span class='rparen'>)</span><span class='rparen'>)</span>
1374
-
1375
- <span class='comment'>#parse FASTA output
1376
- </span> <span class='id identifier rubyid_rec'>rec</span><span class='op'>=</span><span class='id identifier rubyid_result'>result</span>
1377
- <span class='id identifier rubyid_nl'>nl</span> <span class='op'>=</span> <span class='id identifier rubyid_rec'>rec</span><span class='period'>.</span><span class='id identifier rubyid_index'>index</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1378
- <span class='id identifier rubyid_header'>header</span> <span class='op'>=</span> <span class='id identifier rubyid_rec'>rec</span><span class='lbracket'>[</span><span class='int'>0</span><span class='op'>..</span><span class='id identifier rubyid_nl'>nl</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span>
1379
- <span class='id identifier rubyid_seq'>seq</span> <span class='op'>=</span> <span class='id identifier rubyid_rec'>rec</span><span class='lbracket'>[</span><span class='id identifier rubyid_nl'>nl</span><span class='op'>+</span><span class='int'>1</span><span class='op'>..</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span>
1380
- <span class='id identifier rubyid_seq'>seq</span><span class='period'>.</span><span class='id identifier rubyid_gsub!'>gsub!</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\n</span><span class='regexp_end'>/</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1381
- <span class='kw'>end</span></pre>
1382
- </td>
1383
- </tr>
1384
- </table>
1385
- </div>
1386
-
1387
- <div class="method_details ">
1388
- <h3 class="signature " id="guess_sequence_type-instance_method">
1389
-
1390
- - (<tt>Object</tt>) <strong>guess_sequence_type</strong>(sequence_string)
1391
-
1392
-
1393
-
1394
-
1395
-
1396
- </h3><div class="docstring">
1397
- <div class="discussion">
1398
-
1399
- <p>Method copied from sequenceserver/sequencehelpers.rb Strips all non-letter
1400
- characters. guestimates sequence based on that. If less than 10 useable
1401
- characters... returns nil If more than 90% ACGTU returns :nucleotide. else
1402
- returns :protein Params: <tt>sequence_string</tt>: String to validate
1403
- Output: nil, :nucleotide or :protein</p>
1404
-
1405
-
1406
- </div>
1407
- </div>
1408
- <div class="tags">
1409
-
1410
-
1411
- </div><table class="source_code">
1412
- <tr>
1413
- <td>
1414
- <pre class="lines">
1415
-
1416
-
1417
- 403
1418
- 404
1419
- 405
1420
- 406
1421
- 407
1422
- 408
1423
- 409
1424
- 410
1425
- 411
1426
- 412
1427
- 413
1428
- 414
1429
- 415
1430
- 416
1431
- 417
1432
- 418
1433
- 419
1434
- 420</pre>
1435
- </td>
1436
- <td>
1437
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 403</span>
1438
-
1439
- <span class='kw'>def</span> <span class='id identifier rubyid_guess_sequence_type'>guess_sequence_type</span><span class='lparen'>(</span><span class='id identifier rubyid_sequence_string'>sequence_string</span><span class='rparen'>)</span>
1440
- <span class='id identifier rubyid_cleaned_sequence'>cleaned_sequence</span> <span class='op'>=</span> <span class='id identifier rubyid_sequence_string'>sequence_string</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>[^A-Z]</span><span class='regexp_end'>/i</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='comment'># removing non-letter characters
1441
- </span> <span class='id identifier rubyid_cleaned_sequence'>cleaned_sequence</span><span class='period'>.</span><span class='id identifier rubyid_gsub!'>gsub!</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>[NX]</span><span class='regexp_end'>/i</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='comment'># removing ambiguous characters
1442
- </span>
1443
- <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_cleaned_sequence'>cleaned_sequence</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>&lt;</span> <span class='int'>10</span> <span class='comment'># conservative
1444
- </span>
1445
- <span class='id identifier rubyid_composition'>composition</span> <span class='op'>=</span> <span class='id identifier rubyid_composition'>composition</span><span class='lparen'>(</span><span class='id identifier rubyid_cleaned_sequence'>cleaned_sequence</span><span class='rparen'>)</span>
1446
- <span class='id identifier rubyid_composition_NAs'>composition_NAs</span> <span class='op'>=</span> <span class='id identifier rubyid_composition'>composition</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_character'>character</span><span class='comma'>,</span> <span class='id identifier rubyid_count'>count</span><span class='op'>|</span><span class='id identifier rubyid_character'>character</span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>[ACGTU]</span><span class='regexp_end'>/i</span></span><span class='rparen'>)</span> <span class='rbrace'>}</span> <span class='comment'># only putative NAs
1447
- </span> <span class='id identifier rubyid_putative_NA_counts'>putative_NA_counts</span> <span class='op'>=</span> <span class='id identifier rubyid_composition_NAs'>composition_NAs</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_key_value_array'>key_value_array</span><span class='op'>|</span> <span class='id identifier rubyid_key_value_array'>key_value_array</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='rbrace'>}</span> <span class='comment'># only count, not char
1448
- </span> <span class='id identifier rubyid_putative_NA_sum'>putative_NA_sum</span> <span class='op'>=</span> <span class='id identifier rubyid_putative_NA_counts'>putative_NA_counts</span><span class='period'>.</span><span class='id identifier rubyid_inject'>inject</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_sum'>sum</span><span class='comma'>,</span> <span class='id identifier rubyid_n'>n</span><span class='op'>|</span> <span class='id identifier rubyid_sum'>sum</span> <span class='op'>+</span> <span class='id identifier rubyid_n'>n</span> <span class='rbrace'>}</span> <span class='comment'># count of all putative NA
1449
- </span> <span class='id identifier rubyid_putative_NA_sum'>putative_NA_sum</span> <span class='op'>=</span> <span class='int'>0</span> <span class='kw'>if</span> <span class='id identifier rubyid_putative_NA_sum'>putative_NA_sum</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1450
-
1451
- <span class='kw'>if</span> <span class='id identifier rubyid_putative_NA_sum'>putative_NA_sum</span> <span class='op'>&gt;</span> <span class='lparen'>(</span><span class='float'>0.9</span> <span class='op'>*</span> <span class='id identifier rubyid_cleaned_sequence'>cleaned_sequence</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='rparen'>)</span>
1452
- <span class='kw'>return</span> <span class='symbol'>:nucleotide</span>
1453
- <span class='kw'>else</span>
1454
- <span class='kw'>return</span> <span class='symbol'>:protein</span>
1455
- <span class='kw'>end</span>
1456
- <span class='kw'>end</span></pre>
1457
- </td>
1458
- </tr>
1459
- </table>
1460
- </div>
1461
-
1462
- <div class="method_details ">
1463
- <h3 class="signature " id="parse_next_query-instance_method">
1464
-
1465
- - (<tt>Object</tt>) <strong>parse_next_query</strong>(iterator)
1466
-
1467
-
1468
-
1469
-
1470
-
1471
- </h3><div class="docstring">
1472
- <div class="discussion">
1473
-
1474
- <p>Parses the next query from the blast xml output query Params:
1475
- <tt>iterator</tt>: blast xml iterator for hits Outputs: output1: an array
1476
- of <tt>Sequence</tt> ojbects for hits output2: <tt>Sequence</tt> object for
1477
- the predicted sequence</p>
1478
-
1479
-
1480
- </div>
1481
- </div>
1482
- <div class="tags">
1483
-
1484
-
1485
- </div><table class="source_code">
1486
- <tr>
1487
- <td>
1488
- <pre class="lines">
1489
-
1490
-
1491
- 257
1492
- 258
1493
- 259
1494
- 260
1495
- 261
1496
- 262
1497
- 263
1498
- 264
1499
- 265
1500
- 266
1501
- 267
1502
- 268
1503
- 269
1504
- 270
1505
- 271
1506
- 272
1507
- 273
1508
- 274
1509
- 275
1510
- 276
1511
- 277
1512
- 278
1513
- 279
1514
- 280
1515
- 281
1516
- 282
1517
- 283
1518
- 284
1519
- 285
1520
- 286
1521
- 287
1522
- 288
1523
- 289
1524
- 290
1525
- 291
1526
- 292
1527
- 293
1528
- 294
1529
- 295
1530
- 296
1531
- 297
1532
- 298
1533
- 299
1534
- 300
1535
- 301
1536
- 302
1537
- 303
1538
- 304
1539
- 305
1540
- 306
1541
- 307
1542
- 308
1543
- 309
1544
- 310
1545
- 311
1546
- 312
1547
- 313
1548
- 314
1549
- 315
1550
- 316
1551
- 317
1552
- 318
1553
- 319
1554
- 320
1555
- 321
1556
- 322
1557
- 323
1558
- 324
1559
- 325
1560
- 326
1561
- 327
1562
- 328
1563
- 329
1564
- 330
1565
- 331
1566
- 332
1567
- 333
1568
- 334
1569
- 335
1570
- 336
1571
- 337
1572
- 338
1573
- 339
1574
- 340
1575
- 341
1576
- 342
1577
- 343
1578
- 344
1579
- 345
1580
- 346
1581
- 347
1582
- 348
1583
- 349</pre>
1584
- </td>
1585
- <td>
1586
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 257</span>
1587
-
1588
- <span class='kw'>def</span> <span class='id identifier rubyid_parse_next_query'>parse_next_query</span><span class='lparen'>(</span><span class='id identifier rubyid_iterator'>iterator</span><span class='rparen'>)</span>
1589
- <span class='kw'>begin</span>
1590
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>TypeError</span> <span class='kw'>unless</span> <span class='id identifier rubyid_iterator'>iterator</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>Enumerator</span>
1591
-
1592
- <span class='id identifier rubyid_hits'>hits</span> <span class='op'>=</span> <span class='const'>Array</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1593
- <span class='id identifier rubyid_predicted_seq'>predicted_seq</span> <span class='op'>=</span> <span class='const'>Sequence</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1594
- <span class='id identifier rubyid_iter'>iter</span> <span class='op'>=</span> <span class='id identifier rubyid_iterator'>iterator</span><span class='period'>.</span><span class='id identifier rubyid_next'>next</span>
1595
-
1596
- <span class='comment'>#puts &quot;#################################################&quot;
1597
- </span> <span class='comment'>#puts &quot;Parsing query #{iter.field('Iteration_iter-num')}&quot;
1598
- </span>
1599
- <span class='comment'># get info about the query
1600
- </span> <span class='id identifier rubyid_predicted_seq'>predicted_seq</span><span class='period'>.</span><span class='id identifier rubyid_xml_length'>xml_length</span> <span class='op'>=</span> <span class='id identifier rubyid_iter'>iter</span><span class='period'>.</span><span class='id identifier rubyid_field'>field</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Iteration_query-len</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
1601
- <span class='kw'>if</span> <span class='ivar'>@type</span> <span class='op'>==</span> <span class='symbol'>:nucleotide</span>
1602
- <span class='id identifier rubyid_predicted_seq'>predicted_seq</span><span class='period'>.</span><span class='id identifier rubyid_xml_length'>xml_length</span> <span class='op'>/=</span> <span class='int'>3</span>
1603
- <span class='kw'>end</span>
1604
- <span class='id identifier rubyid_predicted_seq'>predicted_seq</span><span class='period'>.</span><span class='id identifier rubyid_definition'>definition</span> <span class='op'>=</span> <span class='id identifier rubyid_iter'>iter</span><span class='period'>.</span><span class='id identifier rubyid_field'>field</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Iteration_query-def</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1605
-
1606
- <span class='comment'># parse blast the xml output and get the hits
1607
- </span> <span class='id identifier rubyid_iter'>iter</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span> <span class='id identifier rubyid_hit'>hit</span> <span class='op'>|</span>
1608
-
1609
- <span class='id identifier rubyid_seq'>seq</span> <span class='op'>=</span> <span class='const'>Sequence</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1610
-
1611
- <span class='id identifier rubyid_seq'>seq</span><span class='period'>.</span><span class='id identifier rubyid_xml_length'>xml_length</span> <span class='op'>=</span> <span class='id identifier rubyid_hit'>hit</span><span class='period'>.</span><span class='id identifier rubyid_len'>len</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
1612
- <span class='id identifier rubyid_seq'>seq</span><span class='period'>.</span><span class='id identifier rubyid_seq_type'>seq_type</span> <span class='op'>=</span> <span class='ivar'>@type</span>
1613
- <span class='id identifier rubyid_seq'>seq</span><span class='period'>.</span><span class='id identifier rubyid_database'>database</span> <span class='op'>=</span> <span class='id identifier rubyid_iter'>iter</span><span class='period'>.</span><span class='id identifier rubyid_field'>field</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>BlastOutput_db</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1614
- <span class='id identifier rubyid_seq'>seq</span><span class='period'>.</span><span class='id identifier rubyid_id'>id</span> <span class='op'>=</span> <span class='id identifier rubyid_hit'>hit</span><span class='period'>.</span><span class='id identifier rubyid_hit_id'>hit_id</span>
1615
- <span class='id identifier rubyid_seq'>seq</span><span class='period'>.</span><span class='id identifier rubyid_definition'>definition</span> <span class='op'>=</span> <span class='id identifier rubyid_hit'>hit</span><span class='period'>.</span><span class='id identifier rubyid_hit_def'>hit_def</span>
1616
- <span class='id identifier rubyid_seq'>seq</span><span class='period'>.</span><span class='id identifier rubyid_accession_no'>accession_no</span> <span class='op'>=</span> <span class='id identifier rubyid_hit'>hit</span><span class='period'>.</span><span class='id identifier rubyid_accession'>accession</span>
1617
-
1618
- <span class='id identifier rubyid_species_regex'>species_regex</span> <span class='op'>=</span> <span class='id identifier rubyid_hit'>hit</span><span class='period'>.</span><span class='id identifier rubyid_hit_def'>hit_def</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\[([^\]\[]+)\]$</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
1619
- <span class='kw'>if</span> <span class='id identifier rubyid_species_regex'>species_regex</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='kw'>nil</span>
1620
- <span class='id identifier rubyid_seq'>seq</span><span class='period'>.</span><span class='id identifier rubyid_species'>species</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unknown</span><span class='tstring_end'>&quot;</span></span>
1621
- <span class='kw'>else</span>
1622
- <span class='id identifier rubyid_seq'>seq</span><span class='period'>.</span><span class='id identifier rubyid_species'>species</span> <span class='op'>=</span> <span class='id identifier rubyid_species_regex'>species_regex</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
1623
- <span class='kw'>end</span>
1624
-
1625
- <span class='comment'>#get gene by accession number
1626
- </span> <span class='kw'>if</span> <span class='ivar'>@type</span> <span class='op'>==</span> <span class='symbol'>:protein</span>
1627
- <span class='id identifier rubyid_seq'>seq</span><span class='period'>.</span><span class='id identifier rubyid_raw_sequence'>raw_sequence</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='comment'>#get_sequence_by_accession_no(seq.accession_no, &quot;protein&quot;)
1628
- </span> <span class='kw'>else</span>
1629
- <span class='id identifier rubyid_seq'>seq</span><span class='period'>.</span><span class='id identifier rubyid_raw_sequence'>raw_sequence</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='comment'>#get_sequence_by_accession_no(seq.accession_no, &quot;nucleotide&quot;)
1630
- </span> <span class='kw'>end</span>
1631
-
1632
- <span class='comment'># get all high-scoring segment pairs (hsp)
1633
- </span> <span class='id identifier rubyid_hsps'>hsps</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1634
- <span class='id identifier rubyid_hit'>hit</span><span class='period'>.</span><span class='id identifier rubyid_hsps'>hsps</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_hsp'>hsp</span><span class='op'>|</span>
1635
- <span class='id identifier rubyid_current_hsp'>current_hsp</span> <span class='op'>=</span> <span class='const'>Hsp</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
1636
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_bit_score'>bit_score</span> <span class='op'>=</span> <span class='id identifier rubyid_hsp'>hsp</span><span class='period'>.</span><span class='id identifier rubyid_bit_score'>bit_score</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
1637
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_hsp_score'>hsp_score</span> <span class='op'>=</span> <span class='id identifier rubyid_hsp'>hsp</span><span class='period'>.</span><span class='id identifier rubyid_score'>score</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
1638
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_hsp_evalue'>hsp_evalue</span> <span class='op'>=</span> <span class='id identifier rubyid_hsp'>hsp</span><span class='period'>.</span><span class='id identifier rubyid_evalue'>evalue</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
1639
-
1640
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_hit_from'>hit_from</span> <span class='op'>=</span> <span class='id identifier rubyid_hsp'>hsp</span><span class='period'>.</span><span class='id identifier rubyid_hit_from'>hit_from</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
1641
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_hit_to'>hit_to</span> <span class='op'>=</span> <span class='id identifier rubyid_hsp'>hsp</span><span class='period'>.</span><span class='id identifier rubyid_hit_to'>hit_to</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
1642
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_match_query_from'>match_query_from</span> <span class='op'>=</span> <span class='id identifier rubyid_hsp'>hsp</span><span class='period'>.</span><span class='id identifier rubyid_query_from'>query_from</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
1643
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_match_query_to'>match_query_to</span> <span class='op'>=</span> <span class='id identifier rubyid_hsp'>hsp</span><span class='period'>.</span><span class='id identifier rubyid_query_to'>query_to</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
1644
-
1645
- <span class='kw'>if</span> <span class='ivar'>@type</span> <span class='op'>==</span> <span class='symbol'>:nucleotide</span>
1646
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_match_query_from'>match_query_from</span> <span class='op'>/=</span> <span class='int'>3</span>
1647
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_match_query_to'>match_query_to</span> <span class='op'>/=</span> <span class='int'>3</span>
1648
- <span class='kw'>end</span>
1649
-
1650
-
1651
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_query_reading_frame'>query_reading_frame</span> <span class='op'>=</span> <span class='id identifier rubyid_hsp'>hsp</span><span class='period'>.</span><span class='id identifier rubyid_query_frame'>query_frame</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
1652
-
1653
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_hit_alignment'>hit_alignment</span> <span class='op'>=</span> <span class='id identifier rubyid_hsp'>hsp</span><span class='period'>.</span><span class='id identifier rubyid_hseq'>hseq</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1654
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_query_alignment'>query_alignment</span> <span class='op'>=</span> <span class='id identifier rubyid_hsp'>hsp</span><span class='period'>.</span><span class='id identifier rubyid_qseq'>qseq</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1655
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_middles'>middles</span> <span class='op'>=</span> <span class='id identifier rubyid_hsp'>hsp</span><span class='period'>.</span><span class='id identifier rubyid_midline'>midline</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
1656
-
1657
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_identity'>identity</span> <span class='op'>=</span> <span class='id identifier rubyid_hsp'>hsp</span><span class='period'>.</span><span class='id identifier rubyid_identity'>identity</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
1658
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_positive'>positive</span> <span class='op'>=</span> <span class='id identifier rubyid_hsp'>hsp</span><span class='period'>.</span><span class='id identifier rubyid_positive'>positive</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
1659
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_gaps'>gaps</span> <span class='op'>=</span> <span class='id identifier rubyid_hsp'>hsp</span><span class='period'>.</span><span class='id identifier rubyid_gaps'>gaps</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
1660
- <span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='period'>.</span><span class='id identifier rubyid_align_len'>align_len</span> <span class='op'>=</span> <span class='id identifier rubyid_hsp'>hsp</span><span class='period'>.</span><span class='id identifier rubyid_align_len'>align_len</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
1661
-
1662
- <span class='id identifier rubyid_hsps'>hsps</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='id identifier rubyid_current_hsp'>current_hsp</span><span class='rparen'>)</span>
1663
- <span class='comment'>#regex = current_hsp.hseq.gsub(/[+ -]/, '+' =&gt; '.', ' ' =&gt; '.', '-' =&gt; '')
1664
- </span> <span class='comment'>#seq.alignment_start_offset = seq.raw_sequence.index(/#{regex}/)
1665
- </span> <span class='kw'>end</span>
1666
-
1667
- <span class='id identifier rubyid_seq'>seq</span><span class='period'>.</span><span class='id identifier rubyid_hsp_list'>hsp_list</span> <span class='op'>=</span> <span class='id identifier rubyid_hsps'>hsps</span>
1668
- <span class='id identifier rubyid_hits'>hits</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='id identifier rubyid_seq'>seq</span><span class='rparen'>)</span>
1669
- <span class='comment'>#puts &quot;getting sequence #{seq.accession_no}...&quot;
1670
- </span> <span class='kw'>end</span>
1671
-
1672
- <span class='kw'>return</span> <span class='lbracket'>[</span><span class='id identifier rubyid_hits'>hits</span><span class='comma'>,</span> <span class='id identifier rubyid_predicted_seq'>predicted_seq</span><span class='rbracket'>]</span>
1673
-
1674
- <span class='kw'>rescue</span> <span class='const'>TypeError</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_error'>error</span>
1675
- <span class='gvar'>$stderr</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Type error at </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\/([^\/]+:\d+):.*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>. Possible cause: you didn't call parse method first!\n</span><span class='tstring_end'>&quot;</span></span>
1676
- <span class='id identifier rubyid_exit'>exit</span>
1677
- <span class='kw'>rescue</span> <span class='const'>StopIteration</span>
1678
- <span class='kw'>nil</span>
1679
- <span class='kw'>end</span>
1680
- <span class='kw'>end</span></pre>
1681
- </td>
1682
- </tr>
1683
- </table>
1684
- </div>
1685
-
1686
- <div class="method_details ">
1687
- <h3 class="signature " id="parse_xml_output-instance_method">
1688
-
1689
- - (<tt>Object</tt>) <strong>parse_xml_output</strong>(output)
1690
-
1691
-
1692
-
1693
-
1694
-
1695
- </h3><div class="docstring">
1696
- <div class="discussion">
1697
-
1698
- <p>Parses the xml blast output Param: <tt>output</tt>: <tt>String</tt> with
1699
- the blast output in xml format</p>
1700
-
1701
-
1702
- </div>
1703
- </div>
1704
- <div class="tags">
1705
-
1706
-
1707
- </div><table class="source_code">
1708
- <tr>
1709
- <td>
1710
- <pre class="lines">
1711
-
1712
-
1713
- 198
1714
- 199
1715
- 200
1716
- 201
1717
- 202
1718
- 203
1719
- 204
1720
- 205
1721
- 206
1722
- 207
1723
- 208
1724
- 209
1725
- 210
1726
- 211
1727
- 212
1728
- 213
1729
- 214
1730
- 215
1731
- 216
1732
- 217
1733
- 218
1734
- 219
1735
- 220
1736
- 221
1737
- 222
1738
- 223
1739
- 224
1740
- 225
1741
- 226
1742
- 227
1743
- 228
1744
- 229
1745
- 230
1746
- 231
1747
- 232
1748
- 233
1749
- 234
1750
- 235
1751
- 236
1752
- 237
1753
- 238
1754
- 239
1755
- 240
1756
- 241
1757
- 242
1758
- 243
1759
- 244
1760
- 245
1761
- 246
1762
- 247
1763
- 248</pre>
1764
- </td>
1765
- <td>
1766
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 198</span>
1767
-
1768
- <span class='kw'>def</span> <span class='id identifier rubyid_parse_xml_output'>parse_xml_output</span><span class='lparen'>(</span><span class='id identifier rubyid_output'>output</span><span class='rparen'>)</span>
1769
-
1770
- <span class='id identifier rubyid_iterator'>iterator</span> <span class='op'>=</span> <span class='const'>Bio</span><span class='op'>::</span><span class='const'>BlastXMLParser</span><span class='op'>::</span><span class='const'>NokogiriBlastXml</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_output'>output</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_enum'>to_enum</span>
1771
-
1772
- <span class='kw'>begin</span>
1773
- <span class='ivar'>@idx</span> <span class='op'>=</span> <span class='ivar'>@idx</span> <span class='op'>+</span> <span class='int'>1</span>
1774
- <span class='kw'>if</span> <span class='ivar'>@idx</span> <span class='op'>&lt;</span> <span class='ivar'>@start_idx</span>
1775
- <span class='id identifier rubyid_iter'>iter</span> <span class='op'>=</span> <span class='id identifier rubyid_iterator'>iterator</span><span class='period'>.</span><span class='id identifier rubyid_next'>next</span>
1776
- <span class='kw'>else</span>
1777
- <span class='id identifier rubyid_sequences'>sequences</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_next_query'>parse_next_query</span><span class='lparen'>(</span><span class='id identifier rubyid_iterator'>iterator</span><span class='rparen'>)</span> <span class='comment'>#returns [hits, predicted_seq]
1778
- </span> <span class='kw'>if</span> <span class='id identifier rubyid_sequences'>sequences</span> <span class='op'>==</span> <span class='kw'>nil</span>
1779
- <span class='ivar'>@idx</span> <span class='op'>=</span> <span class='ivar'>@idx</span> <span class='op'>-</span><span class='int'>1</span>
1780
- <span class='kw'>break</span>
1781
- <span class='kw'>end</span>
1782
-
1783
- <span class='id identifier rubyid_hits'>hits</span> <span class='op'>=</span> <span class='id identifier rubyid_sequences'>sequences</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
1784
- <span class='id identifier rubyid_prediction'>prediction</span> <span class='op'>=</span> <span class='id identifier rubyid_sequences'>sequences</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span>
1785
- <span class='comment'># get the @idx-th sequence from the fasta file
1786
- </span> <span class='id identifier rubyid_i'>i</span> <span class='op'>=</span> <span class='ivar'>@idx</span><span class='op'>-</span><span class='int'>1</span>
1787
-
1788
- <span class='comment'>### add exception
1789
- </span> <span class='id identifier rubyid_query'>query</span> <span class='op'>=</span> <span class='const'>IO</span><span class='period'>.</span><span class='id identifier rubyid_binread'>binread</span><span class='lparen'>(</span><span class='ivar'>@fasta_file</span><span class='comma'>,</span> <span class='ivar'>@query_offset_lst</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='op'>+</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='op'>-</span> <span class='ivar'>@query_offset_lst</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='ivar'>@query_offset_lst</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1790
- <span class='id identifier rubyid_prediction'>prediction</span><span class='period'>.</span><span class='id identifier rubyid_raw_sequence'>raw_sequence</span> <span class='op'>=</span> <span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>[^\n]*\n([ATGCatgc\n]*)</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1791
- <span class='comment'>#file seek for each query
1792
- </span>
1793
- <span class='comment'># do validations
1794
- </span>
1795
- <span class='id identifier rubyid_v'>v</span> <span class='op'>=</span> <span class='const'>Validation</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_hits'>hits</span><span class='comma'>,</span> <span class='id identifier rubyid_prediction'>prediction</span><span class='comma'>,</span> <span class='ivar'>@type</span><span class='comma'>,</span> <span class='ivar'>@fasta_file</span><span class='comma'>,</span> <span class='ivar'>@idx</span><span class='comma'>,</span> <span class='ivar'>@start_idx</span><span class='rparen'>)</span>
1796
-
1797
- <span class='kw'>if</span> <span class='ivar'>@outfmt</span> <span class='op'>==</span> <span class='symbol'>:html</span>
1798
- <span class='id identifier rubyid_query_output'>query_output</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_validate_all'>validate_all</span><span class='lparen'>(</span><span class='kw'>true</span><span class='rparen'>)</span>
1799
- <span class='id identifier rubyid_query_output'>query_output</span><span class='period'>.</span><span class='id identifier rubyid_generate_html'>generate_html</span>
1800
- <span class='kw'>else</span>
1801
- <span class='id identifier rubyid_query_output'>query_output</span> <span class='op'>=</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_validate_all'>validate_all</span>
1802
- <span class='kw'>end</span>
1803
-
1804
- <span class='id identifier rubyid_query_output'>query_output</span><span class='period'>.</span><span class='id identifier rubyid_print_output_console'>print_output_console</span>
1805
-
1806
- <span class='comment'>#if @outfmt == :yaml
1807
- </span> <span class='id identifier rubyid_query_output'>query_output</span><span class='period'>.</span><span class='id identifier rubyid_print_output_file_yaml'>print_output_file_yaml</span>
1808
- <span class='comment'>#end
1809
- </span> <span class='kw'>end</span>
1810
-
1811
- <span class='kw'>rescue</span> <span class='const'>NoMethodError</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_error'>error</span>
1812
- <span class='gvar'>$stderr</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>NoMethod error at </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\/([^\/]+:\d+):.*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>. Possible cause: input file is not in blast xml format.\n</span><span class='tstring_end'>&quot;</span></span>
1813
- <span class='id identifier rubyid_exit'>exit</span>
1814
- <span class='kw'>rescue</span> <span class='const'>StopIteration</span>
1815
- <span class='kw'>return</span>
1816
- <span class='kw'>end</span> <span class='kw'>while</span> <span class='int'>1</span>
1817
-
1818
- <span class='kw'>end</span></pre>
1819
- </td>
1820
- </tr>
1821
- </table>
1822
- </div>
1823
-
1824
- <div class="method_details ">
1825
- <h3 class="signature " id="type_of_sequences-instance_method">
1826
-
1827
- - (<tt>Object</tt>) <strong>type_of_sequences</strong>(fasta_format_string)
1828
-
1829
-
1830
-
1831
-
1832
-
1833
- </h3><div class="docstring">
1834
- <div class="discussion">
1835
-
1836
- <p>Method copied from sequenceserver/sequencehelpers.rb Splits input at
1837
- putative fasta definition lines (like "&gt;adsfadsf"), guesses sequence
1838
- type for each sequence. If not enough sequence to determine, returns nil.
1839
- If 2 kinds of sequence mixed together, raises ArgumentError Otherwise,
1840
- returns :nucleotide or :protein Params: <tt>sequence_string</tt>: String to
1841
- validate Output: nil, :nucleotide or :protein</p>
1842
-
1843
-
1844
- </div>
1845
- </div>
1846
- <div class="tags">
1847
-
1848
-
1849
- </div><table class="source_code">
1850
- <tr>
1851
- <td>
1852
- <pre class="lines">
1853
-
1854
-
1855
- 432
1856
- 433
1857
- 434
1858
- 435
1859
- 436
1860
- 437
1861
- 438
1862
- 439
1863
- 440
1864
- 441
1865
- 442
1866
- 443
1867
- 444
1868
- 445
1869
- 446</pre>
1870
- </td>
1871
- <td>
1872
- <pre class="code"><span class="info file"># File 'lib/genevalidator/blast.rb', line 432</span>
1873
-
1874
- <span class='kw'>def</span> <span class='id identifier rubyid_type_of_sequences'>type_of_sequences</span><span class='lparen'>(</span><span class='id identifier rubyid_fasta_format_string'>fasta_format_string</span><span class='rparen'>)</span>
1875
- <span class='comment'># the first sequence does not need to have a fasta definition line
1876
- </span> <span class='id identifier rubyid_sequences'>sequences</span> <span class='op'>=</span> <span class='id identifier rubyid_fasta_format_string'>fasta_format_string</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^&gt;.*$</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_delete_if'>delete_if</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_seq'>seq</span><span class='op'>|</span> <span class='id identifier rubyid_seq'>seq</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='rbrace'>}</span>
1877
-
1878
- <span class='comment'># get all sequence types
1879
- </span> <span class='id identifier rubyid_sequence_types'>sequence_types</span> <span class='op'>=</span> <span class='id identifier rubyid_sequences'>sequences</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_seq'>seq</span><span class='op'>|</span> <span class='id identifier rubyid_guess_sequence_type'>guess_sequence_type</span><span class='lparen'>(</span><span class='id identifier rubyid_seq'>seq</span><span class='rparen'>)</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span>
1880
-
1881
- <span class='kw'>return</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_sequence_types'>sequence_types</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
1882
-
1883
- <span class='kw'>if</span> <span class='id identifier rubyid_sequence_types'>sequence_types</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>==</span> <span class='int'>1</span>
1884
- <span class='kw'>return</span> <span class='id identifier rubyid_sequence_types'>sequence_types</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span> <span class='comment'># there is only one (but yes its an array)
1885
- </span> <span class='kw'>else</span>
1886
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Insufficient info to determine sequence type. Cleaned queries are: </span><span class='embexpr_beg'>#{</span> <span class='id identifier rubyid_sequences'>sequences</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1887
- <span class='kw'>end</span>
1888
- <span class='kw'>end</span></pre>
1889
- </td>
1890
- </tr>
1891
- </table>
1892
- </div>
1893
-
1894
- </div>
1895
-
1896
- </div>
1897
-
1898
- <div id="footer">
1899
- Generated on Wed Aug 7 01:58:44 2013 by
1900
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1901
- 0.8.7 (ruby-1.9.3).
1902
- </div>
1903
-
1904
- </body>
1905
- </html>