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