bio-gngm 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
6
 
7
- <title>Class: Bio::Util</title>
7
+ <title>class Bio::Util - RDoc Documentation</title>
8
8
 
9
9
  <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet">
10
10
 
@@ -87,6 +87,8 @@
87
87
 
88
88
  <li><a href="../Bio/DB.html">Bio::DB</a>
89
89
 
90
+ <li><a href="../Bio/DB/FastaLengthDB.html">Bio::DB::FastaLengthDB</a>
91
+
90
92
  <li><a href="../Bio/DB/Pileup.html">Bio::DB::Pileup</a>
91
93
 
92
94
  <li><a href="../Bio/DB/Vcf.html">Bio::DB::Vcf</a>
@@ -129,7 +131,7 @@
129
131
 
130
132
  <footer id="validator-badges">
131
133
  <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
132
- <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.11.
134
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.
133
135
  <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
134
136
  </footer>
135
137
 
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
6
 
7
- <title>Class: Bio::Util::Gngm</title>
7
+ <title>class Bio::Util::Gngm - RDoc Documentation</title>
8
8
 
9
9
  <link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet">
10
10
 
@@ -102,16 +102,24 @@
102
102
 
103
103
  <li><a href="#method-i-get_insert_size_frequency">#get_insert_size_frequency</a>
104
104
 
105
+ <li><a href="#method-i-get_peaks">#get_peaks</a>
106
+
105
107
  <li><a href="#method-i-get_unmapped_mate_frequency">#get_unmapped_mate_frequency</a>
106
108
 
107
109
  <li><a href="#method-i-hit_count">#hit_count</a>
108
110
 
111
+ <li><a href="#method-i-is_allowed_substitution-3F">#is_allowed_substitution?</a>
112
+
113
+ <li><a href="#method-i-keep_known_variants">#keep_known_variants</a>
114
+
109
115
  <li><a href="#method-i-peaks">#peaks</a>
110
116
 
111
117
  <li><a href="#method-i-signal">#signal</a>
112
118
 
113
119
  <li><a href="#method-i-snp_positions">#snp_positions</a>
114
120
 
121
+ <li><a href="#method-i-snp_positions-3D">#snp_positions=</a>
122
+
115
123
  <li><a href="#method-i-threads">#threads</a>
116
124
 
117
125
  </ul>
@@ -139,6 +147,8 @@
139
147
 
140
148
  <li><a href="../../Bio/DB.html">Bio::DB</a>
141
149
 
150
+ <li><a href="../../Bio/DB/FastaLengthDB.html">Bio::DB::FastaLengthDB</a>
151
+
142
152
  <li><a href="../../Bio/DB/Pileup.html">Bio::DB::Pileup</a>
143
153
 
144
154
  <li><a href="../../Bio/DB/Vcf.html">Bio::DB::Vcf</a>
@@ -216,14 +226,35 @@ about the 1.6 millionth nucleotide.</p>
216
226
 
