genevalidator 1.6.1 → 1.6.2

Sign up to get free protection for your applications and to get access to all the features.
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>