1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6 <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8 <title>Class: Read</title>
10 <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
12 <script src="./js/jquery.js" type="text/javascript"
13 charset="utf-8"></script>
14 <script src="./js/thickbox-compressed.js" type="text/javascript"
15 charset="utf-8"></script>
16 <script src="./js/quicksearch.js" type="text/javascript"
17 charset="utf-8"></script>
18 <script src="./js/darkfish.js" type="text/javascript"
19 charset="utf-8"></script>
25 <div id="home-metadata">
26 <div id="home-section" class="section">
27 <h3 class="section-header">
28 <a href="./index.html">Home</a>
29 <a href="./index.html#classes">Classes</a>
30 <a href="./index.html#methods">Methods</a>
35 <div id="file-metadata">
36 <div id="file-list-section" class="section">
37 <h3 class="section-header">In Files</h3>
38 <div class="section-body">
41 <li><a href="./sff_rb.html?TB_iframe=true&height=550&width=785"
42 class="thickbox" title="sff.rb">sff.rb</a></li>
51 <div id="class-metadata">
55 <div id="parent-class-section" class="section">
56 <h3 class="section-header">Parent</h3>
58 <p class="link">Object</p>
63 <!-- Namespace Contents -->
66 <!-- Method Quickref -->
68 <div id="method-list-section" class="section">
69 <h3 class="section-header">Methods</h3>
70 <ul class="link-list">
72 <li><a href="#method-i-clip">#clip</a></li>
74 <li><a href="#method-i-coordinates_get">#coordinates_get</a></li>
76 <li><a href="#method-i-mask">#mask</a></li>
78 <li><a href="#method-i-to_bp">#to_bp</a></li>
84 <!-- Included Modules -->
88 <div id="project-metadata">
92 <div id="classindex-section" class="section project-section">
93 <h3 class="section-header">Class Index
94 <span class="search-toggle"><img src="./images/find.png"
95 height="16" width="16" alt="[+]"
96 title="show/hide quicksearch" /></span></h3>
97 <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
99 <legend>Quicksearch</legend>
100 <input type="text" name="quicksearch" value=""
101 class="quicksearch-field" />
105 <ul class="link-list">
107 <li><a href="./Base36.html">Base36</a></li>
109 <li><a href="./Base36Error.html">Base36Error</a></li>
111 <li><a href="./Biopieces.html">Biopieces</a></li>
113 <li><a href="./BitArray.html">BitArray</a></li>
115 <li><a href="./BitArrayError.html">BitArrayError</a></li>
117 <li><a href="./Boulder.html">Boulder</a></li>
119 <li><a href="./BoulderError.html">BoulderError</a></li>
121 <li><a href="./CastError.html">CastError</a></li>
123 <li><a href="./Casts.html">Casts</a></li>
125 <li><a href="./Digest.html">Digest</a></li>
127 <li><a href="./DigestError.html">DigestError</a></li>
129 <li><a href="./Fasta.html">Fasta</a></li>
131 <li><a href="./FastaError.html">FastaError</a></li>
133 <li><a href="./Fastq.html">Fastq</a></li>
135 <li><a href="./FastqError.html">FastqError</a></li>
137 <li><a href="./Filesys.html">Filesys</a></li>
139 <li><a href="./FilesysError.html">FilesysError</a></li>
141 <li><a href="./Genbank.html">Genbank</a></li>
143 <li><a href="./GenbankError.html">GenbankError</a></li>
145 <li><a href="./GenbankFeatures.html">GenbankFeatures</a></li>
147 <li><a href="./Locator.html">Locator</a></li>
149 <li><a href="./LocatorError.html">LocatorError</a></li>
151 <li><a href="./OptionHandler.html">OptionHandler</a></li>
153 <li><a href="./Read.html">Read</a></li>
155 <li><a href="./SFF.html">SFF</a></li>
157 <li><a href="./SFFError.html">SFFError</a></li>
159 <li><a href="./Seq.html">Seq</a></li>
161 <li><a href="./SeqError.html">SeqError</a></li>
163 <li><a href="./Status.html">Status</a></li>
165 <li><a href="./Stream.html">Stream</a></li>
167 <li><a href="./String.html">String</a></li>
169 <li><a href="./StringError.html">StringError</a></li>
172 <div id="no-class-search-results" style="display: none;">No matching classes.</div>
179 <div id="documentation">
180 <h1 class="class">Read</h1>
182 <div id="description">
184 Class containing data accessor methods for an <a href="SFF.html">SFF</a>
185 entry and methods for manipulating this entry.
195 <div id="attribute-method-details" class="method-section section">
196 <h3 class="section-header">Attributes</h3>
199 <div id="read-header-length-attribute-method" class="method-detail">
200 <a name="read_header_length"></a>
202 <a name="read_header_length="></a>
204 <div class="method-heading attribute-method-heading">
205 <span class="method-name">read_header_length</span><span
206 class="attribute-access-type">[RW]</span>
209 <div class="method-description">
216 <div id="name-length-attribute-method" class="method-detail">
217 <a name="name_length"></a>
219 <a name="name_length="></a>
221 <div class="method-heading attribute-method-heading">
222 <span class="method-name">name_length</span><span
223 class="attribute-access-type">[RW]</span>
226 <div class="method-description">
233 <div id="number-of-bases-attribute-method" class="method-detail">
234 <a name="number_of_bases"></a>
236 <a name="number_of_bases="></a>
238 <div class="method-heading attribute-method-heading">
239 <span class="method-name">number_of_bases</span><span
240 class="attribute-access-type">[RW]</span>
243 <div class="method-description">
250 <div id="clip-qual-left-attribute-method" class="method-detail">
251 <a name="clip_qual_left"></a>
253 <a name="clip_qual_left="></a>
255 <div class="method-heading attribute-method-heading">
256 <span class="method-name">clip_qual_left</span><span
257 class="attribute-access-type">[RW]</span>
260 <div class="method-description">
267 <div id="clip-qual-right-attribute-method" class="method-detail">
268 <a name="clip_qual_right"></a>
270 <a name="clip_qual_right="></a>
272 <div class="method-heading attribute-method-heading">
273 <span class="method-name">clip_qual_right</span><span
274 class="attribute-access-type">[RW]</span>
277 <div class="method-description">
284 <div id="clip-adapter-left-attribute-method" class="method-detail">
285 <a name="clip_adapter_left"></a>
287 <a name="clip_adapter_left="></a>
289 <div class="method-heading attribute-method-heading">
290 <span class="method-name">clip_adapter_left</span><span
291 class="attribute-access-type">[RW]</span>
294 <div class="method-description">
301 <div id="clip-adaptor-right-attribute-method" class="method-detail">
302 <a name="clip_adaptor_right"></a>
304 <a name="clip_adaptor_right="></a>
306 <div class="method-heading attribute-method-heading">
307 <span class="method-name">clip_adaptor_right</span><span
308 class="attribute-access-type">[RW]</span>
311 <div class="method-description">
318 <div id="name-attribute-method" class="method-detail">
323 <div class="method-heading attribute-method-heading">
324 <span class="method-name">name</span><span
325 class="attribute-access-type">[RW]</span>
328 <div class="method-description">
335 <div id="flowgram-values-attribute-method" class="method-detail">
336 <a name="flowgram_values"></a>
338 <a name="flowgram_values="></a>
340 <div class="method-heading attribute-method-heading">
341 <span class="method-name">flowgram_values</span><span
342 class="attribute-access-type">[RW]</span>
345 <div class="method-description">
352 <div id="flow-index-per-base-attribute-method" class="method-detail">
353 <a name="flow_index_per_base"></a>
355 <a name="flow_index_per_base="></a>
357 <div class="method-heading attribute-method-heading">
358 <span class="method-name">flow_index_per_base</span><span
359 class="attribute-access-type">[RW]</span>
362 <div class="method-description">
369 <div id="bases-attribute-method" class="method-detail">
372 <a name="bases="></a>
374 <div class="method-heading attribute-method-heading">
375 <span class="method-name">bases</span><span
376 class="attribute-access-type">[RW]</span>
379 <div class="method-description">
386 <div id="quality-scores-attribute-method" class="method-detail">
387 <a name="quality_scores"></a>
389 <a name="quality_scores="></a>
391 <div class="method-heading attribute-method-heading">
392 <span class="method-name">quality_scores</span><span
393 class="attribute-access-type">[RW]</span>
396 <div class="method-description">
403 <div id="x-pos-attribute-method" class="method-detail">
406 <a name="x_pos="></a>
408 <div class="method-heading attribute-method-heading">
409 <span class="method-name">x_pos</span><span
410 class="attribute-access-type">[RW]</span>
413 <div class="method-description">
420 <div id="y-pos-attribute-method" class="method-detail">
423 <a name="y_pos="></a>
425 <div class="method-heading attribute-method-heading">
426 <span class="method-name">y_pos</span><span
427 class="attribute-access-type">[RW]</span>
430 <div class="method-description">
442 <div id="public-instance-method-details" class="method-section section">
443 <h3 class="section-header">Public Instance Methods</h3>
446 <div id="clip-method" class="method-detail ">
447 <a name="method-i-clip"></a>
449 <div class="method-heading">
451 <span class="method-name">clip</span><span
452 class="method-args">()</span>
453 <span class="method-click-advice">click to toggle source</span>
457 <div class="method-description">
460 Method that clips sequence (i.e. trims) according to <a
461 href="Read.html#clip_qual_left">clip_qual_left</a> and <a
462 href="Read.html#clip_qual_right">clip_qual_right</a> information.
467 <div class="method-source-code"
470 <span class="ruby-comment cmt"># File sff.rb, line 228</span>
471 228: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clip</span>
472 229: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_left</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_right</span>]
473 230: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">quality_scores</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">quality_scores</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_left</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_right</span>]
474 231: <span class="ruby-keyword kw">end</span></pre>
485 <div id="mask-method" class="method-detail ">
486 <a name="method-i-mask"></a>
488 <div class="method-heading">
490 <span class="method-name">mask</span><span
491 class="method-args">()</span>
492 <span class="method-click-advice">click to toggle source</span>
496 <div class="method-description">
499 Method that soft masks the sequence (i.e. lowercases sequence) according to
500 <a href="Read.html#clip_qual_left">clip_qual_left</a> and <a
501 href="Read.html#clip_qual_right">clip_qual_right</a> information.
506 <div class="method-source-code"
509 <span class="ruby-comment cmt"># File sff.rb, line 218</span>
510 218: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mask</span>
511 219: <span class="ruby-identifier">left</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>[<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_left</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>].<span class="ruby-identifier">downcase</span>
512 220: <span class="ruby-identifier">middle</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_left</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_right</span>]
513 221: <span class="ruby-identifier">right</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>[<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_right</span> <span class="ruby-operator">...</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>.<span class="ruby-identifier">length</span>].<span class="ruby-identifier">downcase</span>
515 223: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span> = <span class="ruby-identifier">left</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">middle</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">right</span>
516 224: <span class="ruby-keyword kw">end</span></pre>
527 <div id="to-bp-method" class="method-detail ">
528 <a name="method-i-to_bp"></a>
530 <div class="method-heading">
532 <span class="method-name">to_bp</span><span
533 class="method-args">()</span>
534 <span class="method-click-advice">click to toggle source</span>
538 <div class="method-description">
541 Method that converts a <a href="Read.html">Read</a> object’s data to
542 a Biopiece record (a hash).
547 <div class="method-source-code"
550 <span class="ruby-comment cmt"># File sff.rb, line 197</span>
551 197: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_bp</span>
552 198: <span class="ruby-identifier">coordinates_get</span>
554 200: <span class="ruby-identifier">hash</span> = {}
556 202: <span class="ruby-identifier">hash</span>[<span class="ruby-value">:SEQ_NAME</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">name</span>
557 203: <span class="ruby-identifier">hash</span>[<span class="ruby-value">:SEQ</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>
558 204: <span class="ruby-identifier">hash</span>[<span class="ruby-value">:SEQ_LEN</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">bases</span>.<span class="ruby-identifier">length</span>
559 205: <span class="ruby-identifier">hash</span>[<span class="ruby-value">:CLIP_QUAL_LEFT</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_left</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
560 206: <span class="ruby-identifier">hash</span>[<span class="ruby-value">:CLIP_QUAL_RIGHT</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_qual_right</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
561 207: <span class="ruby-identifier">hash</span>[<span class="ruby-value">:CLIP_ADAPTOR_LEFT</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_adapter_left</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
562 208: <span class="ruby-identifier">hash</span>[<span class="ruby-value">:CLIP_ADAPTOR_RIGHT</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clip_adaptor_right</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
563 209: <span class="ruby-identifier">hash</span>[<span class="ruby-value">:SCORES</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">quality_scores</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> (<span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">64</span>).<span class="ruby-identifier">chr</span> }.<span class="ruby-identifier">join</span> <span class="ruby-value str">""</span>
564 210: <span class="ruby-identifier">hash</span>[<span class="ruby-value">:X_POS</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">x_pos</span>
565 211: <span class="ruby-identifier">hash</span>[<span class="ruby-value">:Y_POS</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">y_pos</span>
567 213: <span class="ruby-identifier">hash</span>
568 214: <span class="ruby-keyword kw">end</span></pre>
581 <div id="private-instance-method-details" class="method-section section">
582 <h3 class="section-header">Private Instance Methods</h3>
585 <div id="coordinates-get-method" class="method-detail ">
586 <a name="method-i-coordinates_get"></a>
588 <div class="method-heading">
590 <span class="method-name">coordinates_get</span><span
591 class="method-args">()</span>
592 <span class="method-click-advice">click to toggle source</span>
596 <div class="method-description">
599 Method that extracts the X/Y coordinates from an <a href="SFF.html">SFF</a>
600 read name encoded with base36.
605 <div class="method-source-code"
606 id="coordinates-get-source">
608 <span class="ruby-comment cmt"># File sff.rb, line 237</span>
609 237: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">coordinates_get</span>
610 238: <span class="ruby-identifier">base36</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">name</span>[<span class="ruby-value">5</span>, <span class="ruby-value">5</span>]
611 239: <span class="ruby-identifier">num</span> = <span class="ruby-constant">Base36</span>.<span class="ruby-identifier">decode</span>(<span class="ruby-identifier">base36</span>)
613 241: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">x_pos</span> = <span class="ruby-identifier">num</span> <span class="ruby-operator">>></span> <span class="ruby-constant">BIT_SHIFT</span>
614 242: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">y_pos</span> = <span class="ruby-identifier">num</span> & <span class="ruby-constant">BIT_MASK</span>
615 243: <span class="ruby-keyword kw">end</span></pre>
632 <div id="rdoc-debugging-section-dump" class="debugging-section">
634 <p>Disabled; run with --debug to generate this.</p>
638 <div id="validator-badges">
639 <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
640 <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
641 Rdoc Generator</a> 1.1.6</small>.</p>