217
227
  <span class="ruby-identifier">g</span> = <span class="ruby-constant">Bio</span><span class="ruby-operator">::</span><span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Gngm</span>.<span class="ruby-identifier">new</span>(:<span class="ruby-identifier">file</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;aln.sorted.bam&quot;</span>,
218
228
  :<span class="ruby-identifier">format</span> =<span class="ruby-operator">&gt;</span> :<span class="ruby-identifier">bam</span>,
219
- :<span class="ruby-identifier">fasta</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;reference.fasta&quot;</span>,
220
- :<span class="ruby-identifier">samtools</span> =<span class="ruby-operator">&gt;</span> {:<span class="ruby-identifier">r</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;chr1:1-100000&quot;</span>,
229
+ :<span class="ruby-identifier">fasta</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;reference.fasta&quot;</span>,
230
+ :<span class="ruby-identifier">start</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">100</span>,
231
+ :<span class="ruby-identifier">stop</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">200</span>,
232
+ :<span class="ruby-identifier">write_pileup</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;my_pileup_file.pileup&quot;</span>,
233
+ :<span class="ruby-identifier">write_vcf</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;my_vcf_file.vcf&quot;</span>,
234
+ :<span class="ruby-identifier">ignore_file</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;my_known_snps.txt&quot;</span>
235
+ :<span class="ruby-identifier">samtools</span> =<span class="ruby-operator">&gt;</span> {
221
236
  :<span class="ruby-identifier">q</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">20</span>,
222
237
  :<span class="ruby-constant">Q</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">50</span>
223
238
  },
224
239
  :<span class="ruby-identifier">min_non_ref_freq</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0.5</span>,
225
- :<span class="ruby-identifier">min_non_ref</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">3</span>
240
+ :<span class="ruby-identifier">min_non_ref</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">3</span>,
241
+ :<span class="ruby-identifier">start</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>,
242
+ :<span class="ruby-identifier">stop</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">100000</span>,
243
+ :<span class="ruby-identifier">chromosome</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;Chr1&quot;</span>,
244
+ :<span class="ruby-identifier">variant_call</span> =<span class="ruby-operator">&gt;</span> {
245
+ :<span class="ruby-identifier">indels</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>,
246
+ :<span class="ruby-identifier">min_depth</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">6</span>,
247
+ :<span class="ruby-identifier">max_depth</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">250</span>,
248
+ :<span class="ruby-identifier">mapping_quality</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">20.0</span>,
249
+ :<span class="ruby-identifier">min_non_ref_count</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span>,
250
+ :<span class="ruby-identifier">ignore_reference_n</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>,
251
+ :<span class="ruby-identifier">min_snp_quality</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">20</span>,
252
+ :<span class="ruby-identifier">min_consensus_quality</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">20</span>,
253
+ :<span class="ruby-identifier">substitutions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-string">&quot;C:T&quot;</span>,<span class="ruby-string">&quot;G:A&quot;</span>]
254
+ }
255
+
226
256
  )
257
+
227
258
  <span class="ruby-identifier">g</span>.<span class="ruby-identifier">snp_positions</span>
228
259
  <span class="ruby-identifier">g</span>.<span class="ruby-identifier">collect_threads</span>(:<span class="ruby-identifier">start</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0.2</span>, :<span class="ruby-identifier">stop</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">1.0</span>, :<span class="ruby-identifier">slide</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0.01</span>, :<span class="ruby-identifier">size</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0.1</span> )
229
260
  [<span class="ruby-value">0.25</span>, <span class="ruby-value">0.5</span>, <span class="ruby-value">1.0</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">kernel_adjust</span><span class="ruby-operator">|</span> <span class="ruby-comment"># loop through different kernel values</span>
@@ -304,7 +335,7 @@ statistic based on proportion of mapped/unmapped reads in a window.
304
335
  Proportions of reads that are mapped but the mate is unmapped should be
305
336
  about 0.5 in a window over an insertion/deletion (since the reads can go
306
337
  in either direction..). With no insertion deletion, the proportion should
307
- be closer to 1.</p>
338
+ be closer to 0.</p>
308
339
 
309
340
  <h2 id="label-Input+types">Input types</h2>
310
341
 
@@ -353,17 +384,13 @@ switching nicely between them)</p>
353
384
 
354
385
  <h2 id="label-Acknowledgements">Acknowledgements</h2>
355
386
 
356
- <h2 id="label-Using+bio-gngm">Using bio-gngm</h2>
387
+ <p>Thanks very much indeed to Ryan Austin, who invented NGM in the first place
388
+ and was very forthcoming with R code, around which this implementation is
389
+ based.</p>
357
390
 
358
- <p>The package is not yet released, a gem will be prepared soon. Until then
359
- scripts run fine when saved in the package scripts from within the package
360
- directory with the below pre-amble at the top of the script. Run scripts
361
- from the root of the package directory.</p>
391
+ <h2 id="label-Using+bio-gngm">Using bio-gngm</h2>
362
392
 
363
- <pre class="ruby"><span class="ruby-identifier">$LOAD_PATH</span>.<span class="ruby-identifier">unshift</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-keyword">__FILE__</span>), <span class="ruby-string">'..'</span>, <span class="ruby-string">'lib'</span>))
364
- <span class="ruby-identifier">$LOAD_PATH</span>.<span class="ruby-identifier">unshift</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-keyword">__FILE__</span>))
365
- <span class="ruby-identifier">require</span> <span class="ruby-string">'bio-samtools'</span>
366
- <span class="ruby-identifier">require</span> <span class="ruby-string">'bio-gngm'</span>
393
+ <pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">'bio-gngm'</span>
367
394
  </pre>
368
395
 
369
396
  <h2 id="label-API">API</h2>
@@ -387,8 +414,8 @@ from the root of the package directory.</p>
387
414
  <dt id="ERROR_MARGIN">ERROR_MARGIN
388
415
 
389
416
  <dd class="description"><p>Ruby 1.9.3 has a rounding error in the Range#step function such that some
390
- decimal places are rounded off to 0.00000000000000…1 above their place. So
391
- this constant is used to identify windows within a short distance and
417
+ decimal places are rounded off to 0.00000000000000…1 above their place.
418
+ So this constant is used to identify windows within a short distance and
392
419
  prevent any rounding errors. Hopefully I should be able to remove this in
393
420
  later versions.</p>
394
421
 
@@ -440,8 +467,13 @@ later versions.</p>
440
467
 
441
468
  <pre class="ruby"><span class="ruby-identifier">g</span> = <span class="ruby-constant">Bio</span><span class="ruby-operator">::</span><span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Gngm</span>.<span class="ruby-identifier">new</span>(:<span class="ruby-identifier">file</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;aln.sort.bam&quot;</span>,
442
469
  :<span class="ruby-identifier">format</span> =<span class="ruby-operator">&gt;</span> :<span class="ruby-identifier">bam</span>,
443
- :<span class="ruby-identifier">samtools</span> =<span class="ruby-operator">&gt;</span> {:<span class="ruby-identifier">q</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">20</span>, :<span class="ruby-constant">Q</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">50</span>, :<span class="ruby-identifier">r</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;Chr1:1-100000&quot;</span>},
470
+ :<span class="ruby-identifier">samtools</span> =<span class="ruby-operator">&gt;</span> {:<span class="ruby-identifier">q</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">20</span>, :<span class="ruby-constant">Q</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">50</span>},
444
471
  :<span class="ruby-identifier">fasta</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;reference.fa&quot;</span>
472
+ :<span class="ruby-identifier">start</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">100</span>,
473
+ :<span class="ruby-identifier">stop</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">200</span>,
474
+ :<span class="ruby-identifier">write_pileup</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;my_pileup_file.pileup&quot;</span>,
475
+ :<span class="ruby-identifier">write_vcf</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;my_vcf_file.vcf&quot;</span>,
476
+ :<span class="ruby-identifier">ignore_file</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;my_known_snps.txt&quot;</span>
445
477
 
446
478
  )
447
479
  </pre>
@@ -449,27 +481,60 @@ later versions.</p>
449
481
  <p>Required parameters and defaults:</p>
450
482
  <ul><li>
451
483
  <p><code>:file =&gt; nil</code> -the path to the bam file containing the
452
- alignments, a .bai index must be present</p>
484
+ alignments, a .bai index must be present. A pileup file, or tab-delimited
485
+ text file can be used.</p>
486
+ </li><li>
487
+ <p><code>:format =&gt; :bam</code> -either :bam, :pileup, :txt (pileup
488
+ expected to be 10 col format from samtools -vcf)</p>
489
+ </li><li>
490
+ <p><code>:chromosome =&gt; &quot;nil&quot;</code> -sequence id to look at</p>
491
+ </li><li>
492
+ <p><code>:start =&gt; nil</code> -start position on that sequence</p>
453
493
  </li><li>
454
- <p><code>:format =&gt; :bam</code> -always bam</p>
494
+ <p><code>:stop =&gt; nil</code> -stop position on that sequence</p>
455
495
  </li><li>
456
496
  <p><code>:fasta =&gt; nil</code> -the path to the FASTA formatted reference
457
497
  sequence</p>
458
498
  </li><li>
459
- <p><code>:samtools =&gt; {:q =&gt; 20, :Q =&gt; 50, :r =&gt;
460
- &quot;Chr1:100-1100&quot;}</code> -options for samtools, see bio-samtools
461
- documentation for further details. The :r option is required to specify the
462
- region of interest</p>
499
+ <p><code>:write_pileup =&gt; false</code> -the path to a file. SNPs will be
500
+ written in pileup to this file (indels not output)</p>
501
+ </li><li>
502
+ <p><code>:write_vcf =&gt; false</code> -the path to a file. SNPs will be
503
+ written in VCF to this file (indels not output)</p>
504
+ </li><li>
505
+ <p><code>:ignore_file =&gt; false</code> -file of SNPs in format “reference
506
+ sequence id t position t mapping line nucleotide identity t reference line
507
+ nucleotide identity”. All SNPs in this file will be ignored</p>
508
+ </li><li>
509
+ <p><code>:samtools =&gt; {:q =&gt; 20, :Q =&gt; 50}</code> -options for
510
+ samtools, see bio-samtools documentation for further details.</p>
463
511
  </li></ul>
464
512
 
465
- <p>Optional parameters and defaults: Most of these are parameters for specific
466
- methods and can be over-ridden when particular methods are called</p>
513
+ <p>Optional parameters and defaults:</p>
514
+
515
+ <p>Most of these are parameters for specific methods and can be over-ridden
516
+ when particular methods are called</p>
467
517
  <ul><li>
468
- <p><code>:variant_call =&gt; {:indels =&gt; false, :deletions_only =&gt;
469
- false, :insertions_only =&gt; false, :min_depth =&gt; 2, :max_depth =&gt;
470
- 10000000, :mapping_quality =&gt; 10.0, :min_non_ref_count =&gt; 2,
471
- :ignore_reference_n =&gt; true}</code> -for SNP/Indel calling only one of
472
- <code>:indels, :deletions_only, :insertions_only</code> should be used.</p>
518
+ <p><code>:variant_call =&gt; {:indels =&gt; false,</code></p>
519
+ </li><li>
520
+ <p><code> :min_depth =&gt; 2, </code></p>
521
+ </li><li>
522
+ <p><code> :max_depth =&gt; 10000000, </code></p>
523
+ </li><li>
524
+ <p><code> :min_snp_quality =&gt; 20, </code></p>
525
+ </li><li>
526
+ <p><code> :mapping_quality =&gt; 10.0, </code></p>
527
+ </li><li>
528
+ <p><code> :min_non_ref_count =&gt; 2, </code></p>
529
+ </li><li>
530
+ <p><code> :ignore_reference_n =&gt; true, </code></p>
531
+ </li><li>
532
+ <p><code> :min_consensus_quality =&gt; 20, </code></p>
533
+ </li><li>
534
+ <p><code> :min_snp_quality =&gt; 20 }</code>.</p>
535
+ </li><li>
536
+ <p><code> For Pileup files from old samtools pileup -vcf
537
+ &lt;tt&gt;:min_consensus_quality</code> can be applied</p>
473
538
  </li><li>
474
539
  <p><code>:threads =&gt; {:start =&gt; 0.2, :stop =&gt; 1.0, :slide =&gt; 0.01,
475
540
  :size =&gt; 0.1 }</code> -options for thread windows</p>
@@ -495,7 +560,7 @@ the box to draw on the peak plot</p>
495
560
 
496
561
 
497
562
  <div class="method-source-code" id="new-source">
498
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 342</span>
563
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 393</span>
499
564
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span>)
500
565
  <span class="ruby-ivar">@file</span> = <span class="ruby-keyword">nil</span>
501
566
  <span class="ruby-ivar">@snp_positions</span> = <span class="ruby-keyword">nil</span>
@@ -508,22 +573,35 @@ the box to draw on the peak plot</p>
508
573
  <span class="ruby-ivar">@peak_indices</span> = <span class="ruby-keyword">nil</span>
509
574
  <span class="ruby-ivar">@peak_y_values</span> = <span class="ruby-keyword">nil</span>
510
575
  <span class="ruby-ivar">@density_max_y</span> = <span class="ruby-keyword">nil</span> <span class="ruby-comment">#the maximum y value needed to plot the entire set density plots of threads and maintain a consistent scale for plots</span>
511
- <span class="ruby-ivar">@colours</span> = <span class="ruby-node">]#A6CEE3 #1F78B4 #B2DF8A #33A02C #FB9A99 #E31A1C #FDBF6F #FF7F00 #CAB2D6 #6A3D9A #FFFF99 #B15928]</span>
576
+ <span class="ruby-ivar">@colours</span> = <span class="ruby-node">%w[#A6CEE3 #1F78B4 #B2DF8A #33A02C #FB9A99 #E31A1C #FDBF6F #FF7F00 #CAB2D6 #6A3D9A #FFFF99 #B15928]</span>
512
577
  <span class="ruby-ivar">@thread_colours</span> = {}
578
+ <span class="ruby-ivar">@known_variants</span> = <span class="ruby-keyword">nil</span> <span class="ruby-comment">#a list of variants to keep track of</span>
513
579
  <span class="ruby-ivar">@opts</span> = {
514
580
  <span class="ruby-value">:file</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
515
581
  <span class="ruby-value">:format</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:bam</span>,
516
582
  <span class="ruby-value">:fasta</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>,
517
583
  <span class="ruby-value">:samtools</span> =<span class="ruby-operator">&gt;</span> {<span class="ruby-value">:q</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">20</span>, <span class="ruby-value">:Q</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">50</span>},
518
- <span class="ruby-comment">##indels = call any and only indels.. :deletions_only :insertions_only = only one tyoe</span>
584
+ <span class="ruby-value">:indels</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>,
585
+ <span class="ruby-value">:write_pileup</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>,
586
+ <span class="ruby-value">:write_vcf</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>,
587
+ <span class="ruby-value">:ignore_file</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>,
588
+ <span class="ruby-value">:insert_size_opts</span> =<span class="ruby-operator">&gt;</span> {<span class="ruby-value">:ref_window_size</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">200</span>, <span class="ruby-value">:ref_window_slide</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">50</span>, <span class="ruby-value">:isize</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">150</span>},
589
+ <span class="ruby-value">:variant_call</span> =<span class="ruby-operator">&gt;</span> { <span class="ruby-value">:indels</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>,
590
+ <span class="ruby-value">:min_depth</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span>,
591
+ <span class="ruby-value">:max_depth</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">10000000</span>,
592
+ <span class="ruby-value">:mapping_quality</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">10.0</span>,
593
+ <span class="ruby-value">:min_non_ref_count</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span>,
594
+ <span class="ruby-value">:ignore_reference_n</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>,
595
+ <span class="ruby-value">:shore_map</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>,
596
+ <span class="ruby-value">:snp_file</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:false</span>,
597
+ <span class="ruby-value">:min_consensus_quality</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">20</span>,
598
+ <span class="ruby-value">:min_snp_quality</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">20</span>},
519
599
  <span class="ruby-comment">## some options are designed to be equivalent to vcfutils.pl from bvftools options when using vcf</span>
520
600
  <span class="ruby-comment">##:min_depth (-d)</span>
521
601
  <span class="ruby-comment">##:max_depth (-D)</span>
522
602
  <span class="ruby-comment">##:mapping_quality (-Q) minimum RMS mappinq quality for SNPs (mq in info fields)</span>
523
603
  <span class="ruby-comment">##:min_non_ref_count (-a) minimum num of alt bases ... the sum of the last two numbers in DP4 in info fields</span>
524
604
  <span class="ruby-comment">##doesnt do anything with window filtering or pv values... </span>
525
- <span class="ruby-value">:insert_size_opts</span> =<span class="ruby-operator">&gt;</span> {<span class="ruby-value">:ref_window_size</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">200</span>, <span class="ruby-value">:ref_window_slide</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">50</span>, <span class="ruby-value">:isize</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">150</span>},
526
- <span class="ruby-value">:variant_call</span> =<span class="ruby-operator">&gt;</span> {<span class="ruby-value">:indels</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>, <span class="ruby-value">:deletions_only</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>, <span class="ruby-value">:insertions_only</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>, <span class="ruby-value">:min_depth</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span>, <span class="ruby-value">:max_depth</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">10000000</span>, <span class="ruby-value">:mapping_quality</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">10.0</span>, <span class="ruby-value">:min_non_ref_count</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span>, <span class="ruby-value">:ignore_reference_n</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>},
527
605
  <span class="ruby-value">:histo_bin_width</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">250000</span>,
528
606
  <span class="ruby-value">:graphics</span> =<span class="ruby-operator">&gt;</span> {<span class="ruby-value">:width</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">1000</span>, <span class="ruby-value">:height</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">500</span>, <span class="ruby-value">:draw_legend</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>, <span class="ruby-value">:add_boxes</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>},
529
607
  <span class="ruby-value">:adjust</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>,
@@ -533,6 +611,32 @@ the box to draw on the peak plot</p>
533
611
  <span class="ruby-value">:peaks</span> =<span class="ruby-operator">&gt;</span> {<span class="ruby-value">:sigma</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">3.0</span>, <span class="ruby-value">:threshold</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">10.0</span>, <span class="ruby-value">:background</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>, <span class="ruby-value">:iterations</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">13</span>, <span class="ruby-value">:markov</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>, <span class="ruby-value">:window</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">3</span>, <span class="ruby-value">:range</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">10000</span>} <span class="ruby-comment">##range is the width of the box to draw on the peak plot</span>
534
612
  }
535
613
  <span class="ruby-ivar">@opts</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">options</span>)
614
+ <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:samtools</span>][<span class="ruby-value">:r</span>] = <span class="ruby-node">&quot;#{options[:chromosome]}:#{options[:start]}-#{options[:stop]}&quot;</span>
615
+ <span class="ruby-ivar">@pileup_outfile</span>, <span class="ruby-ivar">@vcf_outfile</span> = <span class="ruby-keyword">nil</span>,<span class="ruby-keyword">nil</span>
616
+ <span class="ruby-keyword">if</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:variant_call</span>][<span class="ruby-value">:indels</span>] <span class="ruby-keyword">and</span> (<span class="ruby-ivar">@opts</span>[<span class="ruby-value">:write_pileup</span>] <span class="ruby-keyword">or</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:write_vcf</span>])
617
+ <span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-string">&quot;Cannot yet output VCF/Pileup when generating INDELs. Turning output off.&quot;</span>
618
+ <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:write_pileup</span>] = <span class="ruby-keyword">false</span>
619
+ <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:write_vcf</span>] = <span class="ruby-keyword">false</span>
620
+ <span class="ruby-keyword">end</span>
621
+ <span class="ruby-keyword">if</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:write_pileup</span>]
622
+ <span class="ruby-ivar">@pileup_outfile</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">opts</span>[<span class="ruby-value">:write_pileup</span>], <span class="ruby-string">&quot;w&quot;</span>)
623
+ <span class="ruby-keyword">end</span>
624
+ <span class="ruby-keyword">if</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:write_vcf</span>]
625
+ <span class="ruby-ivar">@vcf_outfile</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">opts</span>[<span class="ruby-value">:write_vcf</span>], <span class="ruby-string">&quot;w&quot;</span>)
626
+ <span class="ruby-keyword">end</span>
627
+
628
+ <span class="ruby-ivar">@known_snps</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
629
+ <span class="ruby-keyword">if</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:ignore_file</span>]
630
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-ivar">@opts</span>[<span class="ruby-value">:ignore_file</span>], <span class="ruby-string">&quot;r&quot;</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
631
+ <span class="ruby-identifier">cols</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">%r\t/</span>)
632
+ <span class="ruby-keyword">if</span> <span class="ruby-ivar">@known_snps</span>[<span class="ruby-identifier">col</span>[<span class="ruby-value">0</span>]]
633
+ <span class="ruby-ivar">@known_snps</span>[<span class="ruby-identifier">col</span>[<span class="ruby-value">0</span>]][<span class="ruby-identifier">col</span>[<span class="ruby-value">1</span>]] = <span class="ruby-value">1</span>
634
+ <span class="ruby-keyword">else</span>
635
+ <span class="ruby-ivar">@known_snps</span>[<span class="ruby-identifier">col</span>[<span class="ruby-value">0</span>]] = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
636
+ <span class="ruby-ivar">@known_snps</span>[<span class="ruby-identifier">col</span>[<span class="ruby-value">0</span>]][<span class="ruby-identifier">col</span>[<span class="ruby-value">1</span>]] = <span class="ruby-value">1</span>
637
+ <span class="ruby-keyword">end</span>
638
+ <span class="ruby-keyword">end</span>
639
+ <span class="ruby-keyword">end</span>
536
640
  <span class="ruby-identifier">open_file</span>
