NAME
Bio::NEXUS - An object-oriented Perl Applications Programming Interface (API) for the NEXUS file format
SYNOPSIS
my $nexus =Bio::NEXUS->new($file);
# if $file is not provided, an empty Bio::NEXUS object will be created
$nexus->write($newfile);
DESCRIPTION
This is the base class for the Bio::NEXUS package, providing an object-oriented API to the NEXUS file format of Maddison, et al., 1997. This module provides methods to add/remove blocks, select blocks/trees/subtrees/OTUs/characters and so on. For a tutorial illustrating how to use Bio::NEXUS, see "Tutorial.pod" in doc.
FEEDBACK
All feedback (bugs, feature enhancements, etc.) are all greatly appreciated.
AUTHORS
Chengzhi Liang (liangc@umbi.umd.edu)
Weigang Qiu (weigang@genectr.hunter.cuny.edu)
Peter Yang (pyang@rice.edu)
Thomas Hladish (tjhladish at yahoo)
Arlin Stoltzfus (arlin.stoltzfus@nist.gov)
METHODS
new
Title : new
Usage : my $nexus = Bio::NEXUS->new($filename, $verbose);
Function: Creates a new Bio::NEXUS object
Returns : Bio::NEXUS object
Args : $filename, $verbose, or none
get_bionexus_version
Title : get_bionexus_version
Usage : Bio::NEXUS->get_bionexus_version();
Function: gets the package version
Returns : value of \$VERSION
Args : none
read_file
Title : read_file
Usage : Bio::NEXUS->read_file($filename, $verbose);
Function: Reads the contents of the NEXUS file and populate the data in the Bio::NEXUS object
Returns : None
Args : $filename, $verbose, or none
read
Title : read
Usage : Bio::NEXUS->read({format => 'string', 'param' => $buffer, 'verbose' => $verbose});
Usage : Bio::NEXUS->read({format => 'file', 'param' => $filename, 'verbose' => $verbose});
Function: Reads the contents of the NEXUS file and populate the data in the NEXUS object
Returns : None
Args : $filename, $verbose, or none
create_block
Title : create_block
Usage : my $block = Bio::NEXUS->create_block($blocktype,$block_string, $verbose);
Function: Creates a block object based on the input block type and block content as string
Returns : A block object (If Block type is 'Characters' then 'Bio::NEXUS::CharactersBlock' is returned
Args : $block_type (as string), $block_content (as string), verbose
clone
Name : clone
Usage : my $newnexus = $nexus->clone();
Function: clone a NEXUS object; each block is also (shallow) cloned.
Returns : new Bio::NEXUS object
Args : none
set_name
Title : set_name
Usage : Bio::NEXUS->set_name($name);
Function: Sets name for the NEXUS object (usually the filename).
Returns : Nothing
Args : $name (as string)
get_name
Title : get_name
Usage : $name = Bio::NEXUS->get_name();
Function: Returns the name of the NEXUS object as string. (NEXUS filename).
Returns : NEXUS filename
Args : None
add_comment
Name : add_comment
Usage : $nexus->add_comment($comment);
Function: add a block of comments.
Returns : none
Args : a string object
get_comments
Name : get_comments
Usage : $nexus->get_comments();
Function: Retrieves all comments.
Returns : ref to an array of strings
Args : none
get_filename
Name : get_filename
Usage : $nexus->get_filename;
Function: get the NEXUS filename for this object.
Returns : A filename
Args : none
set_blocks
Name : set_blocks
Usage : $nexus->set_blocks($blocks);
Function: set the blocks in this nexus file.
Returns : none
Args : an array of Block objects
add_block
Name : add_block
Usage : $nexus->add_block($block_obj);
Function: add a block.
Returns : none
Args : a Bio::NEXUS::*Block object
remove_block
Name : remove_block
Usage : $nexus->remove_block($blocktype, $title);
Function: remove a block
Returns : none
Args : block type and block name (strings)
get_block
Name : get_block
Usage : $nexus->get_block($blocktype, $blockname);
Function: Retrieves NEXUS block.
Returns : A Bio::NEXUS::*Block object
Args : none
get_blocks
Name : get_blocks
Usage : $nexus->get_blocks($blocktype);
Function: Retrieves list of blocks of some type or all blocks.
Returns : Array of Bio::NEXUS::Block objects
Args : $blocktype or none
get_blocks_and_comments
Name : get_blocks_and_comments
Usage : @blocks_and_comments = @{ $nexus->get_blocks_and_comments() };
Function: get all comments and blocks in the NEXUS object
Returns : array of strings and block objects
Args : none
get_weights
Name : get_weights
Usage : $nexus->get_weights($charblockname);
Function: get all weights for a block.
Returns : the weights of alignments in a Characters Block
Args : an hash of weightset objects
get_taxlabels
Name : get_taxlabels
Usage : $nexus->get_taxlabels();
Function: get the taxa labels of the NEXUS object (obtained from TAXA block).
Returns : an arrayreference of taxa labels.
Args : none
get_otus
Name : get_otus
Usage : $nexus->get_otus();
Function: Retrieves list of OTUs
Returns : Array of OTU names or Bio::NEXUS::TaxUnit objects
Args : none
rename_otus
Name : rename_otus
Usage : $nexus->rename_otus(\%translation);
Function: rename all OTUs
Returns : a new nexus object with new OTU names
Args : a ref to hash based on OTU name pairs
add_otu_clone
Name : add_otu_clone
Usage : $nexus_object->add_otu_clone($original_otu_name, $copy_otu_name);
Function: creates a copy of a specified otu inside this Bio::NEXUS object
Returns : n/a
Args : $original_otu_name (string) - the name of the otu that will be cloned, $copy_otu_name (string) - the desired name for the new clone
Preconditions : $original_otu_name and $copy_otu_name are not equal, $original_otu_name is a valid otu name (existing otu)
select_blocks
Name : select_blocks
Usage : $nexus->select_blocks(\@blocknames);
Function: select a subset of blocks
Returns : a new nexus object
Args : a ref to array of block names to be selected
exclude_blocks
Name : exclude_blocks
Usage : $nexus->exclude_blocks(\@blocknames);
Function: remove a subset of blocks
Returns : a new nexus object
Args : a ref to array of block names to be removed
select_otus
Name : select_otus
Usage : $nexus->select_otus(\@otunames);
Function: select a subset of OTUs
Returns : a new nexus object
Args : a ref to array of OTU names
exclude_otus
Name : exclude_otus
Usage : $nexus->exclude_otus(\@otunames);
Function: remove a subset of OTUs
Returns : a new nexus object
Args : a ref to array of OTU names to be removed
select_tree
Name : select_tree
Usage : $nexus->select_tree($treename);
Function: select a tree
Returns : a new nexus object
Args : a tree name
select_subtree
Name : select_subtree
Usage : $nexus->select_subtree($inodename);
Function: select a subtree
Returns : a new nexus object
Args : an internal node name for subtree to be selected
exclude_subtree
Name : exclude_subtree
Usage : $nexus->exclude_subtree($inodename);
Function: remove a subtree
Returns : a new nexus object
Args : an internal node for subtree to be removed
select_chars
Name : select_chars
Usage : $nexus->select_chars(\@columns);
Function: select a subset of characters
Returns : a new nexus object
Args : a ref to array of character columns
exclude_chars
Name : exclude_chars
Usage : $nexus->exclude_chars($columns,block_type);
Function: exclude specified columns from a block.
Returns : new nexus object
Args : column numbers to exclude as array reference, block_type as string
reroot
Name : reroot
Usage : $nexus->reroot($outgroupname);
Function: reroot the tree using the new outgroup
Returns : a new nexus object
Args : a OTU name as new outgroup
equals
Name : equals
Usage : $nexus->equals($another);
Function: compare if two Bio::NEXUS objects are equal
Returns : boolean
Args : a Bio::NEXUS object
write
Name : write
Usage : $nexus->write($filename, $verbose);
Function: Writes to NEXUS file from stored NEXUS data
Returns : none
Args : file name (string) for output to file or '-' or 'STDOUT' for standard output
set_taxablock
Name : set_taxablock
Usage : $nexus->set_taxablock();
Function: Sets taxablock if taxablock is not already defined in the nexus object
Returns : none
Args : none