class Bio::Nexus::DistancesBlock

DESCRIPTION

Bio::Nexus::DistancesBlock represents a distances nexus block.

Example of Distances block:

Begin Distances;

Dimensions nchar=20 ntax=5;
Format Triangle=Upper;
Matrix
 taxon_1 0.0 1.0 2.0 4.0 7.0
 taxon_2 1.0 0.0 3.0 5.0 8.0
 taxon_3 3.0 4.0 0.0 6.0 9.0
 taxon_4 7.0 3.0 1.0 0.0 9.5
 taxon_5 1.2 1.3 1.4 1.5 0.0;

End;

USAGE

require 'bio/db/nexus'

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

# Get distances block(s):   
distances_blocks = nexus.get_distances_blocks
# Get matrix as Bio::Nexus::NexusMatrix object:
matrix = distances_blocks[ 0 ].get_matrix
# Get value (column 0 are names):
val = matrix.get_value( 1, 5 )

Constants

TRIANGLE

Public Class Methods

new( name ) click to toggle source

Creates a new DistancesBlock object named 'name'.


Arguments:

Calls superclass method Bio::Nexus::GenericBlock.new
# File lib/bio/db/nexus.rb, line 1333
def initialize( name )
  super( name )        
  @number_of_taxa = 0
  @number_of_characters = 0
  @triangle = String.new
  @matrix = NexusMatrix.new
end

Public Instance Methods

get_matrix() click to toggle source

Gets the matrix.


Returns

Bio::Nexus::NexusMatrix

# File lib/bio/db/nexus.rb, line 1392
def get_matrix
  @matrix
end
get_number_of_characters() click to toggle source

Gets the “number of characters” property.


Returns

Integer

# File lib/bio/db/nexus.rb, line 1378
def get_number_of_characters
  @number_of_characters
end
get_number_of_taxa() click to toggle source

Gets the “number of taxa” property.


Returns

Integer

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

Gets the “triangle” property.


Returns

String

# File lib/bio/db/nexus.rb, line 1385
def get_triangle
  @triangle
end
set_matrix( matrix ) click to toggle source

Sets the matrix.


Arguments:

# File lib/bio/db/nexus.rb, line 1424
def set_matrix( matrix )
  @matrix = matrix
end
set_number_of_characters( number_of_characters ) click to toggle source

Sets the “number of characters” property.


Arguments:

  • (required) number_of_characters: Integer

# File lib/bio/db/nexus.rb, line 1408
def set_number_of_characters( number_of_characters )
  @number_of_characters = number_of_characters
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 1400
def set_number_of_taxa( number_of_taxa )
  @number_of_taxa = number_of_taxa
end
set_triangle( triangle ) click to toggle source

Sets the “triangle” property.


Arguments:

# File lib/bio/db/nexus.rb, line 1416
def set_triangle( triangle )
  @triangle = triangle
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 1344
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
  if ( Nexus::Util::larger_than_zero( get_number_of_characters ) )
    line_1 << " " <<  NCHAR << "=" << get_number_of_characters
  end
  line_1 << DELIMITER
  
  line_2 = String.new
  line_2 << FORMAT  
  if ( Nexus::Util::longer_than_zero( get_triangle ) )
    line_2 << " " << TRIANGLE << "=" << get_triangle
  end
  line_2 << DELIMITER
  
  line_3 = String.new
  line_3 << MATRIX 
  Nexus::Util::to_nexus_helper( DISTANCES_BLOCK, [ line_1, line_2, line_3 ] +
                                get_matrix.to_nexus_row_array( " " ) )
end