537
641
  <span class="ruby-keyword">end</span></pre>
538
642
  </div><!-- new-source -->
@@ -603,7 +707,7 @@ with few other values considered.</p>
603
707
 
604
708
 
605
709
  <div class="method-source-code" id="calculate_clusters-source">
606
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 764</span>
710
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 916</span>
607
711
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">calculate_clusters</span>( <span class="ruby-identifier">opts</span>={} )
608
712
  <span class="ruby-identifier">options</span> = {<span class="ruby-value">:k</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">9</span>, <span class="ruby-value">:seed</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>, <span class="ruby-value">:adjust</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>, <span class="ruby-value">:control_chd</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0.5</span>, <span class="ruby-value">:expected_chd</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">1.0</span>, <span class="ruby-value">:pseudo</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>}
609
713
  <span class="ruby-identifier">options</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">opts</span>)
@@ -632,7 +736,7 @@ with few other values considered.</p>
632
736
  <span class="ruby-ivar">@clusters</span> = <span class="ruby-identifier">r</span>.<span class="ruby-identifier">pull</span> <span class="ruby-string">&quot;k$cluster&quot;</span> <span class="ruby-comment">##clusters are returned in the order in densities</span>
633
737
  <span class="ruby-identifier">r</span>.<span class="ruby-identifier">quit</span>
