Class | Bio::Phylip::PhylipFormat |
In: |
lib/bio/appl/phylip/alignment.rb
|
Parent: | Object |
This is phylip multiple alignment format parser. The two formats, interleaved and non-interleaved, are automatically determined.
alignment_length | [R] | alignment length |
number_of_sequences | [R] | number of sequences |
create a new object from a string
# File lib/bio/appl/phylip/alignment.rb, line 26 26: def initialize(str) 27: @data = str.strip.split(/(?:\r\n|\r|\n)/) 28: @first_line = @data.shift 29: @number_of_sequences, @alignment_length = 30: @first_line.to_s.strip.split(/\s+/).collect { |x| x.to_i } 31: end
Gets the alignment. Returns a Bio::Alignment object.
# File lib/bio/appl/phylip/alignment.rb, line 54 54: def alignment 55: unless defined? @alignment then 56: do_parse 57: a = Bio::Alignment.new 58: (0...@number_of_sequences).each do |i| 59: a.add_seq(@sequences[i], @sequence_names[i]) 60: end 61: @alignment = a 62: end 63: @alignment 64: end
If the alignment format is "interleaved", returns true. If not, returns false. It would mistake to determine if the alignment is very short.
# File lib/bio/appl/phylip/alignment.rb, line 42 42: def interleaved? 43: unless defined? @interleaved_flag then 44: if /\A +/ =~ @data[1].to_s then 45: @interleaved_flag = false 46: else 47: @interleaved_flag = true 48: end 49: end 50: @interleaved_flag 51: end