class Bio::Sequence::Format::Formatter::Fastq_sanger

INTERNAL USE ONLY, YOU SHOULD NOT USE THIS CLASS.

FASTQ format output class for Bio::Sequence.

The default FASTQ format is fastq-sanger.

Public Class Methods

new() click to toggle source

INTERNAL USE ONLY, YOU SHOULD NOT CALL THIS METHOD.

Creates a new Fasta format generater object from the sequence.


Arguments:

  • sequence: Bio::Sequence object

  • (optional) :repeat_title => (true or false) if true, repeating title in the “+” line; if not true, “+” only (default false)

  • (optional) :width => width: (Fixnum) width to wrap sequence and quality lines; nil to prevent wrapping (default nil)

  • (optional) :title => title: (String) completely replaces title line with the title (default nil)

  • (optional) :default_score => score: (Integer) default score for bases that have no valid quality scores or error probabilities; false or nil means the lowest score, true means the highest score (default nil)

   # File lib/bio/db/fastq/format_fastq.rb
31 def initialize; end

Public Instance Methods

output() click to toggle source

INTERNAL USE ONLY, YOU SHOULD NOT CALL THIS METHOD.

Output the FASTQ format string of the sequence.

Currently, this method is used in Bio::Sequence#output like so,

s = Bio::Sequence.new('atgc')
puts s.output(:fastq_sanger)

Returns

String object

   # File lib/bio/db/fastq/format_fastq.rb
43 def output
44   title = @options[:title]
45   width = @options.has_key?(:width) ? @options[:width] : nil
46   seq = @sequence.seq.to_s
47   entry_id = @sequence.entry_id || 
48     "#{@sequence.primary_accession}.#{@sequence.sequence_version}"
49   definition = @sequence.definition
50   unless title then
51     title = definition.to_s
52     unless title[0, entry_id.length] == entry_id and
53         /\s/ =~ title[entry_id.length, 1].to_s then
54       title = "#{entry_id} #{title}"
55     end
56   end
57   title2 = @options[:repeat_title] ? title : ''
58   qstr = fastq_quality_string(seq, @options[:default_score])
59 
60   "@#{title}\n" +
61     if width then
62       seq.gsub(Regexp.new(".{1,#{width}}"), "\\0\n")
63     else
64       seq + "\n"
65     end +
66     "+#{title2}\n" +
67     if width then
68       qstr.gsub(Regexp.new(".{1,#{width}}"), "\\0\n")
69     else
70       qstr + "\n"
71     end
72 end