634
738
  <span class="ruby-comment">##now set the cluster colours.. </span>
635
- <span class="ruby-identifier">colours</span> = <span class="ruby-node">]#A6CEE3 #1F78B4 #B2DF8A #33A02C #FB9A99 #E31A1C #FDBF6F #FF7F00 #CAB2D6 #6A3D9A #FFFF99 #B15928]</span>
739
+ <span class="ruby-identifier">colours</span> = <span class="ruby-node">%w[#A6CEE3 #1F78B4 #B2DF8A #33A02C #FB9A99 #E31A1C #FDBF6F #FF7F00 #CAB2D6 #6A3D9A #FFFF99 #B15928]</span>
636
740
  <span class="ruby-identifier">ci</span> = <span class="ruby-value">0</span>
637
741
  <span class="ruby-identifier">col_nums</span> = {} <span class="ruby-comment">##hash of cluster numbers and colours</span>
638
742
  <span class="ruby-ivar">@clusters</span>.<span class="ruby-identifier">each_index</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
@@ -672,8 +776,8 @@ with few other values considered.</p>
672
776
  values], [density curve y values] ]</code> Calculates the density curve
673
777
  using the R function +density()+ Always sets @densities regardless of
674
778
  whether it contains anything or not so is useful for trying out adjustment
