Class: Bio::Nexus::CharactersBlock
- Inherits:
-
GenericBlock
- Object
- GenericBlock
- Bio::Nexus::CharactersBlock
- Defined in:
- lib/bio/db/nexus.rb
Overview
DESCRIPTION
Bio::Nexus::CharactersBlock represents a characters nexus block.
Example of Characters block:
Begin Characters;
Dimensions NChar=20
NTax=4;
Format DataType=DNA
Missing=x
Gap=- MatchChar=.;
Matrix
fish ACATA GAGGG TACCT CTAAG
frog ACTTA GAGGC TACCT CTAGC
snake ACTCA CTGGG TACCT TTGCG
mouse ACTCA GACGG TACCT TTGCG;
End;
USAGE
require 'bio/db/nexus'
# Create a new parser:
nexus = Bio::Nexus.new( nexus_data_as_string )
# Get first characters block (same methods as Nexus::DataBlock except
# it lacks get_taxa method):
characters_block = nexus.get_characters_blocks[ 0 ]
Direct Known Subclasses
Constant Summary collapse
- MISSING =
"Missing"
- GAP =
"Gap"
- MATCHCHAR =
"MatchChar"
Instance Method Summary collapse
-
#get_characters_string(row) ⇒ Object
Returns character data as String for matrix row ‘row’.
-
#get_characters_strings_by_name(name) ⇒ Object
Returns character data as String Array for matrix rows named ‘name’.
-
#get_datatype ⇒ Object
Gets the “datatype” property.
-
#get_gap_character ⇒ Object
Gets the “gap character” property.
-
#get_match_character ⇒ Object
Gets the “match character” property.
-
#get_matrix ⇒ Object
Gets the matrix.
-
#get_missing ⇒ Object
Gets the “missing” property.
-
#get_number_of_characters ⇒ Object
Gets the “number of characters” property.
-
#get_number_of_taxa ⇒ Object
Gets the “number of taxa” property.
-
#get_row_name(row) ⇒ Object
Returns the String in the matrix at row ‘row’ and column 0, which usually is interpreted as a sequence name (if the matrix contains molecular sequence characters).
-
#get_sequence(row) ⇒ Object
Returns the characters in the matrix at row ‘row’ as Bio::Sequence object.
-
#get_sequences_by_name(name) ⇒ Object
Returns character data as Bio::Sequence object Array for matrix rows named ‘name’.
-
#initialize(name) ⇒ CharactersBlock
constructor
Creates a new CharactersBlock object named ‘name’.
-
#set_datatype(data_type) ⇒ Object
Sets the “data type” property.
-
#set_gap_character(gap_character) ⇒ Object
Sets the “gap character” property.
-
#set_match_character(match_character) ⇒ Object
Sets the “match character” property.
-
#set_matrix(matrix) ⇒ Object
Sets the matrix.
-
#set_missing(missing) ⇒ Object
Sets the “missing” property.
-
#set_number_of_characters(number_of_characters) ⇒ Object
Sets the “number of characters” property.
-
#set_number_of_taxa(number_of_taxa) ⇒ Object
Sets the “number of taxa” property.
-
#to_nexus ⇒ Object
Returns a String describing this block as nexus formatted data.
Methods inherited from GenericBlock
#add_token, #get_name, #get_tokens, #to_s
Constructor Details
#initialize(name) ⇒ CharactersBlock
Creates a new CharactersBlock object named ‘name’.
Arguments:
-
(required) name: String
952 953 954 955 956 957 958 959 960 961 |
# File 'lib/bio/db/nexus.rb', line 952 def initialize( name ) super( name ) @number_of_taxa = 0 @number_of_characters = 0 @data_type = String.new @gap_character = String.new @missing = String.new @match_character = String.new @matrix = NexusMatrix.new end |
Instance Method Details
#get_characters_string(row) ⇒ Object
Returns character data as String for matrix row ‘row’.
Arguments:
-
(required) row: Integer
- Returns
-
String
1107 1108 1109 |
# File 'lib/bio/db/nexus.rb', line 1107 def get_characters_string( row ) get_matrix.get_row_string( row, "" ) end |
#get_characters_strings_by_name(name) ⇒ Object
Returns character data as String Array for matrix rows named ‘name’.
Arguments:
-
(required) name: String
- Returns
-
Array of Strings
1096 1097 1098 |
# File 'lib/bio/db/nexus.rb', line 1096 def get_characters_strings_by_name( name ) get_matrix.get_row_strings_by_name( name, "" ) end |
#get_datatype ⇒ Object
Gets the “datatype” property.
- Returns
-
String
1019 1020 1021 |
# File 'lib/bio/db/nexus.rb', line 1019 def get_datatype @data_type end |
#get_gap_character ⇒ Object
Gets the “gap character” property.
- Returns
-
String
1026 1027 1028 |
# File 'lib/bio/db/nexus.rb', line 1026 def get_gap_character @gap_character end |
#get_match_character ⇒ Object
Gets the “match character” property.
- Returns
-
String
1040 1041 1042 |
# File 'lib/bio/db/nexus.rb', line 1040 def get_match_character @match_character end |
#get_matrix ⇒ Object
Gets the matrix.
- Returns
-
Bio::Nexus::NexusMatrix
1047 1048 1049 |
# File 'lib/bio/db/nexus.rb', line 1047 def get_matrix @matrix end |
#get_missing ⇒ Object
Gets the “missing” property.
- Returns
-
String
1033 1034 1035 |
# File 'lib/bio/db/nexus.rb', line 1033 def get_missing @missing end |
#get_number_of_characters ⇒ Object
Gets the “number of characters” property.
- Returns
-
Integer
1012 1013 1014 |
# File 'lib/bio/db/nexus.rb', line 1012 def get_number_of_characters @number_of_characters end |
#get_number_of_taxa ⇒ Object
Gets the “number of taxa” property.
- Returns
-
Integer
1004 1005 1006 |
# File 'lib/bio/db/nexus.rb', line 1004 def get_number_of_taxa @number_of_taxa end |
#get_row_name(row) ⇒ Object
Returns the String in the matrix at row ‘row’ and column 0, which usually is interpreted as a sequence name (if the matrix contains molecular sequence characters).
Arguments:
-
(required) row: Integer
- Returns
-
String
1085 1086 1087 |
# File 'lib/bio/db/nexus.rb', line 1085 def get_row_name( row ) get_matrix.get_name( row ) end |
#get_sequence(row) ⇒ Object
Returns the characters in the matrix at row ‘row’ as Bio::Sequence object. Column 0 of the matrix is set as the definition of the Bio::Sequence object.
Arguments:
-
(required) row: Integer
- Returns
-
Bio::Sequence
1073 1074 1075 |
# File 'lib/bio/db/nexus.rb', line 1073 def get_sequence( row ) create_sequence( get_characters_string( row ), get_row_name( row ) ) end |
#get_sequences_by_name(name) ⇒ Object
Returns character data as Bio::Sequence object Array for matrix rows named ‘name’.
Arguments:
-
(required) name: String
- Returns
-
Bio::Sequence
1057 1058 1059 1060 1061 1062 1063 1064 |
# File 'lib/bio/db/nexus.rb', line 1057 def get_sequences_by_name( name ) seq_strs = get_characters_strings_by_name( name ) seqs = Array.new seq_strs.each do | seq_str | seqs.push( create_sequence( seq_str, name ) ) end seqs end |
#set_datatype(data_type) ⇒ Object
Sets the “data type” property.
Arguments:
-
(required) data_type: String
1131 1132 1133 |
# File 'lib/bio/db/nexus.rb', line 1131 def set_datatype( data_type ) @data_type = data_type end |
#set_gap_character(gap_character) ⇒ Object
Sets the “gap character” property.
Arguments:
-
(required) gap_character: String
1139 1140 1141 |
# File 'lib/bio/db/nexus.rb', line 1139 def set_gap_character( gap_character ) @gap_character = gap_character end |
#set_match_character(match_character) ⇒ Object
Sets the “match character” property.
Arguments:
-
(required) match_character: String
1155 1156 1157 |
# File 'lib/bio/db/nexus.rb', line 1155 def set_match_character( match_character ) @match_character = match_character end |
#set_matrix(matrix) ⇒ Object
Sets the matrix.
Arguments:
-
(required) matrix: Bio::Nexus::NexusMatrix
1163 1164 1165 |
# File 'lib/bio/db/nexus.rb', line 1163 def set_matrix( matrix ) @matrix = matrix end |
#set_missing(missing) ⇒ Object
Sets the “missing” property.
Arguments:
-
(required) missing: String
1147 1148 1149 |
# File 'lib/bio/db/nexus.rb', line 1147 def set_missing( missing ) @missing = missing end |
#set_number_of_characters(number_of_characters) ⇒ Object
Sets the “number of characters” property.
Arguments:
-
(required) number_of_characters: Integer
1123 1124 1125 |
# File 'lib/bio/db/nexus.rb', line 1123 def set_number_of_characters( number_of_characters ) @number_of_characters = number_of_characters end |
#set_number_of_taxa(number_of_taxa) ⇒ Object
Sets the “number of taxa” property.
Arguments:
-
(required) number_of_taxa: Integer
1115 1116 1117 |
# File 'lib/bio/db/nexus.rb', line 1115 def set_number_of_taxa( number_of_taxa ) @number_of_taxa = number_of_taxa end |
#to_nexus ⇒ Object
Returns a String describing this block as nexus formatted data.
- Returns
-
String
967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 |
# File 'lib/bio/db/nexus.rb', line 967 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_datatype ) ) line_2 << " " << DATATYPE << "=" << get_datatype end if ( Nexus::Util::longer_than_zero( get_missing ) ) line_2 << " " << MISSING << "=" << get_missing end if ( Nexus::Util::longer_than_zero( get_gap_character ) ) line_2 << " " << GAP << "=" << get_gap_character end if ( Nexus::Util::longer_than_zero( get_match_character ) ) line_2 << " " << MATCHCHAR << "=" << get_match_character end line_2 << DELIMITER line_3 = String.new line_3 << MATRIX Nexus::Util::to_nexus_helper( CHARACTERS_BLOCK, [ line_1, line_2, line_3 ] + get_matrix.to_nexus_row_array ) end |