Class | Bio::Sequence::Format::Formatter::Fasta_numeric
In: | lib/bio/db/fasta/format_qual.rb
Parent: | Bio::Sequence::Format::FormatterBase

INTERNAL USE ONLY, YOU SHOULD NOT USE THIS CLASS. Simple FastaNumeric format output class for Bio::Sequence.

### Methods

new output

### Public Class methods

new()

INTERNAL USE ONLY, YOU SHOULD NOT CALL THIS METHOD.

Creates a new FastaNumericFormat generater object from the sequence.

It does not care whether the content of the quality score is consistent with the sequence or not, e.g. it does not check length of the quality score.

Arguments:

- sequence: Bio::Sequence object
- (optional) :header => header: (String) (default nil)
- (optional) :width => width: (Fixnum) (default 70)

[Source]

        # File lib/bio/db/fasta/format_qual.rb, line 28
    28:     def initialize; end

### Public Instance methods

output()

INTERNAL USE ONLY, YOU SHOULD NOT CALL THIS METHOD.

Output the FASTA format string of the sequence.

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

      s = Bio::Sequence.new('atgc')
      s.quality_scores = [ 70, 80, 90, 100 ]
      puts s.output(:fasta_numeric)

Returns: | String object

[Source]

        # File lib/bio/db/fasta/format_qual.rb, line 41
    41:     def output
    42:       header = @options[:header]
    43:       width = @options.has_key?(:width) ? @options[:width] : 70
    44:       seq = @sequence.seq.to_s
    45:       entry_id = @sequence.entry_id ||
    46:         "#{@sequence.primary_accession}.#{@sequence.sequence_version}"
    47:       definition = @sequence.definition
    48:       header ||= "#{entry_id} #{definition}"
    49:
    50:       sc = fastanumeric_quality_scores(seq)
    51:       if width then
    52:         if width <= 0 then
    53:           main = sc.join("\n")
    54:         else
    55:           len = 0
    56:           main = sc.collect do |x|
    57:             str = (len == 0) ? "#{x}" : " #{x}"
    58:             len += str.size
    59:             if len > width then
    60:               len = "#{x}".size
    61:               str = "\n#{x}"
    62:             end
    63:             str
    64:           end.join('')
    65:         end
    66:       else
    67:         main = sc.join(' ')
    68:       end
    69:
    70:       ">#{header}\n#{main}\n"
    71:     end

[Validate]