675
- values. Ignores threads with fewer than 2 polymorphisms since density can’t
676
- be computed with so few polymorphisms.</p>
779
+ values. Ignores threads with fewer than 2 polymorphisms since density
780
+ can’t be computed with so few polymorphisms.</p>
677
781
 
678
782
  <p>Options and defaults</p>
679
783
  <ul><li>
@@ -684,7 +788,7 @@ be computed with so few polymorphisms.</p>
684
788
 
685
789
 
686
790
  <div class="method-source-code" id="calculate_densities-source">
687
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 679</span>
791
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 831</span>
688
792
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">calculate_densities</span>(<span class="ruby-identifier">adjust</span>=<span class="ruby-value">1</span>)
689
793
  <span class="ruby-identifier">r</span> = <span class="ruby-identifier">new_r</span>
690
794
  <span class="ruby-identifier">densities</span> = []
@@ -727,7 +831,7 @@ signal curve.</p>
727
831
 
728
832
 
729
833
  <div class="method-source-code" id="calculate_signal-source">
730
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 969</span>
834
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 1121</span>
731
835
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">calculate_signal</span>
732
836
  <span class="ruby-identifier">r</span> = <span class="ruby-identifier">new_r</span>
733
837
  <span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;a&quot;</span>
@@ -783,7 +887,7 @@ files safely</p>
783
887
 
784
888
 
785
889
  <div class="method-source-code" id="close-source">
786
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 399</span>
890
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 494</span>
787
891
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">close</span>
788
892
  <span class="ruby-keyword">case</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:format</span>]
789
893
  <span class="ruby-keyword">when</span> <span class="ruby-value">:bam</span> <span class="ruby-keyword">then</span> <span class="ruby-ivar">@file</span>.<span class="ruby-identifier">close</span>
@@ -837,7 +941,7 @@ thread/window</p>
837
941
 
838
942
 
839
943
  <div class="method-source-code" id="clusters-source">
840
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 748</span>
944
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 900</span>
841
945
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">clusters</span>(<span class="ruby-identifier">opts</span>={})
842
946
  <span class="ruby-ivar">@clusters</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">calculate_clusters</span>(<span class="ruby-identifier">opts</span>={})
843
947
  <span class="ruby-keyword">end</span></pre>
@@ -855,7 +959,7 @@ thread/window</p>
855
959
 
856
960
  <div class="method-heading">
857
961
  <span class="method-name">collect_threads</span><span
858
- class="method-args">(opts=@opts[:threads])</span>
962
+ class="method-args">(options={})</span>
859
963
  <span class="method-click-advice">click to toggle source</span>
860
964
  </div>
861
965
 
@@ -882,8 +986,9 @@ is useful for trying out different window sizes etc</p>
882
986
 
883
987
 
884
988
  <div class="method-source-code" id="collect_threads-source">
885
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 597</span>
886
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">collect_threads</span>(<span class="ruby-identifier">opts</span>=<span class="ruby-ivar">@opts</span>[<span class="ruby-value">:threads</span>])
989
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 748</span>
990
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">collect_threads</span>(<span class="ruby-identifier">options</span>={})
991
+ <span class="ruby-identifier">opts</span> = <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:threads</span>].<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
887
992
  <span class="ruby-identifier">opts</span>[<span class="ruby-value">:slide</span>] = <span class="ruby-value">0.000001</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">opts</span>[<span class="ruby-value">:slide</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-value">0.000001</span> <span class="ruby-comment">##to allow for the rounding error in the step function... </span>
888
993
  <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>, <span class="ruby-string">&quot;snp positions have not been calculated yet&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-keyword">not</span> <span class="ruby-ivar">@snp_positions</span>
889
994
  <span class="ruby-identifier">start</span>,<span class="ruby-identifier">stop</span>,<span class="ruby-identifier">slide</span>,<span class="ruby-identifier">size</span> = <span class="ruby-identifier">opts</span>[<span class="ruby-value">:start</span>].<span class="ruby-identifier">to_f</span>, <span class="ruby-identifier">opts</span>[<span class="ruby-value">:stop</span>].<span class="ruby-identifier">to_f</span>, <span class="ruby-identifier">opts</span>[<span class="ruby-value">:slide</span>].<span class="ruby-identifier">to_f</span>, <span class="ruby-identifier">opts</span>[<span class="ruby-value">:size</span>].<span class="ruby-identifier">to_f</span>
@@ -931,7 +1036,7 @@ densities after they have been done once.</p>
931
1036
 
932
1037
 
933
1038
  <div class="method-source-code" id="densities-source">
934
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 669</span>
1039
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 821</span>
935
1040
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">densities</span>(<span class="ruby-identifier">adjust</span>=<span class="ruby-value">1</span>)
936
1041
  <span class="ruby-ivar">@densities</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">calculate_densities</span>(<span class="ruby-identifier">adjust</span>)
937
1042
  <span class="ruby-keyword">end</span></pre>
@@ -973,7 +1078,7 @@ indicating feature positions on the plot</p>
973
1078
 
974
1079
 
975
1080
  <div class="method-source-code" id="draw_bands-source">
976
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 702</span>
1081
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 854</span>
977
1082
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">draw_bands</span>(<span class="ruby-identifier">file</span>=<span class="ruby-string">&quot;myfile.png&quot;</span>, <span class="ruby-identifier">optsa</span>={})
978
1083
  <span class="ruby-identifier">opts</span> = <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:graphics</span>].<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">optsa</span>)
979
1084
  <span class="ruby-identifier">pp</span> <span class="ruby-identifier">optsa</span>
@@ -1036,7 +1141,7 @@ single PNG file <code>file</code></p>
1036
1141
 
1037
1142
 
