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, line 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::Format#output like so,

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

Returns

String object

# File lib/bio/db/fastq/format_fastq.rb, line 43
def output
  title = @options[:title]
  width = @options.has_key?(:width) ? @options[:width] : nil
  seq = @sequence.seq.to_s
  entry_id = @sequence.entry_id || 
    "#{@sequence.primary_accession}.#{@sequence.sequence_version}"
  definition = @sequence.definition
  unless title then
    title = definition.to_s
    unless title[0, entry_id.length] == entry_id and
        /\s/ =~ title[entry_id.length, 1].to_s then
      title = "#{entry_id} #{title}"
    end
  end
  title2 = @options[:repeat_title] ? title : ''
  qstr = fastq_quality_string(seq, @options[:default_score])

  "@#{title}\n" +
    if width then
      seq.gsub(Regexp.new(".{1,#{width}}"), "\\0\n")
    else
      seq + "\n"
    end +
    "+#{title2}\n" +
    if width then
      qstr.gsub(Regexp.new(".{1,#{width}}"), "\\0\n")
    else
      qstr + "\n"
    end
end