class Bio::Nexus::TaxaBlock

DESCRIPTION

Bio::Nexus::TaxaBlock represents a taxa nexus block.

Example of Taxa block:

Begin Taxa;

Dimensions NTax=4;
TaxLabels fish [comment] 'african frog' "rat snake" 'red mouse';

End;

USAGE

require 'bio/db/nexus'

# Create a new parser:
nexus = Bio::Nexus.new( nexus_data_as_string )

# Get first taxa block:   
taxa_block = nexus.get_taxa_blocks[ 0 ]
# Get number of taxa:
number_of_taxa = taxa_block.get_number_of_taxa.to_i
# Get name of first taxon:
first_taxon = taxa_block.get_taxa[ 0 ]

Public Class Methods

new( name ) click to toggle source

Creates a new TaxaBlock object named 'name'.


Arguments:

Calls superclass method Bio::Nexus::GenericBlock.new
# File lib/bio/db/nexus.rb, line 854
def initialize( name )
  super( name )
  @number_of_taxa = 0
  @taxa = Array.new
end

Public Instance Methods

add_taxon( taxon ) click to toggle source

Adds a taxon name to this block.


Arguments:

# File lib/bio/db/nexus.rb, line 905
def add_taxon( taxon )
  @taxa.push( taxon )
end
get_number_of_taxa() click to toggle source

Gets the “number of taxa” property.


Returns

Integer

# File lib/bio/db/nexus.rb, line 879
def get_number_of_taxa
  @number_of_taxa
end
get_taxa() click to toggle source

Gets the taxa of this block.


Returns

Array

# File lib/bio/db/nexus.rb, line 887
def get_taxa
  @taxa
end
set_number_of_taxa( number_of_taxa ) click to toggle source

Sets the “number of taxa” property.


Arguments:

  • (required) number_of_taxa: Integer

# File lib/bio/db/nexus.rb, line 896
def set_number_of_taxa( number_of_taxa )
  @number_of_taxa = number_of_taxa
end
to_nexus() click to toggle source

Returns a String describing this block as nexus formatted data.


Returns

String

# File lib/bio/db/nexus.rb, line 863
def to_nexus
  line_1 = String.new
  line_1 << DIMENSIONS 
  if ( Nexus::Util::larger_than_zero( get_number_of_taxa  ) )
    line_1 << " " <<  NTAX << "=" << get_number_of_taxa
  end
  line_1 << DELIMITER
  line_2 = String.new
  line_2 << TAXLABELS << " " << Nexus::Util::array_to_string( get_taxa ) << DELIMITER
  Nexus::Util::to_nexus_helper( TAXA_BLOCK, [ line_1, line_2 ] )
end