1038
1143
  <div class="method-source-code" id="draw_hit_count-source">
1039
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 948</span>
1144
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 1100</span>
1040
1145
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">draw_hit_count</span>(<span class="ruby-identifier">file</span>=<span class="ruby-string">&quot;myfile.png&quot;</span>,<span class="ruby-identifier">opts</span>=<span class="ruby-ivar">@opts</span>[<span class="ruby-value">:graphics</span>])
1041
1146
  <span class="ruby-identifier">r</span> = <span class="ruby-identifier">new_r</span>
1042
1147
  <span class="ruby-identifier">wins</span> = []
@@ -1085,7 +1190,7 @@ function in R</p>
1085
1190
 
1086
1191
 
1087
1192
  <div class="method-source-code" id="draw_peaks-source">
1088
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 891</span>
1193
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 1043</span>
1089
1194
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">draw_peaks</span>(<span class="ruby-identifier">file</span>=<span class="ruby-string">&quot;myfile.png&quot;</span>,<span class="ruby-identifier">opts</span>=<span class="ruby-ivar">@opts</span>[<span class="ruby-value">:graphics</span>])
1090
1195
  <span class="ruby-identifier">opts_a</span> = <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:peaks</span>]
1091
1196
  <span class="ruby-identifier">opts_a</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">opts</span>)
@@ -1139,7 +1244,7 @@ function in R</p>
1139
1244
 
1140
1245
 
1141
1246
  <div class="method-source-code" id="draw_signal-source">
1142
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 868</span>
1247
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 1020</span>
1143
1248
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">draw_signal</span>(<span class="ruby-identifier">file</span>=<span class="ruby-string">&quot;myfile.png&quot;</span>, <span class="ruby-identifier">opts</span>=<span class="ruby-ivar">@opts</span>[<span class="ruby-value">:graphics</span>]) <span class="ruby-comment">#data.frame(bubs=data$bubbles_found,conf=data$bubbles_confirmed)</span>
1144
1249
  <span class="ruby-identifier">r</span> = <span class="ruby-identifier">new_r</span>
1145
1250
  <span class="ruby-identifier">x_vals</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">densities</span>[<span class="ruby-value">0</span>][<span class="ruby-value">1</span>]
@@ -1185,7 +1290,7 @@ will be drawn in a second plot</p>
1185
1290
 
1186
1291
 
1187
1292
  <div class="method-source-code" id="draw_threads-source">
1188
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 632</span>
1293
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 784</span>
1189
1294
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">draw_threads</span>(<span class="ruby-identifier">file</span>=<span class="ruby-string">&quot;myfile.png&quot;</span>, <span class="ruby-identifier">options</span>={})
1190
1295
  <span class="ruby-identifier">opts</span> = <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:graphics</span>].<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
1191
1296
  <span class="ruby-comment">#uses R's standard plot functions.. needed because ggplot can die unexpectedly...</span>
@@ -1243,7 +1348,7 @@ section defined in Bio::Util::Gngm#initialize with bin width
1243
1348
 
1244
1349
 
1245
1350
  <div class="method-source-code" id="frequency_histogram-source">
1246
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 562</span>
1351
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 713</span>
1247
1352
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">frequency_histogram</span>(<span class="ruby-identifier">file</span>=<span class="ruby-string">&quot;myfile.png&quot;</span>, <span class="ruby-identifier">bin_width</span>=<span class="ruby-ivar">@opts</span>[<span class="ruby-value">:histo_bin_width</span>], <span class="ruby-identifier">opts</span>=<span class="ruby-ivar">@opts</span>[<span class="ruby-value">:graphics</span>])
1248
1353
  <span class="ruby-identifier">posns</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">snp_positions</span>.<span class="ruby-identifier">collect</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">first</span>}
1249
1354
  <span class="ruby-identifier">r</span> = <span class="ruby-identifier">new_r</span>
@@ -1282,7 +1387,7 @@ section defined in Bio::Util::Gngm#initialize with bin width
1282
1387
 
1283
1388
 
1284
1389
  <div class="method-source-code" id="get_band-source">
1285
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 848</span>
1390
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 1000</span>
1286
1391
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_band</span>(<span class="ruby-identifier">window</span>=<span class="ruby-value">1.0</span>)
1287
1392
  <span class="ruby-comment">##because of the weird step rounding error we need to find the internal name of the window.. so find it from the list from the name the user</span>
1288
1393
  <span class="ruby-comment">##expects it to be, may give more than one passing window so keep only first one..</span>
@@ -1351,7 +1456,7 @@ statistics are returned, so changing parameters has no effect</p>
1351
1456
 
1352
1457
 
1353
1458
  <div class="method-source-code" id="get_insert_size_frequency-source">
1354
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 531</span>
1459
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 682</span>
1355
1460
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_insert_size_frequency</span>(<span class="ruby-identifier">options</span>={})
1356
1461
  <span class="ruby-identifier">opts</span> = <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:insert_size_opts</span>].<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
1357
1462
  <span class="ruby-keyword">return</span> <span class="ruby-ivar">@snp_positions</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@snp_positions</span>
@@ -1369,6 +1474,48 @@ statistics are returned, so changing parameters has no effect</p>
1369
1474
  </div><!-- get_insert_size_frequency-method -->
1370
1475
 
1371
1476
 
