module Bio::Sequence::Format
DESCRIPTION¶ ↑
A Mixin of methods used by #output to output sequences in common bioinformatic formats. These are not called in isolation.
USAGE¶ ↑
# Given a Bio::Sequence object, puts s.output(:fasta) puts s.output(:genbank) puts s.output(:embl)
Public Instance Methods
Returns a list of available output formats for the sequence
Arguments:
- Returns
-
Array of Symbols
# File lib/bio/sequence/format.rb, line 173 def list_output_formats a = get_formatter_repositories.collect { |mod| mod.constants } a.flatten! a.collect! { |x| x.to_s.downcase.intern } a end
Using Bio::Sequence::Format, return a String with the Bio::Sequence object formatted in the given style.
Formats currently implemented are: 'fasta', 'genbank', and 'embl'
s = Bio::Sequence.new('atgc') puts s.output(:fasta) #=> "> \natgc\n"
The style argument is given as a Ruby Symbol(www.ruby-doc.org/core/classes/Symbol.html)
Arguments:
-
(required) format: :fasta, :genbank, or :embl
- Returns
-
String object
# File lib/bio/sequence/format.rb, line 151 def output(format = :fasta, options = {}) formatter_const = format.to_s.capitalize.intern formatter_class = nil get_formatter_repositories.each do |mod| begin formatter_class = mod.const_get(formatter_const) rescue NameError end break if formatter_class end unless formatter_class then raise "unknown format name #{format.inspect}" end formatter_class.output(self, options) end
The same as output(:fasta, :header=>definition, :width=>width) This method is intended to replace Bio::Sequence#to_fasta.
s = Bio::Sequence.new('atgc') puts s.output_fasta #=> "> \natgc\n"
Arguments:
-
(optional) definition: (String) definition line
-
(optional) width: (Integer) width (default 70)
- Returns
-
String object
# File lib/bio/sequence/format.rb, line 190 def output_fasta(definition = nil, width = 70) output(:fasta, :header=> definition, :width => width) end
Private Instance Methods
returns formatter repository modules
# File lib/bio/sequence/format.rb, line 197 def get_formatter_repositories if self.moltype == Bio::Sequence::NA then [ NucFormatter, Formatter ] elsif self.moltype == Bio::Sequence::AA then [ AminoFormatter, Formatter ] else [ NucFormatter, AminoFormatter, Formatter ] end end