bio-gngm 0.2.0 → 0.2.1

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