1477
+ <div id="method-i-get_peaks" class="method-detail ">
1478
+
1479
+ <div class="method-heading">
1480
+ <span class="method-name">get_peaks</span><span
1481
+ class="method-args">(opts=@opts[:peaks])</span>
1482
+ <span class="method-click-advice">click to toggle source</span>
1483
+ </div>
1484
+
1485
+
1486
+ <div class="method-description">
1487
+
1488
+ <p>private Calculates the position of peaks in the signal curve</p>
1489
+
1490
+
1491
+
1492
+ <div class="method-source-code" id="get_peaks-source">
1493
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 1072</span>
1494
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_peaks</span>(<span class="ruby-identifier">opts</span>=<span class="ruby-ivar">@opts</span>[<span class="ruby-value">:peaks</span>])
1495
+ <span class="ruby-identifier">opts</span>[<span class="ruby-value">:background</span>] = <span class="ruby-identifier">opts</span>[<span class="ruby-value">:background</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">upcase</span>
1496
+ <span class="ruby-identifier">opts</span>[<span class="ruby-value">:markov</span>] = <span class="ruby-identifier">opts</span>[<span class="ruby-value">:markov</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">upcase</span>
1497
+ <span class="ruby-identifier">r</span> = <span class="ruby-identifier">new_r</span>
1498
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">eval</span> <span class="ruby-string">&quot;suppressMessages ( library('Peaks') )&quot;</span>
1499
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">signal</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">signal</span>
1500
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">x_vals</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">densities</span>[<span class="ruby-value">0</span>][<span class="ruby-value">1</span>]
1501
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">eval</span> <span class="ruby-node">&quot;spec = SpectrumSearch(signal,#{opts[:sigma]},threshold=#{opts[:threshold]},background=#{opts[:background]},iterations=#{opts[:iterations]},markov=#{opts[:markov]},window=#{opts[:window]})&quot;</span>
1502
+ <span class="ruby-ivar">@peak_indices</span> = <span class="ruby-identifier">r</span>.<span class="ruby-identifier">pull</span> <span class="ruby-string">&quot;spec$pos&quot;</span>
1503
+ <span class="ruby-keyword">if</span> <span class="ruby-ivar">@peak_indices</span>.<span class="ruby-identifier">instance_of?</span>(<span class="ruby-constant">Fixnum</span>)
1504
+ <span class="ruby-ivar">@peak_indices</span> = [<span class="ruby-ivar">@peak_indices</span>]
1505
+ <span class="ruby-keyword">end</span>
1506
+ <span class="ruby-ivar">@peak_y_values</span> = <span class="ruby-identifier">r</span>.<span class="ruby-identifier">pull</span> <span class="ruby-string">&quot;spec$y&quot;</span>
1507
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">quit</span>
1508
+ <span class="ruby-keyword">end</span></pre>
1509
+ </div><!-- get_peaks-source -->
1510
+
1511
+ </div>
1512
+
1513
+
1514
+
1515
+
1516
+ </div><!-- get_peaks-method -->
1517
+
1518
+
1372
1519
  <div id="method-i-get_unmapped_mate_frequency" class="method-detail ">
1373
1520
 
1374
1521
  <div class="method-heading">
@@ -1406,7 +1553,7 @@ statistics are returned, so changing parameters has no effect</p>
1406
1553
 
1407
1554
 
1408
1555
  <div class="method-source-code" id="get_unmapped_mate_frequency-source">
1409
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 550</span>
1556
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 701</span>
1410
1557
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_unmapped_mate_frequency</span>(<span class="ruby-identifier">options</span>={})
1411
1558
  <span class="ruby-identifier">opts</span> = <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:insert_size_opts</span>].<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
1412
1559
  <span class="ruby-keyword">return</span> <span class="ruby-ivar">@snp_positions</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@snp_positions</span>
@@ -1443,7 +1590,7 @@ in density curves.</p>
1443
1590
 
1444
1591
 
1445
1592
  <div class="method-source-code" id="hit_count-source">
1446
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 938</span>
1593
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 1090</span>
1447
1594
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">hit_count</span>
1448
1595
  <span class="ruby-identifier">arr</span> = []
1449
1596
  <span class="ruby-keyword">self</span>.<span class="ruby-identifier">threads</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">thread</span><span class="ruby-operator">|</span>
@@ -1461,6 +1608,73 @@ in density curves.</p>
1461
1608
  </div><!-- hit_count-method -->
1462
1609
 
1463
1610
 
1611
+ <div id="method-i-is_allowed_substitution-3F" class="method-detail ">
1612
+
1613
+ <div class="method-heading">
1614
+ <span class="method-name">is_allowed_substitution?</span><span
1615
+ class="method-args">(ref,alt,opts)</span>
1616
+ <span class="method-click-advice">click to toggle source</span>
1617
+ </div>
1618
+
1619
+
1620
+ <div class="method-description">
1621
+
1622
+
1623
+
1624
+
1625
+
1626
+ <div class="method-source-code" id="is_allowed_substitution-3F-source">
1627
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 531</span>
1628
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">is_allowed_substitution?</span>(<span class="ruby-identifier">ref</span>,<span class="ruby-identifier">alt</span>,<span class="ruby-identifier">opts</span>)
1629
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">opts</span>[<span class="ruby-value">:substitutions</span>].<span class="ruby-identifier">instance_of?</span>(<span class="ruby-constant">Array</span>)
1630
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">opts</span>[<span class="ruby-value">:substitutions</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-node">&quot;#{ref}:#{alt}&quot;</span>)
1631
+ <span class="ruby-keyword">end</span>
1632
+ <span class="ruby-keyword">true</span>
1633
+ <span class="ruby-keyword">end</span></pre>
1634
+ </div><!-- is_allowed_substitution-3F-source -->
1635
+
1636
+ </div>
1637
+
1638
+
1639
+
1640
+
1641
+ </div><!-- is_allowed_substitution-3F-method -->
1642
+
1643
+
1644
+ <div id="method-i-keep_known_variants" class="method-detail ">
1645
+
1646
+ <div class="method-heading">
1647
+ <span class="method-name">keep_known_variants</span><span
1648
+ class="method-args">(file=nil)</span>
1649
+ <span class="method-click-advice">click to toggle source</span>
1650
+ </div>
1651
+
1652
+
1653
+ <div class="method-description">
1654
+
1655
+ <p>Deletes everything from self.snp_positions not mentioned by position in
1656
+ self.known_variants. Directly modifies self.snp_positions</p>
1657
+
1658
+
1659
+
1660
+ <div class="method-source-code" id="keep_known_variants-source">
1661
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 1190</span>
1662
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">keep_known_variants</span>(<span class="ruby-identifier">file</span>=<span class="ruby-keyword">nil</span>)
1663
+ <span class="ruby-identifier">raise</span> <span class="ruby-string">&quot;file of known variants not provided and @known_variants is nil&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@known_variants</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">nil?</span>
1664
+ <span class="ruby-ivar">@known_variants</span> = <span class="ruby-identifier">parse_known_variants</span>(<span class="ruby-identifier">file</span>) <span class="ruby-keyword">if</span> <span class="ruby-ivar">@known_variants</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">file</span>
1665
+ <span class="ruby-ivar">@snp_positions</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">snp</span><span class="ruby-operator">|</span>
1666
+ <span class="ruby-keyword">end</span>
1667
+ <span class="ruby-keyword">end</span></pre>
1668
+ </div><!-- keep_known_variants-source -->
1669
+
1670
+ </div>
1671
+
1672
+
1673
+
1674
+
1675
+ </div><!-- keep_known_variants-method -->
1676
+
1677
+
1464
1678
  <div id="method-i-peaks" class="method-detail ">
1465
1679
 
1466
1680
  <div class="method-heading">
@@ -1472,13 +1686,13 @@ in density curves.</p>
1472
1686
 
1473
1687
  <div class="method-description">
1474
1688
 
1475
- <p>Returns the positions of the peaks in the signal curve calculated by
1476
- Bio::Util::Gngm#get_peaks as an array</p>
1689
+ <p>Returns the positions of the peaks in the signal curve calculated by <a
1690
+ href="Gngm.html#method-i-get_peaks">#get_peaks</a> as an array</p>
1477
1691
 
1478
1692
 
1479
1693
 
1480
1694
  <div class="method-source-code" id="peaks-source">
1481
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 884</span>
1695
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 1036</span>
1482
1696
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">peaks</span>
1483
1697
  <span class="ruby-ivar">@peak_indices</span>.<span class="ruby-identifier">collect</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">densities</span>[<span class="ruby-value">0</span>][<span class="ruby-value">1</span>][<span class="ruby-identifier">x</span>].<span class="ruby-identifier">to_f</span>.<span class="ruby-identifier">floor</span>}
1484
1698
  <span class="ruby-keyword">end</span></pre>
@@ -1508,7 +1722,7 @@ Bio::Util::Gngm#get_peaks as an array</p>
1508
1722
 
1509
1723
 
1510
1724
  <div class="method-source-code" id="signal-source">
1511
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 999</span>
1725
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 1151</span>
1512
1726
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">signal</span>
1513
1727
  <span class="ruby-ivar">@signal</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">calculate_signal</span>
1514
1728
  <span class="ruby-keyword">end</span></pre>
@@ -1565,23 +1779,25 @@ matching the reference for SNP to be called</p>
1565
1779
  reference is N or n</p>
1566
1780
  </li></ul>
1567
1781
 
1568
- <p>When INDEL calling only one of <code>:indels, :deletions_only,
1569
- :insertions_only</code> should be used. If all are <code>false</code>, SNPs
1570
- are called.</p>
1782
+ <p>When INDEL calling only one of <code>:indels</code> should be used. If
1783
+ <code>false</code>, SNPs are called.</p>
1571
1784
 
1572
- <p>Sets the instance variable @snp_positions. Only gets positions the first
1573
- time it is called, in subsequent calls pre-computed positions and
1574
- statistics are returned, so changing parameters has no effect.</p>
1785
+ <p>calculates or returns the value of the instance variable @snp_positions.
1786
+ Only gets positions the first time it is called, in subsequent calls
1787
+ pre-computed positions and statistics are returned, so changing parameters
1788
+ has no effect.</p>
1575
1789
 
1576
1790
 
1577
1791
 
1578
1792
  <div class="method-source-code" id="snp_positions-source">
1579
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 422</span>
1793
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 516</span>
1580
1794
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">snp_positions</span>(<span class="ruby-identifier">optsa</span>={})
1581
1795
  <span class="ruby-identifier">opts</span> = <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:variant_call</span>].<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">optsa</span>)
1582
1796
  <span class="ruby-keyword">return</span> <span class="ruby-ivar">@snp_positions</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@snp_positions</span>
1583
- <span class="ruby-keyword">case</span>
1584
- <span class="ruby-keyword">when</span> <span class="ruby-ivar">@file</span>.<span class="ruby-identifier">instance_of?</span>(<span class="ruby-constant">Bio</span><span class="ruby-operator">::</span><span class="ruby-constant">DB</span><span class="ruby-operator">::</span><span class="ruby-constant">Sam</span>) <span class="ruby-keyword">then</span> <span class="ruby-identifier">get_snp_positions_from_bam</span>(<span class="ruby-identifier">opts</span>)
1797
+ <span class="ruby-keyword">case</span> <span class="ruby-ivar">@opts</span>[<span class="ruby-value">:format</span>]
1798
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:bam</span> <span class="ruby-keyword">then</span> <span class="ruby-identifier">get_snp_positions_from_bam</span>(<span class="ruby-identifier">opts</span>)
1799
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:text</span> <span class="ruby-keyword">then</span> <span class="ruby-identifier">get_snp_positions_from_text</span>(<span class="ruby-identifier">opts</span>)
1800
+ <span class="ruby-keyword">when</span> <span class="ruby-value">:pileup</span> <span class="ruby-keyword">then</span> <span class="ruby-identifier">get_snp_positions_from_pileup</span>(<span class="ruby-identifier">opts</span>)
1585
1801
  <span class="ruby-keyword">end</span>
1586
1802
  <span class="ruby-keyword">end</span></pre>
1587
1803
  </div><!-- snp_positions-source -->
@@ -1594,6 +1810,36 @@ statistics are returned, so changing parameters has no effect.</p>
1594
1810
  </div><!-- snp_positions-method -->
1595
1811
 
1596
1812
 
1813
+ <div id="method-i-snp_positions-3D" class="method-detail ">
1814
+
1815
+ <div class="method-heading">
1816
+ <span class="method-name">snp_positions=</span><span
1817
+ class="method-args">(arr)</span>
1818
+ <span class="method-click-advice">click to toggle source</span>
1819
+ </div>
1820
+
1821
+
1822
+ <div class="method-description">
1823
+
1824
+ <p>allows the user to assign SNP positions</p>
1825
+
1826
+
1827
+
1828
+ <div class="method-source-code" id="snp_positions-3D-source">
1829
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 527</span>
1830
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">snp_positions=</span>(<span class="ruby-identifier">arr</span>)
1831
+ <span class="ruby-ivar">@snp_positions</span> = <span class="ruby-identifier">arr</span>
1832
+ <span class="ruby-keyword">end</span></pre>
1833
+ </div><!-- snp_positions-3D-source -->
1834
+
1835
+ </div>
1836
+
1837
+
1838
+
1839
+
1840
+ </div><!-- snp_positions-3D-method -->
1841
+
1842
+
1597
1843
  <div id="method-i-threads" class="method-detail ">
1598
1844
 
1599
1845
  <div class="method-heading">
@@ -1626,7 +1872,7 @@ called and @threads is set before returning</p>
1626
1872
 
1627
1873
 
1628
1874
  <div class="method-source-code" id="threads-source">
1629
- <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 584</span>
1875
+ <pre><span class="ruby-comment"># File lib/bio/util/bio-gngm.rb, line 735</span>
1630
1876
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">threads</span>(<span class="ruby-identifier">opts</span>=<span class="ruby-ivar">@opts</span>[<span class="ruby-value">:threads</span>])
1631
1877
  <span class="ruby-ivar">@threads</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">collect_threads</span>(<span class="ruby-identifier">opts</span>)
1632
1878
  <span class="ruby-keyword">end</span></pre>
@@ -1649,7 +1895,7 @@ called and @threads is set before returning</p>
1649
1895
 
1650
1896
  <footer id="validator-badges">
1651
1897
  <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
1652
- <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.11.
1898
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.
1653
1899
  <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
1654
1900
  </footer>
1655
1901